我如何确保通过 ipsec 进行的 ping 流量可以传到外面?

我如何确保通过 ipsec 进行的 ping 流量可以传到外面?

我有一个 VPN 隧道(ipsec/StrongSwan) 设置,已连接。另一方显然能够通过隧道 ping 我。但是据说另一方从未收到我这边的 ping。因此,另一方(我无法控制)认为这是我这边的配置问题。

我对此确实不确定,因为我可以看到 tcpdumping 时发出的 ping 数据包:

$ ping -c 5 192.168.33.1
PING 192.168.33.1 (192.168.33.1) 56(84) bytes of data.
--- 192.168.33.1 ping statistics ---
5 packets transmitted, 0 received, 100% packet loss, time 4009ms

(at the same time in another console)
$ tcpdump host REMOTE
09:22:07.539582 IP OURS > REMOTE: ESP(spi=0xXXXXXX,seq=0x3), length 132
09:22:08.547608 IP OURS > REMOTE: ESP(spi=0xXXXXXX,seq=0x4), length 132
(... one packet per ping ...)

ESP 流量显然是我的 ping。确保我已禁用我这边的所有防火墙。

因此我的问题是:我如何确保 ping 数据包已发出并被接收?这可能是什么原因?我还能做些什么来帮助调试该问题?

附注:,我已经设置并运行了另一个 VPN,使用完全相同的配置。

有关隧道的一些信息:

$ ipsec statusall chtunnel
Security Associations (2 up, 0 connecting):
   chtunnel[377]: ESTABLISHED 5 minutes ago, OURS[OURS]...REMOTE[REMOTE]
   chtunnel[377]: IKEv1 SPIs: xxxxxxx_i* xxxxxxxxxx_r, pre-shared key reauthentication in 39 minutes
   chtunnel[377]: IKE proposal: AES_CBC_256/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_1024
   chtunnel{442}:  INSTALLED, TUNNEL, reqid 45, ESP SPIs: xxxxxx_i xxxxxx_o
   chtunnel{442}:  AES_CBC_256/HMAC_SHA1_96/MODP_1024, 0 bytes_i, 756 bytes_o (9 pkts, 22s ago), rekeying in 26 minutes
   chtunnel{442}:   192.168.32.1/32 === 192.168.33.0/24

756 bytes_o (9 pkts, 22s ago)当我发送 ping 时,统计数据确实会增加(每个 ping 一个数据包)。

答案1

使用 tcpdump 专门为隧道接口捕获流量应该会显示流量是否通过隧道离开,这样您就可以确保 VPN 的另一端正在接收流量。

这将向您显示加密的流量。如果您想具体检查所有流量,您可以关注 strongswan wiki 中的这个 wiki:

https://wiki.strongswan.org/projects/strongswan/wiki/CorrectTrafficDump

最有可能的是,另一端没有接受流量,而是将其丢弃到某个防火墙中,但这样你就可以确定,并可以要求他们检查一下

相关内容