Компьютерные сети

IPv6: будущее уже здесь

В 2011 году закончились IPv4-адреса. Сегодня их покупают на вторичном рынке по 50+ за штуку. Между тем, каждому смартфону можно выдать столько IPv6-адресов, сколько атомов во Вселенной - и останется ещё.

  • **Мобильные сети:** LTE/5G операторы массово переходят на IPv6-only с NAT64. iPhone и Android давно поддерживают
  • **Cloud-провайдеры:** AWS, GCP выдают IPv6 бесплатно, за IPv4 начинают брать деньги (~4/месяц за адрес)
  • **Home IoT:** Умные устройства получают глобальные адреса - можно подключаться напрямую без сложных настроек NAT

Предварительные знания

  • IP Addresses: the postal codes of the internet

Формат адреса IPv6

**IPv6** решает главную проблему IPv4 - исчерпание адресов. 32 бита IPv4 дают 4.3 млрд адресов. 128 бит IPv6 дают **340 ундециллионов** (3.4×10³⁸) - это больше, чем атомов в теле человека.

**Масштаб:** Если раздавать IPv6-адреса со скоростью 1 млрд в секунду, запас кончится через 10⁷ ТРИЛЛИОНОВ лет. Вселенной ~14 млрд лет.

IPv6-адрес можно **сокращать** по двум правилам:

Какое сокращение адреса 2001:0db8:0000:0000:0001:0000:0000:0001 корректно?

Типы адресов IPv6

В IPv6 три типа адресов: **Unicast** (один получатель), **Multicast** (группа получателей), **Anycast** (ближайший из группы). **Broadcast отсутствует** - заменён на multicast.

**Интересный факт:** В IPv6 каждый интерфейс имеет **несколько адресов** одновременно: link-local (обязательно), global (обычно), temporary (для приватности).

Ключевые диапазоны IPv6:

Компании выдали /48 от провайдера. Сколько подсетей /64 она может создать?

Link-Local адреса

**Link-Local** (fe80::/10) - адреса, работающие только в пределах одного сегмента сети. Они **автоматически** создаются на каждом IPv6-интерфейсе без какой-либо настройки.

**Приватность:** EUI-64 позволяет отслеживать устройство по MAC. Современные ОС используют **Privacy Extensions** - случайный Interface ID, меняющийся периодически.

Link-Local используется для служебных протоколов:

При указании link-local в командах нужен **zone ID** (индекс интерфейса), потому что один и тот же адрес может быть на разных интерфейсах:

Почему при пинге link-local адреса нужно указывать интерфейс (zone ID)?

Global Unicast и получение адреса

**Global Unicast Address (GUA)** - маршрутизируемые адреса интернета (2000::/3). В IPv6 есть три способа получить GUA: **SLAAC**, **DHCPv6**, и **ручная настройка**.

**SLAAC vs DHCP:** SLAAC не даёт DNS и другие опции. Флаг O (Other) в RA указывает использовать DHCPv6 для DNS. Флаг M (Managed) - получить адрес через DHCPv6.

Перед использованием адреса хост проверяет его уникальность:

Adoption IPv6: Google видит ~45% трафика через IPv6, в некоторых странах (Индия, Германия) - более 60%. Мобильные сети (LTE/5G) часто IPv6-only с NAT64.

IPv6 слишком сложный, проще остаться на IPv4 с NAT

IPv6 убирает сложности NAT: сквозная связность, нет проблем с VoIP/WebRTC/P2P

NAT - костыль из-за нехватки адресов. С IPv6 каждое устройство имеет публичный адрес. Нет проблем с проброской портов, STUN/TURN для WebRTC, сложных ALG для SIP. Firewall на хосте решает вопросы безопасности лучше, чем 'скрытие за NAT'.

В SLAAC хост получает от роутера:

Итоги

  • **128 бит** против 32 бит IPv4. Адрес записывается в hex, 8 групп по 4 символа. Сокращается через :: и опускание ведущих нулей
  • **Link-local (fe80::/10)** создаётся автоматически на каждом интерфейсе. Используется для NDP, Router Discovery, как default gateway
  • **SLAAC** - получение адреса без DHCP-сервера. Роутер анонсирует префикс, хост генерирует Interface ID сам
  • **Dual-stack** и **Happy Eyeballs** обеспечивают плавный переход. IPv6 предпочитается, IPv4 как fallback

Связанные темы

IPv6 меняет привычные концепции:

  • IP-адресация — IPv6 расширяет концепции IPv4: больше адресов, но те же принципы подсетей
  • NAT — IPv6 делает NAT ненужным - каждое устройство получает глобальный адрес

Вопросы для размышления

  • Почему переход на IPv6 занимает десятилетия, хотя протокол существует с 1998 года?
  • Как изменится архитектура приложений, когда NAT уйдёт в прошлое?
  • Почему некоторые считают EUI-64 угрозой приватности?

Связанные уроки

  • arch-01-binary
IPv6: будущее уже здесь

0

1

Войти