- Настрой себе IPv6 в Debian и Ubuntu
- Шаг 1. Регистрируем туннель
- Шаг 2. Настраиваем IPv6
- Шаг 3. DNS и Google
- Шаг 4. Маршрутизация
- Шаг 5. Avahi
- Шаг 6. Squid + IPv6
- Руководство по настройке IPv6 в Windows для опытных пользователей
- Сводка
- Настройка IPv6 с помощью ключа реестра
- Вычисление значения реестра
- Использование графического пользовательского интерфейса свойств сети для отключения IPv6 не поддерживается
- Справка
Настрой себе IPv6 в Debian и Ubuntu
Настрой себе IPv6 за несколько простых шагов.
Настраивать будем Debian Squeeze. В Ubuntu в принципе то же самое.
Шаг 1. Регистрируем туннель
Заходим на сайт Hurricane Electric, регистрируемся. Логинимся на сайте, и создаём туннель: вписываем свой IPv4 адрес и выбираем сервер поближе. Нам выделяют одну /64 подсеть, в которой будут находиться сервер и клиент как конечные точки туннеля.
В подсети /64 туннеля первый адрес — адрес сервера, второй — адрес клиента (то есть, наш).
Если у вас есть локальная сеть и вы хотите чтобы все машины в ней тоже получили IPv6 адреса, то запрашиваем ещё одну /64 подсеть («routed /64»). Если у вас 2 или более локальных сети за роутером, то запрашиваем /48 подсеть («routed /48»), которую будем нарезать на нужное количество /64. Все выделенные нам подсети будут маршрутизироваться через наш сервер.
Шаг 2. Настраиваем IPv6
Настраиваем туннель — интерфейс he-ipv6. Здесь используем подсеть /64 для туннеля. Вместо «переменных» вводим то, что получили на первом шаге.
Дописываем в конец /etc/network/interfaces
auto he-ipv6
iface he-ipv6 inet6 v4tunnel
address $CLIENT_IPv6
netmask 64
endpoint $SERVER_IPv4
local $CLIENT_IPv4
gateway $SERVER_IPv6
ttl 64
Включаем и проверяем:
# ifup he-ipv6
# ping -n ipv6.google.com
Шаг 3. DNS и Google
К сожалению, ipv6.google.com — единственная DNS запись Google, которая резолвится в IPv6 для всех. Google решил пока не резолвить все сервисы в IPv6 из-за того, что на довольно большом числе машин он неправильно настроен или неправильно отключен, в связи с чем пользователь может увидеть задержку пока браузер пытается соединиться с сервером по IPv6, а на самом деле IPv6 соединения нет.
Таким образом, Google решил включать IPv6 в DNS в масштабе отдельных провайдеров. Hurricane Electric относится как раз к таким провайдерам. Они предоставляют DNS сервер 2001:470:20::2, через который все домены сервисов Google резолвятся в том числе и в IPv6 адреса.
Можно сразу вписать в /etc/resolv.conf этот сервер, а можно поднять локальный кеширующий bind и немного выиграть в скорости.
# apt-get install bind9
Есть два способа настройки: можно резолвить через этот сервер только адреса Google (но нужно знать их список), а можно резолвить вообще всё (и не использовать DNS серверы провайдера вообще). Предлагаю второй способ, он проще, и к тому же у меня нет списка всех адресов сервисов Google.
Правим файл /etc/bind/named.conf.options
acl mynetworks <
localhost;
192.168.0.0/16; // наша локальная сеть, если есть
2001:XXXX:XXXX:XXXX::/64; // наша IPv6 /64
2001:XXXX:XXXX::/48; // наша IPv6 /48, если есть
>;
options <
directory «/var/cache/bind»;
Проверяем:
# dig +short google.com @::1 AAAA
2a00:1450:8003::63
2a00:1450:8003::67
2a00:1450:8003::68
2a00:1450:8003::69
2a00:1450:8003::6a
2a00:1450:8003::93
Если всё хорошо, то можно использовать. Вписываем в /etc/resolv.conf
Если нет локальной сети — то всё готово 🙂
Шаг 4. Маршрутизация
Для настройки машин в локальной сети предлагаю использовать stateless autoconfiguration. Это чем-то напоминает DHCP, но разница в том, что этот протокол staleless, то есть, сервер не хранит список выданных адресов. Принцип работы следующий: серверу выделяется одна /64, из которой он раздаёт адреса клиентам. Уникальность полученного IPv6-адреса обеспечивается тем, что в него включается MAC адрес клиента (немного преобразованный).
Пусть у нас на eth0 локальная сеть, а на eth1 — провайдер. Пока что IPv6 настроен только на интерфейсе he-ipv6. Поэтому eth0, смотрящий в локальную сеть должен получить статический IPv6-адрес для установки соединений с клиентами. Но мы не может назначить eth0 адрес из нашей туннельной /64, так как тогда получится что два интерфейса смотрят в одну и ту же подсеть. Можно разбить нашу /64 на две, но тогда не будет работать stateless autoconfiguration. Поэтому мы взяли себе ещё одну /64, из которой будем раздавать адреса в локальную сеть (важно подчеркнуть: это настоящие внешние IPv6 адреса). Пусть нам выдали 2001:XXXX:YYYY:ZZZZ::/64.
Если у нас несколько сетей за маршрутизатором, то мы взяли себе ещё и /48, из которой будем использовать необходимое количество подсетей /64. Пусть нам выдали 2001:XXXX:YYYY::/48. Дописываем ещё номер сети — будет занимать целых 2 байта и получаем: 2001:XXXX:YYYY:1::/64. Таким образом, у нас могло бы быть аж 65536 разных сетей. Адресом сервера будет 2001:XXXX:YYYY:1::1. Дальше пример с несколькими сетями не развиваю, думаю что довольно просто обобщить конфигурационные файлы на случай нескольких сетей.
Итак, у нас одна сеть за маршрутизатором, 2001:XXXX:YYYY:ZZZZ::/64. Дописываем в конец /etc/network/interfaces
iface eth0 inet6 static
address 2001:XXXX:YYYY:ZZZZ::1
netmask 64
Устанавливаем демона для stateless autoconfiguration:
# apt-get install radvd
interface eth0
<
AdvSendAdvert on;
MaxRtrAdvInterval 30;
prefix 2001:XXXX:YYYY:ZZZZ::1/64
<
AdvOnLink on;
AdvAutonomous on;
AdvRouterAddr off;
AdvValidLifetime 300;
AdvPreferredLifetime 120;
>;
>;
Включаем форвардинг:
/etc/sysctl.conf
# sysctl -w net.ipv6.conf.default.forwarding=1
# echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
Перезапускаем radvd:
# invoke-rc.d radvd restart
Теперь все компьютеры из локальной сети должны автоматически получить IPv6 адреса и адрес шлюз. За процессом можно следить на сервере при помощи команды radvdump, а на клиентах проверять наличие адреса при помощи ip -6 a.
DNS-сервер придётся прописать клиентам вручную, stateless autoconfiguration этого не умеет.
Шаг 5. Avahi
Так как адреса клиентов основываются на MAC адресах, то в результате получаются адреса вида: 2001:528d:d4b6:1:215:f2ff:fe55:2d85. Работать с этим довольно тяжело, запомнить — невозможно. На помощь приходит multicast dns и его реализация в виде Avahi.
# apt-get install avahi-daemon avahi-utils
Проверяем наличие в /etc/avahi/avahi-daemon.conf строк:
Теперь все компьютеры в локальной сети получат имена вида hostname.local. Эти имена будут резолвиться по умолчанию в IPv4 адреса. Чтобы они резолвились по умолчанию в IPv6, правим строчку в /etc/nsswitch.conf.
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
hosts: files mdns_minimal [NOTFOUND=return] dns mdns
Теперь можно использовать имена hostname.local и по умолчанию будут устанавливаться IPv6 соединения.
Шаг 6. Squid + IPv6
Держите кеширующий прокси в локальной сети? Небольшая проблема: Squid получил полноценную поддержку IPv6 только в версии 3.1.0.x, которая сейчас находится в репозитории experimental. На самом деле ничего особо экспериментального, у меня нормально работает уже 4 месяца.
Устанавливаем squid3, в разрешающий ACL вписываем наши сети /64 и /48.
UPD. На linuxforum заметили, что Hurricane Electric выдаёт две /64, поэтому запрашивать /48 с одной локальной сетью не нужно. Обновил топик.
UPD2. В связи с появившимися копипастами напомнимаю, что перепечатка разрешена только с моего разрешения.
Руководство по настройке IPv6 в Windows для опытных пользователей
Для определения адреса, который необходимо использовать при наличии нескольких адрес для имени службы доменных имен (DNS), в Windows Vista, Windows Server 2008 и более поздних версиях Windows реализовано RFC 3484 и используется таблица префиксов.
По умолчанию Windows отдает приоритет глобальным одноадресным адресам IPv6 над адресами IPv4.
Оригинальный номер базы знаний: 929852
Сводка
Обычно ИТ-администраторы отключают IPv6 для устранения неполадок сети, таких как проблемы с разрешением имен.
Протокол IP версии 6 (IPv6) является обязательным компонентом Windows Vista, Windows Server 2008 и более поздних версий Windows. Отключать протокол IPv6 или его компоненты не рекомендуется. Это может привести к нарушению работы компонентов Windows.
Вместо отключения IPV6 рекомендуется использовать параметр Предпочитать протокол IPv4 протоколу IPv6 в политиках префиксов.
Настройка IPv6 с помощью ключа реестра
Точно следуйте всем указаниям из этого раздела. Внесение неправильных изменений в реестр может привести к возникновению серьезных проблем. Прежде чем приступить к изменениям, создайте резервную копию реестра для восстановления на случай возникновения проблем.
Функциональные возможности IPv6 можно настроить, изменив следующий раздел реестра:
Расположение: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\
Название: DisabledComponents
Тип: REG_DWORD
Минимальное значение: 0x00 (значение по умолчанию)
Максимальное значение: 0xFF (IPv6 отключен)
Функциональность IPv6 | Значение реестра и комментарии |
---|---|
Предпочитать протокол IPv4 протоколу IPv6 | Десятичное число 32 Шестнадцатеричное число 0x20 Бинарное число xx1x xxxx Рекомендуется вместо отключения IPv6. |
Отключение IPv6 | Десятичное число 255 Шестнадцатеричное число 0xFF Бинарное число 1111 1111 Если вы столкнулись с задержками при запуске системы Windows 7 с пакетом обновлений 1 или Windows Server 2008 R2 с пакетом обновлений 1 после отключения протокола IPv6, см. Задержка при запуске системы после отключения IPv6 в Windows. Кроме того, если протокол IPv6 отключен в реестре неправильной установкой для параметра реестра DisabledComponents значения 0xffffffff, будет возникать пятисекундная задержка при запуске системы. Корректным значением является 0xff. Дополнительные сведения см. в разделе Обзор протокола IPv6. Значение реестра DisabledComponents не влияет на состояние флажка. Даже если в разделе реестра DisabledComponents протокол IPv6 отключен, для каждого из интерфейсов все еще можно установить флажок на вкладке «Сеть». Это поведение не является отклонением от нормы. Полностью отключить IPv6 невозможно, так как IPv6 используется внутри системы для многих задач TCPIP. Например, после настройки этого параметра вы по прежнему можете выполнять проверку связи ::1 . |
Отключение IPv6 на всех нетуннельных интерфейсах | Десятичное число 16 Шестнадцатеричное число 0x10 Бинарное число xxx1 xxxx |
Отключение IPv6 на всех туннельных интерфейсах | Десятичное число 1 Шестнадцатеричное число 0x01 Бинарное число xxxx xxx1 |
Отключение IPv6 на нетуннельных (кроме петлевых) и туннельных интерфейсах IPv6 | Десятичное число 17 Шестнадцатеричное число 0x11 Двоичное число xxx1 xxx1 |
Предпочитать протокол IPv6 протоколу IPv4 | Двоичное число xx0x xxxx |
Повторное включение IPv6 на всех нетуннельных интерфейсах | Двоичное число xxx0 xxxx |
Повторное включение IPv6 на всех туннельных интерфейсах | Двоичное число xxx xxx0 |
Повторное включение IPv6 на нетуннельных интерфейсах и на туннельных интерфейсах IPv6 | Двоичное число xxx0 xxx0 |
- Администраторы должны создать ADMX-файл, чтобы использовать параметры регистра из таблицы внизу в рамках параметра групповой политики.
- Чтобы изменения вступили в силу, необходимо перезагрузить компьютер.
- Значения, отличное от 0 или 32, вызовет сбой в службе маршрутизации и удаленного доступа после вступления изменения в силу.
По умолчанию при назначении интерфейсу общедоступного IPv4-адреса (Общедоступный адрес IPv4 — любой адрес IPv4, который не входит в диапазоны 10.0.0.0/8, 172.16.0.0/12 и 192.168.0.0/16) в Windows, включается туннельный протокол 6to4. 6to4 автоматически назначает IPv6-адрес туннельному интерфейсу 6to4 для каждого адреса и 6to4 будет динамически регистрировать эти IPv6-адреса на назначенных DNS-серверах. Если такое поведение нежелательно, рекомендуется отключить туннельные интерфейсы IPv6 на затронутых компьютерах.
Чтобы изменить раздел реестра, выполните следующие действия:
Откройте окно командной строки с правами администратора.
Выполните следующую команду:
Замените соответствующим значением.
Вычисление значения реестра
Windows использует битовые маски для проверки значений DisabledComponents и определения того, следует ли отключить компонент.
Сведения о том, каким компонентом управляет каждый бит (по возрастанию), см. в следующей таблице.
Имя | Параметр |
---|---|
Туннель | Отключение туннельных интерфейсов |
Tunnel6to4 | Отключение интерфейсов 6to4 |
TunnelIsatap | Отключение интерфейсов Isatap |
Туннелирование Teredo | Отключение интерфейсов Teredo |
Нативный | Отключение собственных интерфейсов (включая PPP) |
PreferIpv4 | Отдавать предпочтение IPv4 в политике префиксов по умолчанию |
TunnelCp | Отключение интерфейсов CP |
TunnelIpTls | Отключение интерфейсов IP-TLS |
Для каждого бита 0 означает значение false, а 1 — true. Пример приведен в следующей таблице.
Параметр | Предпочтение протокола IPv4 протоколу IPv6 в политиках префиксов | Отключение IPv6 на всех нетуннельных интерфейсах | Отключение IPv6 на всех туннельных интерфейсах | Отключение IPv6 на нетуннельных интерфейсах (кроме замыкания на себя) и интерфейсе туннелирования IPv6 |
---|---|---|---|---|
Отключение туннельных интерфейсов | 0 | 0 | 1 | 1 |
Отключение интерфейсов 6to4 | 0 | 0 | 0 | 0 |
Отключение интерфейсов Isatap | 0 | 0 | 0 | 0 |
Отключение интерфейсов Teredo | 0 | 0 | 0 | 0 |
Отключение собственных интерфейсов (включая PPP) | 0 | 1 | 0 | 1 |
Отдавать предпочтение IPv4 в политике префиксов по умолчанию. | 1 | 0 | 0 | 0 |
Отключение интерфейсов CP | 0 | 0 | 0 | 0 |
Отключение интерфейсов IP-TLS | 0 | 0 | 0 | 0 |
Binary | 0010 0000 | 0001 0000 | 0000 0001 | 0001 0001 |
Шестнадцатеричное | 0x20 | 0x10 | 0x01 | 0x11 |
Использование графического пользовательского интерфейса свойств сети для отключения IPv6 не поддерживается
Значение реестра не влияет на состояние следующего флажка. Поэтому даже если IPv6 был отключен в разделе реестра, флажок на вкладке Сеть для каждого из интерфейсов все еще можно установить. Это поведение не является отклонением от нормы.
Справка
Дополнительные сведения об установке приоритета IPv4 над IPv6 см. в разделе Использование SIO_ADDRESS_LIST_SORT.
Дополнительные сведения о связанных вопросах см. в следующих статьях.
Средства для работы с трассировкой сетевого траффика: Microsoft Network Monitor 3.4 (архив)
Netmon 3.4 не совместим с операционной системой Windows Server 2012 или более поздней версии, если включено объединение сетевых карт LBFO. Вместо этого используйте Анализатор сообщений\.