Do diskuse momentálně není možné vkládat příspěvky. Plná funkčnost bude obnovena v nejbližších dnech. Děkujeme za pochopení.
Úvod > Diskuse > Technické otázky > NAT - jeden port a dvě device

NAT - jeden port a dvě device

kirner tom (16.5.2006 08:25:36)

zdravim, pokud pronatuju port 21 na určitou IP v vnitřní síti tak budou po něm moct komunikovat i ostatní PC ve vnitřní síti???Nebo se port 21 vyhradí pouze pro ten jeden PC ostaní PC se pomocí FTP (portu 21) nespojí se serverem v internetu. Ptám se proto, protože bych si doma chtěl udělat Always ON FTP server, ale ten by se musel pomocí NAT dělit o veřejnou IP s mým desktopem. Tudíž se ptám, jestli když nastavím forward na server tak jestli budu moct komunikovat na portu 21 i z mého desktopu bez omezení a nebo jestli to bude nějak omezeno či to vůbec nepůjde (tzn. pokud si něco na desktopu budu chtít stáhnout z FTP tak budu mít smůlu). thx tomi.kkt

Nargon (16.5.2006 10:36:42)

No jestli jsem to pochopil dobre tak si chces doma zapnout FTP server, kterej pobezi na portu 21. A ze sveho dalsiho PC chces pristupovat na FTP servery nekde v internetu (tj, ne ten tvuj), ale samozrejme na ten tvuj to pujde take. Jde o to, ze zdrojovy a cilovy port jsou 2 ruzne veci. A mohou byt stejne, ale z 99% jsou ruzne. Kdyz se pripojujes na FTP server, ktery bezi na portu 21, tak se na nej urcite nepripojujes ze sveho pocitace s portem 21, urcite nejaky jiny. Systemem nahodne vybrany volny port (treba 5424) Tim se vytvori zaznam v NAT, a kdyz ti ten ftp server neco posle tak to posila na port 5424. A ten u tebe muze v klidu bezet, protoze tvuj ftp server pobezi na 21.

kirner tom (16.5.2006 22:16:11)

Díky za pomoc. Takže pokud to správně chápu, tak když já navážu spojení ftp ze svého desktopu (tzn. pudu třeba na ftp://neco.com) tak můj počítač vybere náhodný port na kterém bude komunikovat (takže třeba 5424), NAT zaznamená že z mojí lokální adresy vyšel požadavek na ftp://neco.com na portu 5424. Modem pošle dál ftp požadavek na server ftp://neco.com a server ho přijme na portu 5424 nebo dojde k jakémusi přečíslení a přijme ho na portu 21??? Nějak nechápu ten systém... A nebo je to tak že na portu třeba 5424 budu komunikovat pouze mezi modemem a PC a modem (NAT) převede 5424 na 21??? Nemůžeš mi tenhle princip přesněji vysvětlit??? BTW doufám že se nepletu a používá se port 21 pro FTP server, tzn. právě tento je potřeba forwardovat??? díky za odpověď

h4k4cek (16.5.2006 22:22:46)

Kdyz budes mit u sebe naforwardovanej port z verejne IP na nejakou IP, kterou ma Tvuj PC v Tve siti a na kterym pobezi FTP server, tak to nijak neovlivnuje pripojovani z jakehokoli PC z tve site na jakykoli server do netu. V tve siti se na svuj PC na to FTP budes napojovat pres lokalni IP, napr 192.168.. bo jakou on ma. :)

kirner tom (16.5.2006 22:44:02)

jj to chápu, ale jak tohle funguje, nemůžu se spokojit jenom s "pojede to", chci i vědět jak, zatím nad tím uavažuju a logika mi to nějak nebere. Takže modem (NAT) má nastavený forward všech IP které s ním chtějí komunikovat(tedy se tam dá 0.0.0.0) na portu 21 na IP v LAN třeba 192.168.1.68 na port taky 21 a nebo jiný. Nechápu jak se tohle přesně kloubí... Kdyby mi někdo poslal link, nebo vysvětlil jak tohle funguje, tzn. navázání end 2 end spojení mezi klientem a serverem...

Anonym (16.5.2006 23:37:48)

