:local curDNS [/ip dns get server] :local vpnDNS "1.1.1.1" :local oriDNS "203.142.82.222,203.142.84.222" :local testDomain "www.google.com" :local isDown "no" :if ($curDNS = $vpnDNS) do={ :do { :resolve $testDomain server=$vpnDNS } on-error={ :set isDown "yes" :log warning "VPN is seems down, checking number 1" :delay 1 } :for i from=2 to=5 do={ :if ($isDown = "yes") do={ :do { :resolve $testDomain server=$vpnDNS :set isDown "no" } on-error={ :log warning "VPN is seems down, checking again number $i" :set isDown "yes" :delay 1 } } } :if ($isDown = "yes") do={ :log warning "VPN DNS Offline" /ip dns set servers=$oriDNS } } else={ :do { :resolve $testDomain server=$vpnDNS :log warning "VPN DNS Online" /ip dns set servers=$vpnDNS } on-error={} }