Openvpn
具有混合 ipv4 和 ipv6 客戶端的 OpenVPN
我有一個處理各種客戶端的 VPN 伺服器;一些只有 ipv4,一些有 ipv4 和 ipv6,還有一些只有 ipv6。其中一些客戶端正在漫遊,因此理想情況下,如果可用,它們應該連接到 ipv6,如果不可用,則回退到 ipv4。
在我目前的設置中,OpenVPN 監聽 ipv4 和 ipv6:
proto udp proto udp6 dev tun
我的第一個問題是:雖然這似乎可行,但在一個配置文件中包含兩個 proto 是否安全且正確?
我的客戶在配置中有兩個遠端實例:
remote vpn.domain.tld port udp6 remote vpn.domain.tld port udp
我的問題也在這裡,因為這似乎有效(首先嘗試 udp6,如果失敗將回退到 udp),這是一個好方法嗎?
好。
在伺服器端,指定“proto”兩次實際上並沒有做任何事情——“proto udp6”將使它綁定一個雙棧套接字來處理 v4+v6,覆蓋上一行中的“proto udp”。
在 2.3 客戶端上,有兩個遙控器,“udp6”和“udp”是要走的路,因為舊的套接字程式碼不能正確地進行故障轉移。
在 git master (2.4-to-be) 或 3.0 (OpenVPN Connect) 客戶端上,您可以只使用“udp”,因為它會正確呼叫 getaddrinfo() 並使用伺服器和網路支持的任何 IP 協議,首先嘗試一個家庭,然後使用 OS 信號的偏好(通過 getaddrinfo() 結果排序)落入另一個。
完畢