To by bylo hodně na dlouho. Studuj: http://cs.wikipedia.org/wiki/TCP http://cs.wikipedia.org/wiki/NAT http://cs.wikipedia.org/wiki/IP_protokol http://cs.wikipedia.org/wiki/FTP Pak si ještě něco najdi o komunikačním modelu ISO OSI. Jinak, to jaxi to popisoval výše je v podstatě správně akorát, že vtip je v tom, že komunikuje port 5454 tvého počítače s portem 21 FTP serveru. Port pro odchozí komunikaci se generuje dynamicky (není potřeba ho předem znát), ale port, kde se očekává spojení musí být předem známý. Proto existuje dohoda, že třeba FTP bude naslouchat na portu 21. Jinak NAT se o porty vůbec nestará. Komunikace probíhá v několika rovinách: aplikační - FTP klient a ftp server Transportní - port 5454 počítače a port 21 serveru. síťová - IP adresa tvého počítače a ip adresa serveru každou vrstvu zajímá jenom to svoje a NIC jiného. FTP klienta třeba vůbec nezajímá nějakej port. To řeší vrstvy pod ním. TCP protokol zase nezajímají nějaký IP adresy. Ten jakoby komunikuje s portem druhého počítače a to, jak se tam ta komunikace dostává je mu zase volný.

y2k (17.5.2006 00:06:15)

