Как и обещал, начинаю цикл статей про IPv6. Поскольку его активное использование — дело ближайшего будущего, нужно быть к этому готовым уже сейчас.
Кратко о том, чего там есть нового/хорошего:
- Существенно больший размер адресного пространства.
- Новый и более функциональный протокол поиска соседей по канальному уровню вместо ARP (NDP — Neighbor Discovery Protocol).
- Автоматическая настройка адресов и маршрута по умолчанию без состояния.
- Обязательный к реализации и более естественный multicast.
- Обязательный к реализации IPsec.
- Активное использование link-local адресов.
- Метки потоков для реализации качества обслуживания.
- Пакеты размером до 64 килобайт (для лучшего использования протоколов канального уровня с поддержкой больших фреймов, вроде GigabitEthernet).
Как видно, IPv6 это не просто протокол с большим адресным пространством, изменений довольно много.
О поддержке программным обеспечением и оборудованием
- IOS — с версии 12.0S
- Linux — с 2.4.x
- Windows — с Vista, в XP была ограниченная поддержка.
- FreeBSD — вроде с 4.x
- Vyatta — с 6.0 (в смысле возможности настроить человеческим способом).
Большая часть серверного ПО поддерживает нормально, у клиентского могут быть проблемы.
Об адресах
Адреса записываются в шестнадцатиричном формате, восемь групп по четыре цифры (например, 2001:0db8:0000:0000:0000:0000:0000:0001). То есть, длиной они в 128 бит. Выглядит страшно, но, к счастью, стандарт позволяет сокращать запись по следующим правилам:
- Незначащие нули можно опустить (как и в IPv4, собственно).
- Две или более группы нулей подряд можно заменить на «::».
- Статически
- Автонастройка без состояния (SLAAC)
- DHCPv6
Таким образом тот жуткий адрес можно превратить во вполне читаемый 2001:db8::1.
Специальные типы адресов
Вот некоторые типы адресов, которые будут нам интересны.
Подсеть | Назначение |
::/0 | Все адреса (:: сам по себе это аналог 0.0.0.0, неопределенный адрес) |
::1/128 | Loopback (аналог 127.0.0.1) |
fe80::/10 | Link local |
ff::/8 | Multicast |
Выделение адресов
Подсети меньше /64 на сегмент сети выделять нельзя. Нельзя, говорю! Без этого не работают автонастройка и прочие фичи.
На автономную систему сейчас раздают /32. На «site» советуют выделать по /48. Путем несложных подсчетов можно убедиться, что это очень много /64, так что сожалеть о неиспользуемых адресах при выделении целой /64 на сегмнт не стоит.
Приятный эффект такого, казалось бы избыточного выделения очевиден: они куда лучше аггрегируются и тем самым долго не дадут full-view разрастись до неприличных размеров.
Адреса типа link-local
В IPv4 они тоже были (169.254.0.0/16), но особо не использовались. В IPv6 им отведена существенно большая роль.
Такие адреса присваиваются каждому интерфейсу, на котором включен IPv6, и формируются из подсети fe80::/10 и mac-адреса интерфейса (в Windows — случайным образом). Живые примеры из Linux и Windows:
[dmbaturin@langley /home/dmbaturin]$ip addr show eth1
2: eth1: mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:1e:90:cd:e8:5d brd ff:ff:ff:ff:ff:ff
inet 10.91.19.110/24 brd 10.91.19.255 scope global eth1
inet6 2001:470:1f0b:a80:21e:90ff:fecd:e85d/64 scope global dynamic
valid_lft 2591851sec preferred_lft 604651sec
inet6 fe80::21e:90ff:fecd:e85d/64 scope link
valid_lft forever preferred_lft forever
C:\Users\dmbaturin>ipconfig
Настройка протокола IP для Windows
Ethernet adapter Подключение по локальной сети 2:
DNS-суффикс подключения . . . . . :
IPv6-адрес. . . . . . . . . . . . : 2001:470:9837:abcd:a4d4:6333:16b4:f090
Локальный IPv6-адрес канала . . . : fe80::a4d4:6333:16b4:f090%12
IPv4-адрес. . . . . . . . . . . . : 10.91.17.50
Маска подсети . . . . . . . . . . : 255.255.255.0
Основной шлюз. . . . . . . . . : fe80::98a3:32ff:fec1:d68b%12
10.91.17.1
Способы настройки адреса
А вот способа настройки маршрута по умолчанию всего два: статически, либо через router advertisment (RA). DHCPv6 раздает только адреса.
Router Advertisment является частью протокола NDP. Что интересно, в качестве адреса шлюза по умолчанию выдается его link-local адрес, что можно увидеть на примерах выше.
Заключение
Вроде бы минимальную теорию изложил. В следующей статье мы перейдем к практике и начнем строить демонстрационную сеть!
P.S. Пожалуй, перееду я к вам с записями на русском языке окончательно.
Опубликовано: Holywar
Заходите к нам на огонек (с) :))
Переход приветствую! 🙂
ЗЫ Мы потихоньку эволюционируем и люди к нам приходят и не уходят. Велком!
Интересная тема, причём мало затрагиваемая в рунете!
На самом деле, взаимодействие IPv4- IPv6 не такая уж и теоретическая проблема – один из западных партнёров нашей компании уже предоставил нам сервис IPv6 only ! 🙂
Но доступ из IPv4 к IPv6 при наличие «белого» IPv4 относительно простая задачка (6to4 туннелирование ), а вот интересно как решить обратную задачу – есть только IPv6 подсеть, как организовать доступ к IPv4 интернету ?
>есть только IPv6 подсеть, как организовать доступ к IPv4 интернету ?
Протоколы туннелирование для IPv6 уже есть, в том числе и IPv4 в IPv6. Думаю, в ближайшем будущем появятся «reverse tunnel brokers», которые будут предоставлять такое туннелирование (правда, едва ли бесплатно).
>Интересная тема, причём мало затрагиваемая в рунете!
На мой взгляд, незаслуженно мало затрагиваемая. Пора уже «Ассоциацию российских пользователей IPv6» создавать, для популяризации 🙂