Глава про 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: формат, поведение и требования протокола.
Ключевые отличия
| Аспект | IPv4 | IPv6 | Что это меняет в архитектуре |
|---|---|---|---|
| Размер адреса | 32 бита | 128 бит | IPv6 снимает системное ограничение по количеству адресов. |
| Формат записи | 192.0.2.10 | 2001:db8::10 | Нужны обновления логов, regex, ACL и tooling под новый формат. |
| NAT | Почти везде | Обычно не требуется | Проще трассировка, но выше требования к firewall и политике доступа. |
| Автоконфигурация | Чаще DHCP | SLAAC и/или 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-трафика
Типичный путь IPv6-трафика
Связанная глава
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 с измерениями.
- Провести инвентаризацию: DNS, CDN, WAF, LB, ingress, базы, observability, внешние API.
- Запустить dual-stack в non-critical окружении и измерить метрики/ошибки отдельно для IPv4 и IPv6.
- Включить AAAA-записи поэтапно: сначала внутренние сервисы, затем edge и публичные API.
- Проверить security-политику: firewall, SG/NACL, rate limiting, DDoS-защиту для обоих стеков.
- Обновить runbooks и алерты: диагностика, rollback, playbooks для IPv6-инцидентов.
- Только после стабильности постепенно увеличивать долю 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 и политики трафика в много-региональной архитектуре.
