Berkeley Internet Name Daemon BIND (named)

IPv6 desteği bind'ın 9 sürümünden itibaren verilmektedir. 9.1.3'ten önceki sürümler güvenlik açıkları içerdiğinden en azından 9.1.3 sürümü ya da daha iyisi son sürümü kullanılmalıdır.

IPv6 Adreslerinde Dinlemek

Not

IPv4'ün aksine IPv6'nın güncel sürümleri adanmış bir IPv6 adresine bir sunucu soketi bağlamaya izin vermemektedir. Bu yüzden sadece any ya da none kullanılabilmektedir. Bu bir güvenlik konusu olabileceğinden, aşağıdaki Erişim Denetim Listeleri (ACL) bölümünü de okumanız uygun olabilir!

BIND named'in IPv6 adreslerinde dinlemesinin sağlanması
IPv6 adreslerinde dinlemek için aşağıdaki seçenek değiştirilmelidir.

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

named yeniden başlatıldığında aşağıdaki örnekteki gibi bir çıktı üretmelidir:

# 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

Basit bir deneme:

# dig localhost @::1

Bu, bir sonuç göstermelidir.

BIND named'in IPv6 adreslerinde dinlemesinin iptal edilmesi
IPv6 adreslerinde dinlemenin iptali için aşağıdaki seçenek değiştirilmelidir:

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

IPv6 destekli Erişim Kontrol Listeleri (ACL)

IPv6 destekli ACL'ler hazırlamak mümkündür ve imkan olan heryerde kullanılmalıdır. Aşağıda bir örnek verilmiştir:

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;
};

Bu ACL'ler istemcilerin sorguları ya da ikincil alan adı sunucularına bölge aktarımı gibi amaçlar için kullanılabilir. Bu aynı zamanda arabellekli isim sunucunuzun dışarıdan IPv6 ile kullanılmasını da önler.

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

Alan tanımlamalarının çoğunda allow-query ve allow-transfer seçeneklerini de eklemek mümkündür.

Adanmış bir IPv6 adresi ile sorguların gönderilmesi

Bu seçeneğe gerek olmamakla birlikte, eğer ihtiyaç duyulursa aşağıdaki gibi kullanılabilir:

   query-source-v6 address ipv6adres|* port port|*;

Alan başına tanımlanmış adanmış IPv6 adresleri

Bölge başına bazı IPv6 adreslerini tanımlamak da mümkündür.

Kaynak adres aktarımı
Kaynak adres aktarımı giden bölge aktarımlarında kullanılır:

   transfer-source-v6 ipv6adres|* [port port];

Kaynak adres bildirimi
Kaynak adres bildirimi giden bildirim iletileri için kullanılır:

   notify-source-v6 ipv6adres|* [port port];

IPv6 DNS alan dosyası örnekleri

Bu konu için IPv6 DNS Setup Information (article) adresine bakılabilir. IPv6 Reverse DNS zone builder for BIND 8/9 (webtool) adresi de yardımcı olabilir.

IPv6 ilişkili DNS bilgisinin sunulması

IPv6'da ters DNS kaydı aramaları için yeni türler ve kök bölgeler tanımlanmıştır:

Yukarıda verilen RFC'lerin yanısıra aşağıdaki belgeler de yardımcı olacaktır:

  • AAAA ve ters IP6.INT: IPv6 DNS Setup Information
  • A6, DNAME (ARTIK ÖNERİLMİYOR) ve ters IP6.ARPA: BIND 9 kodu ile birlikte dağıtılan Administrator Reference Manual (ARM) belgesinin 4. ve 6. bölümlerine bakılabilir, aynı belgeye BIND version 9 ARM (PDF) adresinden de ulaşılabilir.

IP6.INT'e karşı çıkılsa da halen kullanımda olduğu için, IPv6 bilgisini destekleyen DNS'ler her iki ters alan bilgisini de sunmalıdır.

Güncel en iyi uygulama

Yeni biçimlerin kullanımında sorunlar olduğundan, güncel uygulamaların en iyisi şöyledir:

Düz arama desteği: AAAA

Ters arama desteği:

  • ip6.int alanı için ters biçim (GERİYE UYUMLULUK İÇİN)
  • bölgesel ip6.arpa alanı için ters biçim (ÖNERİLEN)

IPv6-uyumlu bağlantı kontrolü

BIND'ın IPv6 soketini dinleyerek bilgi gönderip göndermediği aşağıdaki örneklerdeki yöntemlerle sınanabilir.

IPv6 bağlanıyor fakat ACL ile reddediliyor
Sorgu için bir sunucu tahsis edilerek IPv6 bağlantısı zorlanabilir:

$ 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)

Bununla ilgili günlük (log) girdisi aşağıdaki gibidir:

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

Günlükte böyle girdiler görüyorsanız bu istemcinin taleplerine izin verilip verilmediğine bakmanız ve gerekiyorsa ACL yapılandırmanızı gözden geçirmeniz uygun olur.

Başarılı IPv6 bağlantısı
Başarılı bir IPv6 bağlantısı aşağıdaki gibidir:

$ 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 2001:0db8:200:f101::1