ping6.net
Миграция

Двустековые сети: совместная работа IPv4 и IPv6

Узнайте, как развернуть и управлять двустековыми сетями, где IPv4 и IPv6 сосуществуют. Охватывает конфигурацию, устранение неполадок и стратегии перехода.

ping6.net14 декабря 2024 г.17 min read
IPv6двустековыйIPv4миграциясетипереход

Что такое двустековые сети#

Двустековый режим означает одновременную работу IPv4 и IPv6 на одной сетевой инфраструктуре. Каждое устройство получает IPv4-адрес и IPv6-адрес. Приложения автоматически выбирают, какой протокол использовать, на основе доступности и предпочтений.

Это рекомендуемый подход перехода для большинства организаций. Вам не нужны выходные для миграции или переключение сервисов. IPv4 продолжает работать, пока вы инкрементально включаете IPv6. Существующие клиенты не видят перебоев. Клиенты с поддержкой IPv6 получают нативное подключение. Вы мигрируете в своём собственном темпе.

Реальное внедрение отражает это. Согласно статистике Google, более 40% пользователей обращаются к их сервисам через IPv6. Большинство крупных сетей — мобильные операторы, облачные провайдеры, сети доставки контента — работают в двустековом режиме сегодня. Это уже не эксперимент. Это production-стандарт.

TL;DR - Краткое резюме

Ключевые моменты:

  • Dual-stack запускает IPv4 и IPv6 одновременно — миграционное переключение не требуется
  • Приложения автоматически предпочитают IPv6 (алгоритм Happy Eyeballs) с быстрым откатом к IPv4
  • Критично: применяйте идентичные политики безопасности к обоим протоколам (правила файрвола, ACL)
  • DNS должен публиковать как A, так и AAAA записи для dual-stack сервисов
  • Мониторьте оба протокола независимо — сбои IPv6 могут скрываться за откатом к IPv4

Перейти к: Примеры конфигурации | Правила выбора адресов | Соображения безопасности | Распространённые проблемы


Как работает двустековый режим#

В двустековой сети каждый интерфейс несёт два сетевых стека. Сервер может иметь 192.0.2.10 для IPv4 и 2001:db8::10 для IPv6. Оба адреса работают независимо. Трафик может течь по любому протоколу в зависимости от того, что согласуют клиент и сервер.

┌──────────────────────────────────────┐
│    Приложение (curl, браузер)       │
│    Использует DNS для поиска адресов │
├──────────────────────────────────────┤
│        TCP/UDP (Агностик)            │
├───────────────────┬──────────────────┤
│   Стек IPv4       │   Стек IPv6      │
│   192.0.2.10      │   2001:db8::10   │
│   Маршрут через gw1│  Маршрут через gw2│
└───────────────────┴──────────────────┘
         │                   │
    Сеть IPv4           Сеть IPv6

Сетевой уровень поддерживает отдельные таблицы маршрутизации. IPv4-пакеты следуют IPv4-маршрутам. IPv6-пакеты следуют IPv6-маршрутам. Они не мешают друг другу.

Поведение приложений: Happy Eyeballs#

Приложения не выбирают между протоколами вручную. Операционная система обрабатывает выбор протокола с помощью алгоритма под названием «Happy Eyeballs» (RFC 8305). Понимание этого помогает отлаживать проблемы подключения.

Процесс:

  1. Приложение запрашивает подключение к example.com
  2. DNS возвращает как A (IPv4), так и AAAA (IPv6) записи
  3. ОС сначала пытается подключиться по IPv6
  4. После задержки 50-250 мс (варьируется в зависимости от реализации) ОС запускает IPv4-подключение параллельно
  5. Какое бы подключение ни завершилось первым, побеждает
  6. Результат кешируется для последующих подключений

Это гарантирует, что пользователи получат самое быстрое доступное подключение без ожидания таймаутов. IPv6 получает предпочтение, но сломанный IPv6 не вызовет заметных для пользователя задержек больше доли секунды.

Протестируйте это поведение, используя наш инструмент Ping для двустековых назначений. Сравните время ответа IPv4 и IPv6.

DNS возвращает оба типа записей#

