IPsec 和私有 IP

IPsec 和私有 IP

我正在创建一个 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 正在服务器/32 和此 ip/32 之间创建隧道,并且运行良好。

但由于它是私有 IP,我可以有两个具有相同 IP 的客户端,因此它不再起作用。不要认为尝试放置此客户端的公共 IP 是个好主意,因为我可以有多个具有相同 IP 的客户端。

我至少可以想到两种解决方案。如果我手动为客户端上的传出接口指定一个虚拟 IP,我可以轻松避免为多个客户端指定同一个 IP,但这需要手动操作,而且有些客户端不允许我指定新地址(嵌入式硬件)。

另一种解决方案是配置 ipsec 来分发虚拟 ip,但在这种情况下,我觉得我是在 L3 VPN 内设置 L2 VPN,并且我会有两个 IP 网络相互叠加。

我很困惑,我是不是漏掉了什么?使用 L2TP 配置 IPsec 的正确方法是什么?

谢谢

相关内容