网络 – OpenVPN网桥.无法访问本地网络上的计算机

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

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

我在指南中将VPN tap0与eth0桥接到br0桥接.连接工作正常,客户端收到正确的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

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

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

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

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

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

按照此url切换混杂模式

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

转载注明原文:网络 – OpenVPN网桥.无法访问本地网络上的计算机 - 代码日志