OpenVPN服务器以太网桥接问题

我在CentOS 5(VPN服务器)上使用OpenVPN 2.0.9安装正确configuration以太网桥很困难。 我试图完成的目标是连接作为Microsoft Business Contact Manager服务器的VM(运行在同一个CentOS机器上的实例)。 然后,我会喜欢这个“BCM服务器”为192.168.1.0/24networking上的Windows XP客户端以及从VPN(10.8.0.0/24)连接的客户端提供服务。 现在的设置基于已知的工作configuration。 工作configuration的问题是它允许客户端连接和访问在VPN服务器(SVN,Samba,VM服务器)上运行的所有东西,而不是192.168.1.0/24networking上的任何计算机。

我必须透露VPN服务器在路由器/防火墙后面。 端口正在正确转发(再次,客户端能够连接到VPN服务器没有问题,netcat确认udp端口也是打开的)。

当前的ifconfig输出

br0 Link encap:Ethernet HWaddr 00:21:5E:4D:3A:C2 inet addr:192.168.1.169 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::221:5eff:fe4d:3ac2/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:846890 errors:0 dropped:0 overruns:0 frame:0 TX packets:3072351 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:42686842 (40.7 MiB) TX bytes:4540654180 (4.2 GiB) eth0 Link encap:Ethernet HWaddr 00:21:5E:4D:3A:C2 UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1 RX packets:882641 errors:0 dropped:0 overruns:0 frame:0 TX packets:1781383 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:82342803 (78.5 MiB) TX bytes:2614727660 (2.4 GiB) Interrupt:169 eth1 Link encap:Ethernet HWaddr 00:21:5E:4D:3A:C3 UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1 RX packets:650 errors:0 dropped:0 overruns:0 frame:0 TX packets:1347223 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:67403 (65.8 KiB) TX bytes:1959529142 (1.8 GiB) Interrupt:233 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:17452058 errors:0 dropped:0 overruns:0 frame:0 TX packets:17452058 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:94020256229 (87.5 GiB) TX bytes:94020256229 (87.5 GiB) tap0 Link encap:Ethernet HWaddr DE:18:C6:D7:01:63 inet6 addr: fe80::dc18:c6ff:fed7:163/64 Scope:Link UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:3086 errors:0 dropped:166 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:0 (0.0 b) TX bytes:315099 (307.7 KiB) vmnet1 Link encap:Ethernet HWaddr 00:50:56:C0:00:01 inet addr:192.168.177.1 Bcast:192.168.177.255 Mask:255.255.255.0 inet6 addr: fe80::250:56ff:fec0:1/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:4224 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) vmnet8 Link encap:Ethernet HWaddr 00:50:56:C0:00:08 inet addr:192.168.55.1 Bcast:192.168.55.255 Mask:255.255.255.0 inet6 addr: fe80::250:56ff:fec0:8/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:4226 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) 

当前的路由表

 Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.55.0 * 255.255.255.0 U 0 0 0 vmnet8 192.168.177.0 * 255.255.255.0 U 0 0 0 vmnet1 192.168.1.0 * 255.255.255.0 U 0 0 0 br0 

目前的iptables输出

 Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- anywhere anywhere ACCEPT all -- anywhere anywhere Chain FORWARD (policy ACCEPT) target prot opt source destination ACCEPT all -- anywhere anywhere Chain OUTPUT (policy ACCEPT) target prot opt source destination 

server_known_working.conf

 local banshee port 1194 proto udp dev tap0 ca ca.crt cert banshee_server.crt key banshee_server.key dh dh1024.pem server 10.8.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt push "route 192.168.1.0 255.255.255.0" client-to-client keepalive 10 120 tls-auth ta.key 0 user nobody group nobody persist-key persist-tun status openvpn-status.log verb 4 

以下是目前的CentOS服务器configuration文件。

server_ethernet_bridged.conf(当前)

 local 192.168.1.169 port 1194 proto udp dev tap0 ca ca.crt cert server.crt key server.key dh dh1024.pem ifconfig-pool-persist ipp.txt server-bridge 192.168.1.169 255.255.255.0 192.168.1.200 192.168.1.210 push "route 192.168.1.0 255.255.255.0 192.168.1.1" client-to-client keepalive 10 120 tls-auth ta.key 0 user nobody group nobody persist-key persist-tun status openvpn-status.log verb 6 

以下是与已知的工作configuration一起使用的客户端configuration文件之一。

client.opvn

 client dev tap proto udp remote XXX.XXX.XXX 1194 resolv-retry infinite nobind persist-key persist-tun ca client.crt cert client.crt key client.key tls-auth client.key 1 verb 3 

我尝试了OpenVPN提供的HOWTO以及其他

http://www.thebakershome.net/openvpn_tutorial?page=1

没有成功。

任何帮助或build议,将不胜感激。

除非你真的需要VPN客户端似乎在同一个2层子网,否则我会避免桥接。

如果192.168.1.0/24是您当前的内部子网,请将openvpnconfiguration为将192.168.2.0/24分配给VPN客户端。

那么你需要做两件事情之一:

  1. configurationopenvpn服务器到NAT vpn地址
  2. configuration您的路由器通过您的openvpn服务器为192.168.2.0/24添加静态路由

1可以如此简单

 iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o eth0 -j MASQUERADE 

只要您不关心所有vpn客户端将在服务器上显示为相同的地址,这将工作。 这种方式也使得不能从LAN连接到VPN客户端。

2是不是真的很复杂,在IOS土地,这将是公正的

 ip route 192.168.2.0 255.255.255.0 abcd 

abcd是openvpn服务器的内部IP地址。 甚至可以在廉价的Linksys路由器上添加静态路由。

我有一个类似的设置,我有:

内部LAN < – > OpenVPN服务器(在我们的企业防火墙之后)< – > OpenVPN客户端(也作为FW / DHCP服务器)< – >子网

基本上我们有OpenVPN服务器在内部充当服务器,OpenVPN客户端使用tun接口(我们使用路由)连接到它。 然后,通过该隧道,我使用ipforward规则和路由规则,允许来自内部LAN的所有stream量通过VPN隧道stream向位于OpenVPN客户端后面的外部子网。 这是OpenVPN的正常设置,再加上正确的路由,并在server.conf中添加ccd和iroute命令,让您访问OpenVPN客户端后面的子网。 从本质上讲,使用这种设置,只需使用路由接口而不是桥接,将本地局域网扩展到非现场位置。 希望有所帮助,我从来没有把它的桥接方面搞砸了。

在这种情况下可以使桥接工作,尽pipe严格来说不是必需的。 尝试删除线条

 push "route 192.168.1.0 255.255.255.0 192.168.1.1" client-to-client 

从服务器configuration,因为他们不应该需要桥接模式。 客户端连接后,尝试ping VPN服务器IP和默认LAN IP。

另外,发布的输出

 brctl show 

HTH,

JJK