Tud-e valaki olyan fajta VPN meglétéről, amivel össze lehetne kötni közvetlenül két meglévő (otthoni) hálózatot, ahol egyikre sem igaz sem a statikus, sem a publikus IP cim megléte, hanem tipikusan valamiféle carrier grade IPv4 NAT mögött bújnak el.
Hasonló megoldások már léteznek fájlok szinkronizálására. A SyncThing egy elég menő cucc, ami demonstrálja, hogy közvetlenül tudunk kapcsolatot létesíteni két hasonlóan NAT mögé bújtatott peer között, habár a kapcsolat felépítéséhez kell egy publikusan/statikusan elérhető STUN szerver, vagy upnp funkcionalitás a routeren. Ez szerintem egy elég jó kompromisszum, hiszen ez a publikus szerver csak a kapcsolat felépítéséig szükséges (UDP hole punching), utána a forgalom már közvetlenül a két peer között tud folyni, ahol mindegyik a NAT mögött van egy-egy dedikált, dinamikusan allokált porttal cimezhető.
A jelenlegi Site-To-Site VPN-ek és tanúsítványok nem igazán barátai a NAT-nak és a változó IP címeknek és ezzel kapcsolatos DNS TTL beállításoknak. Eddig még csak olyan megoldásokat láttam, ahol legalább az egyik félnek szükséges egy publikus és statikus IP cim. Van-e valakinek ehhez ötlete?
Szerk:
Köszönöm mindenkinek a tippeket és a tapasztalatokat! egy nem teljes lista az eddigi megoldásokról:
Commerical / freemium
- Zerotier
- Tailscale
Open source / free
- SoftEther
- Tinc
- 1466 megtekintés
Hozzászólások
Ha nem kell nagy sávszél egy olcsó VPS is megteszi, és oda becsatlakozik mindkét hálózat és mér kész is.
Fedora 41, Thinkpad x280
- A hozzászóláshoz be kell jelentkezni
Valószinűleg ez a megoldás lesz a befutó jelenleg. IKEv2 alapú VPN IPSec hardveres gyorsitással már a legtöbb routeren elérhető, megtámogatva egy publikusan elérhető Linux VPS -el.
Az én elképzelésem e pillanatban inkább utópisztikusnak tűnik.
- A hozzászóláshoz be kell jelentkezni
Ez döbbenet, hirtelen megnéztem és tényleg.
- A hozzászóláshoz be kell jelentkezni
Valami olyat tudok elképzelni, hogy mindkét fél bemegy valami publikus szerverre, ami aztán összeköti őket (mint a régi telefonközpontokban a dugdosós kisasszony). Egyébként hogyan tudna valaki be VPN-ezni valahova, aminek nem ismeri a címét? Talán a dinamikus DNS megoldás erre.
- A hozzászóláshoz be kell jelentkezni
A SyncThing Device ID koncepció ki tudja kerülni a dinamikus DNS és egyéb dolgokat. A Device ID nem tartalmazza az IP cimet, ennek feloldásához fel kell keresni a publikusan elérhető szervert, ahol ezek a meta információk megosztásra kerülnek.
Azt remélem, hogy esetleg van már, vagy éppen születni készül egy hasonló Device ID koncepcióra alapuló VPN megoldás.
- A hozzászóláshoz be kell jelentkezni
ZeroTier?
- A hozzászóláshoz be kell jelentkezni
Ez is nagyon jól hangzik, köszönöm!
- A hozzászóláshoz be kell jelentkezni
Epp 48 órája használom nagy megelégedéssel.
- A hozzászóláshoz be kell jelentkezni
Nagyon jó gondolat, én is kerestem régen ilyet, de nem találtam. Írni kellene egy user mode programot, ami létrehoz egy egyszerű tunnelt ezzel a módszerrel, amin mondjuk átmegy így egy olyan VPN, ami csak egy portot használ (például Wireguard).
Azonban sajnos egy központi entitásra mindenképpen szükség lenne, amit sajnos hostolni kell -> pénzbe fog kerülni, mert nincs ingyen ebéd. STUN mellé ráadásul dinamikus DNS-t is meg kell valósítani ennek az entitásnak.
- A hozzászóláshoz be kell jelentkezni
Régen a Hamachi pont ilyen volt. Ha jól emlékszem, előbb megpróbált lyukat ütni, aztán ha nem sikerült, ment a forgalom központi szerveren keresztül. A wikipedia szerint vannak free alternatívái.
Ha a biztonság miatt aggódsz és a teljesítmény kevésbé érdekes, fölé még mindig lehet kókányolni +1 réteget.
- A hozzászóláshoz be kell jelentkezni
Bár nem csináltam, de azt gondolnám, hogy ipv6-on létre lehet hozni ilyen tunnelt, persze ha mindkét oldalon legalább van ipv6. Ha nincs, akkor teredo, de azért azzal nem voltak olyan jó tapasztalataim, amikor próbáltam még, nagyon túlterhelt volt.
- A hozzászóláshoz be kell jelentkezni
Wireguard-ot kipróbáltam imént IPv6 (itthon, Digi) és IPv6 (máshol levő szerver) között. Rendesen felépült a tunnel IPv6 Endpoint címmel.
- A hozzászóláshoz be kell jelentkezni
Az IPv6 nagyon jó abból a szempontból, hogy a NAT teljesen elfelejthető. Viszont az IP címek (IP prefixek) dinamizmusával kisebb problémákat vélek felfedezni.
- A hozzászóláshoz be kell jelentkezni
SonicWall tud site to site VPN with Dynamic DNS -t.
Kell hozzá regelni pl. dyndns.org -on DNS-t
routeren be kell kapcsolni: Exchange: Main Mode, Enable Keep Alive , ha szükséges windows broadcast
Viszont jó ha tudod:
- ha DDNS-ben valami hiba van vagy változik az IP-d, akkor nincs VPN és 5 perc mire frissül.
Istennel a hazáért és a szabadságért !
- A hozzászóláshoz be kell jelentkezni
Most lehet hogy én nem értek valamit, de mit segít neki a dinamikus DNS, ha egyszer NAT mögött van? Nem lesz érvényes IP címe. Ha lenne, legalább az egyik oldalon, akkor egy sima openvpn vagy akármi is működik.
- A hozzászóláshoz be kell jelentkezni
Mindkét végpontnak lesz dyndns-ből vagy más, hasonló szolgáltatásból feloldható IP-címe, és ezzel a névvel "célozzák meg" egymást. Ehhez a dyndns-es "trükkhöz" csak annyi kell, hogy a megcélzott fél IP-je feloldható legyen ilyen módon a nevéből - nálam egy Asus router tette így a dolgát: "jár" hozzá egy asus-os dinamikus dns szolgáltatás, és azt bekapcsolva működött a vpn "kintről" befelé, névvel hivatkozva a vpn szerverre.
- A hozzászóláshoz be kell jelentkezni
Én továbbra sem értem, hogy miért vagyunk előrébb egy dyndns-el :)
Hogyan akarja elérni egymást a két, NAT-olt hálózat mögött ülő kliens?
- A hozzászóláshoz be kell jelentkezni
UDP-nél van egy trükk: ha a két host egymás publikus IP:port -jára azonos percben forgalmat küld, azzal mindkét fél felnyitja az addig lezártnak tűnő UDP adatutat a tűzfalban.
Innentől ha ismered a túloldali UDP portot, már csak a túloldali publikus IP cím kell. És persze hogy a NAT vagy CGNAT routeren ne legyen más host által elfoglalva az a port, mert addig porthűen fordítanak IP-t.
És éppen ezért a "szerencse kell"-ért száműzendő a jövőben a NAT.
- A hozzászóláshoz be kell jelentkezni
Nem két kliens, hanem site2site vpn, ahol az egyik várja, hogy a másik kapcsolódjon hozzá. Amelyikhez kapcsolódni kell, annak ha van dyndns-ből IP-címre feloldható neve, _és_ nincs dupla nat mögött, és a saját nat-boxon a megfelelő port be van forgatva egy belső gépre (vagy a vpn a natolós dobozon van végződtetve), akkor a kapcsolódni kívánó gépen a dyndns-es névvel hivatkozva a másik félre, szépen elkezdenek beszélgetni L3-on.
Ha mindkét oldalon "sima" nat van, akkor bármelyik fél lehet a kezdeményező. Ha az egyik oldalon van dupla nat, a másikon szimpla, akkor ahol dupla nat van, onnan kell kezdeményezni a kapcsolódást. Ha mindkét oldalon dupl anat van - na az a copás, de ott a dyndns sem működik helyesen.
- A hozzászóláshoz be kell jelentkezni
Szerintem te keversz itt valamit. Mindkét oldali NAT-ról beszélünk most dupla NAT-ként. Ráadásul valószínűleg CGNAT, így nincs lehetőség portok átirányítására. A dinamikus DNS pedig bármennyi NAT esetén működik, mert ha nem ad meg a kliens IP címet, akkor a szerver azt az IP címet állítja be, amit ő lát. Tehát az IP cím bármennyi felfűzött NAT esetén jó lesz, csak éppen port nem lesz :) De az egyébként sem a dinamikus DNS feladata, hanem az upnp-é vagy az STUN-é. STUN is akárhány NAT-on keresztül működik (ott csak a NAT típusa lehet a probléma), upnp már nem. TURN pedig mindenen keresztül működik. Egyébként nem kell mindent előről kitalálni, elég ha implementálod ICE-t és akkor a legjobb kapcsolódási mód lesz választva + lesznek candidate kapcsolatok is, amire azonnal lehet váltani, ha közben esetleg változnának a link paraméterei.
- A hozzászóláshoz be kell jelentkezni
Nem keverek semmit. Ahol CGNAT _is_ van, onnan kell indítani a kapcsolódást. Ha mindkét oldalon van, akkor a normál módszerek nem működnek, mert nincs 1:1 megfeleltetés IP:port alapon a kiszolgálói oldalon.
Használtam OpenVPN-t CGNAT+NAT mögül dinamikus IP-n lógó NAT-olós router mögötti VPN szerverehez kapcsolódva (a dinamikusan kiosztott IP-t dyndns-ből név alapján feloldva), és működött. Amikor a kapcsolat ez utóbbi vége is CGNAT mögé került, akkor természetesen nem ment, de ezt írtam is.
"A dinamikus DNS pedig bármennyi NAT esetén működik, mert ha nem ad meg a kliens IP címet, akkor a szerver azt az IP címet állítja be, amit ő lát. " - azaz fals, használhatatlan információt fog tárolni, mert az az IP amit a kliens küld, az a CGNAT-on (adott szolgáltató hálózatán) kívül értelmezhetetlen, ha meg nem küld a kliens, akkor meg a szolgáltatói CGNAT-os poolból az az IP, amin a dyndns frissítésére használt tcp-session kilépett a CGNAT mögül, ami dettó nem alkalmas arra, hogy azon az adott eszközt el lehessen érni.
- A hozzászóláshoz be kell jelentkezni
Nem false, mert az a te külső IP címed. Általában nem is változik per kliens (tehát nem per session kapod). Ugyanúgy működhet NAT kerülési technika. Az hogy te még nem láttál ilyet, attól mêg van és működik is például VoIP esetén. Azért használják ritkán, mert garantálni nehéz a kapcsolat felépülését (ezért inkább tiltják direkt médiát a legtöbb környezetben, ezzel pedig a szervert terhelik). A legtöbb NAT típus megkerülhető, nem probléma ha mindkét fél NAT mögött van, direkt kommunikáció lehetséges.
- A hozzászóláshoz be kell jelentkezni
elnézést - ezt benéztem, nem tudatosult bennem, hogy NAT mögött van... Mobil internet ??
vagy van még olyan szolgáltató, aki NAT-olt címet oszt??
Istennel a hazáért és a szabadságért !
- A hozzászóláshoz be kell jelentkezni
CGNAT. Egyre gyakoribb.
- A hozzászóláshoz be kell jelentkezni
Telekom csak azt mobilon (IPv4-en).
- A hozzászóláshoz be kell jelentkezni
Az egészből csak a dinamikus DNS a lényeg: az egyik (kliens) oldalnak kell tudnia így feloldani a másik (szerver) IP-címét, hogy tudjon csatlakozni.
- A hozzászóláshoz be kell jelentkezni
Sajnos nem. Dupla NAT-nál hole punchingra is szükség van.
- A hozzászóláshoz be kell jelentkezni
Dupla NAT mögött a dyndns-t más szempontból is kenheti a hajára az egyszerű halandó, igen. Ha mőködik, és helyesen működik a díndns-es regisztrálás, akkor elég a vpn-hez ennyi, így pontos, köszönöm.
- A hozzászóláshoz be kell jelentkezni
- dupla -
- A hozzászóláshoz be kell jelentkezni
- nat - ?
- A hozzászóláshoz be kell jelentkezni
tailscale?
- A hozzászóláshoz be kell jelentkezni
Nagyon nagy köszönet! A tailscalet ki fogom próbálni mindenképpen.
Ebből a névből sikerült elindulnom, és tovább kutakodni hasonló megoldások után. Egyik, a dokumentáció alapján ígéretes:
https://www.tinc-vpn.org/documentation-1.1/How-connections-work.html
- A hozzászóláshoz be kell jelentkezni
Zerotier
- A hozzászóláshoz be kell jelentkezni
Ezen dokumentum alapján sajnos a tinc nem teljesen csak STUN+hole punching, hanem TURN is. Tehát előfordulhat, hogy keresztül megy a harmadik routeren a teljes forgalma két másiknak. Ez pedig egy mobilnetnél nem biztos, hogy szerencsés. Tény viszont, hogy így mindig lesz kapcsolati lehetőség + lehet hogy kikapcsolható ez a funkció. A másik furcsaság, hogy azt írják dinamikus publikus IP-nél is működik, ami egy olyan központi entitás nélkül, aminek fix az IP címe vagy dinamikus DNS-t alkalmaz számomra elképzelhetetlen. Szerintem itt valami csúsztatás van és legalább egy peernek szüksége van ezekre (ahogy ugye NAT nélküliségre is szüksége van legalább egy peernek).
Szerk: kikapcsolható a TURN funkció tincben (igaz csak experimental jelenleg)
- DirectOnly
= yes
|no
(no) [experimental] - When this option is enabled, packets that cannot be sent directly to the destination node, but which would have to be forwarded by an intermediate node, are dropped instead.
- A hozzászóláshoz be kell jelentkezni
Én ezen rész elolvasása után lettem optimista:
It could be that some daemons are located behind a Network Address Translation (NAT) device, or behind a firewall. In the above scenario with three daemons, if A and C are behind a NAT, B will automatically help A and C punch holes through their NAT, in a way similar to the STUN protocol, so that A and C can still communicate with each other directly. It is not always possible to do this however, and firewalls might also prevent direct communication. In that case, VPN packets between A and C will be forwarded by B.
- A hozzászóláshoz be kell jelentkezni
neked aztan fura humorod van...
- A hozzászóláshoz be kell jelentkezni
Itt is kellemes lesz, ha majd IPv6 esetén végre nem kell NAT-tal, főleg nem CGNAT-tal vacakolni.
- A hozzászóláshoz be kell jelentkezni
anno a kozvetlenul netre kotott gepre mire felment a win az osszes frissitesevel addigra mar meg is volt fertozve, ezert is ajanlottunk routert.
ez az ipv6-al nem fog visszajonni? :/
neked aztan fura humorod van...
- A hozzászóláshoz be kell jelentkezni
A CGNAT hiánya tuti előny.
NAT-ot felejtsd el, ez is jó lesz.
Filterezni ettől filterezhetsz a routerben. UDP esetén a filterezéshez a conntrack szintén barátod.
- A hozzászóláshoz be kell jelentkezni
Azért még ipv6-on sem tilos tűzfalat használni. És ha jól be van állítva, többet is ér egy sima NAT-nál.
- A hozzászóláshoz be kell jelentkezni
Nem hiszem. Az én EdgeRouter -ben az alapértelmezett IPv6 tűzfalszabály tiltja a kapcsolatok felépítését/kezdeményezését kívülről. Tehát nem lehet ICMPv6 pinget fogadni, nem lehet TCPv6 vagy UDPv6 kapcsolatot kívülről indítani, ha nincs rá explicit szabály.
Remélem a többi router is hasonlóan alapértelmezett beálltásokkal rendelkezik...
- A hozzászóláshoz be kell jelentkezni
Pingeléssel tartsd fenn a kapcsolatot, különben elhajítja a VPN. Máshogy nem fog menni.
READY.
▓
- A hozzászóláshoz be kell jelentkezni
Vagy a VPN kliens konfigban aktiváld a keepalive opciót.
- A hozzászóláshoz be kell jelentkezni
Na jó, de hogy építem fel? :-D
- A hozzászóláshoz be kell jelentkezni
Amazontol VPN: https://youtu.be/m-i2JBtG4FE - 2 userig ingyenes, annyi most pont elég is lesz. Ha beállítod, hogy mindkét router ebbe a VPN-be csatlakozzon, máris látják egymást direktben. Innen már csak konfiguráció kérdése.
- A hozzászóláshoz be kell jelentkezni
Javaslom a softether-t tud jelszavas és tanúsítvány alapú azonosítást is és a dinamikus DNS és a NAT traversal is benne van.
A kezeléséhez a konfig fájl íráson kívül van nagyon kézreálló admin kliens és a kliens manager is odaadható egységsugarú felhasználónak. Ezt használom a covid miatti sok home-office igényre. Eddig stabil.
Nem hátrány, hogy nyílt forráskódú és támogat Windowst Linuxot és Macet is (az utóbbit nem használtam). És még sok más.
A japán Tsukuba egyetemen fejlesztik.
- A hozzászóláshoz be kell jelentkezni
ha a NATnál tudsz port forwardot, akkor sima wireguard ?
- A hozzászóláshoz be kell jelentkezni
Az a baj, hogy ez a lehetőség egyre jobban kezd megszűnni. Nagyok sok szolgáltató már Carrier Grade NAT-ot alkalmaz a fogytában lévő IPv4 címek miatt, ami azt jelenti, hogy több előfizető kapja meg ugyanazt a publikus IP címet egy időben. Ez általában abban mutatkozik meg a felhasználói oldalon, hogy a router a PPPoE vagy DHCPv4 bejelentkezés/felcsatlakozás után egy 100.64.0.0/10 tartományban lévő IP címet kap/érzékel, de amikor felkeressük a "what is my ip" weboldalakat, akkor láthatjuk, hogy az IP cím nem ugyan az, átesett egy további címfordításon a szolgáltató által. Sajnos ez azt vonja maga után, hogy nincs kontroll ezen publikus IP cím portjai felett, a vissza fele irányú ICMP/TCP/UDP kapcsolat kezdeményezése nem lehetséges. Nem tudunk egy hello world web szervert a 80 as porton szolgáltatni.
Közben találtam egy wireguard barkácsolásos cikket is, ami ezt a problémát próbálja áthidalni. A coreDNS -t használja egy publikusan elérhető meta-adat kicserélő szervernek, ami segítségével valahogy megtörténik a közvetlen kapcsolat felépítés.
https://www.jordanwhited.com/posts/wireguard-endpoint-discovery-nat-tra…
Ez még elég kezdeti fázisban van, nem éppen egy "Turnkey solution".
- A hozzászóláshoz be kell jelentkezni
peervpn.
kell neki is egy initiator node. de ha mind két nat-mögötti node tud a kinti node-dal kommunikálni, akkor egymásra találnak és onnastól közvetlen megy a kommunikáció.
- A hozzászóláshoz be kell jelentkezni