Redirect web during network failure

Z Wiki UnArt Slavičín
Skočit na navigaciSkočit na vyhledávání
#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
}
}
# Seznam vsech rozhrani, na ktere chceme aplikovat presmerovani
:global interfaces [:toarray "\"test ID 1001\""]

# 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"

/ip dns set allow-remote-requests=yes

/ip dns static
add name=".*" address=$local disabled=yes
move [find name=".*"] 0