В двустековом режиме DNS-серверы публикуют как A, так и AAAA записи для одного и того же имени хоста:

$ dig example.com A +short
192.0.2.10
 
$ dig example.com AAAA +short
2001:db8::10

Клиенты запрашивают оба типа (или используют синтез DNS64 в сетях только с IPv6). Резолвер возвращает существующие записи. Если существует только A, клиент использует IPv4. Если существуют обе, Happy Eyeballs решает.

Примеры конфигурации#

Двустековая конфигурация проста на современных системах. Большинство поддерживают автоматическую конфигурацию через SLAAC (Stateless Address Autoconfiguration) или DHCPv6.

Linux: Netplan (Ubuntu)#

Современная Ubuntu использует Netplan для конфигурации сети. Отредактируйте /etc/netplan/01-netcfg.yaml:

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: true
      dhcp6: true
      accept-ra: true

Ключевые настройки:

  • dhcp4: true — получить IPv4 через DHCP
  • dhcp6: true — получить IPv6 через DHCPv6
  • accept-ra: true — принимать Router Advertisements для SLAAC

Применить конфигурацию:

sudo netplan apply

Проверить оба протокола:

ip addr show eth0
# Ищите и "inet" (IPv4), и "inet6" (IPv6) адреса

Linux: NetworkManager (Fedora, RHEL, CentOS)#

Использование интерфейса командной строки NetworkManager:

# Включить оба протокола для вашего соединения
nmcli connection modify "Wired connection 1" ipv4.method auto
nmcli connection modify "Wired connection 1" ipv6.method auto
 
# Применить изменения
nmcli connection up "Wired connection 1"
 
# Проверить конфигурацию
nmcli device show eth0

Для статической двустековой конфигурации:

# Настроить статические IPv4 и IPv6
nmcli connection modify "Wired connection 1" \
  ipv4.method manual \
  ipv4.addresses 192.0.2.10/24 \
  ipv4.gateway 192.0.2.1 \
  ipv6.method manual \
  ipv6.addresses 2001:db8::10/64 \
  ipv6.gateway 2001:db8::1
 
nmcli connection up "Wired connection 1"

Windows 10/11#

Windows включает двустековый режим по умолчанию. Для проверки или переконфигурации:

Метод через GUI:

  1. Нажмите Win + R, введите ncpa.cpl, нажмите Enter
  2. Правый клик на сетевой адаптер → Свойства
  3. Проверьте, что оба протокола отмечены:
    • Internet Protocol Version 4 (TCP/IPv4)
    • Internet Protocol Version 6 (TCP/IPv6)
  4. Настройте свойства каждого протокола по необходимости

Метод через PowerShell:

# Проверить текущую конфигурацию
Get-NetIPAddress -InterfaceAlias "Ethernet"
 
# Включить автоматическую конфигурацию для обоих протоколов
Set-NetIPInterface -InterfaceAlias "Ethernet" -Dhcp Enabled
Set-NetIPInterface -InterfaceAlias "Ethernet" -AddressFamily IPv6 -Dhcp Enabled
 
# Или настроить статические адреса
New-NetIPAddress -InterfaceAlias "Ethernet" `
  -IPAddress 192.0.2.10 -PrefixLength 24 -DefaultGateway 192.0.2.1
 
New-NetIPAddress -InterfaceAlias "Ethernet" `
  -IPAddress 2001:db8::10 -PrefixLength 64 -DefaultGateway 2001:db8::1
 
# Проверить
Get-NetIPAddress -InterfaceAlias "Ethernet"
Get-NetRoute -InterfaceAlias "Ethernet"

Linux маршрутизатор с radvd#

Для настройки Linux-системы как двустекового маршрутизатора включите форвардинг и запустите демон Router Advertisement.

Включить IP-форвардинг:

# Временно
sudo sysctl -w net.ipv4.ip_forward=1
sudo sysctl -w net.ipv6.conf.all.forwarding=1
 
# Постоянно
echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.conf
echo "net.ipv6.conf.all.forwarding = 1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

Установить и настроить radvd:

sudo apt install radvd  # Ubuntu/Debian
# или
sudo dnf install radvd  # Fedora/RHEL

