Hur hittar internet tillbaka

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
BJ
Inlägg: 8864
Blev medlem: 11 april 2007, 08:14:53
Ort: En_stad

Re: Hur hittar internet tillbaka

Inlägg av BJ »

På Wikipedia-sidan om nat och pat står det att det
kan bli problem med vissa program. Dom har tagit med
ftp som en sorts program.
Hur är det med det? Stämmer det att det kan bli problem?
sodjan
EF Sponsor
Inlägg: 43288
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Hur hittar internet tillbaka

Inlägg av sodjan »

Ja, det kan (alltid) bli problem (med i princip allt).

När det gäller just det du frågar om så är det svårt att svara på
p.g.a att det inte framgår vilka problem de syftar på, men generellt så
är nog svaret "ja". Men vad är problemet ? *Har* du problem (med t.ex FTP) ?

Eller, uttryckt på ett annat sätt, så är det en lite märklig och
svårbesvarad fråga du ställer...
nifelheim
Den första
Inlägg: 2550
Blev medlem: 27 mars 2008, 22:31:16
Ort: stockholm

Re: Hur hittar internet tillbaka

Inlägg av nifelheim »

Med FTP blir det blir problem när du kör en klient i active mode bakom NAT,
Om klienten anropar servern från port 4711 (eller annan godtycklig port) kommer servern
att anta att data skickas till port 4712 (eller annan godtycklig port+1).
Eftersom den anslutningen till 4712 initieras utifrån kommer det inte att fungera,
kör du FTP i passiv mode kommer alla anslutningar att börja från klienten och NAT blir inget problem.
Användarvisningsbild
Glenn
Inlägg: 37659
Blev medlem: 24 februari 2006, 12:01:56
Ort: Norr om Sthlm
Kontakt:

Re: Hur hittar internet tillbaka

Inlägg av Glenn »

..Eller så kör NAT-maskinen en ftp-proxy som löser problemet.
BJ
Inlägg: 8864
Blev medlem: 11 april 2007, 08:14:53
Ort: En_stad

Re: Hur hittar internet tillbaka

Inlägg av BJ »

nifelheim:
Tack för förklaringen. Då förstår jag. :)
Jag tittade på inställningarna i Filezilla, och det är inställt
på passivt läge. Rekommenderas, står det till och med.

sodjan:
Nej, jag har inget problem nu, men nån gång kanske jag
sätter datorn bakom en router med ip-maskering, och
jag ville veta vad som kan hända då.

Glenn:
Okej, så långt har jag inte hunnit än, men bra att veta att
det finns.

Hur är det med dom andra sakerna då? Surfning och e-post
och film-tittning (avi, mpeg, flash...) och vad man nu kan hitta på.
Är det alltid programmet som startar anslutningarna där?
BJ
Inlägg: 8864
Blev medlem: 11 april 2007, 08:14:53
Ort: En_stad

Re: Hur hittar internet tillbaka

Inlägg av BJ »

Ingen som vet...?
sodjan
EF Sponsor
Inlägg: 43288
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Hur hittar internet tillbaka

Inlägg av sodjan »

Jag antar att detta är basic-prylar kring nätverk som lite
Googling eller någon vettig bok beskriver bra. Ser inte riktigt
behovet av att det ska dras här också och det är sannolikt även
orsaken till att ingen känner sig motiverad. Om du inte faktiskt
har något konkret problem som behöver lösas, alltså...
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 47702
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Hur hittar internet tillbaka

Inlägg av TomasL »

Med ett enda (Hmm, två egentligen, vad jag vet) undantag är det alltid ditt klientprogram som öppnar anslutningen till servern.

Undantagen är FTP och Fildelningsprogram.
FTP använder normalt dubbelriktad kommunikation, dvs du öppnar en Kontrollanslutning till servern, där du skickar kommandona.
Servern öppnar en Dataanslutning till dig, där data skickas till eller från servern.
Aktiv FTP fungerar för det mesta inte i ett NATat eller brandväggat nätverk, utan man använder då Passiv FTP istället, vilket innebär att din klient också öppnar data-anslutningen, klienten får då instruktioner från servern vilken port som skall användas.

Det andra undantaget är Fildelningsprotokollen såsom EDK och Bittorrent, där inkommande anslutningar är en förutsättning för att det skall fungera optimalt.

Det finns några andra mmer obskyra undantag till, men det får du läsa om i lämpliga böcker.
sodjan
EF Sponsor
Inlägg: 43288
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Hur hittar internet tillbaka

Inlägg av sodjan »

Testade just med FTP mot min server på kontoret och det går lika
bra med aktiv som med passiv FTP. Det blir lite olika portar fram och tillbaka,
men resultatet blir detsamma (d.v.s det fungerar). Det går genom två NAT
routers, en hemma och en på kontoret.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 47702
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Hur hittar internet tillbaka

Inlägg av TomasL »

