22.1. Berkeley Internet Name Domain (BIND) daemon ”named”

Seit der Version 9 wird IPv6 unterstützt. Setzen Sie immer die neuest verfügbare Version ein. Zumindest muss Version 9.1.3 eingesetzt werden, da ältere Versionen Sicherheitslöcher beinhalten können, die von Remote entsprechend ausgenutzt werden können.

22.1.1. Auf IPv6 Adressen hören

Anmerkung: Im Gegensatz zu IPv4 können bei aktuellen Versionen Server Sockets nicht an dedizierte IPv6 Adressen gebunden werden, es ist folglich jede oder keine Adresse gültig. Da dies ein Sicherheitsproblem sein kann, lesen Sie diesbezüglich ebenfalls den Abschnitt Access Control Lists (ACL) weiter unten!

22.1.1.1. BIND named konfigurieren, damit er auf IPv6 Adressen antwortet

Folgende Optionen müssen geändert werden, damit IPv6 aktiviert wird

options {
        # sure other options here, too
        listen-on-v6 { any; };
};

Nach einem Neustart (des Dienstes) sollte z.B. Folgendes zu sehen sein:

# netstat -lnptu |grep "named\W*$" 
tcp 0 0 :::53         :::*      LISTEN 1234/named
¬ # incoming TCP requests
udp 0 0 1.2.3.4:53    0.0.0.0:*        1234/named
¬ # incoming UDP requests to IPv4 1.2.3.4
udp 0 0 127.0.0.1:53  0.0.0.0:*        1234/named
¬ # incoming UDP requests to IPv4 localhost
udp 0 0 0.0.0.0:32868 0.0.0.0:*        1234/named
¬ # dynamic chosen port for outgoing queries
udp 0 0 :::53         :::*             1234/named
¬ # incoming UDP request to any IPv6

Ein kleiner Test sieht wie folgt aus:

# dig localhost @::1

und sollte Ihnen ein Ergebnis anzeigen...

22.1.1.2. BIND named konfigurieren, damit er auf IPv6 Adressen nicht antwortet

Folgende Optionen müssen geändert werden, damit IPv6 deaktiviert wird:

options {
        # sure other options here, too
        listen-on-v6 { none; };
};

22.1.2. Access Control Lists (ACL) mit IPv6 Unterstützung

ACLs mit IPv6 Adressen sind realisierbar und sollten wann immer möglich eingesetzt werden. Ein Beispiel:

acl internal-net { 
        127.0.0.1; 
        1.2.3.0/24;  
        2001:0db8:100::/56; 
        ::1/128; 
        ::ffff:1.2.3.4/128; 
};
acl ns-internal-net { 
        1.2.3.4;  
        1.2.3.5;  
        2001:0db8:100::4/128; 
        2001:0db8:100::5/128; 
};

Diese ACLs können für Client-Anfragen und Zonentransfers zu Secondary Nameserver eingesetzt werden. Es kann auch unterbunden werden, dass ihr Caching-Nameserver mittels IPv6 von der Außenwelt verwendet wird.

options {
        # sure other options here, too
        listen-on-v6 { none; };
        allow-query { internal-net; }; 
        allow-transfer { ns-internal-net; }; 
};

Es ist ebenfalls möglich, dass die Optionen allow-query und allow-transfer bei den meisten Single-Zonen-Definitionen verwendet werden.

22.1.3. Anfragen mit festen IPv6 Adressen senden

Diese Option ist nicht verpflichtend, ev. aber benötigt:

query-source-v6 address <ipv6address|*> port <port|*>;

22.1.4. Pro Zone definierte feste IPv6 Adressen

Es ist möglich pro Zone mehrere IPv6 Adressen zu definieren.

22.1.4.1. Transfer source Adresse

Die Transfer source Adresse wird für ausgehende Zonentransfers verwendet:

transfer-source-v6 <ipv6addr|*> [port port];

22.1.4.2. Notify source Adresse

Die Notify source Adresse wird für ausgehende notify Mitteilungen verwendet:

notify-source-v6 <ipv6addr|*> [port port];

22.1.5. IPv6 DNS zone files Beispiele

Einige Informationen finden Sie auch unter IPv6 DNS Setup Information (article). Eventuell ebenfalls hilfreich ist folgendes Tool: IPv6 Reverse DNS zone builder for BIND 8/9 (webtool).

22.1.6. IPv6 bezogene DNS-Daten bereitstellen

Für IPv6 wurden neue Reverse Lookup Arten und Root Zonen definiert:

Mehr Inhalt zu diesem Thema wird eventuell in späteren Versionen eingearbeitet, inzwischen können Sie in den RFCs und in folgenden Quellen nachlesen:

Da IP6.INT (ebenfalls) ABGELEHNT WURDE, (jedoch nach wie vor in Verwendung ist,) muss ein DNS Server, der IPv6 Informationen anbieten will, beide reverse Zonen bereitstellen.

22.1.6.1. Aktuell beste Praxis

Da es mit den neuen Formaten noch Probleme gibt, ist die aktuell beste Praxis:

Vorwärts-Auflösung mit:

  • AAAA

Rückwärts-Auflösung mit:

  • Reverse nibble format für die Zone ip6.int (FÜR RÜCKWÄRTSKOMPATIBILITÄT)

  • Reverse nibble format für die Zone ip6.arpa (EMPFHOHLEN)

22.1.7. IPv6 Verbindung überprüfen

Ob BIND auf einen IPv6 socket hört bzw. IPv6 Daten bereitstellt, können Sie anhand folgender Beispiele überprüfen.

22.1.7.1. IPv6 Verbindung durch ACL abgelehnt

Eine IPv6 Verbindung kann durch Angabe eines dedizierten Server, der abgefragt werden soll, erzwungen werden:

$ host -t aaaa www.6bone.net 2001:0db8:200:f101::1 
Using domain server: 
Name: 2001:0db8:200:f101::1 
Address: 2001:0db8:200:f101::1#53 
Aliases:

Host www.6bone.net. not found: 5(REFUSED)

Ein entsprechender Log-Eintrag sieht wie folgt aus:

Jan 3 12:43:32 gate named[12347]: client
¬ 2001:0db8:200:f101:212:34ff:fe12:3456#32770: 
 query denied

Wenn Sie diesen Eintrag in der Logdatei finden, prüfen Sie, ob von diesem Client Anfragen akzeptiert werden sollen und ggf. ändern Sie Ihre ACL Konfiguration.

22.1.7.2. Erfolgreiche IPv6 Verbindung

Eine erfolgreiche IPv6 Verbindung sieht wie folgt aus:

$ host -t aaaa www.6bone.net 2001:0db8:200:f101::1 
Using domain server: 
Name: 2001:0db8:200:f101::1 
Address: 2001:0db8:200:f101::1#53 
Aliases:

www.6bone.net. is an alias for 6bone.net. 
6bone.net. has AAAA address 3ffe:b00:c18:1::10