OpenVPN 網路無法訪問
我正在努力在 Linode 上設置對一組虛擬機的 VPN 訪問,拓撲如下所示:
db.example.com LAN: (eth0:0) 192.168.154.127/255.255.128.0 utility.example.com LAN: (eth0:0) 192.168.164.229/255.255.128.0
並且,區域網路上的更多伺服器具有相同範圍內的地址。實用程序伺服器託管 OpenVPN 這是我伺服器的 OpenVPN 配置,客戶端配置不可用,因為我使用的是Shimo for OSX:
dev tun mode server tls-server proto udp port 1194 server 10.77.22.0 255.255.255.0 push "route 10.77.22.0 255.255.255.0" push "route 192.168.154.0 255.255.128.0" ifconfig-pool-persist ipp.txt persist-key persist-tun client-to-client ca ca.crt dh dh1024.pem cert server.crt key server.key tls-auth ta.key 0 cipher BF-CBC comp-lzo user nobody group nogroup keepalive 10 120 status openvpn-status.log verb 3
當連接到 VPN 時,我可以 ping VPN 網關,並通過 SSH 登錄,所有正常操作都沒有問題,
tcpdump
確認這些數據包正在通過tun0
我的 Mac 上的設備。嘗試 ping
192.168.154.127
VPN 不起作用,tcpdump
確認設備上沒有活動tun0
。我從閱讀這篇文章中了解到,在添加以下行時,我需要向我的 中添加
route
配置:server.conf
route 192.168.154.0 255.255.128.0
伺服器在啟動時拋出錯誤,在這里內聯:
/sbin/route add -net 192.168.154.0 netmask 255.255.128.0 gw 10.77.22.2 route: netmask doesn't match route address Usage: route [-nNvee] [-FC] [] List kernel routing tables route [-v] [-FC] {add|del|flush} ... Modify routing table for AF.
route {-h|--help} [<AF>] Detailed usage syntax for specified AF. route {-V|--version} Display version/author and exit. -v, --verbose be verbose -n, --numeric don't resolve names -e, --extend display other/more information -F, --fib display Forwarding Information Base (default) -C, --cache display routing cache instead of FIB
=使用’-A’或’–’;預設值:inet 可能的地址系列列表(支持路由):inet (DARPA Internet) inet6 (IPv6) ax25 (AMPR AX.25) netrom (AMPR NET/ROM) ipx (Novell IPX) ddp (Appletalk DDP) x25 (CCITT) X.25)
我懷疑如果我能解決這個
/sbin/route
問題,情況會按預期工作,但我不明白為什麼會失敗。客戶端通常會得到這樣的地址:
tun0: flags=8951 mtu 1500 inet 10.77.22.6 --> 10.77.22.5 netmask 0xffffffff open (pid 5142)
您
route
在配置文件中的聲明需要引用網路 ID192.168.128.0
,而不是192.168.154.0
.route
令人討厭,因為你給它一個網路 ID 和子網遮罩,而不是放在一起時,主機 ID 部分有 1。二進制的 192.168.154.0 是:
11000000.10101000.10011010.00000000
子網遮罩 255.255.128.0 如下所示:
11111111.11111111.10000000.00000000
應用於 192.168.154.0“網路 ID”的子網遮罩如下所示:
11000000.10101000.10011010.00000000 AND 11111111.11111111.10000000.00000000 --------------------------------------- 11000000.10101000.10000000.00000000 = 192.168.128.0
您可以看到被 /17 子網遮罩遮罩的 192.168.154.0 在子網遮罩結束後產生 1。192.168.154.0/17“網路”的網路ID實際上是192.168.128.0/17。更改
route
配置文件中的語句,該route
命令將停止嘔吐。