Wer in seinem Netz kein IPv6 einsetzt, benötigt normalerweise auch keine IPv6-Namensauflösung.
Allerdings erfolgt die Namensauflösung für IPv6 auch über IPv4 (Ethertype 0x0800).
In einem (realen) IPv4-Netz ist z. B. knapp ein Viertel des DNS-Verkehrs IPv6-Traffic (AAAA):
Da AAAA-Queries nur ein Typ von DNS-Records sind, werden sie wie jede andere DNS-Anfrage/Antwort per UDP (seltener auch TCP) und Destination Port 53 übermittelt. Deswegen kann man AAAA-Queries nicht so einfach in der Firewall filtern.
Mit den Layer7-Filtern und einem Regex-Ausdruck gelingt es aber trotzdem. Dazu kann Folgendes eingefügt werden:
/ip firewall layer7-protocol add name=AAAA regexp="^.?.?.?.?.?.?.?.?.?.?.?.?([\x01-\?][a-z0-9\-_]+)+\.?\x1c\.?\x01"
Dieser Filter kann dann in einer Firewall-Filterregel genutzt werden, zum Beispiel in der Input-Chain:
add action=drop chain=input comment="drop DNS AAAA-requests" dst-port=53 layer7-protocol=AAAA protocol=udp
Wichtig: Der Router selbst führt normalerweise auch Namensauflösungen durch, z. B. die Mikrotik-Update-Adresse oder wenn Address-Lists mit DNS-Namen existieren. Dann sollte eine solche Regel auch auf der OUTPUT-Chain angelegt werden!
Im Detail
Der Regex matcht auf folgende Felder des DNS-Headers:
- QTYPE
- QCLASS
^.?.?.?.?.?.?.?.?.?.?.?.?([\x01-\?][a-z0-9\-_]+)+\.?\x1c\.?\x01
Ob eine derartige Filterung sinnvoll ist, muss immer gegen die erhöhte CPU-Auslastung bei Layer7-Filtern abgewogen werden.
So sieht die Übersicht der DNS-Abfragen nach der Implementierung der Regel aus:
Alle AAAA-Queries wurden vom Router erfolgreich verworfen.
vereinfachter Regex
Wenn sich ROS darüber beklagt, dass der Regex zu komplex ist:
Man kann auch eine vereinfachte Version nutzen:
/ip firewall layer7-protocol add name=AAAA regexp=".?\x1c\.?\x01$"
Damit wird von hinten ($) nach der QCLASS und dem QTYPE gesucht.
In einem Test über mehrere Tage trat der Fehler „regexp too complex“ nicht mehr auf.
Referenzen:
System- und Netzwerkadministrator
Informationstechnik – Netzwerktechnik – Consulting
MCSA+M | MCSE | MTCNA