MIKROTIK OS

SMS - GPS locator

Tlač GIS/CAD

Správa počítačov a LAN

Školenie výpočtovej techniky

Záchrana údajov na disku

 

ABIKS s.r.o

Operačný systém MIKROTIK je postavený router na LINUXe na riadenie prístupu do internetu a riadenie WIFI sietí so vstavaním hotspot prístupom užívateľov. Mnohé funkcie sú porovnateľné s funkciami so zariadeniami CISCO, ale za neporovnateľne nižšiu cenu. My ho používame už niekoľko rokov a je neoceniteľný v spoľahlivosti a tiež výkonnosti. Zadarmo je možné odskúšať mnohé jeho funkcie ešte pred nasadením do ostrej prevádzky. Má vlastný scriptovací jazyk na automatizovanie jeho činnosti. Ponúkame tiež možnosť písať scripty.

Požiadavku na router MIKROTIK zašlite mailom, pričom uveďte, aké požiadavky má router splňovať a aké zaťaženie prevádzky predpokladáte. Detailné vlastnosti a čo je možné všetko nastaviť sú uvedené na stránke tvorcu systému, bolo by to len obyčajné opisovanie technických špecifikácií

Cena sa zároveň odvíja práve od špecifikácie a nemožno ju stanoviť dopredu. Výhodou však je, že je možné za určitých podmienok systém zapožičať na otestovanie.

Systém sice nenahradí plne funkčnosť svetového lídra spoločnosti CISCO, ale systém MIKROTIK s CISCOM dokáže spolupracovať a cena riešenia je oveľa ale oveľa nižšia.

Mikrotik však nie je len softvérové riešenie, ale ma aj vlasné železo.mokrotik
Špecifikáciu zašlite mailom na obchod@abiks.sk

Samples of MIKROTIK script

StartUP

# start after reboot
:global sirena 0;
:global ipaddress;
:global ipgoogle;
:global internetOK;
:local int 0;
:delay 60;
:foreach i in=[/ip route find] do={
:set int ($int + 1)
}
:if ($int = 1) do={
:beep; delay 1;
/ip dhcp-client release numbers=0;
:set internetOK false;
/log warning "ERR-01 Router IP lost"} else={
:if ([/ping [/ip route get [find dst-address=0.0.0.0/0] gateway] count=3] != 0) do={
/ip dns set secondary-dns=8.8.4.4;
/ip dns set primary-dns=8.8.8.8;
:set ipaddress [/ip route get [find dst-address=0.0.0.0/0] gateway]
:set ipgoogle [:resolve "www.google.com"];
:set internetOK true;
:if ([/ping $ipgoogle count=3] != 0) do={
:beep; :delay 1; :beep length=1;
/log info "Gateway IP set to $ipaddress - IP google.com is $ipgoogle"
/system script run SpeedInternet;} else={
:beep; :delay 1; :beep;
/log warning "ERR-02 Gateway IP set $ipaddress - IP google.com is $ipgoogle but can not ping google.com (check PROXY Server for example...)"}} else={ 
:beep; delay 1;
/ip dhcp-client release numbers=0;
:set internetOK false;
/log warning "ERR-01 Router IP lost"
}
}
 

SpeedInternet

:global ipgoogle;
:global internetOK;
:if ($internetOK) do={
:local SpeedInternetCurrent 0;
:local SpeedInternetCurrentK 0;
:local SpeedInternetAverage 0;
:local SpeedInternetAverageK 0;
:local i 0;
:local j 0;
/tool ping-speed $ipgoogle first-ping-size=64 second-ping-size=512  do={
:set i ($i + 1);
:if ($current != 0) do={
:set j ($j + 1);
:set SpeedInternetCurrent $current;
:set SpeedInternetAverage $average;}
:if ($i > 15) do={
:if ($j != 0) do={
:set SpeedInternetCurrentK ($SpeedInternetCurrent/1024);
:set SpeedInternetCurrent ($SpeedInternetCurrent/1048576);
:set SpeedInternetAverageK ($SpeedInternetAverage/1024);
:set SpeedInternetAverage ($SpeedInternetAverage/1048576);
/log info "Speed to internet $SpeedInternetCurrentK Kbps/$SpeedInternetCurrent Mbps - average $SpeedInternetAverageK Kbps/$SpeedInternetAverage Mbps ( $j items)";}
:foreach j in [/system script job find script=SpeedInternet] do={
/system script job remove numbers=$j}}
}
}

