通过OpenVPN网关进行路由

我有以下设置:

++++++++++++++++++ + OpenVPN server +........ . . . . (cat pictures) ++++++++++++++++++ | | __|__________________________________________Internet________________ | Local | DSL | ++++++++++++++++++ +++++++++++++++++++ + router1 + Ethernet + router2 + + DHCP serving +-------------+ DHCP serving + + 192.168.1.1/24 + eth0 + 10.0.0.1/24 + ++++++++++++++++++ + OpenVPN client + . + hostapd/dnsmasq + . +++++++++++++++++++ . . wlan0 . . . WLAN 1 . WLAN 2 . . (wifi clients 1) (wifi clients 2) 

这样做的目的是要有一个独立的无线局域网2,无线客户端可以连接到并通过路由器2的OpenVPN连接路由到互联网的所有stream量。

router2运行一个hostapd实例,在接口wlan0上设置一个相当简单的设置。 dnsmasq.conf也是非常小的:

 interface=wlan0 dhcp-range=10.0.0.1,10.0.0.254,12h no-host 

这运行良好。 我可以连接到无线networking,并获得一个IP地址。

OpenVPN的设置和工作。 我连接到一个商业VPN服务,所以服务器configuration不受我控制。 OpenVPN正在使用tun0

我怎么能路由所有的请求到互联网从wifi clients 2通过build立OpenVPN连接在router2? 我想我现在必须设置路由表,但是如何?

route说:

 Destination Gateway Genmask Flags Metric Ref Use Iface default 10.200.4.1 128.0.0.0 UG 0 0 0 tun0 default router1 0.0.0.0 UG 0 0 0 eth0 10.0.0.0 * 255.0.0.0 U 0 0 0 wlan0 10.200.4.0 * 255.255.252.0 U 0 0 0 tun0 <vpn server ip> router1 255.255.255.255 UGH 0 0 0 eth0 128.0.0.0 10.200.4.1 128.0.0.0 UG 0 0 0 tun0 link-local * 255.255.0.0 U 1002 0 0 eth0 192.168.1.0 * 255.255.255.0 U 0 0 0 eth0 

OpenVPN服务器是否设置为10.0.0.1/24networking路由到router2? 如果OpenVPN服务器ping 10.0.0.1怎样?

如果你想在VPN另一端的主机有能力做传入连接,那么你将需要修复你的VPN服务器。

如果这只是出站stream量,那么您可能需要设置NAT。 所以来自10.0.0.0/24networking的数据包似乎来自VPN接口。

iptables -t nat -A POSTROUTING -o tun1 -j SNAT --to-source 10.200.4.1的规则iptables -t nat -A POSTROUTING -o tun1 -j SNAT --to-source 10.200.4.1

你在/etc/iproute2/rt_tables定义一个单独的路由表,我们把它称为wlan2(数字无关紧要)。

 # in this routing table: send everything over the VPN ip route add table wlan2 $vpn_remote_ip dev tun0 # next line(s) for all LAN networks (which shall be reachable from WLAN 2) ip route add table wlan2 192.168.1.1/24 via $router1_ip ip route add table wlan2 $router1_router2_network dev eth0 src $router2_ip ip route add table wlan2 default via $vpn_remote_ip # use routing table wlan2 (instead of main) for every packet coming from the WLAN ip rule add iif $wlan_if priority 100 table wlan2 

而且,当然,您必须configurationOpenVPN服务器路由到WLANnetworking(如果您不在本地路由器中执行NAT)。

编辑1:

如果所有的互联网stream量都应该通过OpenVPN服务器,那么configuration变得非常容易。 由于已经有一个OpenVPN服务器的主机路由,所以你只需要改变从router1到OpenVPN服务器隧道IP的默认路由。