Då kör du med öppna portar gissar jag.
Vad jag menade är att NAT väldigt ofta är sammanbyggt med en brandvägg, vilken rätt ofta är konfigurerad med stängda inkommande portar.
sodjan
EF Sponsor
Inlägg: 43288
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Hur hittar internet tillbaka

Inlägg av sodjan »

Nja, det är väl så att de flesta brandväggar spärrar previligerade portar (d.v.s
upp till 1023 eller 1024), men att portar över det normalt är öppna.

Alla portar under 1023 är normalt (i princip alltid om man inte själv
går in och manuellt öppnar, d.v.s gör en "port-forward") stängda.
Dock är porten som öppnas av FTP för dataöverföringen alltid
mot ett tillfälligt/dynamiskt högt portnummer.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 47702
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Hur hittar internet tillbaka

Inlägg av TomasL »

Det beror naturligtvis på hur topologin ser ut, samt vilken brandvägg/script man kör.

Min egen stealthar per default alla inkommande portar även de över 1024. (jag vet, enligt RFC får man inte Stealtha portar, men det blir lite säkrare så)

Om man dessutom har mer än en maskin bakom NATen/Brandväggen, så kan det dock vara svårt att få aktiv FTP att fungera, NATen/Brandväggen vet ju inte vart den skall skicka den inkommande porten.
Då den inkommande porten är dynamisk allokerad så är det dessutom mer eller mindre omöjligt att göra en portforwarding också. (när det gäller FTP)
sodjan
EF Sponsor
Inlägg: 43288
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Hur hittar internet tillbaka

Inlägg av sodjan »

> Då den inkommande porten är dynamisk allokerad så är det dessutom mer eller mindre
> omöjligt att göra en portforwarding också. (när det gäller FTP)

Det där håller inte riktigt...

När jag kör en passiv FTP från min laptop mot min server på kontoret
och loggar trafiken med de aktuella portarna ser det ut så här:

Först kommer det allra första anropet från min PC (port 20865) mot server (FTP porten 21):

Kod: Markera allt

   TCPtrace RCV packet 2 at  4-SEP-2010 14:12:42.22
 
                        IP Address       Port        Seq #           Ack #
 
   Source                81.232.163.33  20865     33201857               0
   Destination          192.168.1.10       21
 
                                                Packet Length       48
   TCP flags            SYN 
       window           65535
Detta svarar servern med en "SYN ACK" som vanligt.
Sedan följer en rad med paket mellan dessa två portar med påloggning o.s.v.
Sedan kommer ett paket från klienten där klienten begär passiv mode (PASV):

Kod: Markera allt

   TCPtrace RCV packet 19 at  4-SEP-2010 14:12:42.56
 
                        IP Address       Port        Seq #           Ack #
 
   Source                81.232.163.33  20865     33201903      4239474526
   Destination          192.168.1.10       21
 
                                                Packet Length       46
   TCP flags            PSH ACK 
       window           65293
 
                                         Hex    Count   Ascii  
   --------   --------   --------   --------    ----    ----------------
   21A3E851   B7BB067D   0040568B   2E000045    0000    E....V@.}...Q..!
   5E3FB1FC   EF9EFA01   15008151 | 0A01A8C0    0010    ....Q.........?^
       0A0D   56534150 | 0000CB1A   0DFF1850    0020    P.......PASV..  
Servern svarar med ett paket där den port som ska användas är angiven :

