Linux

如何連接 3 個 Openvpn Ubuntu 伺服器

  • September 12, 2017

在此處輸入圖像描述

我有三個 Open VPN 伺服器,它們都為它們後面的客戶端提供服務。如何連接它們以便所有客戶端都可以相互交談?基本上我正在尋找的是如何在同一台伺服器上將數據包從 tun0 路由到 tun1 和 tun2 ……

我已成功嘗試在這裡轉發,但我只能將流量轉發到一台伺服器(不是 2 台)。

我嘗試從其他 2 台伺服器發送每台伺服器的 ovpn 文件。這允許伺服器 A ping 其他兩個伺服器 (B&C) 及其各自的客戶端,但伺服器 A 後面的客戶端無法通過伺服器 A 將 ping 發送到其他隧道(客戶端連接)。

我還嘗試從這裡創建兩個自定義路由表,因此來自伺服器 2(和客戶端)的所有 IP 地址以及來自伺服器 3(和客戶端)的所有 IP 地址都在伺服器 1 的兩個自定義路由表中。我的想法是伺服器後面的客戶端1 可以發送 ping 並且路由表會路由它們。沒有反應。我使用 tcpdump 觀察數據包在 tun0 介面上進入伺服器 1,但它們從未被路由出站。

唯一需要注意的是,我通過每台伺服器的公共 eth0 有大量流量,所以我通過 eth1(內部網卡)發送所有 vpn 流量。

首先,您需要知道tun 和 tap 設備 之間存在差異。

tun 只模擬 PTP 連接,而 tap 設備模擬路由設備。

您可以在所有這些伺服器之間創建一個額外的隧道(tap)並設置路由。

這意味著您需要在每個客戶端上創建兩個分接設備。

Server1Tap1 需要與 Server2Tap1 位於同一子網中。

Server1Tap2 需要與 Server3Tap1 位於同一子網中。

Server2Tap2 需要與 Server3Tap2 位於同一子網中。

然後您需要創建從每個伺服器到另一個伺服器的路由。

請記住允許在每台伺服器上進行路由:

迴聲 1 > /proc/sys/net/ipv4/ip_forward

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