Отредактировать /etc/radvd.conf:

interface eth0
{
    AdvSendAdvert on;
    MinRtrAdvInterval 3;
    MaxRtrAdvInterval 10;
 
    prefix 2001:db8::/64
    {
        AdvOnLink on;
        AdvAutonomous on;
        AdvRouterAddr on;
    };
 
    RDNSS 2001:4860:4860::8888 2001:4860:4860::8844
    {
    };
};

Запустить сервис:

sudo systemctl enable radvd
sudo systemctl start radvd

Клиенты в сети eth0 теперь будут получать Router Advertisements и автоматически настраивать IPv6-адреса через SLAAC.

Cisco IOS маршрутизатор#

Настроить двустековый режим на Cisco маршрутизаторе:

! Включить IPv6 маршрутизацию
ipv6 unicast-routing
 
! Настроить WAN интерфейс (двустековый)
interface GigabitEthernet0/0
 description WAN
 ip address dhcp
 ipv6 address autoconfig
 ipv6 enable
 no shutdown
 
! Настроить LAN интерфейс (двустековый)
interface GigabitEthernet0/1
 description LAN
 ip address 192.168.1.1 255.255.255.0
 ipv6 address 2001:db8:1::1/64
 ipv6 enable
 ipv6 nd prefix 2001:db8:1::/64
 ipv6 nd ra interval 10
 no shutdown
 
! Настроить маршруты по умолчанию
ip route 0.0.0.0 0.0.0.0 GigabitEthernet0/0
ipv6 route ::/0 GigabitEthernet0/0
 
! Проверить конфигурацию
show ip interface brief
show ipv6 interface brief

SLAAC против DHCPv6

Router Advertisements включают SLAAC, который автоконфигурирует адреса клиентов без DHCP-сервера. Для большего контроля (DNS-серверы, NTP, доменные имена) используйте DHCPv6 вместе со SLAAC. Большинство сетей работают на SLAAC для простоты.

Правила выбора адресов#

Когда двустековый клиент подключается к двустековому серверу, как он выбирает, какой протокол использовать? RFC 6724 определяет алгоритм выбора исходного и целевого адреса.

Порядок предпочтений по умолчанию#

Алгоритм оценивает адреса на основе этих правил (упрощённо):

  1. Предпочитать одинаковую область — link-local к link-local, глобальный к глобальному
  2. Предпочитать совпадающее семейство адресов — если источник IPv6, предпочитать IPv6 назначение
  3. Предпочитать более высокий приоритет — IPv6 имеет более высокий приоритет по умолчанию, чем IPv4
  4. Предпочитать нативный транспорт — избегать туннелирования, если возможно
  5. Предпочитать меньшую область — предпочитать более специфичные маршруты
  6. Использовать наибольший совпадающий префикс — более специфичные маршруты побеждают

По умолчанию IPv6 получает предпочтение над IPv4. Это намеренно — это поощряет внедрение IPv6 и обеспечивает лучшую производительность (нет накладных расходов NAT).

Почему IPv6 обычно побеждает#

Для двустекового клиента и двустекового сервера:

Клиент имеет:   192.0.2.100 и 2001:db8::100
Сервер имеет:   192.0.2.10 и 2001:db8::10
DNS возвращает: A 192.0.2.10, AAAA 2001:db8::10

Алгоритм выбора:

  1. Оба адреса имеют глобальную область → ничья
  2. Клиент имеет как IPv4, так и IPv6 исходные адреса → ничья
  3. Приоритет IPv6 (::ffff:0:0/96 = 35, ::/0 = 40) > приоритет IPv4 (::ffff:0:0/96 = 35) → IPv6 побеждает

Результат: подключение использует IPv6, если только IPv6-подключение не сломано.

Конфигурация таблицы политики#

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

Linux (Glibc):

Отредактировать /etc/gai.conf (политика выбора адресов):

# Предпочитать IPv4 над IPv6 (не рекомендуется)
precedence ::ffff:0:0/96  100
precedence ::/0            50

Windows:

# Показать текущую таблицу политики
Get-NetIPv6Protocol | Format-List
 