Kod: Markera allt

   TCPtrace XMT packet 20 at  4-SEP-2010 14:12:42.57
 
                        IP Address       Port        Seq #           Ack #
 
   Source               192.168.1.10       21   4239474526        33201909
   Destination           81.232.163.33  20865
 
                                                Packet Length       90
   TCP flags            PSH ACK 
       window           61740
 
                                         Hex    Count   Ascii  
   --------   --------   --------   --------    ----    ----------------
   0A01A8C0   28DA0680   0040B969   5A000045    0000    E..Zi.@....(....
   F59EFA01   5E3FB1FC   81511500 | 21A3E851    0010    Q..!..Q...?^....
   65746E45   20373232 | 00009A4F   2CF11850    0020    P..,O...227 Ente
   646F4D20   65766973   73615020   676E6972    0030    ring Passive Mod
   2C30312C   312C3836   312C3239   31282065    0040    e (192,168,1,10,
                  0A0D   29363231   2C333931    0050    193,126)..      
"193, 126" ska läsas som "193x256 + 126", alltså 49534 decimalt eller C17E i hex.

Nästa sak som händer är att klienten öppnar port 49534 (från en ny lokal port 20866) :

Kod: Markera allt

   TCPtrace RCV packet 21 at  4-SEP-2010 14:12:42.58
 
                        IP Address       Port        Seq #           Ack #
 
   Source                81.232.163.33  20866   4211660429               0
   Destination          192.168.1.10    49534
 
                                                Packet Length       48
   TCP flags            SYN 
       window           65535
Här måste ju alltså routern/gatewayen på mitt kontor redan veta vad den ska
göra med anropet till port 49534. Det är en helt ny channel som öppnas. Jag kan
inte se annat en att routern har sparat/analyserat paketet som gick till klienten
så att den vet vart den aktuella porten ska forwardas.

Efter detta ACK'ar servern anropet mot port 49534 (en "SYN ACK") och det hela "rullar på" som vanligt.


OK, om jag nu kör med "passive" avslaget så blir det lite annorlunda.

Skillnaden är att nu är det klienten som skickar ett högt portnummer till servern
med PORT kommandot (alltså istället för PASV kommandot), Servern svara med ett "OK" :

Kod: Markera allt

   TCPtrace RCV packet 18 at  4-SEP-2010 14:38:23.74
 
                        IP Address       Port        Seq #           Ack #
 
   Source                81.232.163.33  21012   1873923971        28645467
   Destination          192.168.1.10       21
 
                                                Packet Length       66
   TCP flags            PSH ACK 
       window           65293
 
                                         Hex    Count   Ascii  
   --------   --------   --------   --------    ----    ----------------
   21A3E851   AA25067D   00405021   42000045    0000    E..B!P@.}.%.Q..!
   5B18B501   83CFB16F   15001452 | 0A01A8C0    0010    ....R...o......[
   2C313820   54524F50 | 0000DDC0   0DFF1850    0020    P.......PORT 81,
   31322C32   382C3333   2C333631   2C323332    0030    232,163,33,82,21
                                        0A0D    0040    ..              
 
--------------------------------------------------------------------------------
 
   TCPtrace XMT packet 19 at  4-SEP-2010 14:38:23.74
 
                        IP Address       Port        Seq #           Ack #
 
   Source               192.168.1.10       21     28645467      1873923997
   Destination           81.232.163.33  21012
 
                                                Packet Length       70
   TCP flags            PSH ACK 
       window           61740
 
                                         Hex    Count   Ascii  
   --------   --------   --------   --------    ----    ----------------
   0A01A8C0   B7D30680   00403E70   46000045    0000    E..Fp>@.........
   9DCFB16F   5B18B501   14521500 | 21A3E851    0010    Q..!..R....[o...
   54524F50   20303032 | 0000559F   2CF11850    0020    P..,.U..200 PORT
   73736563   63757320   646E616D   6D6F6320    0030     command success
                             0A0D   2E6C7566    0040    ful...          
"82,21" i PORT kommandot ska läsas som "82x256 + 21" = 21013 decimalt eller 5215 i hex.

Klienten skickar sedan ett LIST kommando precis som vanligt mot port 21 varvid servern
(från port 20 på server) öppnar port 21013 på klienten och påbörjar dataöverföringen
ungefär som tidigare.

Det är alltså klienten som istället skickar ett högt/dynamiskt nummer till server
som sedan servern öppnar mot klienten. D.v.s att vi har samma "problem"
med att routern/gatewayen måste veta vart detta höga/dynamiska nummer
ska "forwardas". Jag har samma router/gateway i båda ändar (hemma och
på kontoret) så scenariot blir precis detsamma, fast i andra riktningen/änden.

D.v.s att om *båda* sidor har dynamisk forwarding av höga portnummer avslaget
så skulle inte FTP fungera i varken passiv eller active mode.

Och jag kan inte se att det kan fungera på något annat sätt än att routern
"ser" vilket högt/dynamiskt portnummer som skickas över och sparar det
temporärt så att anropet mot den porten sen kan routas rätt, så att säga.
sodjan
EF Sponsor
Inlägg: 43288
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Hur hittar internet tillbaka

Inlägg av sodjan »

Kollade just Zyxel Prestige manueln (som har "copy" funktionen avslagen i PDF'en :roll: )
och det är som jag misstänkte. Zyxel burken kollar paketen och om den ser att
en intern FTP klient skickar t.ex ett "PORT" kommando till en server så sparar routern
den port som anges i PORT kommandot och lägger till det temporärt till port-forwarding
tabellen i routern så att allt fungerar när servern sedan försöker öppna porten.

Alltså fungerar både passive och active i båda riktningarna.

Och det är sannolikt inte så som jag sa tidigare att portar över 1024 är öppna,
det behövs ju inte eftersom routern dynamiskt lägger till de aktuella porterna
till forwarding tabellen vid behov. Alla portar är stängda per default, utan de som
jag manuellt har öppnat.

Sannolikt är det så här (med "stateful inspection") de flesta vanliga routers/gateways
fungerar, i alla fall de för hemma/SOHO bruk...
Användarvisningsbild
Glenn
Inlägg: 37659
Blev medlem: 24 februari 2006, 12:01:56
Ort: Norr om Sthlm
Kontakt:

Re: Hur hittar internet tillbaka

Inlägg av Glenn »

Jo, det var ju just det jag menar med proxy, på min PF-baserade brandvägg får jag manuellt konfigurera in det och starta en ftpproxy som hanterar det, men din router har det tydligen från början, då fungerar det ju.
Skriv svar