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-адресов, но в этом случае мне кажется, что я настраиваю VPN L2 внутри VPN L3, и у меня будут две IP-сети друг над другом.

Я запутался, может я что-то упустил? Как правильно настроить IPsec с L2TP?

Спасибо

Связанный контент