我的目标是将我的华硕 RT-68 路由器连接到远程 VPN 网络,以便 LAN 计算机可以访问远程计算机。远程 OpenVPN 服务器在 Zentyal Linux 发行版上运行。
我的 LAN 地址范围是 100.100.0.0/24,远程地址范围是 192.168.0.0/24。在 LAN 计算机上使用 OpenVPN 客户端软件(我使用的是 OSX 版 Tunnelblick)时,它会连接到服务器,我可以按预期连接到远程机器。路由看起来正常:
$ traceroute 192.168.0.30
traceroute to 192.168.0.30 (192.168.0.30), 64 hops max, 52 byte packets
1 192.168.160.1 (192.168.160.1) 10.490 ms 9.074 ms 8.067 ms
2 192.168.0.30 (192.168.0.30) 9.584 ms 9.784 ms 7.616 ms
我还可以在我的 ifconfig 输出中看到相应的接口:
tap0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 8e:bf:97:06:50:a2
inet 192.168.160.4 netmask 0xffffff00 broadcast 192.168.160.255
media: autoselect
status: active
open (pid 22745)
因此,我在路由器 (IP 100.100.0.1) 上使用相同的 ovpn 配置(包括证书),并且 Web 界面显示已成功连接。我还可以在路由器上的 ifconfig 输出中看到一个新接口:
tap15 Link encap:Ethernet HWaddr 36:13:AE:AE:33:C9
inet addr:192.168.160.10 Bcast:192.168.160.255 Mask:255.255.255.0
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:4553 errors:0 dropped:0 overruns:0 frame:0
TX packets:355471 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:522084 (509.8 KiB) TX bytes:78850779 (75.1 MiB)
但当我尝试 ping 或 traceroute 远程 VPN 机器时,它们无法访问。Traceroute 需要很长时间,如下所示:
# traceroute 192.168.0.30
traceroute to 192.168.0.30 (192.168.0.30), 30 hops max, 38 byte packets
1 * * *
2 * * *
3 * * *
4 * * *
5 * 192.168.160.10 (192.168.160.10) 1394.990 ms !H *
6 * * *
7 * 192.168.160.10 (192.168.160.10) 23.796 ms !H *
8 * * *
9 * * *
10 *
等等。因此,无论是对于路由器还是对于 LAN 计算机,都看不到远程计算机。
Netstat 输出为:
# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
77.37.206.1 0.0.0.0 255.255.255.255 UH 0 0 0 vlan2
192.168.160.0 0.0.0.0 255.255.255.0 U 0 0 0 tap15
192.168.0.0 192.168.160.1 255.255.255.0 UG 0 0 0 tap15
100.100.0.0 0.0.0.0 255.255.255.0 U 0 0 0 br0
77.37.206.0 0.0.0.0 255.255.254.0 U 0 0 0 vlan2
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 77.37.206.1 0.0.0.0 UG 0 0 0 vlan2
Asus 固件版本最新:3.0.0.4.378_9313。防火墙已禁用。
我这里漏掉了什么?我猜是一些需要配置的额外路由。