Non sono trascorsi nemmeno 10 anni da quando gli sviluppatori di RoS (nella versione stabile 6.47) hanno aggiunto una funzionalità che consente di reindirizzare le richieste DNS secondo regole specifiche. Se prima dovevamo districarci con le regole Layer-7 nel firewall, ora è tutto molto semplice ed 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
La mia gioia non ha limiti!
Cosa comporta per noi?
Almeno, ci liberiamo di strane configurazioni con NAT simili a questa:
/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
E non è tutto, ora è possibile specificare più server inoltri, il che aiuterà a realizzare il failover DNS.
L'elaborazione intelligente di DNS permetterà di avviare l'implementazione di IPv6 nella rete dell'azienda. Prima non lo avevo fatto, il motivo è che dovevo risolvere diversi nomi DNS in indirizzi locali, e con IPv6 non era fattibile senza alcune soluzioni piuttosto complicate.
Fonte: habr.com
