Mikrotik split-dns: направиха го

Изминаха по-малко от 10 години, откакто разработчиците на RoS (в стабилна версия 6.47) добавиха функционалност, която ви позволява да пренасочвате DNS заявки в съответствие със специални правила. Ако по-рано беше необходимо да избягвате с правилата на Layer-7 в защитната стена, сега това се прави просто и елегантно:

/ip dns static
add forward-to=192.168.88.3 regexp=".*\.test1\.localdomain" type=FWD
add forward-to=192.168.88.56 regexp=".*\.test2\.localdomain" type=FWD

Щастието ми няма граници!

С какво ни застрашава това?

Като минимум се отърваваме от странни NAT конструкции като тази:


/ip firewall layer7-protocol
add comment="DNS Nat contoso.com" name=contoso.com regexp="\x07contoso\x03com"
/ip firewall mangle
add action=mark-packet chain=prerouting comment="mark dns contoso.com" dst-address-type=local dst-port=53 in-interface-list=DNSMASQ layer7-protocol=contoso.com new-packet-mark=dns-contoso.com passthrough=yes protocol=udp
add action=mark-packet chain=prerouting comment="mark dns contoso.com" dst-address-type=local dst-port=53 in-interface-list=DNSMASQ layer7-protocol=contoso.com new-packet-mark=dns-contoso.com passthrough=yes protocol=tcp
/ip firewall nat
add action=dst-nat chain=dstnat comment="DST-NAT dns contoso.com" dst-port=53 in-interface-list=DNSMASQ packet-mark=dns-contoso.com protocol=udp to-addresses=192.0.2.15
add action=dst-nat chain=dstnat comment="DST-NAT dns contoso.com" dst-port=53 in-interface-list=DNSMASQ packet-mark=dns-contoso.com protocol=tcp to-addresses=192.0.2.15
add action=masquerade chain=srcnat comment="mask dns contoso.com" dst-port=53 packet-mark=dns-contoso.com protocol=udp
add action=masquerade chain=srcnat comment="mask dns contoso.com" dst-port=53 packet-mark=dns-contoso.com protocol=tcp

И това не е всичко, сега можете да регистрирате няколко препращащи устройства, което ще ви помогне да направите dns failover.
Интелигентната DNS обработка ще позволи да започне въвеждането на ipv6 в мрежата на компанията. Преди това не го направих, причината е, че трябваше да разреша няколко dns имена на локални адреси, а в ipv6 това не можеше да стане без доста големи патерици.

Източник: www.habr.com