Networking
有什麼方法可以使單獨的 OpenVPN 連接使用單獨的網關?
我有一堆私有網路,都在 172.XXX.XXX.XXX IP 空間。當我通過 OpenVPN 連接時,有時 VPN 最終會通過同一個網關連接,該網關只允許來自第一個 VPN 的流量工作。
例子:
$ netstat -nr Routing tables Internet: Destination Gateway Flags Refs Use Netif Expire ............ 172.31 10.8.0.5 UGSc 1 0 utun3 172.32 10.8.0.5 UGSc 1 0 utun3
這裡 172.31.XXX.XXX 和 172.32.XXX.XXX 使用相同的網關/介面,只允許來自第一個連接的 VPN 的流量傳輸。
伺服器 #1 的 OpenVPN 配置:
push "route 172.32.0.0 255.255.0.0"
伺服器 #2 的 OpenVPN 配置:
push "route 172.31.0.0 255.255.0.0"
有沒有辦法讓兩者使用不同的隧道/網關?有時,當我斷開和連接很多次時,他們最終會使用不同的隧道,但並非每次都發生這種情況,而且在一切正常之前必須連接和斷開連接也很痛苦。
VPN 配置只是帶有額外推送指令的範例配置。
既然你提到配置文件是預設的,除了推送線,我認為它們都包含預設值
server 10.8.0.0 255.255.255.0
行,這使得兩個 openvpn 伺服器使用同一個池。因此,當您連接到伺服器時,它們都會分配第一個可用地址,即 10.8.0.5,並指示客戶端通過該地址路由所有連接。這將解釋隨機的“現在可以工作”的時刻,因為如果伺服器認為該地址已被使用(例如,您重新連接太快),它將使用池中的下一個可用地址,因此您會獲得另一個分配的地址。
只需
server
將兩台伺服器上的線路更改為不同,這樣客戶端就可以擁有來自不同子網的 IP 地址。這有點離題,但您可能想知道為什麼 10.8.0.5 是第一個地址。Openvpn 從 /30 子網分配 p2p 地址,因此對於每個連接,都使用單獨的 /30 子網。第一個是為伺服器本身保留的,因此 xxx1 和 xxx2 永遠不會分配給客戶端。接下來的 /30 子網有兩個可用地址,xxx5 和 xxx6,其中一個將分配給客戶端,另一個分配給伺服器對等地址。