IPv6 router guide/ru

Основные настройки ядра
Любое из доступных Gentoo деревьев исходных кодов ядра версии 2.6 с легкостью поддерживает соединения IPv6. Новый стек IPv6 USAGI интегрирован в ядро начиная с версии Linux 2.6.0.

Теперь мы готовы перейти в каталог с исходными кодами ядра и начать его конфигурацию.

-

Проверка поддержки IPv6
После включения рекомендуемых параметров, скомпилируйте новое ядро с поддержкой IPv6 и перезагрузитесь.

Если программа iproute2 все еще не установлена, мы настоятельно рекомендуем сделать это сейчас. iproute2 - это набор инструментов для конфигурации сети, содержащий  - известную замену для ,  ,   и другие программы...

Если IPv6 работает, loopback-устройство должно показывать IPv6-адрес:

Перед тем как продолжить, убедитесь что ipv6 добавлен в список USE-флагов в файле, чтобы дальнейшие установки пакетов включали поддержку IPv6.

Основная конфигурация
Большинство провайдеров все еще не предоставляют "нативных" соединений IPv6. Чтобы обойти это ограничение, существуют несколько "сервисов туннелей" по всему миру, которые предлагают свободные туннели IPv6. Это делает возможным туннелирование соединений IPv6 через соединение IPv4.

Ниже приведены два примера настройки туннеля с двумя популярными североамериканскими туннелями: Hurricane Electric (также применимо к non-heartbeat туннелям sixxs.net) и Freenet6.

Hurricane Electric
Hurricane Electric (сокращенно, HE) предлагает свободные IPv6-туннели и распределяет блок адресов /64. Также доступна настройка обратного запроса DNS. Получение туннеля от Hurricane Electric так же легко, как и переход по ссылке https://www.tunnelbroker.net/ и заполнение одностраничной формы.

После разрешения туннеля и распределения блока /64, необходимо настроить Gentoo. HE предусматривает образцы настроек, основанные на утилитах ifconfig и iproute. В двух следующих примерах предполагается следующая конфигурация:

Используя команду  из пакета iproute2, выполните следующее.

Создайте туннель между локальным адресом IPv4 (eth0) и удаленным IPv4-адресом Hurricane Electric:

Извлеките overhead туннелирования из MTU (maximum transmission unit):

Откройте туннель:

Назначьте ему IPv6-адрес:

Направьте все глобальные unicast IPv6-адреса через туннельное устройство 'sixbone':

Freenet6
Freenet6 - это еще один свободный сервис туннелей. Необязательная регистрация требует только имени пользователя и правильного email-адреса. Управление туннелем сведено к системе клиент-сервер и созданию клиента. Данный клиент доступен в системе Portage. Для его установки выполните:

Теперь при выборе соединения с аутентификацией потребуется настроить, отредактировав файл. Нужно только изменить поля userid и passwd для соответствия полям, назначенным Freenet6, и изменить сетевой шлюз. Ниже приведен пример файла конфигурации.

Пример файла gw6c.conf

Проверка соединения
Теперь, когда туннель настроен, необходимо протестировать соединение. Самым легким способом это сделать является использование утилиты  для проверки связи с хостом IPv6.

-

Ведется дальнейшая работа по добавлению лучшей поддержки IPv6 в сценарии инициализации сети. Чтобы узнать статус разработки или помочь, отправьте сообщение на.

Переустановка пакетов
При отсутствии USE-флага ipv6 в файле, возможно, потребуется переустановить группу пакетов для их компиляции с поддержкой IPv6. Для получения списка всех установленных пакетов, затронутых изменениями USE-флага, используйте параметр Portage  :

При изменении большого количества USE-флагов, этот список будет довольно большим. Предполагается, что система обновляется регулярно, поэтому повторная компиляция всех задействованных пакетов не принесет вреда.

Пакеты для работы с IPv6
Существует несколько пакетов для работы с IPv6. Большинство из них находятся в каталоге.

