Hyper-V kann IPv6 UDP-Pakete nicht weitergeben

Die Installation eines DNS-Servers unter dem Gast-Betriebssystem Ubuntu 16.04 LTS ist kein Hexenwerk. Der Unterbau, sprich Hypervisor ist Microsoft Hyper-V (Windows Server 2012R2 Standard).

Nach der Einrichtung von BIND9 sah eigentlich alles gut aus. Die VM ist sowohl via IPv4 als uch IPv6 aus dem Internet zu pingen. Letzteres Verfahren ist Vorgabe von der DENIC. Ansonsten kann der DNS-Server nicht für die jeweiligen .de-Domains registiert werden. Ein Ping heißt aber noch lange nicht, dass der DNS Service auch funktioniert.

Daher sind DNS-Lookups mit Hilfe von z.B. GoogleApps das richtige Mittel für einen Funktionstest. Zuerst die öffentliche IPv4 Adresse im Feld Nameserver angeben – Abfrage erfolgreich. Das Selbe nochmal mit der IPv6-Adresse wiederholt -> Fehler „Connection.. Timout“.

Also gut…nochmal die Konfiguration des DNS-Servers kontrolliert, ob evtl. IPv6 nicht aktiviert ist; iptables bzw. ip6tables angeschaut, Firewallregeln des Routers kontrolliert – alles in Ordnung. Dazu parallel im Internet verschiedene Anleitungen für den Betrieb von BIND9 gelesen, kein Fehler gebunden. Gegen Mittag über einen Bugreport auf Launchpad gestolpert. Dort wurde in den Kommentaren genau mein Problem beschrieben.

Abhilfe schafft im Moment nur das Deaktivieren des Protokoll Offloads. Dazu folgenden Befehl via SSH auf dem Server ausführen:

ethtool --offload eth0 rx off tx off

Danach den Server einmal neustarten um sicher zu gehen, dass die Änderung auch angewendet wird. Anschließend noch mal den DNS-Lookup durchgeführt und dieses Mal war die Abfrage erfolgreich.