我在使用 IPCop + zerina OpenVPN 时遇到了问题。
我的网络如图所示,并且配置良好:
- IPCop 充当两个局域网 192.168.100.0/24 和 192.168.200.0/24 之间的防火墙
- OpenVPN 与 roadwarrior 配置一起工作(client1 可以通过 OpenVPN 隧道 ping IPCop 192.168.100.0 的内部 IP)。
问题是客户端 1 无法 ping 通服务器 1,因为 IPCop+OpenVPN 不会在内部 LAN 中转发流量。我无法使用这两种 OpenVPN 转发模式:
- 我无法使用 OpenVPN TUN(路由)解决方案:LAN 是隔离的,我没有地方进行路由
- 我无法使用 OpenVPN TAP(桥接)解决方案(在这种情况下可能是正确的解决方案),因为 IPCop 不支持桥接(没有桥接实用程序,显然不支持它)。
有什么解决办法吗?或者我必须将 OPenVPN 服务器移至另一台可以桥接的内部服务器(自然调整 IPCop 以允许 OpenVPN 流量到新的 VPN 服务器)。有没有更简单的解决方案,无需移动服务?
答案1
好的,新的尝试。这就是我的想法。
来自客户端的数据包的源地址为 192.168.200.X,通过 TUN 接口(客户端路由规则),VPN 服务器将其发送到目的地,但答案通过 eth1,丢失了。您应该尝试使用 来验证所有这些tcpdump
。
要解决此问题,您可以将源设置为 VPN 地址,例如使用以下命令
ip route add 192.168.100.4/24 dev tun0 src 10.169.10.X
然而,这是该测试设置的一个问题,不要指望在真实事物中会出现同样的问题。
答案2
唯一的问题是服务器 1 没有路由来将答案发送给客户端 1,只需将 192.168.100.2 添加为服务器 1 到网络 192.168.200.0 的路由,服务器 1 就应该能够回答客户端 1。路由添加-net 192.168.200.0/24 gw 192.168.100.2
答案3
这是
ipcop# ip route
10.159.19.2 dev tun0 proto kernel scope link src 10.159.19.1
192.168.100.0/24 dev eth0 proto kernel scope link src 192.168.100.2
10.159.19.0/24 via 10.159.19.2 dev tun0
192.168.200.0/24 dev eth1 proto kernel scope link src 192.168.200.2
ipcop# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.159.19.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
192.168.100.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
10.159.19.0 10.159.19.2 255.255.255.0 UG 0 0 0 tun0
192.168.200.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
我认为问题在于没有默认网关,因此没有地方来路由流量。
客户端上的路由表是
client1# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.159.19.5 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
10.159.19.1 10.159.19.5 255.255.255.255 UGH 0 0 0 tun0
192.168.100.0 10.159.19.5 255.255.255.0 UG 0 0 0 tun0
192.168.200.0 0.0.0.0 255.255.255.0 U 0 0 0 vboxnet1
vboxnet1 充当普通 eth 接口。它是与客户端 1 连接到红色网络 (192.168.200.0/24) 的接口。