StrongSwan IKEv2 IPsec隧道已建立但本地服务器忽略回复报文的问题求助
StrongSwan IKEv2 IPsec隧道已建立但本地服务器忽略回复报文的问题求助
我遇到了一个StrongSwan IPsec隧道的棘手问题:隧道通过ESP和IKEv2配置完成,状态显示已正常建立,远程Checkpoint VPN端点也确认能收到我方发送的报文并给出回复,但我的Debian 11服务器却完全忽略了这些回复报文。
环境说明
我的服务器同时持有内网IP 10.0.1.1 和公网IP 100.100.100.100(本地无NAT配置),对端是由其他人负责配置的Checkpoint VPN端点。
本地swanctl配置
我的/etc/swanctl.d/conf.d/test.conf配置如下:
connections { test { local_addrs = 100.100.100.100 local { id = 100.100.100.100 auth = psk } remote_addrs = 200.200.200.200 remote { id = 200.200.200.200 } children { test_child { local_ts = 10.0.1.0/24 remote_ts = 10.0.2.0/24 esp_proposals = aes256-sha256-modp2048 dpd_action = restart start_action = start ike { proposals = aes256-sha256-modp2048 } } } version = 2 dpd_delay = 300s } } secrets { ike-psk { secret = "MY_PSK_KEY" } }
隧道状态检查
执行swanctl --list-sas查看状态,能看到隧道已建立,但入方向报文数为0,只有出方向有流量:
test: #1, ESTABLISHED, IKEv2, c7742fc57b157ccd_i* b75ae63221a8c6d7_r local '100.100.100.100' @ 100.100.100.100[4500] remote '200.200.200.200' @ 200.200.200.200[4500] AES_CBC-256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/MODP_2048 established 2326s ago, rekeying in 11899s test_child: #1, reqid 1, INSTALLED, TUNNEL, ESP:AES_CBC-256/HMAC_SHA2_256_128 installed 2326s ago, rekeying in 916s, expires in 1634s in cb90145c, 0 bytes, 0 packets out 883097a1, 15600 bytes, 260 packets, 2s ago local 10.0.1.0/24 remote 10.0.2.0/24
抓包分析与对端反馈
对端确认能收到我用nc 10.0.2.1 4444发送的测试流量,并且已经回复了报文。我用tcpdump抓包后在Wireshark中解密分析,发现了以下异常:
- 我方发送的TCP SYN报文(
10.0.1.1→10.0.2.1)能正常到达对端 - 对端回复的TCP SYN-ACK报文(
10.0.2.1→10.0.1.1)已经回到本地,但我方服务器没有发送TCP ACK响应 - 之后我方会重复发送TCP SYN,对端再次回复SYN-ACK,但始终没有ACK响应
另外,关闭UFW防火墙后,我方服务器会从公网IP 100.100.100.100(而非内网IP 10.0.1.1)发送一个ICMP“端口不可达”的报文,这个情况我在解密后的流量中也能看到。
本地防火墙规则
我配置的UFW规则如下:
ufw allow from 200.200.200.200 port 500,4500 proto udp to any ufw allow from 10.0.2.0/24 to any
我没有配置任何NAT规则,因为本地服务器本身就在local_ts子网里,发送的流量也确实用了10.0.1.1作为源地址,所以我认为不需要NAT。
我的核心疑问
- 为什么对端回复的SYN-ACK会被我方服务器忽略?
- 为什么
swanctl --list-sas显示入方向报文数为0,但我在Wireshark中明明能看到这些回复报文?
额外网络配置信息
IPsec策略(执行ip xfrm policy输出)
src 10.0.1.0/24 dst 10.0.2.0/24 dir out priority 371839 ptype main tmpl src 100.100.100.100 dst 200.200.200.200 proto esp spi 0x649d7f4d reqid 1 mode tunnel src 10.0.2.0/24 dst 10.0.1.0/24 dir fwd priority 371839 ptype main tmpl src 200.200.200.200 dst 100.100.100.100 proto esp reqid 1 mode tunnel src 10.0.2.0/24 dst 10.0.1.0/24 dir in priority 371839 ptype main tmpl src 200.200.200.200 dst 100.100.100.100 proto esp reqid 1 mode tunnel
路由表(执行ip route show table 220输出)
10.0.2.0/24 via 100.100.100.255 dev enp33s0f0 proto static src 10.0.1.1
网卡配置(执行ip a输出)
2: enp33s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether ab:cd:ef:gh:ij:kl brd ff:ff:ff:ff:ff:ff inet 100.100.100.100/24 brd 100.100.100.255 scope global dynamic enp33s0f0 valid_lft 81651sec preferred_lft 81651sec inet 10.0.1.1/24 brd 10.0.1.255 scope global enp33s0f0:0 valid_lft forever preferred_lft forever
备注:内容来源于stack exchange,提问作者Tazq
相关产品推荐
相关产品推荐

