od Nargon 19. 6. 2018 21:16
Problémem je "vlastnost" IPSecu v kombinaci s NAT 1:1. Jde o to že IPSec pro přenášená data vypočítá nějaký "hash" pro ověření že data došla v pořádku a cestou s nimi nebylo manipulováno. Na tom by nebylo nic špatného jenže problém je v tom že do těch dat je zahrnuta i hlavička paketu s IP adresami. Tedy pokud se na cestě změní IP adresy v paketu (například při průchodu NATem) tak je paket považován za poškozený a je automaticky zahozen, a finíto. Jenže když to NATem neprojde, tak se to nedostane na tvůj router a jsi ve stejné nefunkční situaci. Takže provozovat IPSec za NATem nelze, musíš mít na WAN rozhraní veřejnou IP adresu, neboť pakety tam musí přicházet s tvojí veřejnou IP v DestinationIP. To je nutná podmínka!
Řešení, které mám vyzkoušené a osobně ho provozuji je druhý NAT 1:1, který funguje reverzně k tomu co dělá poskytovatel a tedy tomu paketu vrací původní veřejnou IP adresu a až pak to je předáno VPN serveru. Následně už hash sedí a paket projde kontrolou.
Jenže jak to nastavit u tebe to bude oříšek. Na mikrotiku co mám já to jde celkem hravě. Tam jsou i dva NATy (dst-nat a src-nat), kdy jeden nat se na paket aplikuje ihned po přijetí paketu nějakým interfacem, a ten druhý se na paket aplikuje těsně před tím než je paket odesílán ven. Takže tam s tím nebyl problém. Ale u tebe nevím, čistě teoreticky by mohl fungovat One-to-one NAT, který je v manuálu s nastavením:
OriginalIP: 192.168.200.200 (tj ta IP adresa, kterou máš na WAN rozhraní routeru)
TranslatedIP: 50.51.52.53 (tj tvoje reálná veřejná IP adresa)
PLUS je asi potřeba aby jsi nastavil tu adresu 50.51.52.53 na nějaký interface routeru, to je z důvodu, aby po tom překladu NATem router ten paket neodeslal někam do sítě, ale poznal že ta cílová IP je taky jeho a paket si ponechal a předal ho interně VPN serveru.
Jenže podle manuálu přesně tohle nejde nastavit. Ani OriginalIP a ani TranslatedIP nesmí být IP adresa nějakého interface toho routeru. Což je přesně to co by jsi potřeboval udělat. Holt výrobce ví nejlépe co zákazník potřebuje a takovéto nesmyslné nastavení mu nepovolí. To je častý jev routerů pro běžné uživatele, kdy něco nejde nastavit protože výrobce ví lépe než ty co potřebuješ.
Jediné řešení tedy vidím v koupi dalšího routeru, který zapojíš mezi tvůj router a tvého poskytovatele a nastavíš ho, aby fungoval jako "reverzní NAT 1:1" k tomu co dělá poskytovatel. Tj pokud použiju můj příklad adres výše. tak na jeho WAN připojíš kabel od poskytovatele a dáš mu WAN ip 192.168.200.200 od poskytovatele. Na jeho LAN dáš IP 50.51.52.54 (tj síť 50.51.52.52/30 tj maska 255.255.255.252) a připojíš ho kabelem do WAN tvého současného routeru. A budeš provádět NAT mezi 192.168.200.200 a 50.51.52.53. Pak tvému současnému routeru dáš na WAN IP adresu 50.51.52.53, masku 255.255.255.252, bránu 50.51.52.54.
Tím by bylo hotovo. Router s VPN bude mít veřejnou IP na WAN rozhraní a L2TP/IPSec začne fungovat jak má. Jen při výběru routeru dávej dobrý pozor, aby jsi opět nenarazil na kus, kde výrobce ví nejlépe co potřebuješ a nedovolí ti na LAN rozhraní zadat IP adresu z veřejného rozsahu tj tu 50.51.52.54 z mého přikladu.
Uff, to je elaborát, ikdyž v principu je to nastavení velice snadné. Musíš udělat reverzní NAT 1:1 a paketu vrátit původní veřejnou IP adresu. Ikdyž praktická realizace už bývá těžší.
Desktop: Ryzen 7 1800X (3.95GHz, 1.35V), Asus Crosshair VI Hero, 16GB DDR4 Ram (3200MHz), 128GB SSD + 3TB HDD, Nvidia GTX 1080
Notebook: Asus UL50VT 15.6" (SU7300@1.7GHz, 4GB ram, 500GB HDD, Intel GMA 4500MHD + nVidia G210M, dlouha vydrz cca 7+ hod)