Настройка bind'а для работы с IPv6 подразумевает два ортогональных процесса:
- вывешивание bind'а на IPv6 адрес и приём запросов по IPv6 стеку
- настройка зон для резолвинга IPv6 адресов (как прямое, так и обратное преобразование)
В случае с гентой, первый пункт решается путём пересборки пакета с флагом ipv6, и включением работы с ipv6:
- named.conf
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.
Полученный результат является именем обратной зоны. Таким образом файл обратной зоны должен смотреться, примерно, так:
- /var/bind/pri/4.d.a.0.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.