howto:network:mikrotik:routing
                Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
| Obě strany předchozí revizePředchozí verzeNásledující verze | Předchozí verze | ||
| howto:network:mikrotik:routing [2017/03/09 12:34] – [Záložní konektivita (2 ISP v jednom routeru) - (verze 2)] xchaos | howto:network:mikrotik:routing [2017/12/29 18:48] (aktuální) – [Záložní konektivita (2 ISP v jednom routeru) - (verze 3)] gandalf | ||
|---|---|---|---|
| Řádek 31: | Řádek 31: | ||
| - | **port ether5 je v nastavení switche potřeba vyřadit ze switche** | + | **I. Příprava záložního rozhraní** | 
| - | nastaví se u něj master port: None | + | V případě ethernetu je port např. ether5 je v nastavení switche potřeba vyřadit ze switche - nastaví se u něj master port: None | 
| + | V případě USB donglu by mělo v Mikrotiku existovat rozhraní např. ppp1 | ||
| - | **přes SSH (i ve winboxu) se zadají tato pravidla:** | + | **II. přes SSH (i ve winboxu) se zadají tato pravidla:** | 
| <code bash> | <code bash> | ||
| Řádek 47: | Řádek 48: | ||
| </ | </ | ||
| - | **navíc, např. přes klikací rozhraní: | + | **III. navíc, např. přes klikací rozhraní: | 
| + | |||
| + | - na záložním interfacu (ether5 resp. ppp1) se musí pustit DHCP client s vyšší default distance přidaných router, než na ether1-gateway (např. jsem dal 10) | ||
| + | - na záložním interfacu (ether5 resp. ppp1) se musí ve Firewall sekce NAT zapnout stejný IP Masquerading jako předím na ether1-gateway | ||
| + | |||
| + | ===== Záložní konektivita (2 ISP v jednom routeru) - (verze 3) ===== | ||
| + | |||
| + | * bez kontroly default gw a se skriptem - resi poradi bran. | ||
| + | * ether1 - primarni ISP | ||
| + | * ether5 - sekundarni zalozni ISP | ||
| + | * pro testovani funkcni primarni linky se pouziva sekundarni google dns (8.8.4.4), ktere je dostupne JEN pres primarni konektivitu | ||
| + | * predpoklada se, ze je na kazdem WAN interface pouze jedna ip adresa | ||
| + | |||
| + | |||
| + | |||
| + | < | ||
| + | /ip address add address=10.11.23.10/ | ||
| + | /ip address add address=172.16.23.20/ | ||
| + | /ip route add distance=1 gateway=10.11.23.1 | ||
| + | /ip route add distance=10 gateway=192.168.8.1 | ||
| + | /ip route add distance=1 dst-address=8.8.4.4/ | ||
| + | /ip firewall nat add action=masquerade chain=srcnat comment=" | ||
| + | /ip firewall nat add action=masquerade chain=srcnat comment=" | ||
| + | </ | ||
| + | |||
| + | Po priprave tohoto nastaveni je potreba vlozit tento skript do scheduleru: | ||
| + | system > scheduler, skript vlozte sem a nastavte, aby se vykonaval treba kazdych 10 sekund | ||
| + | |||
| + | < | ||
| + | # Please fill the WAN interface names | ||
| + | :local InterfaceISP1 ether1 | ||
| + | :local InterfaceISP2 ether5 | ||
| + | |||
| + | # Please fill the ping check host - currently: secondary dns google | ||
| + | :local PingTarget 8.8.4.4 | ||
| + | |||
| + | # Please fill how many ping failures are allowed before fail-over happends | ||
| + | :local FailTreshold 3 | ||
| + | |||
| + | # Editing the script after this point may break it | ||
| + | # -------------- stop editing here -------------- | ||
| + | |||
| + | # Declare the global variables | ||
| + | :global PingFailCountISP1 | ||
| + | :global PingFailCountISP2 | ||
| + | |||
| + | # This inicializes the PingFailCount variables, in case this is the 1st time the script has ran | ||
| + | :if ([:typeof $PingFailCountISP1] = " | ||
| + | :if ([:typeof $PingFailCountISP2] = " | ||
| + | |||
| + | # This variable will be used to keep results of individual ping attempts | ||
| + | :local PingResult | ||
| + | |||
| + | |||
| + | |||
| + | # Check ISP1 | ||
| + | :set PingResult [ping $PingTarget count=1 interface=$InterfaceISP1] | ||
| + | :put $PingResult | ||
| + | |||
| + | :if ($PingResult = 0) do={ | ||
| + | :if ($PingFailCountISP1 < ($FailTreshold+2)) do={ | ||
| + | :set PingFailCountISP1 ($PingFailCountISP1 + 1) | ||
| + | |||
| + | :if ($PingFailCountISP1 = $FailTreshold) do={ | ||
| + | :log warning "ISP1 has a problem en route to $PingTarget - increasing distance of routes." | ||
| + | /ip route set 0 distance=10 | ||
| + | /ip route set 1 distance=1 | ||
| + | /ip firewall connection {remove [find]} | ||
| + | :log warning "isp 2 ACTIVE." | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | :if ($PingResult = 1) do={ | ||
| + | :if ($PingFailCountISP1 > 0) do={ | ||
| + | :set PingFailCountISP1 ($PingFailCountISP1 - 1) | ||
| + | |||
| + | :if ($PingFailCountISP1 = ($FailTreshold -1)) do={ | ||
| + | :log warning "ISP1 can reach $PingTarget again - bringing back original distance of routes." | ||
| + | /ip route set 0 distance=1 | ||
| + | /ip route set 1 distance=10 | ||
| + | /ip firewall connection {remove [find]} | ||
| + | :log warning " | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | V pripade nedostupnosti 8.8.4.4 se provede prohozeni priorit u vychozi brany tak aby se uprednostinila zalozni konektivita a nasledne se vymaze connection tabulka (jinak se zmena neprojevi pro jiz navazana spojeni !!!) | ||
| + | V pripade, ze primarni konektivita opet naskoci, provede to stejne v obracenem poradi. | ||
| + | |||
| + | |||
| + | * //prevzato a upraveno pro vlastni potrebu z [[https:// | ||
| - | 1) na ether5 se musí pustit DHCP client s vyšší default distance přidaných router, než na ether1-gateway (např. jsem dal 10) | ||
| - | 2) na ether5 se musí ve Firewall sekce NAT zapnout stejný IP Masquerading jako předím na ether1-gateway | ||
| ===== VPN v Mikrotiku ===== | ===== VPN v Mikrotiku ===== | ||
howto/network/mikrotik/routing.1489059295.txt.gz · Poslední úprava: 2017/03/09 12:34 autor: xchaos
                
                