Mikrotik split-dns: lo lograron

Han pasado menos de 10 años desde que los desarrolladores de RoS (en la versión estable 6.47) agregaron una funcionalidad que le permite redirigir las solicitudes de DNS de acuerdo con reglas especiales. Si antes era necesario sortear las reglas de la capa 7 en el firewall, ahora esto se hace de manera simple y elegante:

/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

¡Mi felicidad no conoce límites!

¿Con qué nos amenaza esto?

Como mínimo, nos deshacemos de construcciones NAT extrañas como esta:


/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

Y eso no es todo, ahora puede registrar varios reenviadores, lo que ayudará a realizar la conmutación por error de dns.
El procesamiento inteligente de DNS permitirá comenzar a introducir ipv6 en la red de la empresa. Antes de eso, no hice esto, la razón es que necesitaba resolver una cantidad de nombres dns en direcciones locales, y en ipv6 esto no se podía hacer sin muletas bastante grandes.

Fuente: habr.com