Jak obejít NAT z jiné adresy

Zelenac

Jak obejít NAT z jiné adresy
« kdy: 28. 01. 2016, 18:16:56 »
Zdravím,

mám dotaz. Když je klientská stanice za NATem, tak není možno, aby s touto stanicí bylo inicializováno spojení z Internetu. Teprve jakmile tato stanice vyšle paket na nějaký server, v NAT tabulce se vytvoří spojení, takže tento server pak může na stanici odeílat pakety. Jen pro ujasnění: nemůžu si ze svého počítače pingnout Raspberry Pi s 3g modemem připojeným k Internetu u o2, ale pakliže začnu pingovat nejprve z Raspberry Pi, je možné ho pingovat i z mého počítače.

Chci se proto zeptat, jestli by nešla udělat takováto habaďůra na NAT: Raspberry Pi (stanice A) pinguje můj počítač (stanice B), tedy je k němu otevřen "kanál" takový, že IP adresa mého PC může odesílat pakety na Raspberry Pi. Nešlo by potom přes jiný počitatč (stanici C) odesílat rovněž na Raspberry Pi packety, kdybych jim v hlavičce upravil IP adresu odesílatele na IP adresu mého počítače? (stanice B) Čili zahrál bych vlastně takovopu habaďůru na NAT u O2 a on by ty packety potom propustil.

Díky moc za odpovědi.
« Poslední změna: 29. 01. 2016, 00:04:29 od Petr Krčmář »


j

Re:Mechanismus posílání paketu Internetem - habaďůra na NAT
« Odpověď #1 kdy: 28. 01. 2016, 19:16:28 »
Chjo ...

Jednak, paket na stroj za NATem dorucit lze, je to zcela primitivni, specielne pokud si myslis, ze to nelze.

Druhak, to ze si to nepingnes bude spocivat nejspis v tom, ze to nema IP, to dostane az v okamziku, kdy to neco dela. Realne nic co je pripojeny v tehle sitich zadnou adresu nikdy nema, natoz fixne. Nejspis tam bude nejaky CGN ... a tyhle hruzy se proste chovaj jak se chovaj. Proste se nepocita s tim, ze by nekdo chtel jakkoli s tim komunikovat.

Tretak, proc na to chces zrovna pingovat? Si nakonfiguruj tunel a bude ti fungovat vsechno co chces.

Zelenac

Re:Mechanismus posílání paketu Internetem - habaďůra na NAT
« Odpověď #2 kdy: 28. 01. 2016, 19:21:31 »
Chjo ...

Jednak, paket na stroj za NATem dorucit lze, je to zcela primitivni, specielne pokud si myslis, ze to nelze.

Jak teda primitivne dorucis paket za natem?

Zelenac

Re:Mechanismus posílání paketu Internetem - habaďůra na NAT
« Odpověď #3 kdy: 28. 01. 2016, 19:49:48 »
Sorry ale pochybuju že je to možné, tedy ne že je to "primitivní" jak ty říkáš. Kdyby to bylo tak jednoduché, nikdy by neexistovalo kupříkladu hamachi a podobné. Osobně si myslím, že tím "primitivní" myslíš využít ke komunikaci nějakého prostředníka, server, na což já se neptám a je mi jasné, že takto to jde.

Rado2

Re:Mechanismus posílání paketu Internetem - habaďůra na NAT
« Odpověď #4 kdy: 28. 01. 2016, 20:00:12 »
Sieťam som sa naposledy venoval asi pred 15 rokmi, takže sa môžem mýliť, ale podľa mňa by to šlo (UDP) ak nevadí, že nedostaneš odpoveď. (Prípadná odpoveď by šla samozrejme na B). Takže ak máš stanicu B pod kontrolou, tak praktický význam mi uniká. Otázne je ale, čo spravia routre na ceste s podvrhnutou IP, či na to niektorý router nepríde (že paket s takou IP nemohol prísť zo siete C) a nezahodí ho.


Re:Mechanismus posílání paketu Internetem - habaďůra na NAT
« Odpověď #5 kdy: 28. 01. 2016, 20:11:34 »
Sorry ale pochybuju že je to možné, tedy ne že je to "primitivní" jak ty říkáš. Kdyby to bylo tak jednoduché, nikdy by neexistovalo kupříkladu hamachi a podobné. Osobně si myslím, že tím "primitivní" myslíš využít ke komunikaci nějakého prostředníka, server, na což já se neptám a je mi jasné, že takto to jde.
jde to primitivně, pokud má mašina za NATem veřejnou IP adresu

Zelenac