# Предпочитать IPv4 (не рекомендуется)
Set-NetIPv6Protocol -PreferredProtocol IPv4
 
# Сбросить к умолчанию (предпочитать IPv6)
Set-NetIPv6Protocol -PreferredProtocol IPv6

Не принудительно устанавливайте предпочтение IPv4

Переопределение умолчания для предпочтения IPv4 нивелирует цель двустекового режима. Исправьте сломанное IPv6-подключение вместо его скрытия изменениями политики. Пользователи в сетях только с IPv6 (мобильные операторы) будут иметь сниженную производительность или сбои.

Когда IPv4 получает предпочтение#

IPv4 выбирается в этих сценариях:

  1. Нет IPv6-подключения — если IPv6-маршрутизация сломана, Happy Eyeballs откатывается к IPv4
  2. 6to4 или Teredo — туннельный IPv6 имеет более низкий приоритет, чем нативный IPv4
  3. Явный выбор приложения — приложение принудительно использует IPv4 (плохая практика, но случается)
  4. Изменённая таблица политики — администратор вручную изменил порядок предпочтений

Большинство проблем с меткой «предпочитается IPv4» на самом деле являются сломанным IPv6-подключением, вызывающим откат.

Соображения DNS#

Двустековая DNS-конфигурация критична. Неправильно настроенный DNS вызывает задержки подключения, сбои или неожиданный выбор протокола.

Публикация обоих типов записей#

Для каждого двустекового сервиса публикуйте как A, так и AAAA записи:

example.com.    300    IN    A        192.0.2.10
example.com.    300    IN    AAAA     2001:db8::10

Не публикуйте AAAA, если IPv6 не работает. Клиенты попробуют IPv6 первым, провалятся, затем откатятся к IPv4 после задержки. Это создаёт плохой пользовательский опыт.

Порядок разрешения#

Современные DNS-резолверы запрашивают A и AAAA одновременно или с минимальной задержкой. Резолвер возвращает оба типа, и ОС клиента выполняет выбор адреса.

Некоторые старые или неправильно настроенные резолверы запрашивают последовательно (сначала A, затем AAAA). Это добавляет задержку, но не ломает функциональность.

Что происходит, когда один протокол падает#

Если IPv6 доступен, но сервис не отвечает по IPv6:

  1. Клиент пытается IPv6-подключение
  2. Подключение истекает или отклоняется
  3. Happy Eyeballs пробует IPv4 параллельно или после короткой задержки
  4. IPv4-подключение успешно

Общая задержка: обычно 50-250 мс плюс таймаут подключения (1-3 секунды в худшем случае). Заметно, но не катастрофично.

Лучшее решение: исправьте IPv6-подключение или удалите AAAA-записи, пока IPv6 не заработает.

Выравнивание TTL#

Устанавливайте одинаковый TTL для A и AAAA записей. Несовпадающие TTL вызывают несогласованное кеширование и странное поведение клиента.

# Хорошо
example.com.    300    IN    A        192.0.2.10
example.com.    300    IN    AAAA     2001:db8::10
 
# Плохо — несовпадающие TTL
example.com.    300    IN    A        192.0.2.10
example.com.    3600   IN    AAAA     2001:db8::10

Если вам нужно изменить IP-адреса, заранее снизьте TTL на обеих записях. Дождитесь истечения старого TTL, затем измените IP и восстановите нормальный TTL.

Распространённые проблемы и решения#

ПроблемаПричинаРешение
Медленное установление соединенияТаймаут IPv6, затем откат к IPv4Исправить IPv6-подключение или удалить AAAA-записи
Прерывистые сбои соединенияОдин протокол сломан, конкуренция Happy EyeballsПротестировать оба протокола независимо с curl -4 и curl -6
Приложение использует только IPv4Жёстко закодированный IPv4, старая библиотека или привязка к 0.0.0.0Проверить настройки приложения, обновить код для привязки ::
Нет IPv6 маршрута по умолчаниюМаршрутизатор не отправляет RAs или DHCPv6 не предоставляет маршрутПроверить конфигурацию маршрутизатора, проверить ip -6 route show
Windows предпочитает IPv4Teredo или 6to4 активен (туннелирование)Отключить туннельные интерфейсы: netsh interface teredo set state disabled
Файрвол блокирует IPv6IPv6-правила не настроены или слишком ограничительныеПрименить одинаковую политику безопасности к обоим протоколам
Изменение адреса приватности ломает соединенияВременные адреса RFC 4941 ротируютсяИспользовать стабильные адреса для серверов, временные для клиентов
Path MTU Discovery ломаетсяICMPv6 «Packet Too Big» заблокированРазрешить ICMPv6 тип 2 в правилах файрвола

