System Design Space
Граф знанийНастройки

Обновлено: 24 марта 2026 г. в 11:23

IPv4 и IPv6: эволюция IP-адресации

medium

Суть IPv4/IPv6, ключевые отличия, риски и практический путь миграции на IPv6.

Глава про IPv4 и IPv6 важна тем, что разговор здесь не только об исчерпании адресов, а о долгой миграции инфраструктуры, совместимости и цене сетевого наследия.

В реальной работе она помогает планировать адресное пространство, dual-stack переходы, NAT, маршрутизацию и операционные риски так, чтобы миграция не превратилась в вечный источник технического долга.

В интервью и design review материал полезен тем, что позволяет обсуждать выбор сетевого стека и стратегию перехода как долгоживущую архитектурную задачу, а не как формальное обновление протокола.

Практическая польза главы

Addressing strategy

Помогает планировать адресное пространство и маршрутизацию без технического долга миграции.

Migration realism

Учит строить поэтапный переход с учетом dual-stack, совместимости и операционных рисков.

Network scalability

Показывает, как адресация влияет на рост инфраструктуры и сложность эксплуатации.

Interview relevance

Дает аргументацию для вопросов о выборе стека и стратегии миграции в долгоживущих системах.

RFC

RFC 791 (IPv4)

Оригинальная спецификация IPv4 и базовые принципы Internet Protocol.

Перейти на сайт

IPv4 и IPv6 решают одну задачу: адресация и маршрутизация пакетов в IP-сетях. Разница в масштабе, операционной сложности и будущем Интернета: IPv4 держится на NAT и компромиссах, IPv6 закладывает долгосрочный фундамент без адресного дефицита.

Суть IPv4 и IPv6

IPv4

32-битная адресация (около 4.3 млрд адресов). Базовый протокол Интернета, но глобальный пул адресов исчерпан.

IPv6

128-битная адресация (практически неисчерпаемое пространство), упрощённая маршрутизация и modern-first сетевые возможности.

Почему переход нужен

NAT и сложные обходные схемы в IPv4 увеличивают операционную сложность, ломают end-to-end модель и ухудшают наблюдаемость.

RFC

RFC 8200 (IPv6)

Текущая спецификация IPv6: формат, поведение и требования протокола.

Перейти на сайт

Ключевые отличия

АспектIPv4IPv6Что это меняет в архитектуре
Размер адреса32 бита128 битIPv6 снимает системное ограничение по количеству адресов.
Формат записи192.0.2.102001:db8::10Нужны обновления логов, regex, ACL и tooling под новый формат.
NATПочти вездеОбычно не требуетсяПроще трассировка, но выше требования к firewall и политике доступа.
АвтоконфигурацияЧаще DHCPSLAAC и/или DHCPv6Ускоряется подключение устройств, но нужна аккуратная политика адресации.
СовместимостьИсторический baselineНе обратно совместимНа практике нужен dual-stack или управляемые переходные механизмы.

Визуализация содержимого заголовков

Ниже показан базовый состав заголовков: IPv4 обычно 20 байт без опций, IPv6 всегда 40 байт в базовом заголовке, а расширения выносятся в extension headers.

IPv4 Base Header

160 бит

Ver

4 бит

IHL

4 бит

DSCP/ECN

8 бит

Total Len

16 бит

Identification

16 бит

Flags + Frag Offset

16 бит

TTL

8 бит

Protocol

8 бит

Hdr Checksum

16 бит

Source Address

32 бит

Destination Address

32 бит

Опции IPv4 (если есть) увеличивают заголовок сверх 20 байт и влияют на fast-path обработку.

IPv6 Base Header

320 бит

Ver

4 бит

Traffic Class

8 бит

Flow Label

20 бит

Payload Len

16 бит

Next Header

8 бит

Hop Limit

8 бит

Source Address [127:96]

32 бит

Source Address [95:64]

32 бит

Source Address [63:32]

32 бит

Source Address [31:0]

32 бит

Destination Address [127:96]

32 бит

Destination Address [95:64]

32 бит

Destination Address [63:32]

32 бит

Destination Address [31:0]

32 бит

Дополнительные функции IPv6 переносятся в extension headers после базового заголовка.

RFC

RFC 4271 (BGP-4)

Базовый протокол междоменной маршрутизации; в IPv6 используется через MP-BGP расширения.

Перейти на сайт

Что поменялось в маршрутизации трафика

Адресная модель и агрегация маршрутов

IPv4: Дефицит адресов и NAT усложняют end-to-end трассировку и адресное планирование.

IPv6: Глобально-уникальные адреса позволяют строить более чистую иерархию префиксов и route aggregation.

