Почему для пропуска трафика IPsec NAT-T брандмауэру все равно нужно разрешать ESP, если он уже разрешает UDP 4500?

Почему для пропуска трафика IPsec NAT-T брандмауэру все равно нужно разрешать ESP, если он уже разрешает UDP 4500?

Я установил туннель IPsec VPN между двумя маршрутизаторами Juniper SRX через NAT, причем NAT выполнялся брандмауэром (сервером Linux). При попытке настроить правила брандмауэра для пропуска трафика IPsec VPN я обнаружил, что хотя согласование IKE успешно завершается с разрешенными портами UDP 500 и 4500, передача трафика VPN не работает, если не добавлены правила, разрешающие ESP.

Вот правила, которые я применил к брандмауэру, но было завершено только согласование IKE:

iptables -F
iptables -P FORWARD DROP

# Inbound
iptables -I FORWARD -s <External IP address> -d <Internal IP address> -p udp --sport 500 -j ACCEPT
iptables -I FORWARD -s <External IP address> -d <Internal IP address> -p udp --sport 4500 -j ACCEPT

# Outbound
iptables -I FORWARD -s <Internal IP address> -d <External IP address> -p udp --sport 500 -j ACCEPT
iptables -I FORWARD -s <Internal IP address> -d <External IP address> -p udp --sport 4500 -j ACCEPT

Для успешной передачи данных через VPN-туннель необходимо также установить следующие два правила:

iptables -I FORWARD -s <External IP address> -d <Internal IP address> -p 50 -j ACCEPT
iptables -I FORWARD -s <Internal IP address> -d <External IP address> -p 50 -j ACCEPT

Поскольку данные ESP инкапсулированы в заголовок UDP (приведенные здесьПакеты связи VPN, перехваченные моим брандмауэром), почему брандмауэр блокирует туннельный трафик, не разрешая ESP в правилах? По моим ожиданиям, когда брандмауэр видит, что пакет содержит заголовок UDP port 4500, он должен принять пакет соответствующим образом.

Связанный контент