Vpn

xl2tpd:在不使用預設路由的情況下,為整個子網提供 L2TP/IPsec VPN 連接

  • November 30, 2017

我已經使用 OpenSwan 和 xl2tpd 使用“nodefaultroute” ppp 選項設置了 L2TP/IPsec VPN。伺服器的虛擬 IP 地址設置為 10.10.31.1,它分配的地址範圍為 10.10.31.2-254。這會在 10.10.31.1 <-> 10.10.31.2 等之間建立 PPP 連結,並且工作正常 - 連接 VPN 的主機可以與伺服器通信。

如何設置 ppp 連結,使伺服器端看起來像整個範圍 10.10.0.0 而不僅僅是那個 IP 地址?我希望連接的客戶端隨後將通過 VPN 介面路由對該子網的任何請求,伺服器可以在其中擷取它們並充當網關。在另一個方向上,“proxyarp”選項將允許 VPN 伺服器將流量擷取回 VPN 客戶端。

一個明顯的解決方案是使用 VPN 伺服器作為預設路由。我不希望這樣做,以便只有特定於該子網的流量通過 VPN。這甚至可能嗎?

正如我懷疑的那樣,問題是我有點笨拙。如果有人發現這個問題並且想知道同樣的事情,這些是您應該知道的關鍵事項:

**nodefaultroute 不會進入您的 VPN 伺服器配置。**它適用於 PPP 客戶端。PPP 客戶端負責決定是否創建預設路由。這是 iOS 上的“發送所有流量”複選框。

**您的 PPP 客戶端將始終創建到遠端網關的路由,以及遠端子網的路由。**如果您在 VPN 伺服器上啟用了 IP 轉發(/proc/sys/net/ipv4/ip_forward = 1 加上 linux 上的適當 iptables 規則),您的客戶端將能夠向遠端子網上主機發送流量。

**您必須在 ppp options.xl2tpd 文件中為 VPN 伺服器 LAN 上的主機指定 proxyarp 才能將流量發送回客戶端。**這將在 arp 表中創建一個條目並在核心中啟用 proxy_arp 選項。這允許 VPN 伺服器使用自己的乙太網介面代表 VPN 客戶端接受數據包。如果您不想這樣做或需要跨路由器,那麼將 VPN 客戶端置於 NAT 之後似乎是一種流行的解決方案,儘管我自己沒有對此進行測試。

**如果客戶端要將 VPN 用作預設路由,請使用 ms-dns ppp 選項為客戶端提供名稱伺服器。**否則 iPad 會抱怨它沒有連接到網際網路。

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