SPOJE.NET

Technická dokumentace

Uživatelské nástroje

Nástroje pro tento web


howto:network:mikrotik:routing

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revizePředchozí verze
Následující verze
Předchozí verze
howto:network:mikrotik:routing [2017/03/09 12:31] xchaoshowto: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>
 [admin@odien] /ip> /ip route [admin@odien] /ip> /ip route
 [admin@odien] /ip route> add dst-address=8.8.8.8 gateway=ether1-gateway scope=10 [admin@odien] /ip route> add dst-address=8.8.8.8 gateway=ether1-gateway scope=10
Řádek 44: Řádek 46:
 [admin@odien] /ip route> add distance=1 gateway=8.8.4.4 routing-mark=ISP2 check-gateway=ping [admin@odien] /ip route> add distance=1 gateway=8.8.4.4 routing-mark=ISP2 check-gateway=ping
 [admin@odien] /ip route> add distance=2 gateway=8.8.8.8 routing-mark=ISP2 check-gateway=ping [admin@odien] /ip route> add distance=2 gateway=8.8.8.8 routing-mark=ISP2 check-gateway=ping
 +</code>
  
-*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 
 + 
 + 
 + 
 +<code> 
 +/ip address add address=10.11.23.10/24 comment=primarni-isp interface=ether1 network=10.11.23.0 
 +/ip address add address=172.16.23.20/24 comment=zalozni-isp interface=ether5 network=172.16.23.0 
 +/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/32 gateway=10.11.23.1 
 +/ip firewall nat add action=masquerade chain=srcnat comment="primarni-isp: masquerade" out-interface=ether1 
 +/ip firewall nat add action=masquerade chain=srcnat comment="sekundarni-isp: masquerade" out-interface=ether5 
 +</code> 
 + 
 +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 
 + 
 +<code> 
 +# 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] = "nothing") do={:set PingFailCountISP1 0} 
 +:if ([:typeof $PingFailCountISP2] = "nothing") do={:set PingFailCountISP2 0} 
 + 
 +# 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 "spoje-net ACTIVE, disable backup isp." 
 +
 +
 +
 +</code> 
 + 
 +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://wiki.mikrotik.com/wiki/Failover_Scripting]]//
  
-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.1489059112.txt.gz · Poslední úprava: 2017/03/09 12:31 autor: xchaos