Tak zaprvé, Windows nezakazují připojovat klienty na ipsec server, který je za natem, jak tady někdo tvrdí. To je nesmysl.
Pro funkční L2TP over IPSEC v režimu NAT-NAT (server-klient) stačí :
- forwardnout UDP500 a UDP4500, zbytek provozu pak běží v tom tunelu
- pokud je server za natem, tak se musím klientským PC s windows říci, aby ignorovaly checksummy, což je právě ta zmínka v registrech "AssumeUDPEncapsulationContextOnSendRule" nastavená na "2"
- dále je důležité neprovozovat L2TP za natem u FreeBSD, protože ten má problém s poškozenýma checksumma packetů (vlivem natu). Dřív na to existoval boot kernel parametr, pak patch a v současné době nevím, jaký je u FreeBSD stav, ale asi nebude dobrý. Výživná diskuse a linky na patch byla ve foru pfSense, což je právě FreeBSD.
Každopádně mi přijde jako úlet v dnešní době rozjíždět L2TP server. Ono mi to i jako úlet přišlo už před asi 3 lety, kdy už podpora IKEv2 byla ve všem.
Proto jsem v té době rozjel IKEv2 server pro asi 300 firemních uživatelů (Windows Phone, Windows Phone 10, Android, iOS, Windows 7, Windows 10).
Na všech patformách plně ok (i když ty Windowsí mobile nejsou úplně přívětivý).
Za tu dobu jsem narazil jen na dva problém, to když MS za tu dobu 2x vydal s aktualizacema bug, který znemožňoval připojit se na IPSEC server. Nicméně to odneslo jen pár uživatelů a mělo to rychlé řešení.
Prostě IKEv2 je 100x lepší než L2TP, umí si poradit s přechodem mezi sítěma, neodpojuje se (díky MOBIKE), nevadí mu nat atd.
OpenVPN je easy, ale vyžaduje větší úsilí na instalaci a údržbu na klientech a není dostupné na všech platformách, jen na pár vybraných (pokud všechny ostatní postupně vychcípají, tak těch pár vybraných platforem bude každému stačit).
Zdar Max
PS:L2TP není šifrováno, proto se tuneleju přes IPSEC. Provoz L2TP otevřeně bez šifrování je mega úlet