Redirect web during network failure
Z Wiki UnArt Slavičín
Nová verze
Instalace
# Seznam vsech rozhrani, na ktere chceme aplikovat presmerovani :global interfaces [:toarray "\"bridge1\""] # Adresa brany - pri vypadku pingu na ni aktivujeme presmerovani :global remote "192.168.128.1" # Libovolna adresa routeru, na kterou budeme presmerovavat DNS pozadavky :global local "192.168.128.10" # Nastavime DNS proxy /ip dns set allow-remote-requests=yes /ip dns static # Pridame pravidlo pro presmerovani vsech pozadavku sam na sebe add name=".*" address=$local disabled=yes # Pravidlo presuneme uplne nejvyse move [find name=".*"] 0 # Pridame profil pro hotspot /ip hotspot profile add dns-name="" hotspot-address=0.0.0.0 html-directory=malfunction http-cookie-lifetime=3d http-proxy=0.0.0.0:0 login-by=cookie,http-chap name=malfunction rate-limit="" smtp-server=0.0.0.0 split-user-domain=no use-radius=no # Pro kazde rozhrani vytvorime vlastni hotspot :foreach i in=$interfaces do={ /ip hotspot add disabled=yes idle-timeout=5m interface=$i keepalive-timeout=none profile=malfunction } /system script # Pridame skript pro aktivaci presmerovani add name=malfunction-on policy=ftp,reboot,read,write,test,winbox,password,sniff,api source=\ "/ip dns cache flush\r\ \n\r\ \n/ip hotspot\r\ \n:foreach server in=[find profile=\"malfunction\"] do={\r\ \nenable \$server\r\ \n}\r\ \n\r\ \n/ip dns static enable 0" # Pridame skript pro deaktivaci presmerovani add name=malfunction-off policy=ftp,reboot,read,write,test,winbox,password,sniff,api source=\ "/ip hotspot\r\ \n:foreach server in=[find profile=\"malfunction\"] do={\r\ \ndisable \$server\r\ \n}\r\ \n\r\ \n/ip dns cache flush\r\ \n/ip dns static disable 0" # Nakonec pridame pingatko na adresu brany add comment=malfunction disabled=no down-script="/system script\r\ \nrun [find name=\"malfunction-on\"]" host=$remote interval=15s timeout=1s up-script="/system script\r\ \nrun [find name=\"malfunction-off\"]
Odinstalace
# Smazeme pingatko na adresu brany /tool netwatch remove [/tool netwatch find comment="malfunction"] # Zrusime DNS proxy /ip dns set allow-remote-requests=no # Smazeme pravidlo pro presmerovani vsech pozadavku sam na sebe /ip dns static remove [/ip dns static find name=".*"] # Smazeme hotspoty /ip hotspot remove [find profile=malfunction] # Smazeme profil pro hotspot /ip hotspot profile remove [find name=malfunction] /system script # Smazeme skript pro aktivaci presmerovani remove malfunction-on # Smazeme skript pro deaktivaci presmerovani remove malfunction-off
Stará verze
#Skript na přesměrování webu při výpadku spoje dál do sítě # pro MikroTik 2.9.X # Autor: Roman Ševčík # Poznámka (Tomáš Dulík): Skript pingá na adresu zadanou v proměnné "ip" # Pokud je brána nedostupná, aktivuje: # 1. pravidlo v tabulce NAT, které má v komentáři označení "redirectDNS" # Toto pravidlo zde není uvedeno, námět pro vylepšení: pokud pravidlo nenajde, # skript by si jej mohl sám vytvořit # 2. V modulu "Hotspot" aktivuje položku "malfunction". Hotspot obsahuje jednoduchý # web server, který lze využít pro zobrazení stránky o výpadku. Romane, # hoď sem ještě návod, jak v Hotspotu vytvořit "malfunction" :local time-on :local time-gw #:local end # IP adresa dalšího bodu sítě, ke kterému je toto AP připojeno (uvádějte v uvozovkach) :local ip "10.143.18.1" # # pocet pingu :local count 5 # # #Cas po který budu zobrazovat hlasku o nedostupnosti :set time-on 1m # #Cas za jak dlouho se bude testovat dostupnost brany :set time-gw 1m # #Při použití skriptu po spuštìní doporuèuju nechat nìjaký èas Routeru na nabìhnutí - upravte dle vlastní vùle :delay 10s #------------------------------------------------------ # :while true do { :if ([/ping $ip count=$count] = 0) \ do { /ip hotspot enable malfunction /ip firewall nat enable [find comment=redirectDNS] :delay $time-on } \ else { /ip hotspot disable malfunction /ip firewall nat disable [find comment=redirectDNS] :delay $time-gw } }