我有一个复杂的设置问题,我不能把我的头围绕它。
请看图纸,它显示了所有涉及的组件。 基本上我试图通过两个路由器的NAT和一个方向工作,一个不。
路由器1是一个带有两个接口(lan和vpn)的OpenWRT,而路由器2是一个Ubuntu盒子。 build筑
路由器1是OpenVPN客户端,连接到路由器2(OpenVPN服务器)。 OpenVPN子网是192.168.200.0/24,左侧的内部LAN是192.168.170.0/24,另一侧是10.0.0.10/24。 路由器2也是双宿主,第二个接口暴露了OpenVPN服务器(10.10.0.1)。
OpenWRT在两个区域都有转发,并且在两个方向都有伪装。
config defaults option input 'ACCEPT' option output 'ACCEPT' option forward 'ACCEPT' config zone option name 'lan' option input 'ACCEPT' option output 'ACCEPT' option forward 'ACCEPT' option masq '1' option mtu_fix '1' option network 'lan' config include option path '/etc/firewall.user' config rule option target 'ACCEPT' option name 'Any - Any - All' option src '*' option dest '*' option proto 'all' config zone option name 'vpn' option output 'ACCEPT' option input 'ACCEPT' option forward 'ACCEPT' option masq '1' option mtu_fix '1' option network 'OpenVPN' config forwarding option dest 'lan' option src 'vpn' config forwarding option dest 'vpn' option src 'lan'
路由器2的iptablesconfiguration如下:
iptables -F iptables -X iptables -t nat -F iptables -A FORWARD -i eth1 -o eth0 -m conntrack --ctstate NEW -j ACCEPT iptables -A FORWARD -i eth1 -o tun0 -m conntrack --ctstate NEW -j ACCEPT iptables -A FORWARD -i tun0 -o eth1 -m conntrack --ctstate NEW -j ACCEPT iptables -A FORWARD -i tun0 -o eth0 -m conntrack --ctstate NEW -j ACCEPT iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
而且这也是路线:
net.ipv4.ip_forward=1
我正在路由到Router2上的networking192.168.170./24。
route add -net 192.168.170./24 dev tun0
结果:
左边的服务器192.168.170.10可以ping通右边的服务器10.0.0.10,我有从左到右的全连接。
路由器2(192.168.200.1)可以ping路由器1的VPN IP 192.168.200.7,反之亦然。 正确的服务器10.0.0.10不能ping通左边的192.168.170.10,我没有连接从右到左 – 但我可以ping路由器1的VPN IP 192.168.200.7。
这是我的问题。 我需要透明的双向伪装。 而我不确定,我的问题是:(
谢谢!
让它工作:)
似乎你不仅需要路由,而且OpenVPN服务器上的一个客户端指令,推动内部路由到OpenVPN(iroute)
replace为客户端证书中的公共名称,并在OpenVPN服务器的server.conf中启用客户端指令)。
的/ etc / openvpn下/ CCD /
内容
ifconfig 192.168.200.7 255.255.255.0 #always configure client with static address iroute 192.168.170.0 255.255.255.0 #behind this client is the subnet
如果你想伪装,那么你必须指定一个网关! 将行route add -net 192.168.170./24 dev tun0replace为:
route add -net 192.168.170.0/24 gw 192.168.200.1
反之亦然