CheckInternet

# Is Internet OK
:global ipaddress;
:global ipgoogle;
:global internetOK;
:local int 0;
:local switch false;
:foreach i in=[/ip route find] do={
:set int ($int + 1)
}
:if ($internetOK and $int > 2) do={
:if ([/ping [/ip route get [find dst-address=0.0.0.0/0] gateway] count=3] = 0) do={
/log warning "ERR-01 Router IP lost"
:set internetOK false;
:set switch true;
:beep; delay 1;
/ip dhcp-client release numbers=0;
:delay 2;
} else={
# do nothing
:set switch false;
}
}
:if ($internetOK = false  and $switch = false) do={
/ip dhcp-client release numbers=0;
:delay 2;
:set int 0;
:foreach i in=[/ip route find] do={
:set int ($int + 1)
}
:if ($int = 1) do={
# do nothing
:set switch false;} else={
:if (($int > 1) and ([/ping [/ip route get [find dst-address=0.0.0.0/0] gateway] count=3] != 0)) do={
:set internetOK true;
/ip dns set secondary-dns=8.8.4.4;
/ip dns set primary-dns=8.8.8.8;
:set ipaddress [/ip route get [find dst-address=0.0.0.0/0] gateway]
:set ipgoogle [:resolve "www.google.com"];
:if ([/ping $ipgoogle count=3] != 0) do={
:beep; :delay 1; :beep length=1;
/log info "Gateway IP set to $ipaddress - IP google.com is $ipgoogle"
/system script run SpeedInternet;} else={
/log warning "ERR-02 Gateway IP set $ipaddress - IP google.com is $ipgoogle but can not ping google.com (check PROXY Server for example...)"
:beep; :delay 1; :beep;}}
}
}

CheckCPU

:global sirena;
:local cpu [/system resource get cpu-load];
:local freeHDD (100 * [/system resource get free-hdd-space] / [/system resource get total-hdd-space]);
:local freeMemory (100 * [/system resource get free-memory] / [/system resource get total-memory]);
:set freeHDD (100-$freeHDD);
:set freeMemory (100-$freeMemory);
:if ($cpu > 76) do={
/log warning "ERR-03 CPU $cpu% is High - HDD used $freeHDD% - MEMORY used $freeMemory%"
:if ($sirena = 0) do={
:set sirena 1;}}
:if (($cpu < 76) and ($cpu > 16)) do={
/log info "CPU $cpu% - HDD used $freeHDD% - MEMORY used $freeMemory%"}

DuplicateMAC

:global sirena;
local macaddress;
local ipaddress;
local ipduplicate;
local HelpTMP;
local onlyONE false;
:foreach i in=[/ip arp find] do={
:set ipaddress [/ip arp get $i address];
:set macaddress [/ip arp get $i mac-address];
:set HelpTMP [/ip arp print count-only where mac-address=$macaddress];
:if ($HelpTMP > 1) do={
:foreach j in=[/ip arp find where mac-address=$macaddress] do={
:set ipduplicate ($ipduplicate.[/ip arp get $j address].", ");
}
:set onlyONE true;
:delay 2;
/log info "ERR-04 For MAC=$macaddress is $HelpTMP times IP $ipduplicate"
:set ipduplicate;}
}
:if ($onlyONE and $sirena < 2) do={
:delay 2;
/log info "-------------- M A C    D U P L I C A T E   E N D  --------------"
:set sirena 2;} sirena 2;}

SirenaBeep

:global sirena;
:if ($sirena != 0) do={
:if ($sirena  = 1) do={
:beep length=1; :delay 2; :beep}
:if ($sirena  = 2) do={
:beep length=1; :delay 2; :beep; delay 2; :beep}
:if ($sirena  = 3) do={
:beep length=1; :delay 2; :beep length=1; delay 2; :beep}
:if ($sirena  = 4) do={
:beep length=1; :delay 2; :beep; :delay 2; :beep length=1}
:if ($sirena  = 5) do={
:beep length=1; :delay 2; :beep length=1; :delay 2; :beep length=1}
}
:set sirena 0;