IPv6 и DNS
Также как DNS для IPv4 использует записи A, DNS для IPv6 использует записи AAAA. (это потому что IPv4 имеет адресное пространство 2^32, в то время как IPv6 имеет адресное пространство 2^128). Для обратных запросов DNS, стандарт INT устарел, но все еще широко поддерживается. ARPA является самым новым стандартом. Поддержка формата ARPA описывается далее в этом руководстве.

Настройка BIND
Последние версии BIND включают поддержку IPv6. Для прочтения этого раздела требуется минимальное знание о конфигурации и использовании BIND. Предполагается, что BIND не запущен в chroot. Если это так, просто добавьте префикс chroot к большинству частей следующего раздела.

Сначала необходимо добавить записи для файлов "прямой" (forward) и "обратной" (reverse) зоны DNS в.

Записи named.conf

Теперь требуется создать эти файлы зоны и добавить записи для каждого из хостов.

pri/ipv6-rules.com

-

pri/rev-ipv6-rules.com.arpa

-

Настройка DJBDNS
Для DJBDNS существует несколько патчей от сторонних разработчиков, доступных по адресу http://www.fefe.de/dns/, которые позволяют выполнение запросов DNS для IPv6. DJBDNS может быть установлен с этими патчами, если в список USE-флагов добавлен ipv6.

После установки djbdns, его нужно настроить, запустив команду  и ответив на несколько вопросов о том, к каким адресам нужно осуществлять привязку, куда устанавливать tinydns, и т. д.

Предположим, мы установили  в. Теперь мы можем отредактировать. Этот файл содержит все данные, необходимые tinydns для обработки DNS для делегирования IPv6.

Образец файла данных

Lines prefixed with a  will have both an AAAA and a PTR record created. Those prefixed with a  will only have an AAAA record created. Besides manually editing the file, you can use the scripts   and   to add new entries. After changes are made to the file, you simply need to run   from. This will create, which tinydns will use as its source of information for DNS requests.

Configure routing
Further configuration is required if we want to use our system as a router for other clients wishing to connect to the outside world with IPv6. We need to enable forwarding of IPv6 packets. We can do this in one of two ways.

Or we set the value 1 in the forwarding pseudo-file:

Or we use the  command:

To enable forwarding at boot, you'll need to edit and add the following line.

sysctl.conf addition

Traffic should now be forwarded from this box through the tunnel we've established with our broker.

To assign IPv6 addresses to clients, the IPv6 specification allows for both stateless and stateful IP assignment. Stateless assignment uses a process called Router Advertisement and allows clients to obtain an IP and a default route by simply bringing an interface up. It is called "stateless" because there is no record of IPs assigned and the host they are assigned to. Stateful assignment is handled by DHCPv6. It is "stateful" because the server keeps a state of the clients who've requested IPs and received them.

Stateless Configuration
Stateless configuration is easily accomplished using the Router Advertisement Daemon, or.

After having emerged, we need to create  that contains information about what IP block to assign IPs from. Here is a sample file using the prefix we've been assigned from our tunnel broker.

Sample radvd.conf

Further information is available in. We can now start  and set it to start at boot.

Stateful Configuration
If you'd like to have stateful configuration, you'll need to install and configure.

Now we must configure the dibbler client by editing.

Sample dibbler client configuration

We can now start the dibbler client, and configure it to start at boot.

Using radvd
Clients behind this router should now be able to connect to the rest of the net via IPv6. If using radvd, configuring hosts should be as easy as bringing the interface up. (This is probably already done by your net.ethX init scripts).

Other Resources
There are many excellent resources online pertaining to IPv6.

On IRC, you can try  on Freenode. You can connect to the Freenode servers using an IPv6 enabled client by connecting to irc.ipv6.freenode.net.

Acknowledgements
We would like to thank the following authors and editors for their contributions to this guide:


 * Peter Johanson
 * Jorge Paulo
 * Sven Vermeulen
 * Camille Huot
 * Pasi Valminen
 * nightmorph
 * hwoarang