Подробное устранение неполадок: медленные соединения#

Большинство жалоб на двустековый режим связаны с «медленными» соединениями. Это обычно означает сломанный IPv6, вызывающий задержки отката.

Диагностика:

# Тестировать только IPv4
curl -4 -w "Time: %{time_total}s\n" -o /dev/null -s https://example.com
 
# Тестировать только IPv6
curl -6 -w "Time: %{time_total}s\n" -o /dev/null -s https://example.com
 
# Тестировать по умолчанию (двустековый)
curl -w "Time: %{time_total}s\n" -o /dev/null -s https://example.com

Если -6 падает или истекает, но -4 успешен, и по умолчанию показывает задержки, у вас сломанный IPv6.

Варианты исправления:

  1. Исправить IPv6 — предпочтительное решение. Отладить маршрутизацию, правила файрвола или подключение ISP.
  2. Удалить AAAA-записи — временное решение. Сервис становится только IPv4, пока вы не исправите IPv6.
  3. Не отключайте IPv6 на серверах — это ломает вещи и скрывает реальную проблему.

Мониторинг двустековых сетей#

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

Тестирование обоих протоколов#

Тестируйте подключение раздельно для определения, какой протокол падает:

# Ping через IPv4
ping -4 google.com
 
# Ping через IPv6
ping -6 google.com
 
# Traceroute через IPv4
traceroute -4 google.com
 
# Traceroute через IPv6
traceroute -6 google.com
 
# Curl с использованием конкретного протокола
curl -4 https://example.com
curl -6 https://example.com

Встройте эти тесты в скрипты мониторинга. Оповещайте, когда один протокол падает, даже если другой работает.

Метрики для отслеживания#

Мониторьте эти специфичные для двустекового режима метрики:

  1. Распределение протокола — процент трафика, использующего IPv4 против IPv6
  2. Скорость успешных соединений — по протоколу, отслеживать проваленные соединения
  3. Время ответа — сравнить задержку IPv4 и IPv6
  4. BGP префиксы — убедиться, что как IPv4, так и IPv6 маршруты анонсированы
  5. Соотношение DNS-запросов — отслеживать скорость A против AAAA запросов
  6. Скорость ошибок ICMPv6 — всплески указывают на проблемы маршрутизации или MTU

Отслеживание этих метрик со временем показывает прогресс внедрения и выделяет проблемы до того, как они затронут пользователей.

Оповещения о сбоях протокола#

Создайте отдельные оповещения для каждого протокола:

  • IPv4 шлюз по умолчанию недоступен
  • IPv6 шлюз по умолчанию недоступен
  • AAAA-запись опубликована, но IPv6-сервис недоступен
  • Всплеск таймаутов IPv6-соединений
  • Асимметричная маршрутизация (трафик отправлен через IPv6, возвращён через IPv4)

Не полагайтесь на общие оповещения «сервис недоступен». Вам нужна специфичная для протокола видимость.

Инструменты для тестирования#

Используйте эти инструменты для проверки работы двустекового режима:

  • Инструменты ping6.net — тестировать IPv4 и IPv6-подключение с разных перспектив
  • curl с флагами -4/-6 — принудительный выбор протокола для HTTP(S) тестирования
  • dig +short A/AAAA — проверить, что DNS возвращает оба типа записей
  • tcpdump/wireshark — захватить и проанализировать специфичный для протокола трафик
  • mtr -4 / mtr -6 — непрерывный traceroute, показывающий различия путей

Наш инструмент Ping и инструмент Traceroute поддерживают принудительное использование IPv4 или IPv6, делая тестирование двустекового режима простым.

Соображения безопасности#

