隧道已建立,但我无法 ping 通

隧道已建立,但我无法 ping 通

我需要了解并解决我的问题。我知道 openswan 可以工作,因为当我从内部 IP 地址为 10.0.0.97 的家庭网络连接到工作 VPN 时,我可以 ping 通,但当我使用公共 xFinity wifi 时,它表明隧道已启动,但我无法 ping 通我的 VPN 的内部主机。

当我成功连接到公共 Xfinity wifi 时,我的 IP 是:

inet addr:10.232.204.146  Bcast:10.255.255.255  Mask:255.224.0.0

这是路线-n

root@ubuntu:/etc# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref      Use Iface
0.0.0.0         10.224.0.1      0.0.0.0         UG    0      0        0 wlan0
0.0.0.0         10.224.0.1      0.0.0.0         UG    0      0        0 wlan0
10.224.0.0      0.0.0.0         255.224.0.0     U     9      0        0 wlan0

当我到达此时点时,我可以正常 ping 和浏览互联网。

当我启动 ipsec/openswan 时,我明白了。

root@ubuntu:/etc# /etc/init.d/ipsec status
IPsec running  - pluto pid: 4483
pluto pid 4483
1 tunnels up

但是我无法 ping 通具有 192.168.1.xxx IP 的内部服务器。

这是我的 ipsec.conf

    config setup

    dumpdir=/var/run/pluto/
    #
    # NAT-TRAVERSAL support, see README.NAT-Traversal
    #        nat_traversal=yes
    # exclude networks used on server side by adding %v4:!a.b.c.0/24
    # It seems that T-Mobile in the US and Rogers/Fido in Canada are
    # using 25/8 as "private" address space on their 3G network.
    # This range has not been announced via BGP (at least upto 2010-12-21)
    virtual_private=%v4:10.0.0.0/8,%v4:192.168.1.0/24,%v4:172.16.0.0/12,%v4:25.0.0.0/8,%v6:fd00::/8,%v6:fe80::/10
    # OE is now off by default. Uncomment and change to on, to enable.
    oe=off
    # which IPsec stack to use. auto will try netkey, then klips then mast
    #protostack=netkey
    # Use this to log to a file, or disable logging on embedded systems (like openwrt)
    plutostderrlog=/var/log/pluto
    plutodebug="all"
    protostack=netkey

    conn work
    authby=secret
    auto=start
    type=tunnel
    left=10.232.204.146
    leftsubnet=10.0.0.0/8
    right=99.xx.xx.xx
    rightsubnet=192.168.1.0/24
    ike=aes256-sha1,aes128-sha1,3des-sha1
    leftxauthusername=xxxxx

这是我的 ipsec.secrets

@massivedude : XAUTH  "password"
10.232.204.146   vpnserver-01   : PSK "YouWillNeverKnow"

顺便说一句,尽管隧道已启动,我无法 ping 通内部主机,但我仍然可以 ping 通 yahoo.com 和 google.com

任何帮助将不胜感激。

答案1

由于 Comcast 对其整个网络使用 NAT(此处为 10.0.0.0/8 地址),因此您在使用 Comcast 时需要启用nat_traversal此连接。

原因是 IPSEC 数据包包含整个数据包的哈希值包括源地址但是 NAT 将源地址从 10.232.204.146 更改为某个您不知道的公共 IP,因此现在哈希不再与数据包匹配,另一端将丢弃该数据包,因为它已被篡改(同样,另一端的数据包的目标地址将从任何公共 IP 更改为 10.232.204.146 并被丢弃)。

NAT Traversal 改变了数据包的发送方式。加密数据包不是直接发送,而是被包裹在未经哈希处理的常规 UDP 数据包中。然后,NAT 可以更改 UDP 数据包上的 IP 地址,以确保它到达目的地,而原始加密数据包保持不变,仍可进行验证。

我相信像这样包装数据包会产生额外的开销,因此最好只在必要时打开它。

相关内容