IPsec Error IPV6_UNSUPPORTED: отклонение IPv6 селекторов IPv4 шлюзом
При согласовании туннеля между Dual-Stack и IPv4-only системами возникают сбои:
- Ошибки:
IPsec Error: IPV6_UNSUPPORTED: IPv6 traffic selector rejected by IPv4 peerилиignoring IPv6 request for IPv4 only gateway. - Клиент отправляет запрос на туннелирование как IPv4 (
0.0.0.0/0), так и IPv6 (::/0), но сервер поддерживает только IPv4. - Фаза 2 падает с отказом, туннель не может передавать даже IPv4-трафик.
1. Природа Dual-Stack согласования в IKEv2 (RFC 7296)
В протоколе IKEv2 селекторы трафика могут содержать как IPv4, так и IPv6 подсети одновременно. Если клиент Dual-Stack (например, Windows 11 или macOS) запрашивает создание туннеля для ::/0, а на VPN-концентраторе отключен стек IPv6 или отсутствует соответствующий пул, шлюз либо отклоняет весь Child SA, либо возвращает ошибку согласования селекторов.
2. Принудительное отключение IPv6 селекторов на стороне сервера
Если сервер не маршрутизирует IPv6, явно ограничьте селекторы трафика только диапазоном IPv4 в swanctl.conf:
connections {
roadwarrior {
children {
v4-only {
# Ограничение строго семейством IPv4
local_ts = 0.0.0.0/0
# Отключение автоматического включения ::/0
}
}
}
}3. Полная настройка Dual-Stack (IPv4 + IPv6) VPN туннеля
Если требуется полноценная поддержка обоих протоколов:
pools {
dual_pool {
addrs = 10.100.0.0/24
# Выделение IPv6 ULA или глобальной подсети клиентам
ipv6_addrs = fd00:cafe:beef::/64
dns = 1.1.1.1, 2606:4700:4700::1111
}
}
connections {
dual_vpn {
pools = dual_pool
children {
dual_sa {
local_ts = 0.0.0.0/0, ::/0
}
}
}
}4. Включение маршрутизации IPv6 в ядре Linux
Отредактируйте /etc/sysctl.d/99-ipsec-ipv6.conf:
net.ipv6.conf.all.forwarding = 1
net.ipv6.conf.default.forwarding = 1sysctl --system5. Настройка правил безопасности ip6tables
# Разрешение транзита IPv6
ip6tables -A FORWARD -s fd00:cafe:beef::/64 -j ACCEPT
ip6tables -t nat -A POSTROUTING -s fd00:cafe:beef::/64 -o eth0 -j MASQUERADE Частые вопросы (FAQ)
Можно ли передавать IPv6 трафик через IPv4 внешние адреса шлюзов?
Да. IKEv2 позволяет инкапсулировать полезную нагрузку IPv6 в стандартные пакеты ESP, передаваемые между публичными IPv4 адресами шлюзов (IPv6 over IPv4 ESP).
Почему Windows клиент пытается направить IPv6 в туннель, если у него нет IPv6 интернета?
Сетевой стек Windows по умолчанию запрашивает селекторы '0.0.0.0/0, ::/0' для любых новых VPN-соединений общего назначения, если в свойствах адаптера не отключен протокол TCP/IPv6.
Как отключить IPv6 на клиенте Windows вручную?
В свойствах сетевого VPN-адаптера снимите флажок с пункта 'IP версии 6 (TCP/IPv6)' во вкладке 'Сеть'.
Поддерживает ли Route-Based VTI трафик IPv6?
Да, интерфейсы VTI в Linux поддерживают одновременную маршрутизацию IPv4 и IPv6 пакетов при условии назначения локальных IPv6 Link-Local адресов.