Мне нужно понять мою проблему и решить ее. Я знаю, что 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, так что теперь хэш больше не соответствует пакету, а другой конец отбрасывает пакет, потому что он был подделан (также пакеты с другого конца будут иметь измененный адрес назначения с любого публичного IP на 10.232.204.146 и будут отбрасываться).
NAT-обход изменяет способ отправки пакетов. Вместо того, чтобы отправлять пакет напрямую, зашифрованный пакет обертывается внутри обычного UDP пакета, который не хэшируется. Затем NAT может изменить IP адреса в UDP пакете, чтобы убедиться, что он попал туда, куда нужно, в то время как оригинальный зашифрованный пакет не изменился и все еще может быть проверен.
Я полагаю, что есть дополнительные накладные расходы при обертывании пакетов, как этот, так что лучше всего включать его только когда это необходимо.
.