openSwan VPN 已启动,无法 ping 远程子网

openSwan VPN 已启动,无法 ping 远程子网

当我运行命令 ipsec auto status 时我得到以下输出:

......           
172.16.255.1/32===104.131.13.155<104.131.13.155>:17/1701...41.203.65.124<41.203.    65.124>===10.100.108.51/32; erouted; eroute owner: #13
.......
000 #13: "globacom-vpn":500 STATE_QUICK_I2 (sent QI2, IPsec SA established);     EVENT_SA_REPLACE in 2243s; newest IPSEC; eroute owner; isakmp#10; idle; import:admin initiate
000 #13: "globacom-vpn" [email protected] [email protected] [email protected] [email protected] ref=0 refhim=4294901761
000 #10: "globacom-vpn":500 STATE_MAIN_I4 (ISAKMP SA established); EVENT_SA_REPLACE in 79407s; newest ISAKMP; lastdpd=10s(seq in:15699 out:0); idle; import:admin initiate
000

服务 ipsec 状态

IPsec running  - pluto pid: 14150
pluto pid 14150
1 tunnels up
some eroutes exist

ip xfrm 策略

src 172.16.255.1/32 dst 10.100.108.51/32 proto udp sport 1701
    dir out priority 2080
    tmpl src 104.131.13.155 dst 41.203.65.124
            proto esp reqid 16405 mode tunnel
src 10.100.108.51/32 dst 172.16.255.1/32 proto udp dport 1701
    dir fwd priority 2080
    tmpl src 41.203.65.124 dst 104.131.13.155
            proto esp reqid 16405 mode tunnel
src 10.100.108.51/32 dst 172.16.255.1/32 proto udp dport 1701
    dir in priority 2080
    tmpl src 41.203.65.124 dst 104.131.13.155
            proto esp reqid 16405 mode tunnel
src ::/0 dst ::/0
    socket out priority 0
src ::/0 dst ::/0
    socket in priority 0
src 0.0.0.0/0 dst 0.0.0.0/0
    socket out priority 0
src 0.0.0.0/0 dst 0.0.0.0/0
    socket in priority 0
src 0.0.0.0/0 dst 0.0.0.0/0
    socket out priority 0
src 0.0.0.0/0 dst 0.0.0.0/0
    socket in priority 0
src 0.0.0.0/0 dst 0.0.0.0/0
    socket out priority 0
src 0.0.0.0/0 dst 0.0.0.0/0
    socket in priority 0
src 0.0.0.0/0 dst 0.0.0.0/0
    socket out priority 0
src 0.0.0.0/0 dst 0.0.0.0/0
    socket in priority 0
src 0.0.0.0/0 dst 0.0.0.0/0
    socket out priority 0
src 0.0.0.0/0 dst 0.0.0.0/0
    socket in priority 0
src 0.0.0.0/0 dst 0.0.0.0/0
    socket out priority 0

ping 10.100.108.51

PING 10.100.108.51 (10.100.108.51) 56(84) bytes of data.
From 104.131.13.155 icmp_seq=1 Destination Host Unreachable
From 104.131.13.155 icmp_seq=2 Destination Host Unreachable
From 104.131.13.155 icmp_seq=3 Destination Host Unreachable

我究竟做错了什么?

答案1

最终修复了这个问题。

这是我所做的:

  1. 在 ipsec.conf 文件中,我必须注释掉 leftprotoport,该端口被设置为

    leftprotoport=17/1701
    

    这实际上将 VPN 连接限制为使用 UDP 端口 1701 的 L2TP。检查 ip xfrm 策略显示源端口和目标端口设置为 1701。这意味着我无法通过 TCP 发送任何流量。唯一允许的流量来自 UDP 端口 1701。

  2. 当我在 eth0 上运行 tcpdump 时,我注意到有一些 udp 校验和错误。显然这是由于 debian 设置为使用硬件 TCP/UDP 校验和卸载造成的。以下命令禁用了它。

    $ ethtool --offload  eth0  rx off  tx off
    $ ethtool -K eth0 gso off
    

现在,当我对远程主机/网络运行跟踪路由时,我只看到一个跳数,而当配置了错误的 ipsec 策略时,则有 11 个跳数。我还看到 ESP(spi=0XXXX, seq=xxxx) 数据包是 tcpdump 到远程主机的输出的一部分,同时以 ping/telnet 的形式发送流量。

相关内容