Для архитектуры: Проще масштабировать много-региональные сети и снижать объём исключений в policy routing.

Control plane и соседство

IPv4: ARP + ICMPv4 + OSPFv2/BGP (IPv4 AFI).

IPv6: NDP (ICMPv6) + OSPFv3 + MP-BGP для IPv6-путей.

Для архитектуры: Появляются новые operational checklists: RA/NDP, корректность IPv6 announcements, фильтрация префиксов.

Traffic engineering и устойчивость

IPv4: Баланс и failover часто завязаны на NAT и исторические костыли.

IPv6: Пути чаще более прямые; dual-stack требует независимого контроля IPv4/IPv6 SLI/SLO.

Для архитектуры: Нужно отдельно измерять latency/loss для каждого семейства адресов и управлять fallback-логикой.

Типичный путь IPv4-трафика

Client
CPE/CGNAT
ISP Core
Transit/Peering
Edge + NAT44
Service

Типичный путь IPv6-трафика

Client
IPv6 Access
ISP Core
Transit/Peering
Edge/LB
Service

Связанная глава

TCP протокол

Handshake, управление окнами и ретраи поверх IP-сети.

Открыть главу

Связь IPv4/IPv6 с TCP

IPv4/IPv6 отвечают за адресацию и доставку пакетов между узлами, а TCP работает поверх IP: обеспечивает надёжность, порядок байтов и контроль перегрузок. В интервью важно явно разделять эти уровни и показывать, как сетевые решения на уровне IP влияют на поведение TCP.

  • IP выбирает маршрут, а TCP адаптирует скорость передачи под реальные потери и задержки.
  • Изменения в сети (MTU, NAT, асимметрия путей) напрямую влияют на RTT, retransmit и throughput TCP.
  • При dual-stack (IPv4 + IPv6) TCP-сессии могут вести себя по-разному, поэтому метрики нужно сравнивать отдельно.

Возможности IPv6

  • Практически неограниченное адресное пространство для growth без сложного NAT-слоя.
  • Более чистая end-to-end связность для сервисов, IoT и p2p-сценариев.
  • Упрощение routing policy и адресного планирования в крупных сетях.
  • Нормальный фундамент для долгосрочной платформенной архитектуры.

Реальные проблемы и риски

  • Неполная готовность legacy-систем: старые балансировщики, ACL, мониторинг, regex-парсинг логов.
  • Dual-stack увеличивает поверхность отказа, если операционные практики слабые.
  • Ошибки security baseline: открытые IPv6-пути при корректно закрытом IPv4-контуре.
  • Часть внешних интеграций всё ещё остаётся IPv4-only.

Как переходить на IPv6 без боли

Практический путь почти всегда один: не "big bang", а поэтапный dual-stack rollout с измерениями.

  1. Провести инвентаризацию: DNS, CDN, WAF, LB, ingress, базы, observability, внешние API.
  2. Запустить dual-stack в non-critical окружении и измерить метрики/ошибки отдельно для IPv4 и IPv6.
  3. Включить AAAA-записи поэтапно: сначала внутренние сервисы, затем edge и публичные API.
  4. Проверить security-политику: firewall, SG/NACL, rate limiting, DDoS-защиту для обоих стеков.
  5. Обновить runbooks и алерты: диагностика, rollback, playbooks для IPv6-инцидентов.
  6. Только после стабильности постепенно увеличивать долю IPv6-трафика.

Практический вывод

Переход на IPv6 - это не только вопрос адресов, но и изменение операционной модели маршрутизации: от политики префиксов и BGP-объявлений до наблюдаемости dual-stack трафика. Чем раньше это заложено в дизайн платформы, тем дешевле масштабирование и инциденты в будущем.

Связанные главы

  • Модель OSI - помогает локализовать IPv4/IPv6 проблемы по слоям и не смешивать транспорт с сетью.
  • TCP протокол - показывает, как IP-маршруты, MTU и потери влияют на RTT, retransmits и throughput.
  • UDP протокол - важен для latency-чувствительных сценариев и выбора transport trade-offs поверх IPv4/IPv6.
  • Domain Name System (DNS) - разбирает AAAA/A-записи, резолвинг и влияние DNS-стратегии на реальный трафик.
  • HTTP протокол - связь прикладного протокола с dual-stack rollout и поведением клиентских библиотек.
  • Load Balancing - как строить L4/L7 балансировку и failover для IPv4/IPv6 одновременно.
  • Подходы к удалённым вызовам - как адресация и сеть влияют на retries/timeouts и устойчивость межсервисных вызовов.
  • Мультирегиональные и глобальные системы - глобальный роутинг, peering и политики трафика в много-региональной архитектуре.

Чтобы отмечать прохождение, включи трекинг в Настройки