首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >隧道开了,但我不能

隧道开了,但我不能
EN

Server Fault用户
提问于 2016-12-28 19:05:00
回答 1查看 7.5K关注 0票数 3

我需要理解和解决我的问题。我知道openswan可以工作,因为当我从家庭网络用10.0.0.97的内部ip地址连接到工作的VPN时,我可以ping,但当我使用公共xFinity wifi时,它表明隧道已经开通,但我不能打开我的VPN的内部主机。

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

代码语言:javascript
复制
inet addr:10.232.204.146  Bcast:10.255.255.255  Mask:255.224.0.0

这是路由-n

代码语言:javascript
复制
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

当我在此时,我可以平和浏览互联网好。

当我开始ipsec/openswan的时候。我明白了。

代码语言:javascript
复制
root@ubuntu:/etc# /etc/init.d/ipsec status
IPsec running  - pluto pid: 4483
pluto pid 4483
1 tunnels up

但是,我不能使用拥有192.168.1.xxx IP的内部服务器。

这是我的ipsec.conf

代码语言:javascript
复制
    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

代码语言:javascript
复制
@massivedude : XAUTH  "password"
10.232.204.146   vpnserver-01   : PSK "YouWillNeverKnow"

顺便说一句,即使隧道已经打开,而且我不能打开内部主机,我仍然可以平yahoo.com和google.com

任何帮助都将不胜感激。

EN

回答 1

Server Fault用户

回答已采纳

发布于 2016-12-28 22:48:17

因为康卡斯特使用NAT作为他们的整个网络(这里您的10.0.0.0/8地址),所以在使用Comcast时,您需要为这个连接启用nat_traversal

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

NAT遍历会改变数据包的发送方式。加密的数据包不是直接发送,而是包装在未散列的常规UDP数据包中。然后,NAT可以更改UDP数据包上的IP地址,以确保它到达需要到达的位置,而原始加密的数据包保持不变,仍然可以进行验证。

我相信包装这样的数据包会增加额外的开销,所以最好在必要时才打开它。

票数 3
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/823073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档