Перейти к содержанию

NAT-T, MTU, маршрутизация и нагрузочное планирование

NAT traversal

Профиль НАЙС.ОС устанавливает encap = yes, mobike = no, fragmentation = yes; в испытаниях при обычных IP одной подсети журнал содержал remote host is behind NAT из-за принудительного UDP encapsulation. Это не свидетельство реального NAT в этой сети и не ошибка. Для шлюзов между подсетями нужно открыть UDP 500/4500 во всех межсетевых экранах и проверить NAT state/timeout.

ss -lunp | grep -E ':(500|4500)[[:space:]]'
swanctl --list-sas
journalctl -u strongswan.service --since '10 minutes ago' --no-pager \
  | grep -Ei 'NAT|fragment|mobike|encap'

MTU

Испытанная лабораторная TUN-конфигурация использовала ipsec0 mtu 1400. Правильный MTU зависит от внешнего IP, UDP, ESP заголовков и промежуточной сети; 1400 — стартовая проверенная настройка, не константа для всех маршрутов.

ip -d link show ipsec0
ip link set ipsec0 mtu 1400 up
ip -s link show ipsec0

При фрагментации/потерях больших пакетов проверьте PMTU и защиту ICMP Fragmentation Needed на реальном underlay. Для TCP/MSS при site-to-site может понадобиться дополнительная политика firewall (после измерения), а не произвольное глобальное снижение MTU.

Проверка исключения обхода и асимметрии

ip route get 10.200.2.1    # левая VM
ip route get 192.168.10.26 # физический peer
ip rule show
ip route show table 220
iptables -L OUTPUT -n -v

Защищённый IP должен идти через ipsec0, внешний peer — по обычной сети. При пропаже ipsec0 адресный REJECT предотвращает чистую отправку защищённого /32. Для site-to-site через FORWARD тесты выполняют для обеих подсетей, в том числе с их реальных клиентских машин.

Производительность и отказоустойчивость

Поскольку проверенный ESP использует kernel-libipsec (user-space), нагрузку CPU и pps необходимо измерить именно на целевых аппаратных узлах. Не переносите задержки из виртуального стенда на SLA. Отдельно тестируйте длительные потоки, несколько одновременно работающих CHILD/IKE SA, смену ключей под нагрузкой, время восстановления при потере UDP и поведении NAT.

Не проверено в данной приёмке: реальный межсетевой NAT, NAT multiple peers, IPv6, высокие объёмы трафика, XFRM kernel ГОСТ, мобильный клиент, 24/7 soak, кластерный failover.