Двустековый режим расширяет вашу поверхность атаки. Оба протокола нуждаются в эквивалентных политиках безопасности.

Правила файрвола для обоих протоколов#

Самая распространённая ошибка безопасности двустекового режима: забыть настроить IPv6-правила файрвола. Администраторы тратят годы на создание IPv4 ACL, затем включают IPv6 без фильтрации. Атакующие любят это.

Применяйте одинаковую политику безопасности к обоим протоколам:

Если ваша IPv4-политика:

ЗАПРЕТИТЬ весь входящий, кроме:
  - TCP 22 (SSH) из сети управления
  - TCP 443 (HTTPS) откуда угодно
  - ICMP echo-request (ping)

Ваша IPv6-политика должна быть:

ЗАПРЕТИТЬ весь входящий, кроме:
  - TCP 22 (SSH) из сети управления
  - TCP 443 (HTTPS) откуда угодно
  - ICMPv6 типы 1,2,3,4,128,129 (необходимые типы)
  - ICMPv6 типы 133-137 (Neighbor Discovery, только локально)

Инструменты типа ip6tables, nftables или коммерческие файрволы поддерживают двустековый режим. Настройте оба семейства адресов.

Распространённая ошибка: защита IPv4, но забывание IPv6#

Организации включают IPv6 для соответствия или тестирования, затем забывают, что он активен. Атакующие сканируют IPv6-диапазоны в поиске нефильтрованных хостов.

Пример сценария:

  1. Администратор настраивает ограничительный IPv4-файрвол, только HTTPS открыт
  2. IPv6 включается на маршрутизаторе для «готовности к будущему»
  3. Сервер получает IPv6-адрес через SLAAC
  4. IPv6-правила файрвола не настроены
  5. Атакующий сканирует 2001:db8::/64, находит открытые SSH, базы данных, внутренние сервисы

Профилактика:

  • Проверять IPv6-правила файрвола так же, как IPv4
  • Запрет по умолчанию на обоих протоколах
  • Тестировать с инструментами сканирования только IPv6
  • Мониторить неожиданные IPv6-соединения

Критический пробел безопасности

Включение IPv6 без настройки файрволов эквивалентно размещению серверов прямо в интернете без фильтрации. Всегда настраивайте IPv6-правила безопасности перед публикацией AAAA-записей.

Расширения приватности для клиентов#

SLAAC генерирует адреса, используя MAC-адрес интерфейса (формат EUI-64). Это создаёт стабильный, отслеживаемый идентификатор через сети — проблему приватности для мобильных клиентов.

Расширения приватности (RFC 4941) генерируют случайные временные адреса, которые периодически ротируются. Клиенты используют временные адреса для исходящих соединений, сохраняя стабильный адрес для входящих соединений.

Включить расширения приватности:

Linux:

# Проверить статус (2 = предпочитать временные адреса)
sysctl net.ipv6.conf.all.use_tempaddr
 
# Включить
sudo sysctl -w net.ipv6.conf.all.use_tempaddr=2
 
# Сделать постоянным
echo "net.ipv6.conf.all.use_tempaddr = 2" | sudo tee -a /etc/sysctl.conf

Windows:

Расширения приватности включены по умолчанию в Windows 7 и более поздних. Проверить:

netsh interface ipv6 show privacy

macOS:

Включены по умолчанию. Конфигурация не требуется.

Важно: не включайте расширения приватности на серверах. Временные адреса ломают DNS, мониторинг и правила файрвола. Используйте их только на клиентских устройствах.

Когда рассматривать только IPv6#

Двустековый режим — это стратегия перехода, а не конечная цель. В конечном итоге сети переходят на только IPv6, упрощая операции и устраняя дефицит IPv4-адресов.

Мобильные операторы уже используют только IPv6#

Крупные мобильные операторы (T-Mobile USA, Reliance Jio, EE UK) работают на основных сетях только IPv6. Они используют 464XLAT (NAT64 + CLAT) для предоставления IPv4-подключения при необходимости.

Пользователи не замечают. Их телефоны имеют IPv6-адреса, а legacy-приложения только с IPv4 работают прозрачно через трансляцию.

