Что такое IPv6? Полное руководство
Содержание
Что такое IPv6
IPv6 (Internet Protocol version 6) — разработанная IETF версия протокола Интернета, призванная решить проблемы предыдущей версии IPv4 за счёт ряда принципиальных изменений. Главная задача — решение проблемы исчерпания адресного пространства благодаря кардинально большему пулу адресов.
Протокол разработан в парадигме истинной одноранговой сети, присущей Интернету 1980-х, и призван вернуть связность сетевых устройств каждого с каждым.
Длина адреса IPv6 составляет 128 бит против 32 бит у IPv4. Это даёт 2128 возможных адресов — на каждого жителя планеты приходится гигантское множество адресов. Классическое применение IPv6 с сетью /64 на абонента обеспечивает более 300 миллионов IP-адресов на человека.
История создания
В конце 1980-х стала очевидна необходимость разработки способов сохранения адресного пространства. В начале 1990-х, несмотря на внедрение бесклассовой адресации, стало ясно, что этого недостаточно.
К началу 1992 года появилось несколько предложений, и к концу года IETF объявила конкурс рабочих групп на создание IPng (IP Next Generation). 25 июля 1994 года IETF утвердила модель IPng. К 1996 году выпущена серия RFC, определяющих IPv6, начиная с RFC 1883.
Версию 5 пропустили — она была назначена экспериментальному протоколу IPv5 для передачи видео и аудио.
Исчерпание IPv4-адресов
В 2003 году директор APNIC Пол Уилсон оценивал запас свободных адресов на одно-два десятилетия. Cisco Systems в 2005 году давала 4–5 лет.
Региональные регистраторы активно выделяли блоки IPv4 до 2010 года включительно, затем адреса закончились. 3 февраля 2011 года IANA распределила последние пять блоков /8 между региональными регистраторами.
К сентябрю 2015 года об исчерпании запасов объявили все регистраторы кроме AfriNIC. ARIN объявил о полном исчерпании. Выделение продолжается блоками /22 (по 1024 адреса).
Появился рынок купли-продажи блоков IPv4. Цены росли несколько лет из-за спекуляций — покупатели выдерживали минимальный срок и перепродавали дороже. К 2022 году рост цен остановился: снизился спрос из-за роста IPv6-трафика, а держатели резервов боялись обвалить рынок. Дефицит создаёт ценовое давление, стимулирующее переход на IPv6.
Сравнение с IPv4
Несмотря на рост адреса с 4 до 16 байт, заголовок пакета увеличился всего вдвое: с 20 до 40 байт. Убраны функции, усложняющие маршрутизацию:
- Фрагментация — маршрутизаторы больше не фрагментируют пакеты. Пакет отбрасывается с ICMP-уведомлением о MTU следующего канала. Минимальный MTU поднят до 1280 байт. Фрагментация возможна только по инициативе отправителя
- Контрольная сумма — исключена из заголовка. Канальные (Ethernet) и транспортные (TCP, UDP) протоколы имеют свои контрольные суммы. Модификация Hop Limit на каждом маршрутизаторе в IPv4 требовала постоянного перерасчёта
- Time to Live переименован в Hop Limit
- Появились метки потоков и классы трафика
- Поддержка джамбограмм до 4 гигабайт в сверхскоростных сетях
- Многоадресное вещание (Multicast) — широковещательные адреса IPv4 заменены на группы Multicast IPv6. Крайние адреса подсети являются полноправными
Автоконфигурация SLAAC
Stateless Address Autoconfiguration — механизм автоматической настройки адреса без DHCP-сервера.
При инициализации интерфейса ему назначается локальный адрес с префиксом fe80::/10 и идентификатором интерфейса (обычно EUI-64 на основе MAC-адреса). Адрес действителен только в пределах сегмента канального уровня.
Узел отправляет ICMPv6-сообщение Router Solicitation на групповой адрес маршрутизаторов. Маршрутизатор отвечает Router Advertisement, содержащим:
- Сетевой префикс
- Адрес шлюза
- Адреса рекурсивных DNS-серверов
- MTU и другие параметры
Объединяя префикс и идентификатор, узел получает новый адрес. Для защиты приватности идентификатор интерфейса может заменяться псевдослучайным числом. Для административного контроля используется DHCPv6. Провайдеры могут делегировать префиксы клиенту.
Метки потоков
Поле Flow Label (20 бит) упрощает маршрутизацию однородного потока пакетов. Поток — последовательность пакетов от отправителя к адресату с одинаковыми требованиями к обработке.
Отправитель генерирует псевдослучайное 20-битное число — метку потока. При получении первого пакета маршрутизатор анализирует дополнительные заголовки и кэширует результат (адрес следующего узла, опции, перемещение адресов). Ключ кэша — комбинация адреса источника и метки потока. Последующие пакеты обрабатываются без детального анализа.
Время жизни записи в кэше — не более 6 секунд (если не указано иное протоколом управления).
QoS и классы трафика
Приоритет определяется первыми шестью битами поля Traffic Class. Три бита — класс трафика, ещё три — приоритет удаления. Рекомендованные коды:
| Класс | Назначение |
|---|---|
| 0 | Нехарактеризованный трафик |
| 1 | Заполняющий трафик (новости) |
| 2 | Несущественный информационный (e-mail) |
| 3 | Резерв |
| 4 | Существенный трафик (FTP, HTTP, NFS) |
| 5 | Резерв |
| 6 | Интерактивный (Telnet, SSH) |
| 7 | Управляющий (маршрутизация, SNMP) |
Безопасность
Стандарт IPv6 требует обязательной поддержки IPsec. В отличие от SSL/TLS, IPsec шифрует любые данные на сетевом уровне, включая UDP, без необходимости поддержки со стороны прикладного ПО.
Адресация IPv6
Три типа адресов:
- Unicast — одноадресные. Пакет достигает точно указанного интерфейса
- Anycast — синтаксически неотличимы от Unicast, но адресуют группу интерфейсов. Пакет попадает в ближайший (по метрике маршрутизатора). Только для маршрутизаторов
- Multicast — многоадресные. Пакет достигает всех интерфейсов группы. Делятся на Assigned (предопределённые) и Solicited (автоматически создаются при появлении Unicast-адреса из сети FF02:0:0:0:0:1:FF00::/104)
Типы Unicast-адресов
- Глобальные (Global Unicast) — аналоги публичных IPv4. Диапазон 2000::/3. Распределяются региональными регистраторами
- Link-Local (fe80::/10) — аналоги автосконфигурированных APIPA в IPv4. Используются для Router Solicitation/Advertisement и обнаружения соседей
- Unique-Local (fc00::/7, fd00::/8) — аналоги приватных сетей IPv4 (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16). Описаны в RFC 4193
Зарезервированные адреса
| Адрес | Префикс | Назначение |
|---|---|---|
| ::/128 | — | Неуказанный адрес (аналог 0.0.0.0) |
| ::1/128 | — | Loopback (аналог 127.0.0.1) |
| ::ffff:0:0/96 | — | Отображённый IPv4 |
| 64:ff9b::/96 | — | NAT64 |
| 2001::/32 | Teredo | Туннели Teredo (RFC 4380) |
| 2001:db8::/32 | — | Примеры в документации |
| 2002::/16 | 6to4 | Туннели 6to4 (RFC 3056) |
| fe80::/10 | Link-local | Канальный уровень |
| fc00::/7 | Unique Local | Внутренние сети |
| ff00::/8 | Multicast | Многоадресная рассылка |
Формат пакета
Пакет состоит из основного фиксированного заголовка (40 байт), необязательных дополнительных заголовков и полезных данных (дейтаграмма транспортного уровня или данные сетевого уровня — ICMPv6, OSPF). Пакеты обычно передаются через Ethernet, но могут туннелироваться через 6to4 или Teredo.
Нотация
Адрес записывается как восемь групп по четыре шестнадцатеричных символа через двоеточие:
2001:0db8:11a3:09d7:1f34:8a2e:07a0:765d
Незначащие нули в группах опускаются. Несколько нулевых групп подряд заменяются на :: (однократно в адресе).
Встроенный IPv4:
::ffff:192.0.2.1
В URL адрес заключается в квадратные скобки:
http://[2001:db8::1]:8080/
Внедрение протокола
Google начал внутренний перевод на IPv6 с 2008 года. 4 февраля 2008 года поддержка IPv6 появилась на шести из тринадцати корневых DNS-серверов.
8 июня 2011 года — Международный день IPv6 (World IPv6 Day). ISOC провело испытание готовности инфраструктуры. Крупнейшие компании добавили IPv6-записи на один день. Тестирование прошло успешно.
6 июня 2012 года — World IPv6 Launch. Официальный запуск всемирной сети на IPv6. Крупнейшие компании (Google, Facebook, Microsoft Bing, Yahoo) включили IPv6. Операторы обязались обеспечить не менее 1% пользователей. В спецификации LTE прописана обязательная поддержка IPv6.
В России на начало 2012 года проникновение IPv6 составляло 6,7% от общего числа сетей.
Январь 2024 года — 41% посетителей сервисов Google обращаются по IPv6. В 2022 году IPv6 активно внедряли крупные госорганизации США.
Переход осуществляется через dual stack (двойной стек протоколов) с технологией Happy Eyeballs, которая предпочитает IPv6 и снижает затраты операторов на трансляцию IPv4.
Lexic.ml — первый на рынке IPv6-прокси
В 2015 году сервис Lexic.ml первым в мире вывел на рынок IPv6-прокси через IPv4-туннели. Без сложных настроек, без специального ПО — просто готовые прокси, которые работают там, где IPv6 ещё не поддерживается. Мы решили проблему совместимости, чтобы вы могли сосредоточиться на задачах, а не на протоколах.