Mit der Version 2.2.1 von pfSense wurde der alte DNS Forwarder durch den DNS Resolver Unbound ersetzt. Nach dem Update konnte nahtlos umgeschaltet werden, bei Neuinstallationen wird der DNS Resolver als Default eingestellt.

Probleme gibt es allerdings, wenn im alten DNS Forwarder Source-IPs für feste Domain-Weiterleitungen eingetragen sind. Diese werden benötigt, wenn z.B. eine Firmendomain von einem über IPSEC erreichbaren Firmen-DNS aufgelöst werden soll. Der neue DNS Resolver bietet solch eine Einstellung nicht. Ohne besondere Einstellungen werden die DNS-Requests zwar an den richtigen entfernten DNS addressiert, aber über das Default-Gateway und nicht über den IPSEC-Tunnel abgesendet.

Abhilfe schafft hier, beim DNS Resolver unter Outgoing Network Interfaces nur das LAN-Interface auszuwählen.

Nach bisherigen Tests werden damit Anfragen an Domains aus den Domain Overrides mit der korrekten Source-IP versehen. Alle anderen Anfragen an externe (z.B. per PPPoE oder DHCP erhaltene) DNS werden korrekt maskiert.

Weitere Informationen im pfSense-Forum.

Ab und zu findet man im weiten Netz auch Konfigurationen, in denen für den MX-Record einer Domain ein CNAME geliefert wird. RFC2181 verbietet ausdrücklich, für den MX-Record einen CNAME zu verwenden:

Es ist also ausdrücklich verboten, auf eine MX-Anfrage einen CNAME-Record zu liefern. Ganz praktisch: der PHP-Mailer von 1&1 verschickt an CNAME-Records bei einer MX-Anfrage keine E-Mails, sondern deren Mailsystem lehnt dann den Versand der E-Mail ab.

Mit der Einführung von DNSSEC für verschiedene TLDs haben sich die Erfordernisse an die eingesetzte Firewall-Software erhöht. Da gleichzeitig im BIND9 die DNSSEC-Abfrage per Default eingeschaltet wurde, sollte getestet werden, ob die Firewall-Software für EDNS0-Anfragen richtig funktioniert. Hinweise für eine nicht richtig funktionierende EDNS0-Anfrage liefert eine BIND9-Meldung wie z.B.:

EDNS0-Anfragen passen oft nicht in die (alten) UDP-Pakete mit einer Länge von 512 Bytes. Mit

kann getestet werden, ob die Firewall UDP-Pakete mit einer Länge größer als 512 Bytes durchlässt. Mit

kann getestet werden, ob IP Fragmente für UDP unterstützt werden.