Gre*_*zzo 9 vpn routing openvpn subnet netmask
我已根据此处的说明在Linux 服务器和 Windows 客户端上配置了 OpenVPN 。我的客户端可以访问服务器,但无法进一步访问 LAN。
我的服务器是 10.23.29.64/24,我的 OpenVPN 子网是 10.23.30.0/24,我的客户端是 10.0.0.71/24,所以没有重叠。
我的服务器配置文件是:
port 53
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
server 10.23.30.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 10.23.29.0 255.255.255.0"
keepalive 10 120
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
verb 3
Run Code Online (Sandbox Code Playgroud)
我的客户端配置是
client
dev tun
proto udp
remote HOSTNAME_REMOVED 53
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
ns-cert-type server
comp-lzo
verb 3
Run Code Online (Sandbox Code Playgroud)
连接后,我的客户端获得 10.23.30.6/30 并添加了 4 条路由:
10.23.29.0 255.255.255.0 10.23.30.5 10.23.30.6 1
10.23.30.1 255.255.255.255 10.23.30.5 10.23.30.6 1
10.23.30.4 255.255.255.252 10.23.30.6 10.23.30.6 30
10.23.30.6 255.255.255.255 127.0.0.1 127.0.0.1 30
Run Code Online (Sandbox Code Playgroud)
我的服务器得到 10.23.30.1/32 (也许这是问题?)
我的客户端可以 ping 10.23.30.1 和 10.23.29.64 上的服务器,但它不能比这更进一步。我还需要做什么才能让这个客户端访问我 LAN 的其余部分?
更新:
我向我的路由器添加了一个静态路由,所以它的路由表看起来像这样
{admin}=>ip rtlist
Label Destination Gateway Interface Mtc Admin Oper
10.0.0.138/32 127.0.0.1 loop 0 UP [UP]
10.0.0.255/32 127.0.0.1 loop 0 UP [UP]
10.23.29.254/32 127.0.0.1 loop 0 UP [UP]
10.23.29.255/32 127.0.0.1 loop 0 UP [UP]
87.115.131.206/32 127.0.0.1 loop 0 UP [UP]
127.0.0.1/32 127.0.0.1 loop 0 UP [UP]
255.255.255.255/32 127.0.0.1 loop 0 UP [UP]
195.166.128.189/32 87.115.131.206 Internet 0 UP UP
212.159.6.9/32 Internet 10 UP UP
212.159.6.10/32 Internet 10 UP UP
10.0.0.0/24 10.0.0.138 LocalNetwork 0 UP [UP]
10.23.29.0/24 10.23.29.254 LocalNetwork 0 UP [UP]
10.23.30.0/24 10.23.29.10 LocalNetwork 0 UP [UP]
0.0.0.0/0 Internet 10 UP UP
Run Code Online (Sandbox Code Playgroud)
但是当我从 10.23.29.10 到 10.23.30.1 进行跟踪路由时,我得到了:
traceroute to 10.23.30.1 (10.23.30.1), 30 hops max, 60 byte packets
1 dsldevice.lan (10.23.29.254) 2073.983 ms 2073.481 ms 74.545 ms
2 * * *
Run Code Online (Sandbox Code Playgroud)
和所有的星星,直到它放弃。这让我相信 traceroute 数据包没有像路由表所说的那样转发到 10.23.29.10。
我终于发现了问题所在。我正在使用 OpenVPN 的“路由”选项,它为所有 OpenVPN 连接创建一个新的子网。我的客户端从这个子网获得了一个 IP 地址,我的服务器也是如此,所以他们可以通过这个网络相互交谈。在我的服务器上启用 IPv4 转发后,我还能够将数据包发送到我的 LAN 上,并且显然能够通过它的 LAN ip 地址与服务器通信。
当客户端尝试与我 LAN 上的其他计算机通信时,来自我客户端的数据包正在到达我的 LAN 主机(我没有验证这一点,但我很确定它们是),但是这些数据包的源地址是来自 OpenVPN 网络的地址。LAN 主机知道这不在他们的 LAN 上,在这种情况下,他们唯一知道要做的就是将它们发送到默认网关,即我的路由器。我怀疑它对他们做了什么,因为将数据包发送到互联网上的私有 IP 范围毫无意义。
解决方法是为所有局域网主机添加静态路由,或者使用 OpenVPN 的“桥接”选项而不是“路由”。我还没有这样做,但我相信这是要走的路。
| 归档时间: |
|
| 查看次数: |
114313 次 |
| 最近记录: |