Зачем нужен IPv6
IPv6 (RFC 8200) разработали в 1990-х, когда стало ясно, что 4,3 миллиарда адресов IPv4 закончатся. Адрес IPv6 состоит из 128 бит: это 2¹²⁸, или около 3,4 × 10³⁸ адресов. Важен не размер числа, а то, что каждая сеть может получить столько адресов, сколько ей нужно, а каждое устройство снова может иметь глобально доступный адрес — без NAT.
IPv6 — не обновление IPv4: оба протокола работают параллельно (двойной стек). Сегодня большая и растущая доля трафика к крупным сервисам идёт по IPv6, особенно в мобильных сетях.
Запись: шестнадцатеричные группы
Адрес IPv6 записывается как восемь групп по четыре шестнадцатеричные цифры, разделённых двоеточиями:
2001:0db8:0000:0000:0000:ff00:0042:8329
Каждая группа — 16 бит. Шестнадцатеричные цифры — это 0–9 и a–f; регистр не важен, но принято писать строчными.
Правила сокращения
Длинные последовательности нулей встречаются часто, поэтому есть два правила сокращения (RFC 4291), а RFC 5952 определяет единственно правильный способ их применения:
- Убрать ведущие нули в каждой группе:
0db8→db8,0042→42,0000→0. - Заменить одну последовательность нулевых групп на
::— самую длинную, при равенстве первую, и только если она охватывает не меньше двух групп.::может встречаться лишь один раз, иначе адрес станет неоднозначным.
Так 2001:0db8:0000:0000:0000:ff00:0042:8329 превращается в 2001:db8::ff00:42:8329. Адрес обратной петли 0:0:0:0:0:0:0:1 — это ::1, а неопределённый адрес — просто ::.
Попробуйте любой адрес в обозревателе ниже — он показывает полную и каноническую форму рядом.
Полная форма
Сокращённая форма
2001:db8::ff00:42:8329
Область: Специального назначения · Documentation (2001:db8::/32)
Префиксы и /64
IPv6 использует нотацию CIDR так же, как IPv4. Типичный глобальный одноадресный адрес делится на:
- Префикс маршрутизации (обычно /48 или /56) — его выдаёт площадке провайдер.
- Идентификатор подсети — биты до /64, которыми нумеруются сети площадки. В /48 помещается 65 536 подсетей.
- Идентификатор интерфейса (последние 64 бита) — обозначает устройство в его сети.
Одна локальная сеть почти всегда — это /64. На этом построена автоконфигурация без сохранения состояния (SLAAC): устройства сами выбирают идентификаторы интерфейсов, сегодня — случайные ради приватности (RFC 8981), и регулярно их меняют.
Типы адресов, которые вы встретите
- Глобальные одноадресные
2000::/3— публичные маршрутизируемые адреса. - Link-local
fe80::/10— есть у каждого интерфейса IPv6; действуют только в пределах канала, используются для обнаружения соседей и протоколов маршрутизации. - Unique local
fc00::/7(на практикеfd00::/8) — аналог частных адресов в IPv6 (RFC 4193). - Многоадресные
ff00::/8— в IPv6 нет широковещания, его заменяют группы многоадресной рассылки. - Обратная петля
::1и неопределённый::. - IPv4-mapped
::ffff:0:0/96— так программы IPv6 представляют собеседников IPv4, например::ffff:192.0.2.1. - Для документации
2001:db8::/32и3fff::/20— для примеров вроде тех, что на этой странице.
Блоки IPv6 специального назначения
Полный список зарезервированных блоков IPv6, созданный по реестру IANA, которым пользуется классификатор этого сайта:
| Блок | Назначение | Источник | Доступен глобально |
|---|---|---|---|
| ::/128 | Unspecified Address | RFC 4291 | Нет |
| ::1/128 | Loopback Address | RFC 4291 | Нет |
| ::ffff:0:0/96 | IPv4-mapped Address | RFC 4291 | Нет |
| 64:ff9b::/96 | IPv4-IPv6 Translation (NAT64) | RFC 6052 | Да |
| 64:ff9b:1::/48 | Local-use IPv4/IPv6 Translation | RFC 8215 | Нет |
| 100::/64 | Discard-Only Address Block | RFC 6666 | Нет |
| 2001::/32 | TEREDO | RFC 4380 | Нет |
| 2001:2::/48 | Benchmarking | RFC 5180 | Нет |
| 2001:db8::/32 | Documentation | RFC 3849 | Нет |
| 2001:10::/28 | Deprecated (ORCHID) | RFC 4843 | Нет |
| 2001:20::/28 | ORCHIDv2 | RFC 7343 | Да |
| 2002::/16 | 6to4 | RFC 3056 | Нет |
| 3fff::/20 | Documentation | RFC 9637 | Нет |
| 5f00::/16 | Segment Routing (SRv6) SIDs | RFC 9602 | Нет |
| fc00::/7 | Unique-Local | RFC 4193 | Нет |
| fe80::/10 | Link-Local Unicast | RFC 4291 | Нет |
| ff00::/8 | Multicast | RFC 4291 | Нет |
Двойной стек и как этот сайт определяет оба адреса
Браузер подключается в каждый момент только через одно семейство адресов. Если работают оба, он обычно предпочитает IPv6 (Happy Eyeballs, RFC 8305). Чтобы показать вам оба адреса, ipaddress.si просит браузер обратиться к двум дополнительным именам хостов: у одного есть только запись IPv4 (A), у другого — только IPv6 (AAAA). То, что видит каждое из них, и есть ваш адрес в этом семействе. Если запрос по IPv6 не удался, у вашего подключения нет работающего IPv6.
Частые вопросы
- Как узнать, есть ли у меня IPv6?
- Откройте главную страницу этого сайта. Если показан адрес IPv6 — как основной или в строке IPv6, — ваше подключение поддерживает IPv6.
- IPv6 быстрее IPv4?
- Не сам по себе, но может быть быстрее: трафик IPv6 часто обходит операторский NAT, а значит, на пути на один промежуточный узел и одно узкое место меньше.
- Нужен ли межсетевой экран при IPv6?
- Да. Без NAT у устройств глобально маршрутизируемые адреса; межсетевой экран с отслеживанием состояния, блокирующий незапрошенный входящий трафик, даёт ту защиту, которую NAT обеспечивал неявно.
- Почему мой адрес IPv6 постоянно меняется?
- Расширения приватности (RFC 8981) создают временные идентификаторы интерфейса и регулярно их меняют, чтобы устройство нельзя было отследить в разных сетях. Префикс /64 обычно остаётся прежним.