Linux

在兩台 Linux 機器上使用 OpenVPN 不在網關上通過網際網路連結網路

  • August 29, 2011

我正在執行連接兩個網路上的兩台 linux 機器的 OpenVPN。這些機器不是網路的網關。還有單獨的 DD-WRT 路由器充當兩個網路上的網關。

我想使用這個設置使兩個網路在網際網路上完全可見和可用。我需要在每個盒子/路由器上設置哪些類型的路由才能實現這一點?我是否需要使用任何類型的 iptables 規則(不認為我會)。

另外,只有幾點-

  • 兩個盒子之間的連結工作正常。他們能夠相互ping通並傳輸流量。
  • 我不希望通過 VPN 傳遞任何正常的網際網路流量——只希望流量進入特定站點。
  • 這些網路具有單獨的 IP 範圍和網路遮罩 255.255.255.0

我被卡住了,我嘗試在我的 linux 機器和路由器上添加各種靜態路由,但我似乎無法在 VPN 連結之外得到任何可 ping 的東西。任何幫助將不勝感激!


更新

我已經在我的 VPN 盒子和 DD-WRT 路由器上添加了路由,但是我無法 ping 機器之外的任何東西。我可以從 VPN 客戶端 ping 172.16.130.2,反之亦然,我可以從 VPN 伺服器 ping 172.16.120.2,但仍然沒有別的。

我還在兩個 VPN 盒子的核心中啟用了 IP 轉發。

添加目前路線:

VPN 伺服器:未發布的靜態 IP eth0 / 172.16.130.2 eth1 / 10.9.8.1 tun0

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.9.8.2        *               255.255.255.255 UH    0      0        0 tun0
24.249.108.192  *               255.255.255.224 U     0      0        0 eth0
172.16.130.0    172.16.130.1    255.255.255.0   UG    0      0        0 eth1
172.16.130.0    *               255.255.255.0   U     0      0        0 eth1
172.16.120.0    10.9.8.2        255.255.255.0   UG    0      0        0 tun0
default         wsip-24-249-108 0.0.0.0         UG    0      0        0 eth0

VPN 客戶端:172.16.120.2 eth0 / 10.9.8.2 tun0

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.9.8.1        *               255.255.255.255 UH    0      0        0 tun0
172.16.130.0    10.9.8.1        255.255.255.0   UG    0      0        0 tun0
172.16.120.0    *               255.255.255.0   U     0      0        0 eth0
default         munch-router    0.0.0.0         UG    0      0        0 eth0

您需要將路由添加到指向 linux VPN“網關”的相反 VPN 段的 DD-WRT 框。您還需要通過到另一個站點的 tap/tun 介面在這些 VPN 網關上路由到另一個站點。

DD_WRT_SITE_A# route add SITEB/24 gw SITEA_VPN_GATEWAY_IP
VPN_GATEWAY_SITE_A# route add SITEB/24 gw tap_ip_of_SITE_B_VPN_GATEWAY

DD_WRT_SITE_B# route add SITEA/24 gw SITEB_VPN_GATEWAY_IP
VPN_GATEWAY_SITE_B# route add SITEA/24 gw tap_ip_of_SITE_A_VPN_GATEWAY

除非您已經這樣做了,否則您還需要在新的 linux VPN 網關盒上啟用路由:

http://www.ducea.com/2006/08/01/how-to-enable-ip-forwarding-in-linux/

# sysctl -w net.ipv4.ip_forward=1

引用自:https://serverfault.com/questions/305894