IPv6 router guide/ru

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

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

Testing IPv6 support
After enabling the recommended options, recompile the kernel and reboot into the new IPv6-enabled kernel.

If is not yet installed, it is seriously recommended to do so. iproute2 is a network configuration suite that contains, the famous replacement for , , and others...

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

Before going any further, make sure to add ipv6 to the list of USE variables in, so that future emerges of packages will include IPv6 support.

Basic configuration
Most ISPs still do not offer any native IPv6 connections. To get around this limitation, there are several "tunnel brokers" around the globe that offer free IPv6 tunnels. This will allow to tunnel all the IPv6 connections through an IPv4 connection.

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

Hurricane Electric
Hurricane Electric (HE for short) offers free IPv6 tunnels and allocates a /64 block of addresses for each customer. It also allows configuration of reverse DNS. Getting a tunnel from HE is as easy as going to https://www.tunnelbroker.net/ and filling out a one page form.

After a tunnel is approved and a /64 block is allocated, start to configure the system. HE provides sample configurations based on and the  utilities. The following two examples assume that the following configuration is used:

Using the package and the  command, do the following.

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

Выведите издержки туннелирования (tunneling overhead) из MTU:

Поднимите туннель:

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

Route all global unicast IPv6 addresses through our 'he6' tunnel device:

В следующем примере показано, как создать это во время загрузки:

Сделайте это, чтобы устройство загружалось во время загрузки:

Если туннель IPv6 поверх IPv4, то пакеты сперва попадают в цепочку IPv4, а затем переходят в цепочку IPv6.

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

Now when choosing to connect with authentication, configure  by editing. Only the userid and passwd fields need to be changed to match those assigned from Freenet6 and change the gateway server. Below is a sample config file.

Testing the connection
Now that the tunnel is configured, test the connection. The easiest way to do this is to use the  utility and try to ping an IPv6 host.

Further work is currently in progress to add better IPv6 support to the network init scripts. To know the status of this and/or help out, please email.

Переустановка пакетов
Unless  was already set in  previously, it is probably necessary to re-emerge a bunch of packages to compile in IPv6 support for them. To get a list of all the installed packages which are affected by USE flag changes, use Portage's   option:

When many USE flags have been changed, the list could be quite long. It's suggested to keep the system up-to-date, so it won't hurt if all affected packages are rebuilt.

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

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

Настройка BIND
Recent versions of BIND include excellent IPv6 support. This section will assume at least minimal knowledge about the configuration and use of BIND. We will assume that bind is not running in a chroot. If this assumption is wrong, simply append the chroot prefix to most of the paths in the following section.

First add entries for both forward and reverse DNS zone files in.

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

Настройка DJBDNS
There are currently some third-party patches to DJBDNS available at http://www.fefe.de/dns/ that allow it to do IPv6 name serving. DJBDNS can be installed with these patches by emerging it with  in the USE variable.

After djbdns is installed, it can be setup by running and answering a few questions about which IP addresses to bind to, where to install tinydns, etc.

Assuming we've installed into, we can now edit. This file will contain all the data needed to get tinydns handling DNS for the IPv6 delegation.

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, it is possible to use the scripts  and  to add new entries. After changes are made to the file, simply run   from. This will create, which tinydns will use as its source of information for DNS requests.

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


 * Either we set the value 1 in the forwarding pseudo-file:




 * Or we use the command:



To enable forwarding at boot, edit and add the following line.

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

Чтобы назначить клиентам адреса IPv6, в спецификации IPv6 разрешается stateless и stateful назначение IP. Stateless назначение использует процесс с названием Router Advertisement и позволяет клиентам получить IP-адрес и маршрут по умолчанию простым поднятием интерфейса. Этот способ называется "stateless" потому что не имеет записи о назначенных IP-адресах и хосте, которому они назначены. Stateful назначение обрабатывается DHCPv6. Оно называется "stateful" потому что сервер хранит состояние клиентов, запросивших и получивших IP-адреса.

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.

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

Stateful configuration
To have a stateful configuration, install and configure.

Теперь нужно настроить dibbler-клиент, отредактировав.

Теперь можно запустить клиент dibbler и настроить его на запуск при загрузке.

Использование 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 the net.ethX init scripts).

Should this not work ensure that the IPv6 firewall is allowing ICMPv6 packets through:

External resources
There are many excellent resources online pertaining to IPv6.


 * www.ipv6.org - General IPv6 information
 * www.linux-ipv6.org/ - USAGI project
 * www.deepspace6.net - Linux/IPv6 site
 * www.kame.net - *BSD implementation

On IRC, try the channel on Freenode. Connect to the Freenode servers using an IPv6 enabled client by connecting to irc.ipv6.freenode.net.