Настройка bind'а для работы с IPv6 подразумевает два ортогональных процесса:

вывешивание bind'а на IPv6 адрес и приём запросов по IPv6 стеку

настройка зон для резолвинга IPv6 адресов (как прямое, так и обратное преобразование)

В случае с гентой, первый пункт решается путём пересборки пакета с флагом ipv6, и включением работы с ipv6:

options{ listen-on-v6 { any; }; }

Собственно, после этого наш бинд будет обслуживать запросы по IPv6. Удивительно, но писать надо обязательно надо any, если написать ::, то бинд на IPv6 адреса вешаться не будет.

При описании прямого преобразования (имя-в-адрес) вместо записи

name IN A x.x.x.x

используется запись

name IN AAAA abcd::ef01

Больше отличий нет

Для настройки обратного преобразования (адрес-в-имя) рекомендуется использовать программу net-misc/ipv6calc. Разумеется, всё, что она делает можно сделать в уме «ручками», но с ней всё становится проще.

Суть наших действий сводится к следующему:

из IPv6 адреса вычленяется сетевая часть

все двоеточия удаляются, а цифры (шестнадцатеричные) разделяются точками

полученная запись инвертируется и дописывается .ip6.arpa

Теперь тоже самое на примере одного и того же адреса с разными масками и с использованием упомянутого калькулятора:

yam ~ $ ipv6calc 2001:470:1f15:ad4::21/64 -O revnibbles.arpa 4.d.a.0.5.1.f.1.0.7.4.0.1.0.0.2.ip6.arpa. yam ~ $ ipv6calc 2001:470:1f15:ad4::21/48 -O revnibbles.arpa 5.1.f.1.0.7.4.0.1.0.0.2.ip6.arpa.

Полученный результат является именем обратной зоны. Таким образом файл обратной зоны должен смотреться, примерно, так:

$TTL 1W @ IN SOA ns1.sabitov.su. hostmaster@sabitov.su. ( 2011031201 ; Serial 28800 ; Refresh 14400 ; Retry 604800 ; Expire - 1 week 86400 ) ; Minimum @ IN NS yam.catalysis.ru. $ORIGIN 4.d.a.0.5.1.f.1.0.7.4.0.1.0.0.2.ip6.arpa. 1.2.0.0.0.0.0.0.0.0.0.0.0.0.0.0 IN PTR yew6.sabitov.su. 2.2.0.0.0.0.0.0.0.0.0.0.0.0.0.0 IN PTR yam6.sabitov.su.

Tracedump:

newBaseSize: 16pt
newBaseSizeInPt: 16