
我正在建立一個 IPsec / L2TP 網絡,我想要一台伺服器和多個客戶端。
在每個用戶端上,讓 IPsec 正常運作的唯一方法是將託管流量的介面的 IP 設定為 leftsourceip。當這個介面是公共的時,這似乎沒問題,但當機器位於 NAT 後面並且該介面具有私有 IP 時,這似乎有點錯誤。
以下是客戶端 ipsec 設定的範例:
config setup
charondebug="ike 1, knl 1, cfg 0"
uniqueids=no
conn ikev2-vpn
auto=route
compress=no
type=tunnel
keyexchange=ikev2
fragmentation=yes
forceencaps=yes
dpdaction=clear
dpddelay=300s
esp=aes256-sha256-modp4096!
ike=aes256-sha256-modp4096!
rekey=no
right=ipsec.server.url
rightid=%any
rightauth=pubkey
rightprotoport=17/1701
left=10.0.0.60
leftsubnet=10.0.0.60/32
leftid=%any
leftauth=pubkey
leftcert=my-cert.crt
leftsendcert=always
leftprotoport=17/1701
leftsourceip=10.0.0.60
該客戶端的 ip 是 10.0.0.60,因此 ipsec 正在 server/32 和該 ip/32 之間建立隧道,並且運作良好。
但由於它是一個私有IP,我可以有兩個具有相同IP的客戶端,所以它不再運作了。並且不要認為嘗試輸入此客戶端的公共 IP 是一個好主意,因為我可以擁有多個具有相同 IP 的用戶端。
我至少可以看到兩種解決方案。如果我手動為客戶端上的傳出介面提供虛擬IP,我可以輕鬆避免向多個客戶端提供相同的IP,但這需要手動操作,並且某些客戶端不允許我提供新位址(嵌入式硬體) )。
另一個解決方案是配置 ipsec 來分配虛擬 IP,但在這種情況下,我感覺就像在 L3 VPN 中設定 L2 VPN,我將擁有兩個相互重疊的 IP 網路。
我很困惑,我錯過了什麼嗎?使用 L2TP 設定 IPsec 的正確方法是什麼?
謝謝