Mikrotik: скрипт CheckDNS
Простой скрипт для проверки доступности DNS-серверов и переключения на вторичные в случае недоступности основных.
Адреса первичных/вторичных серверов, имя домена для разыменования нужно подставить, разумеется, свои.
# Mikrotik router CheckDNS script # E-mail: [email protected] # Script check resolving $testDomain for each server in masterDNS # If not resovling - switch to backupDNS server and vice versa :local currentDNS [/ip dns get server] :local masterDNS {"10.1.1.10"; "10.1.2.10"} :local backupDNS {"77.88.8.88"; "77.88.8.2"} :local testDomain "home.local-domain.ru" :local failCount :local maxFails 1 :foreach dnsServer in=$masterDNS do={ :do { :resolve $testDomain server $dnsServer } on-error={ :set failCount ($failCount + 1) } } :if ($failCount>$maxFails) do={ :if ($currentDNS = $masterDNS) do={ :log warning "Internal DNS resolving NOT OK, switch to External DNS" /ip dns set servers=$backupDNS; } else={ :log warning "Internal DNS resolving NOT OK, still using External DNS" } } else={ :if ($currentDNS = $masterDNS) do={ } else={ :log warning "Internal DNS resolving OK, switch to Internal DNS" /ip dns set servers=$masterDNS; } };