openvpn ping到lan客户端

在这种情况下,我需要帮助:

我有一个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


有了以下规则,我可以从我的LAN ping到VPN客户端:

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:

  • 在linux路由器上启用proxy_arp:echo 1> / proc / sys / net / ipv4 / conf / proxy_arp
  • 如果不是自动发生的,则将该子网的路由添加到eth0
  • 将本地子网的路由添加到来自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。