Hur hittar internet tillbaka
Re: Hur hittar internet tillbaka
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?
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?
Re: Hur hittar internet tillbaka
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...
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...
Re: Hur hittar internet tillbaka
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.
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.
Re: Hur hittar internet tillbaka
..Eller så kör NAT-maskinen en ftp-proxy som löser problemet.
Re: Hur hittar internet tillbaka
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?
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?
Re: Hur hittar internet tillbaka
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å...
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å...
Re: Hur hittar internet tillbaka
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.
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.
Re: Hur hittar internet tillbaka
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.
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.
Re: Hur hittar internet tillbaka
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.
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.
Re: Hur hittar internet tillbaka
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.
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.
Re: Hur hittar internet tillbaka
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)
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)
Re: Hur hittar internet tillbaka
> 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):
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):
Servern svarar med ett paket där den port som ska användas är angiven :
"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) :
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" :
"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.
> 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 65535Sedan 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.. 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).. 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 65535gö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... 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.
Re: Hur hittar internet tillbaka
Kollade just Zyxel Prestige manueln (som har "copy" funktionen avslagen i PDF'en
)
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...
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...
Re: Hur hittar internet tillbaka
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.
