Il ne s'est écoulé que 10 ans depuis que les développeurs de RoS (dans la version stable 6.47) ont ajouté une fonctionnalité qui permet de rediriger les requêtes DNS selon des règles spécifiques. Auparavant, il fallait se débrouiller avec des règles Layer-7 dans le pare-feu, mais maintenant c'est fait de manière simple et élégante :
/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
Mon bonheur n'a pas de limites !
Qu'est-ce que cela implique pour nous ?
Au minimum, nous nous débarrassons des constructions étranges avec NAT semblables à celle-ci :
/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
Et ce n'est pas tout, il est maintenant possible de définir plusieurs serveurs transferts, ce qui facilitera la mise en place d'un failover DNS.
Le traitement intelligent des DNS permettra de commencer à implémenter l'IPv6 dans le réseau de l'entreprise. Avant cela, je ne l'avais pas fait, car il fallait que je résolve un certain nombre de noms DNS en adresses locales, et cela était impossible avec l'IPv6 sans des techniques assez compliquées.
Source : habr.com
