Мне нужно понять и решить мою проблему. Я знаю, что openswan работает, потому что когда я подключаюсь из домашней сети с внутренним IP-адресом 10.0.0.97 к рабочему VPN, я могу пинговать, но когда я использую общедоступный Wi-Fi xFinity, он указывает, что туннель запущен, но я не могу ping внутренние хосты моего VPN.
Когда я успешно подключаюсь к общедоступному Wi-Fi Xfinity, мой 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
Но я не могу пинговать свои внутренние серверы с IP-адресами 192.168.1.xxx.
Вот мой 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
Любая помощь будет оценена по достоинству.
Поскольку Comcast использует NAT для всей своей сети (ваш адрес 10.0.0.0/8 здесь), вам необходимо включить nat_traversal
для этого подключения при использовании Comcast.
Причина этого в том, что пакеты IPSEC включают хеш всего пакета. включая исходный адрес. Но NAT изменяет адрес источника с 10.232.204.146 на какой-то общедоступный IP-адрес, который вы не знаете, поэтому теперь хэш больше не соответствует пакету, а другой конец отбрасывает пакет, потому что он был подделан (аналогично пакеты от другого end изменит адрес назначения с любого общедоступного IP-адреса на 10.232.204.146 и будет отброшен).
NAT Traversal изменяет способ отправки пакетов. Вместо того, чтобы отправлять пакет напрямую, зашифрованный пакет упаковывается в обычный пакет UDP, который не хешируется. Затем NAT может изменить IP-адреса в пакете UDP, чтобы убедиться, что он попадает туда, куда ему нужно, в то время как исходный зашифрованный пакет не изменяется и все еще может быть проверен.
Я считаю, что при упаковке таких пакетов есть дополнительные накладные расходы, поэтому лучше всего включать его только при необходимости.