OpenVPN 桥接器。无法访问本地网络上的机器

OpenVPN 桥接器。无法访问本地网络上的机器

遵循本指南:https://wiki.archlinux.org/index.php/OpenVPN_Bridge

这是我的设置:我有一个无线路由器(192.168.2.1),它通过 PPPoE 连接连接到 Internet,并充当本地网络的网关和 DHCP 服务器。我正在尝试在一台机器上创建VPN(192.168.2.201)。

我按照指南中的方式通过 br0 将 VPN tap0 与 eth0 桥接。连接工作正常,客户端收到正确的 IP,但我无法访问本地网络上的其他计算机(ping 仅适用于服务器和客户端)。

这是我的 server.conf:

port 1194
proto tcp
dev tap0
ca ca.crt
cert server.crt
key server.key  # This file should be kept secret
dh dh1024.pem
ifconfig-pool-persist ipp.txt
server-bridge 192.168.2.1 255.255.255.0 192.168.2.202 192.168.2.210
push "route 192.168.2.0 255.255.255.0"
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
verb 6

这是我的 client.conf:

client
dev tap
proto tcp
remote hostname.com 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
ns-cert-type server
comp-lzo
verb 6

如果您需要更多信息,请询问。谢谢。

答案1

openvpn 服务器是 ESX/ESXi/VSphere 服务器上的 vmware 虚拟机吗?

如果是,您可能需要在 vmswitch 中启用混杂模式。

问题是vmware ESX虚拟交换机默认不会“学习”新的mac地址,它只是接受VM mac地址,仅此而已。

在桥接模式下,客户端 TAP mac 地址用于 openvpn 服务器网络,如果 vmswitch 设置不正确,它将永远无法工作(tcpdump 将显示 ARP 请求,但不会对 eth0 网络上的 vpn 请求进行 ARP 回复。直到tcpdump 不显示到达 vpn 请求的 arp 回复,vmware vmswitch 仍未正确设置(在某些设置中,需要设置混杂以在两个位置启用)

按照以下方式切换混杂模式网址

最后,openvpn 桥接模式不需要启用 ip_forward。正确设置的网桥 openvpn 需要一个带有 eth0 和 tap0 的 Linux 网桥(比如 br0)。两者都需要处于混杂模式(通常在机器网络设置中设置 eth0,在 up.sh 脚本中设置 tap0)。如果像这样设置,vpn 包只是桥接,并且永远不会调用 linux ip_forward。

答案2

  • 服务器(VPN 端点)必须充当路由器以在本地和 VPN 网络之间转发数据包 - 或者换句话说:您必须在服务器上启用 IP 转发

  • 服务器要么将自己声明为本地网络的路由器(如果任何路由协议处于活动状态),要么必须将所有客户端配置为该服务器是 VPN 网络的网关(最好在 DHCP 配置中进行设置,如果有的话)

相关内容