Re:Mechanismus posílání paketu Internetem - habaďůra na NAT
« Odpověď #6 kdy: 28. 01. 2016, 20:14:25 »
Sorry ale pochybuju že je to možné, tedy ne že je to "primitivní" jak ty říkáš. Kdyby to bylo tak jednoduché, nikdy by neexistovalo kupříkladu hamachi a podobné. Osobně si myslím, že tím "primitivní" myslíš využít ke komunikaci nějakého prostředníka, server, na což já se neptám a je mi jasné, že takto to jde.
jde to primitivně, pokud má mašina za NATem veřejnou IP adresu

V tomto případě musíš do routeru v NAT tabulce dát port a lokální ip stanice, pak se dá posílat na onen port a přeposílá se to na tustanici. Jiný způsob neznám. Ty jo?

Re:Mechanismus posílání paketu Internetem - habaďůra na NAT
« Odpověď #7 kdy: 28. 01. 2016, 20:44:13 »
Sorry ale pochybuju že je to možné, tedy ne že je to "primitivní" jak ty říkáš. Kdyby to bylo tak jednoduché, nikdy by neexistovalo kupříkladu hamachi a podobné. Osobně si myslím, že tím "primitivní" myslíš využít ke komunikaci nějakého prostředníka, server, na což já se neptám a je mi jasné, že takto to jde.
jde to primitivně, pokud má mašina za NATem veřejnou IP adresu

V tomto případě musíš do routeru v NAT tabulce dát port a lokální ip stanice, pak se dá posílat na onen port a přeposílá se to na tustanici. Jiný způsob neznám. Ty jo?
Já znám tři způsoby NAT: static NAT, dynamic NAT  a NAT with overload

vac

Re:Mechanismus posílání paketu Internetem - habaďůra na NAT
« Odpověď #8 kdy: 28. 01. 2016, 21:21:38 »
chacha, je opravdu dojemne pozorovat, jak dane problematice rozumi vic tazatel nez ostatni prispivajici :)

Nicmene, pokud uvazuju nejcastejsi verzi NATu (PAT 1:n), tak - NAT neni tunel/neotevírá "kanal" (!), uz podle nazvu se jedna pouze o preklad adres, tedy 1. paketu z interni site zmeni source IP adresu za vlastni (vetsinou verejnou), 2. zmeni source port (tak, aby za jednou verejnou IP mohlo vystupovat vice lidi). Pritom si pamatuje vazbu "externi destination IP a port = interni source IP a port". Az mu teto destination takovy paket prijde, tak jej zase prelozi zpatky. Tot vse.

Nejsem si jistý, jestli je možné na takovýto jeden záznam poslat víc paketů. Asi těžko. I kdyby to bylo teoreticky možné, v praxi se to nepoužívá :) Co se naopak v praxi používá jsou tunely vytáčené strojem za NATem, např. archaický, ale na konfiguraci jednoduchý PPTP a jeho modernější alternativy.

Zelenac

Re:Mechanismus posílání paketu Internetem - habaďůra na NAT
« Odpověď #9 kdy: 28. 01. 2016, 22:14:54 »
Tak už jsem chytřejší, neuvědomil jsem si, že ta potvora NAT změní v hlavičce source IP za svou IP, tzn. dávat tam fake IP tak jako tak za NATem neprojde, pač on si to změní.

Co by mě ale zajímalo, jestli tutově na 100% funguje toto:

1. Mějme dvě stanice za NATem, A a B, a jeden server.
2. Stanice A pošle na server paket, čímž za svým nejzazším routrem s NATem NAT_0 vznikne záznam: "Source IP":"Source port"..."Veřejný port", a tento router přesměruje paket na server, který ho příjme s adresou odesílatele: "NAT_0 IP":"Veřejný port"
3. Stanice B se přes server dozví, že stanice A má ip adresu se kterou přistupuje do Internetu: "NAT_0" a že je otevřen port "Veřjný port".
4. Stanice B odešle paket na adresu "NAT_0":"Veřejný port".
-------------------------------------------------------------------------
Otázka: přesměruje se tento paket až stanici A, nebo to typický router zablokuje?

Zelenac

Re:Mechanismus posílání paketu Internetem - habaďůra na NAT
« Odpověď #10 kdy: 28. 01. 2016, 22:18:03 »
Jenom upřesním, že beru situaci, kdy není možné jakkoliv manuálně modifikovat nastavení routru, beru to jako routr u providera připojení, do kterého nemůžu šahat, a to pro stanici A i B.

Law

