12.2.1 Структура IPv6-адреса
IPv6-адрес — это 128 бит, записанных в шестнадцатеричном формате (hex).
Адрес делится на 8 групп по 16 бит (каждая группа называется hextet), разделённых двоеточиями:
x:x:x:x:x:x:x:x
Каждый hextet = 4 hex-цифры = 16 бит. Регистр не важен (можно писать и строчными, и заглавными).
Пример полного (preferred) формата:
2001:0db8:0000:1111:0000:0000:0000:0200
12.2.2 Правило 1 — Убираем ведущие нули
В каждом hextete можно убрать нули в начале (leading zeros):
| Полный | Сокращённый |
|---|---|
01ab | 1ab |
09f0 | 9f0 |
0a00 | a00 |
00ab | ab |
⚠️ Убирать можно только ведущие нули — нули в конце убирать нельзя!
abc— это неоднозначно:0abcилиabc0?
Пример:
2001:0db8:0000:1111:0000:0000:0000:0200
→ 2001:db8:0:1111:0:0:0:200
12.2.3 Правило 2 — Двойное двоеточие ::
Одну непрерывную группу нулевых хекстетов можно заменить на ::.
2001:db8:0:1111:0:0:0:200
→ 2001:db8:0:1111::200
Важные ограничения:
::можно использовать только один раз в адресе — иначе непонятно сколько нулей скрыто- Если есть несколько групп нулей —
::ставится на самую длинную группу; если они равные — на первую
Примеры из таблиц:
| Preferred | Compressed |
|---|---|
2001:0db8:0000:1111:0000:0000:0000:0200 | 2001:db8:0:1111::200 |
fe80:0000:0000:0000:0123:4567:89ab:cdef | fe80::123:4567:89ab:cdef |
fe80:0000:0000:0000:0000:0000:0000:0001 | fe80::1 |
0000:0000:0000:0000:0000:0000:0000:0001 | ::1 |
0000:0000:0000:0000:0000:0000:0000:0000 | :: |
::1— это loopback-адрес IPv6 (аналог127.0.0.1в IPv4)::— это unspecified address (все нули)
Быстрое правило
Шаг = 2^(64 − префикс) в рамках 4-й группы