Hm, a teď si představ, že někde mezi je další NAT, který je vřazený a v transportní komunikaci dělá následující bordel: NAT změní požadavek z 5454 na 21 sqěle :-) na tyto hodnoty: 5454 na 21 NAT 5858 na 21 a cestou zpět NAT opět zapracuje z hodnot 21 na 5858 na XYZŽ na 5454. Co pak má dělat chudák PC, který očekává odpověď z 21 ....a dostane ji z XYZŽ ? Nic, zahodí ji ! Tahle vlastnost by mě obskočila, fakt jo :-( Grrrr......stejně to musí jít nějak vyřešit .....

Anonym (17.5.2006 00:19:43)

Tak počkat... NAT přece nesahá na porty, ne? NAT funguje na síťový vrstvě a pouze přepisuje IP adresy v hlavičkách...

Nargon (17.5.2006 10:02:31)

No pokud je to nutne, tak by nat mel mit moznost zmenit port, jinak muze dojit ke kolizi. Priklad: treba s pripojenim na ftp server. PC1(10.0.0.1): se chce pripojit na ftp 11.22.33.44:21 PC2(10.0.0.2): se chce pripojit na ftp 11.22.33.44:21 Pokud oba PC se rozhodnou u sebe pouzit port 5000, tak zadny problem, v lokalni siti se to podle jejich IP bez problemu urci, ktery je koho, takze zadna kolize a oba pc pouzivaji port 5000. Pak jde komunikace z lokalni site dal do internetu. Musi projit pres nat. K modemu prijde komunikace: 10.0.0.1:5000 -> 11.22.33.44:21 a 10.0.0.2:5000 -> 11.22.33.44:21 Urcite dojde k prepsani IP adresy, aby server vedel kam ma odpovidat. 12.34.56.78:5000 -> 11.22.33.44:21 12.34.56.78:5000 -> 11.22.33.44:21 Nyni se neda rozlisit ktery pc je ktery (to 12.34.56.78 je verejna IP) kdyz prijde odpoved od serveru, tak modem nevi, komu to predat. Musi dojit k precislovani portu, vetsinou podle stejneho pravidla jako na PC. Tj pri odchozi komunikaci modem vi, jake porty jsou pouzity a jake ne, tak vybere nejake z tech nepouzitych. Vysledek vypada asi takto: 12.34.56.78:2305 -> 11.22.33.44:21 12.34.56.78:2306 -> 11.22.33.44:21 FTP serveru prijdou 2 zadosti o pripojeni tak na ne odpovi: 11.22.33.44:21 -> 12.34.56.78:2305 11.22.33.44:21 -> 12.34.56.78:2306 Mozna odpovida z nahodne generovanych portu, to nevim, ale pro ukazku je to jedno. Dale se komunikace vraci az k modemu s natem. A ten podle zaznamu ve svych tabulkach precisluje adresy: z 12.34.56.78:2305 udela 10.0.0.1:5000 a z 12.34.56.78:2306 udela 10.0.0.1:5000 Pak komunikace na siti co prichazi k pc vypada: 11.22.33.44:21 -> 10.0.0.1:5000 11.22.33.44:21 -> 10.0.0.2:5000 Nyni oba pc dostali odpoved od stejneho ftp serveru, a kazdy tu svou co chtel. NAT proste MUSI precislovat porty, a kdyz se komunikace vraci, tak je zase precisluje zpatky, aby to PC dostal na portu, na kterem to vyslal.

kirner tom (17.5.2006 11:41:45)

to znamená že můj komp chce komunikovat se serverm třeba 11.22.33.44 ale nevyšle to na portu 21 ale na portu třeba 5874 a modem to pozná že to nemá být na 5874 a přečaruje to na port 21, takkže to vypadá takhle 11.22.33.44:21? protože jinak nechápu jak by to fungovalo opačně, tzn. pokud by byl FTP server za NAT, tak pokud by na něj přišel požadavek na port 5856 tak by to modem zahodil a naposlal nikam, takže někde dochází k přečarování na port 21, že? jinak forwardovat na ten můj server stačí jenom port 21 jak pro TCP tak pro UDP nebo ještě něco dál???? thx

Nargon (17.5.2006 14:16:46)

Tak nejdriv jedno info o TCP/IP protocolu. Ten protocol mimo jine obsahuje 4 dulezita data: 1] IP adresu cile. 2] IP adresu zdroje. 3] Port cile. 4] Port zdroje. IP adresy zdroje a cile jsou potreba aby se vedelo kam a odkud se packet posila (zpatecni adresa je dulezita, kdyz ten server chce odpovedet, a to dela snad z 99,999%) A ty porty jsou hlavne pro rozliseni komunikace ruznych programu, na stejnem PC. Ten muj zapis znaci: (zdrojova ip):(zdrojovy port) -> (cilova ip):(cilovy port) Takze znova: Pc vysle ftp serveru zadost o pripojeni 10.0.0.1:5500 -> 11.22.33.44:21 Prochazi to natem a ten musi upravit odchozi ip, protoze v ramci internetu 10.0.0.1 urcite nebude vase ip. Soucasne s tim zmeni i odchozi port, aby byla jistota, ze ho nikdo nevyuziva. A vlozi si zaznam do natu, aby vedel k jake zmene doslo. 12.34.56.78:2555 -> 11.22.33.44:21 takhle vypada komunikace od modemu k serveru, a az mu to prijde, tak to nejak zpracuje a posila odpoved 11.22.33.44:21 -> 12.34.56.78:2555 Az se to vrati k routeru tak ten zmeni cil, aby to slo na ten PC, odkud to puvodne odeslo 11.22.33.44:21 -> 10.0.0.1:5500 . (tecka) Shrnuto a podtrzeno: Nat pri odchozi komunikaci meni odchozi ip a port, aby odpoved od serveru se vratila, tam odkud byl vyslan pozadavek. a zaznamena si data o zmene. Pri navratu odpovedi meni cilovou ip a port, aby se ty data dostali na pc, odkud byl vyslan pozadavek. Tohle vsechno plati pro ODCHOZI KOMUNIKACI A ODPOVED NA NI a vse je to automaticke. Pri prichozi komunikaci (rekneme 5.5.5.5:56454 -> 12.34.56.78:21) tj nekdo se snazi napojit na nas ftp server. Modem se podiva do nat tabulky, nenajde zaznam a komunikaci zahodi. Tady je potreba natu primo rici, ze kdyz mu neco prijde na port 21, tak aby to poslal dale, kam je potreba. Takze forwardneme port 21 na 10.0.0.1 a port 21. Pokud znovu prijde stejna komunikace, ted uz modem najde zaznam, a presmeruje komunikaci. 5.5.5.5:56454 -> 10.0.0.1:21 A ftp server dostane zadost o pripojeni a odpovida 10.0.0.1:21 -> 5.5.5.5:56454 Prochazi to natem. 12.34.56.78:21 -> 5.5.5.5:56454 A odesilatel obdrzi odpoved. P.S. Pro spravnou funkci ftp serveru je potreba forwardovat port 21(tcp) a jeste port 20(asi udp, ale jistej si nejsem, nejlepe forwardnout udp i tcp). port 20 neni nutny, ale bez nej se clienti v pasivnim modu nemohou pripojit. Nebo se pripoji jen ti v pasivnim modu. No ikdyz, pripoji se asi pokazde, ale soubory v jednom modu nepujdou prenaset. Je tedy lepsi forwardnout i tu 20ku.

y2k (17.5.2006 19:07:56)

Takže, k FTP .... Stačí jen a jen 21 TCP. Ostatní v případě potřeby otevře v 99% FTP server jak pro aktiv, tak pro passiv...navíc je v novějších zařízeních pro FTP již podpora. Tvůj výklad je skoro úplný, s malým detailem. Když je FTP server za NATem a je tázán zvenčí na portu 21, tak se tazateli může vrátit odpověď z jiného portu, protože zdrojový 21 je na NATu často přeložen na náhodný. Toto se zpravidla zrovna u FTP a SMTP neděje díky podpoře, kterou mají novější HW zabudovanou. Ale datagram někde nahoře to nemá, toť můj problém :-(

Nargon (17.5.2006 19:23:39)

Jo k tvemu problemu. Jedine odstranenim natu, nebo jeho vymenou za verzi, ktera to nebude menit (nejspise pc s linuxem).

kirner tom (17.5.2006 21:03:20)

díky moc moc za odpověď!!! už to všechno chápu! takže ještě jednou díky moc!