我有一个客户端(也是 192.168.203.0/24 网络的网关),它正在尝试连接到远程服务器(即 192.168.150.0/24 网络的网关)并在它们之间建立完全桥接。
客户端具有以下 OpenVPN 配置:
dev tun
remote gs.example.com
ca OurCompany-CA.crt
client
port 5800
proto udp
comp-lzo
verb 3
cipher BF-CBC
ca /etc/openvpn/gs-keys/ca.crt
cert /etc/openvpn/gs-keys/kang.crt
key /etc/openvpn/gs-keys/kang.key
keepalive 10 60
status /var/log/openvpn-status.log
log-append /var/log/openvpn.log
服务器有以下内容:
port 5800
proto udp
dev tun
push "route 192.168.150.0 255.255.255.0"
push "route 192.168.203.0 255.255.255.0"
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/kang-server.crt
key /etc/openvpn/keys/kang-server.key
dh /etc/openvpn/keys/dh1024.pem
server 192.168.155.0 255.255.255.0
keepalive 10 120
comp-lzo
status /var/log/openvpn-status.log
log /var/log/openvpn.log
verb 3
persist-key
persist-tun
client-config-dir /etc/openvpn/ccd
/etc/openvpn/ccd/kang.exmaple.org 文件包含以下内容:
iroute 192.168.203.0 255.255.255.0
从 kang (192.168.203.1),我可以 ping 192.168.150.1,但其他任何端口都无法连接(150.10、150.11 等端口都显示“目标端口无法访问”)。从 gs (192.168.150.1),我可以 ping 203 子网中的任何端口。
从 203 网络上的任何地方,我都可以 ping 192.168.150.1,但无法 ping 该子网上的任何其他东西(当我 ping 192.168.150.10 时,会收到“目标端口无法访问”的消息)。从 150 子网上的任何位置(例如,如果我在 192.168.150.10 上),我甚至无法 ping 192.168.203.1。
kang 上的防火墙对通过其 tun 适配器的任何内容都设置了 ACCEPT 规则。在 gs 上,我也对 tun0 设置了 ACCEPT 规则,但即使我完全关闭防火墙,仍然会遇到这些问题。
我想知道 iroute 规则是否从 ccd 文件中读取。这些规则应该如何显示在日志中?
编辑:
两台机器上的 ip_forwarding (/proc/sys/net/ipv4/ip_forward) 都设置为 1。
如果我执行跟踪路由,则在 gs 网关(192.168.150.1)上执行跟踪路由:
traceroute 192.168.203.40
traceroute to 192.168.203.40 (192.168.203.40), 30 hops max, 38 byte packets
1 192.168.155.6 (192.168.155.6) 396.019 ms 372.837 ms 362.607 ms
2 192.168.203.40 (192.168.203.40) 364.324 ms 387.439 ms 366.329 ms
来自 192.168.150.10 的相同跟踪路由:
traceroute 192.168.203.40
traceroute to 192.168.203.40 (192.168.203.40), 30 hops max, 38 byte packets
1 192.168.150.1 (192.168.150.1) 1.409 ms 1.173 ms 1.958 ms
2 192.168.150.1 (192.168.150.1) 1.475 ms 1.222 ms 1.068 ms
192.168.150.10的路由表如下:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.11.0 * 255.255.255.0 U 0 0 0 br-lan
192.168.150.0 * 255.255.255.0 U 0 0 0 eth0.2
default 192.168.150.1 0.0.0.0 UG 0 0 0 eth0.2
来自 192.168.203.1 (kang) 的类似跟踪路由:
traceroute 192.168.150.1
traceroute to 192.168.150.1 (192.168.150.1), 30 hops max, 40 byte packets using UDP
1 192.168.150.1 (192.168.150.1) 51.687 ms 50.260 ms 54.513 ms
kang:~ # traceroute 192.168.150.10
traceroute to 192.168.150.10 (192.168.150.10), 30 hops max, 40 byte packets using UDP
1 192.168.155.1 (192.168.155.1) 48.623 ms 55.955 ms 54.684 ms
2 192.168.155.1 (192.168.155.1) 57.062 ms 55.816 ms 57.978 ms
Kang 的路由(Kang 也是个人用户的 VPN 服务器。他们可以访问 192.168.203.0/24 和 192.168.150.1,但 192.168.150.0/24 上的其他任何地址都无法访问)。该 VPN 使用 192.168.137.0/24 子网:
route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.137.2 * 255.255.255.255 UH 0 0 0 tun0
192.168.155.5 * 255.255.255.255 UH 0 0 0 tun1
192.168.155.1 192.168.155.5 255.255.255.255 UGH 0 0 0 tun1
10.42.7.0 * 255.255.255.0 U 0 0 0 eth1
192.168.137.0 192.168.137.2 255.255.255.0 UG 0 0 0 tun0
192.168.203.0 * 255.255.255.0 U 0 0 0 eth0
192.168.150.0 192.168.155.5 255.255.255.0 UG 0 0 0 tun1
link-local * 255.255.0.0 U 0 0 0 eth0
loopback * 255.0.0.0 U 0 0 0 lo
default 10.42.7.1 0.0.0.0 UG 0 0 0 eth1
答案1
要检查的一些事项:
确保
/proc/sys/net/ipv4/ip_forward
它1
同时在 OpenVPN 服务器和客户端机器上。确保非 OpenVPN 端点的机器具有路由信息,以便使用 VPN 隧道到达其他网络。如果机器是其各自网络的网关,则应自动处理路由。如果不是,则默认网关需要具有静态路由,该路由将通过 OpenVPN 端点发送其他网络的流量。