IPv6 и SLAAC
Чем IPv6 отличается от IPv4 кроме длины адреса, что такое link-local и как хост настраивает адрес сам.
Не просто длиннее
Адрес IPv4 — 32 бита, около 4.3 млрд адресов, и они закончились: отсюда приватные сети и NAT. Адрес IPv6 — 128 бит, адресов хватает на то, чтобы выдать каждому устройству публичный.
Записывается IPv6 восемью группами hex-цифр, нули сокращаются:
2001:0db8:0000:0000:0000:0000:0000:0001
2001:db8::1 # то же самое, :: схлопывает нули один раз
Смена модели важнее длины: в IPv6 у хоста обычно глобальный адрес и NAT не нужен. Доступность решает не таблица трансляций, а файрвол. Кто привык «за NAT нас не видно», в IPv6 обязан явно настроить фильтрацию.
Link-local: адрес, который есть всегда
У каждого IPv6-интерфейса есть link-local адрес из префикса fe80::/10. Хост
собирает его сам из идентификатора интерфейса, без роутера и DHCP. Работает
он только в пределах своего сегмента сети.
$ ip -6 addr show eth0
inet6 2001:db8:1:2:5054:ff:fe12:3456/64 scope global
inet6 fe80::5054:ff:fe12:3456/64 scope link
Здесь идентификатор собран старым способом, по EUI-64: MAC растянут до 64
бит вставкой ff:fe в середину, отсюда узнаваемое 5054:ff:fe12:3456. По
такому адресу MAC-адрес читается напрямую, поэтому от схемы ушли. Там, где
сетью управляет NetworkManager, по умолчанию работает stable-privacy
(RFC 7217): идентификатор считается хешем от префикса, имени интерфейса и
секрета машины, маркера ff:fe в нём нет.
На link-local адресах держится вся служебная механика IPv6: обнаружение соседей и маршрутизаторов (NDP, замена ARP) ходит именно по ним.
SLAAC: адрес без DHCP-сервера
SLAAC (stateless address autoconfiguration) позволяет хосту настроить глобальный адрес самостоятельно. Маршрутизатор периодически рассылает Router Advertisement с префиксом сети. Хост берёт префикс, добавляет свой идентификатор интерфейса и получает готовый адрес. Сервера, который ведёт учёт выданного, нет: потому stateless.
Из RA хост забирает и шлюз по умолчанию: им становится сам маршрутизатор.
SLAAC и DHCPv6 не исключают друг друга. Флаги в RA говорят хосту, что делать: только SLAAC, только DHCPv6 или SLAAC для адреса плюс DHCPv6 для DNS-серверов. В одной сети механизмы спокойно работают вместе.
Результат работы SLAAC виден в обычном ip, отдельных утилит ставить не
надо. Маршрут по умолчанию с пометкой источника:
$ ip -6 route show
2001:db8:1:2::/64 dev eth0 proto ra metric 100 expires 1795sec
default via fe80::1 dev eth0 proto ra metric 100 expires 1795sec
proto ra означает, что маршрут приехал из Router Advertisement, а не задан
руками. Адрес с той же историей:
$ ip -6 addr show eth0
inet6 2001:db8:1:2:5054:ff:fe12:3456/64 scope global dynamic mngtmpaddr
valid_lft 2591932sec preferred_lft 604732sec
dynamic и конечное время жизни — признак автонастройки. Если глобального
адреса нет, а link-local есть, значит RA до хоста не доходят.
Dual-stack
Переход на IPv6 идёт через одновременную работу обоих стеков: у хоста и
IPv4-, и IPv6-адрес, приложение выбирает доступный. Отсюда практическое
правило диагностики: проверяй оба стека, ping и ping -6, curl -4 и
curl -6. Сервис может быть жив по одному протоколу и лежать по другому.
Что важно запомнить
IPv6 — 128 бит, hex-группы, :: схлопывает нули один раз.
Модель другая: глобальные адреса вместо NAT, доступ ограничивает файрвол.
fe80::/10 — link-local, есть на каждом интерфейсе, работает в пределах
сегмента.
SLAAC: хост собирает адрес из префикса в Router Advertisement, без сервера. DHCPv6 не конкурент, они работают вместе.
При диагностике проверяй оба стека: curl -4 и curl -6.
В следующем уроке — DHCP: как хост получает адрес в IPv4-сети.
Дрилл · вопросы как на собесе
Проверь себя без подсказок
Сформулируй ответ вслух или письменно, потом раскрой и честно отметь: знал или нет.
Как хост в IPv6 получает адрес без DHCP? Что такое link-local?
NET-106IPv4 vs IPv6: ключевые отличия.
NET-082Прошли материал до конца? Отметьте урок пройденным.
Прогресс сохранён в этом браузере
Почистишь историю или откроешь с телефона, и отметки пропадут. Оставь почту, они переедут в аккаунт. Пароль придумывать не нужно.
Готово. теперь в аккаунте: прогресс виден с любого устройства. Мой прогресс