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!