Re:Mechanismus posílání paketu Internetem - habaďůra na NAT
« Odpověď #11 kdy: 28. 01. 2016, 22:22:09 »
Jedinná ověřená metoda komunikace s uzlem A a ulzem B za natem je přes VPN.
1.Uzel A za natem vyšle paket na bránu.
2. Nat to přeloží, vidí že cílová adresa je na VPN, tak to pošle na VPN.
3. VPN tento paket přijme, ale protože ví že uzel A chce vysílat někam dál do sítě, přepošle tento cílové stanici B.
4. Stanice B přijme paket od VPN, proběhne navázaní spojení s VPN a uzel B si myslí že je spojen přimo s uzlem A (ve skutečnosti je spojen na přímo jen s VPN, které přeposílá data zpátky uzlu A za natem)

Tudíž VPN funguje jako prostředník, a dá se takto navázat i peer to peer spojení s uzlem za natem, ovšem jsou tam většinou větší prodlevy.

Zelenáč

Re:Mechanismus posílání paketu Internetem - habaďůra na NAT
« Odpověď #12 kdy: 28. 01. 2016, 22:31:12 »
A to je právě to co nechci, používat k samotnému přeposílání dat prostředníka.

Nicméně už jsem asi našel odpověď:
https://cs.wikipedia.org/wiki/STUN

A ta je, že nějaký typ NATu to propustí, a nějaký to nepropustí.  ::)

Majo

Re:Mechanismus posílání paketu Internetem - habaďůra na NAT
« Odpověď #13 kdy: 28. 01. 2016, 22:39:48 »
chacha, je opravdu dojemne pozorovat, jak dane problematice rozumi vic tazatel nez ostatni prispivajici :)

Nicmene, pokud uvazuju nejcastejsi verzi NATu (PAT 1:n), tak - NAT neni tunel/neotevírá "kanal" (!), uz podle nazvu se jedna pouze o preklad adres, tedy 1. paketu z interni site zmeni source IP adresu za vlastni (vetsinou verejnou), 2. zmeni source port (tak, aby za jednou verejnou IP mohlo vystupovat vice lidi). Pritom si pamatuje vazbu "externi destination IP a port = interni source IP a port". Az mu teto destination takovy paket prijde, tak jej zase prelozi zpatky. Tot vse.

Nejsem si jistý, jestli je možné na takovýto jeden záznam poslat víc paketů. Asi těžko. I kdyby to bylo teoreticky možné, v praxi se to nepoužívá :) Co se naopak v praxi používá jsou tunely vytáčené strojem za NATem, např. archaický, ale na konfiguraci jednoduchý PPTP a jeho modernější alternativy.

Toto vysvetlenie je najblizsie tomu ako to v skutocnosti funguje - navyse kazde spojenie je identikovane "stvorcislim" zdojova-IP:zdojovy-port:cielova-IP:cielovy-port. Zdrojova IP/port su v tomto pripade IP/port routra.

Do dalsich detailov ako TCP hanshake by som ani nezachadzal.

Samozrejme, existuju moznosti ako zvonku nadviazat spojenie na zariadenie za NATom, ale vsetko zalezi od tvojej konfiguracie - co za NAT router/modem pouzivas atd.

Vacsina routerov dovoluje nastavit 1:1 NAT alebo aspon port forwarding. Pri 1:1 NAT router preposiela vsetky packety prijate na externej IP adrese na zvolenu internu IP. Port forwarding zas dovoluje podobne namapovat porty. Povedzme ze chces mat na Rapsberry webovy server - nastavis router aby preposielal vsetko pijate na externej IP a porte 80 (http protokol) na internu IP a port 80.

Modemy su zas celkom ina zalezitost. Tu predpokladam ze pouzivas nejake distro linuxu: 3G USB modem po nadviazani spojenia s operatorom sa linuxu zvycajne javi ako ppp0 port s externou IP adresou. V tomto pripade by si mal dokazat nadviazat spojenie priamo na tuto adresu, pokial to neni blokovane firewallom beziacim priamo na rapsberry (iptables).

Re:Jak obejít NAT z jiné adresy
« Odpověď #14 kdy: 29. 01. 2016, 01:41:30 »
Co jsem naposledy zkoušel, tak jediný co funguje je, že počítač za NATem (PATem) pošle UDP packet ven a pak z druhé strany lze doručit paket dovnitř na adresu a port odesílate toho přijatého paketu. Ale zpravidla do 1 minuty, pak se spojení uzavře.

Jenže v zásadě poslední stav běžných NATů / PATů je, že žádný z nich už dneska nemapuje IP:Port venku na IP:Port uvnitř, ale mapuje se zvlášť každá čtveřice. Takže i když si z venkovního počítače vezmu IP:Port na NATu / PATu  a z jiného počítače se tam pokusím dostat, tak to nepůjde. Alespoň se to týká většina NATů co mají poskytovatelé mobilních připojení a O2 a podobně.

Propojit dva počítače za NATy lze jen přes prostředníka, bubble packet už dneska v zásadě nefunguje právě díky vlastnosti posledních NATů