在这种情况下,我需要帮助:
我有一个tap0接口在我的openvpn服务器与IP 10.22.8.1
我的eth0接口是192.168.1.155
路线表:
192.168.1.0 – 0.0.0.0 – 255.255.255.0 – eth0
10.22.8.0 – 10.22.8.1 – 255.255.255.0 – tap0
0.0.0.0 – 192.168.1.10 – 0.0.0.0 – eth0
iptables -v -t nat -A PREROUTING -i eth0 -d 192.168.10.0/24 -j NETMAP – 到10.22.8.0/24
iptables -t nat -A POSTROUTING -o tap0 -j MASQUERADE
我有一个路由192.168.10.0在LAN客户端到我的VPN服务器。 Tcpdump显示数据包从eth0redirect到tap0,netmap工作。
但是,当我尝试相反,我不能从VPN客户端ping我的局域网
iptables -v -t nat -A PREROUTING -i tap0 -d 10.22.8.0/24 -j NETMAP – 到192.168.1.0/24
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
tcpdump显示数据包到达tap0但不去eth0。 这就像netmap规则不起作用。
你可以帮帮我吗? 我究竟做错了什么?
你这样做是错的。
第一 – 使用第三层连接,而不是第二层为vpn。 节省stream量。
第二 – 使用brouting来获得proxy-arp完成的技巧,并将ip地址从本地子网中分配给vpn客户端 – 所以它们只是显示为本地
第3步 – 或者使用路由并将路由设置到192.168.1.0/network中所有系统的10.22.8 / 24子网中的客户端, 或者使用vpn系统作为默认网关以避免路由问题。
使用brouting:
将本地子网的路由添加到来自openvpn的tun设备。
比方说,我们打算在vpn(192.168.1.240 – 192.168.1.255)上使用主机的最后16个IP地址,这意味着我们有一个28位的子网192.168.1.240/28。 创buildtun设备static(openvpn –mktun),然后将vpn子网的路由添加到设备ip route add 192.168.1.240/28 dev tun0
在此之后,在启用ip转发和代理arp后,linux系统会将来自本地客户端的所有请求“路由”到vpn端的客户端,反之亦然。
你有一个第三层VPN(更快,更less的stream量)与第二层连接和全面透明的访问所有系统。
过滤和其他一切可以通过iptables完成。
KR,
金属扣眼
你好,非常感谢你的帮助。 最后我决定遵循第三点。
我的企业局域网中的客户端configuration了双ip。
正常192.168.1.X和vpn一个10.22.8.X
VPN客户端在这两个networking中具有双重IP:
inet 192.168.1.31/24 brd 192.168.1.255 scope global eth1
inet 10.22.8.243/24 scope global eth1
10.22.8.240 – 10.22.8.243 – 255.255.255.240 – UG – eth1
10.22.8.0 – * – 255.255.255.0 – U – eth1
服务器有proxy_arp,arp_accept和ip_forward可用。 现在正在工作。
我非常感谢你的帮助Gromit。