Mikrotik split-dns: ce l'hanno fatta

Meno di 10 anni dopo, gli sviluppatori di RoS (nella versione stabile 6.47) hanno aggiunto funzionalità che consentono di reindirizzare le richieste DNS secondo regole speciali. Se prima era necessario schivare con le regole Layer-7 nel firewall, ora questo viene fatto in modo 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 felicità non conosce limiti!

Cosa ci minaccia?

Come minimo, ci liberiamo di strani costrutti NAT come questo:


/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 puoi registrare diversi forwarder, il che contribuirà a rendere il failover DNS.
L'elaborazione intelligente del DNS consentirà di iniziare a introdurre IPv6 nella rete aziendale. Prima di allora, non l'ho fatto, il motivo è che avevo bisogno di risolvere un numero di nomi DNS in indirizzi locali, e in ipv6 questo non poteva essere fatto senza stampelle piuttosto grandi.

Fonte: habr.com