Uplynulo méně než 10 let, co vývojáři RoS (v stable 6.47) přidali funkčnost, která umožňuje přesměrování DNS dotazů podle speciálních pravidel. Zatímco dříve bylo nutné se obtížně vypořádávat s pravidly Layer-7 ve firewallu, nyní je to snadné a elegantní:
/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
Není čeho se obávat!
Co to pro nás znamená?
Minimálně se zbavíme podivných konstrukcí s NAT, jako je tato:
/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
A to není všechno, nyní je možné napsat několik servery přesměrování, což pomůže zajistit dns failover.
Inteligentní zpracování DNS umožní začít implementaci ipv6 do sítě společnosti. Předtím jsem to nedělal, protože jsem potřeboval přemapovat určité dns názvy na lokální adresy, a u ipv6 to nešlo udělat bez poměrně velkých obstrukcí.
Zdroj: habr.com
