DNS failover

Hello all,
I write a script, but it doesn't work.


/system script add name="resolver" source= {

:local dns1 "192.168.179.5"
:local dns2 "192.168.179.6"
:local dns "$dns1,$dns2"
:local altDns1 "94.140.14.14"
:local altDns2 "94.140.15.15"
:local altDns "$altDns1,$altDns2"

funktion der DNS-Server testen

:local isDNS1UP [/put [:resolve domain.lan.local server=$dns1]]
:local isDNS1UP [/put [:resolve www.idkowiak.de server=$dns2]]

:if (($isDns1Up = 0) || ($isDns2Up = 0)) do={

Falls ein DNS Server nicht funktioniert.

/ip dhcp-server network set [find comment=defconf] dns-server=$altDns domain=lan.local
/ip dhcp-server network set [find comment="Client] LAN" dns-server=$altDns domain=lan.local
/ip dhcp-server network set [find comment="Server LAN"] dns-server=$altDns domain=lan.local
/ip dhcp-server network set [find comment="WLAN LAN"] dns-server=$altDns domain=lan.local
} else={

Falls einer oder beide DNS-Server erreichbar sind, ursprüngliche DNS-Server wiederherstellen

/ip dhcp-server network
set [find comment=defconf] dns-server=$Dns domain=lan.local
set [find comment="Client] LAN" dns-server=$Dns domain=lan.local
set [find comment="Server LAN"] dns-server=$Dns domain=lan.local
set [find comment="WLAN LAN"] dns-server=$Dns domain=lan.local}

}

/system scheduler add interval=5m name=checkDNS on-event="resolver" start-time=startup

I have a Hex S
RouterOS 7.15.3

Can anybody, what is wrong with this script?

Thank you all

You have two misplaced “]” and there is a problem with the capitalization of the variables isdnsxup and dns.

Try this:

:local dns1 "192.168.179.5"
:local dns2 "192.168.179.6"
:local dns "$dns1,$dns2"
:local altDns1 "94.140.14.14"
:local altDns2 "94.140.15.15"
:local altDns "$altDns1,$altDns2"

# funktion der DNS-Server testen
:local isDNS1UP [/put [:resolve domain.lan.local server=$dns1]]
:local isDNS2UP [/put [:resolve www.idkowiak.de server=$dns2]]

:if (($isDNS1UP = 0) || ($isDNS2UP = 0)) do={
# Falls ein DNS Server nicht funktioniert.
/ip dhcp-server network set [find comment=defconf] dns-server=$altDns domain=lan.local
/ip dhcp-server network set [find comment="Client LAN"] dns-server=$altDns domain=lan.local
/ip dhcp-server network set [find comment="Server LAN"] dns-server=$altDns domain=lan.local
/ip dhcp-server network set [find comment="WLAN LAN"] dns-server=$altDns domain=lan.local
} else={
# Falls einer oder beide DNS-Server erreichbar sind, ursprngliche DNS-Server wiederherstellen
/ip dhcp-server network
set [find comment=defconf] dns-server=$dns domain=lan.local
set [find comment="Client LAN"] dns-server=$dns domain=lan.local
set [find comment="Server LAN"] dns-server=$dns domain=lan.local
set [find comment="WLAN LAN"] dns-server=$dns domain=lan.local
}