
IPsec / L2TP ネットワークを作成しており、1 台のサーバーと複数のクライアントを用意したいと考えています。
各クライアントで、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 を持つクライアントが 2 つ存在する可能性があり、機能しなくなります。また、同じ IP を持つクライアントが複数存在する可能性があるため、このクライアントのパブリック IP を設定することは良い考えではないと思います。
少なくとも 2 つの解決策が考えられます。クライアントの送信インターフェイスに仮想 IP を手動で付与すると、複数のクライアントに同じ IP を付与することを簡単に回避できますが、手動操作が必要であり、一部のクライアントでは新しいアドレスの付与が許可されません (組み込みハードウェア)。
他の解決策としては、仮想 IP を配布するように ipsec を構成することですが、その場合、L3 VPN 内に L2 VPN を設定し、2 つの IP ネットワークが重なり合うことになるように感じます。
混乱しています。何か見落としているのでしょうか? L2TP で IPsec を設定する正しい方法は何ですか?
ありがとう