NAT64/DNS64 для доступа к IPv4#

Сети только с IPv6 получают доступ к IPv4-сервисам, используя NAT64 и DNS64:

  1. Клиент запрашивает DNS для сервиса только с IPv4
  2. DNS64 синтезирует AAAA-запись, используя NAT64-префикс: 64:ff9b::192.0.2.10
  3. Клиент отправляет IPv6-трафик на синтезированный адрес
  4. NAT64-шлюз транслирует в IPv4, пересылает на сервис
  5. Ответы транслируются обратно в IPv6

Это позволяет клиентам только с IPv6 достигать оставшегося IPv4-интернета без работы в двустековом режиме.

Когда развёртывать только IPv6:

  • Мобильные сети (уже стандарт)
  • Новые строительства дата-центров (полностью избегать IPv4)
  • Greenfield развёртывания без legacy-требований
  • Организации с полным контролем над клиентами и приложениями

Когда сохранять двустековый режим:

  • Существующие корпоративные сети (IPv4-зависимости требуют годы для устранения)
  • Сети с legacy-оборудованием/ПО
  • Среды, где вы не контролируете всех клиентов
  • Интернет-сервисы (двустековый режим максимизирует доступность)

Преимущества упрощения#

Работа на одном протоколе вместо двух уменьшает:

  • Размер таблицы маршрутизации (одна таблица вместо двух)
  • Сложность файрвола (одна политика вместо двух)
  • Накладные расходы управления IP-адресами
  • Сложность мониторинга и оповещений

Но эти преимущества материализуются только после полного устранения IPv4. Двустековый режим сложнее, чем только IPv4 или только IPv6, но это единственный практический путь миграции для большинства сетей.

Связанные статьи#

Протестируйте вашу двустековую сеть

Используйте наш инструмент Ping с флагами -4 и -6 для тестирования обоих протоколов независимо и наш инструмент Traceroute для проверки путей маршрутизации.

Часто задаваемые вопросы#

Удваивает ли двустековый режим использование пропускной способности?

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

Некоторые протоколы (например, BGP) могут обмениваться информацией о маршрутизации через оба семейства адресов, но это незначительные накладные расходы.

Почему моя двустековая сеть медленнее, чем только IPv4?

Не должна быть. Более медленная производительность обычно указывает на сломанный или неправильно настроенный IPv6, вызывающий таймауты подключения перед откатом к IPv4. Тестируйте каждый протокол независимо с curl -4 и curl -6 для определения, какой падает.

Если IPv6 медленнее, но работает, проверьте на неэффективность маршрутизации или проблемы пиринга ISP. IPv6-пути не всегда оптимизированы так же хорошо, как IPv4-пути (пока).

Могу ли я запустить двустековый режим с NAT?

Да. IPv4 может использовать NAT, пока IPv6 использует глобальные адреса без NAT. Это распространено в корпоративных и домашних сетях. Ваш маршрутизатор транслирует приватные IPv4-адреса (192.168.x.x, 10.x.x.x), пропуская IPv6 без изменений.

IPv6 не нуждается в NAT. Используйте файрволы вместо полагания на NAT для безопасности.

Должен ли я отключить IPv6, если не использую его?

Нет. Microsoft, Apple и дистрибутивы Linux рекомендуют оставлять IPv6 включённым, даже если вы не используете его активно. Отключение IPv6 может сломать функции типа DirectAccess, HomeGroup, Windows Update и вызвать задержки разрешения DNS.

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

Как узнать, использует ли мой трафик IPv4 или IPv6?

Проверьте активные соединения с:

# Linux/macOS
netstat -tuln | grep -E '(tcp|udp)'
 
# Windows PowerShell
Get-NetTCPConnection | Select-Object LocalAddress,RemoteAddress
 
# Или используйте tcpdump для просмотра реальных пакетов
sudo tcpdump -n -i eth0 'ip6 or ip'

IPv6-адреса длиннее и содержат двоеточия. IPv4-адреса — десятичные с точками. Большинство инструментов мониторинга помечают трафик по протоколу.

Посетите ping6.net чтобы увидеть, какой протокол вы используете для доступа к нашему сайту.