Mikrotik split-dns: яны гэта зрабілі

Не прайшло і 10 гадоў, як распрацоўшчыкі RoS (у stable 6.47) дадалі функцыянал, які дазваляе перанакіраваць DNS запыты ў адпаведнасці са спецыяльнымі правіламі. Калі раней трэба было выкручвацца з Layer-7 правіламі ў firewall, то зараз гэта робіцца проста і хупава:

/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 гэта было не зрабіць без даволі вялікіх мыліц.

Крыніца: habr.com