IPv6 router guide/ru

This guide Article description::provides details on setting up IPv6 routing on a Gentoo Linux system.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Для строк с префиксом  будут созданы обе записи: AAAA и PTR. Для строк с префиксом  будет создана только запись AAAA. Помимо редактирования файла вручную, можно использовать скрипт  и  для добавления новых записей. После внесения изменений в файл, необходимо запустить  из. В результате будет создан файл, который будет использоваться tinydns в качестве источника информации для DNS-запросов.

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

Либо мы установим значение 1 в псевдо-файле переадресации:



Или необходимо использовать команду :



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

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

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

Stateless-конфигурация
Stateless-конфигурация легко выполняется использованием программы Router Advertisement Daemon, или :

После установки, необходимо создать файл , хранящий информацию о том из какой подсети нужно назначать IP. Здесь приведен пример файла, использующий префикс, назначенный нашим сервисом туннелей.

Дальнейшая информация доступна в. Теперь мы можем запустить и настроить его на запуск при загрузке.

Stateful-конфигурация
Для включения stateful-конфигурации, требуется установить и настроить.

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

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

Использование radvd
Клиенты этого маршрутизатора должны подключаться к сети через IPv6. При использовании radvd, настройка хостов должна быть такой же легкой, как и включение интерфейса. (Это, возможно, уже сделано init-скриптом net.ethX).

Если это не работает, убедитесь, что брандмауэр IPv6 позволяет прохождение ICMPv6 пакетов:

Внешние источники
В сети имеется большое количество отличных ресурсов по IPv6.


 * www.ipv6.org - Основная информация о IPv6
 * www.linux-ipv6.org/ - проект USAGI
 * www.deepspace6.net - сайт Linux/IPv6
 * www.kame.net - *BSD реализация

На IRC, можно попробовать канал на сервере Freenode. К серверам Freenode можно подсоединиться, используя клиент с поддержкой IPv6, установив соединение к irc.ipv6.freenode.net.