我需要理解和解决我的问题。我知道openswan可以工作,因为当我从家庭网络用10.0.0.97的内部ip地址连接到工作的VPN时,我可以ping,但当我使用公共xFinity wifi时,它表明隧道已经开通,但我不能打开我的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当我在此时,我可以平和浏览互联网好。
当我开始ipsec/openswan的时候。我明白了。
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
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"顺便说一句,即使隧道已经打开,而且我不能打开内部主机,我仍然可以平yahoo.com和google.com
任何帮助都将不胜感激。
发布于 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地址,以确保它到达需要到达的位置,而原始加密的数据包保持不变,仍然可以进行验证。
我相信包装这样的数据包会增加额外的开销,所以最好在必要时才打开它。
https://serverfault.com/questions/823073
复制相似问题