Gå til innhold
Trenger du hjelp med internett og nettverk? Still spørsmål her ×

Ftp server - All trafikk går gjennom internett, why?


Anbefalte innlegg

Hei,

 

Jeg kjører Bulletproof Ftp Server v. 2.21 på Ngt linje, port 0-65000 forwarda til 10.0.0.2 (filserver) og alt funker perfekt for folk utenfra.

 

MEN:

 

Når jeg connecter til filserver (fra annen maskin på lanet) via ekstern ip, lokal ip (10.0.0.2) eller maskinnavn for den saks skyld så går hastigheten i "internettspeed". Dvs. at data blir sendt gjennom internettlinja (Ngt Bravo) og tilbake. Dette skjer selv om begge pc'ene er på samme switch. Selvfølgelig ønsker jeg heller 100Mbit, enn 0.3.... :p

 

Er det noen som vet hvordan dette kan fikses?

 

 

På forhånd takk, og beklager lite beskrivende topic (skjedde grunnet limit på topic lengde).

Lenke til kommentar
Videoannonse
Annonse
Når jeg connecter til filserver (fra annen maskin på lanet) via ekstern ip, lokal ip (10.0.0.2) eller maskinnavn for den saks skyld så går hastigheten i "internettspeed".

Via ekstern ip? Hva skal det bety? Du sitter på en pc som er på samme switch (og lan) som ftp-serveren og connecter til FTP-en via ekstern IP? Hvordan? Og hvorfor?

 

Dere er jo i LAN?

 

Jeg går ut ifra at din PC har 10.0.0.1 eller 10.0.0.3, elns, men fortell gjerne litt mer om forholdene... :-)

Lenke til kommentar

Bra det funket da... Men er du sikker på at du har satt lokal IP i FTP-server oppsettet og ikke public-IP?

 

EDIT: Jeg får ihvertfall 100Mbit selv med PASV aktivert... Uansett så skal FTP-servere settes opp med lokal-ip, ellers kan det bli tull uansett om man kobler til eksternt eller internt.

Lenke til kommentar

Grunnen til at det har blitt rot er at ftp serveren er satt opp til å støtte passive mode fra inet.

Når BulletProof skal støtte passive mode fra inet så angir man sin ekstern-IP og en portrange. Når BP svarer på file-transfer og passive mode er enablet svarer den med at clienten skal koble seg opp mot inet-ip'en. Dette må til for at det skal funke fra internet, men roter det bare til lokalt. Enkleste løsning er å disable passive i klienten ved behov.

En annen løsning er å multihome.

 

Til deg som det funker til med passive lokalt med full speed: Har du non-public IP på ftp-serveren eller multihomed den? Eller kanskje ikke enabled passive mode så clienten din fallback'er til std?

Lenke til kommentar

Problemet (hvis han har gjort det da) med å sette opp ekstern IP i server oppsettet er at du tvinger all trafikk over routeren, selv om du aksesserer den lokalt.

 

Det blir nesten litt som med UseCanonicalName i Apache...

 

Uansett, uten å være noe FTP server ekspert så er jeg av den oppfatning, etter å ha lest mye dokumentasjon om dette, at man skal sette lokal-IP.

 

Forøvrig sitter jeg på TitanFTP, ikke Bullet...

 

EDIT: Ja, jeg har lokal-IP i mitt oppsett.

EDIT2: Ja, PASV er satt opp på serveren, og en port-range selvfølgelig. Funker utmerket, om du kobler til eksternt eller internt. (vha NAT...) Eksternt så kobler jeg til via både IP og domenenavn, internt så kobler jeg til bare via lokal-IP, ellers så får jeg samme problem som han andre siden jeg da tvinger trafikken over routeren.

Lenke til kommentar

Jeg kjenner FTP gaaaanske så god (aka programmert det :)...

Hvis du ikke har en router som endrer på ftp-data'ene som går tilbake til klienten (over internet jeg snakker om nå ja) så må man angi internet-ip'n sin for at passive mode skal fungere over internet.

 

Om ftp-serveren ikke detecter om connectionen kommer fra internet eller intranetet (BP støtter ikke det som jeg kjenner) så må den bruke ekstern-ip'n i passive mode opplegget;

 

Ved passive-mode dataoverføring skjer dette;

 

din pc -> ftpsrv:21: connect & innlogging & GET request for fil

 

ftpsrv svarer da med 'For å få fil, koble deg opp til <ftpsrv-ip>:<port klargjort>'

 

din pc -><ftpsrv-ip>:<angitt port>

 

den <ftpsrv-ip> vil kunne være ftpsrv sin internip om router endrer data'ene GET svar'et.

Om routeren ikke kan det må du i ftp serveren config'e hva ftpsrv-ip skal være i get request svar. Om ftp-srv blindt bruker angitt ekstern-ip så får man dette problemet.

Om ftpserveren bruker litt logikk og sjekker for om connection kom fra eget subnet eller om den kom 'utenifra' slipper man problemet.

Så enten er Titan lur, passive mode funker ikke fra inet hos deg eller routeren din manip'er GET request svar'et.

 

Ble mye svada dette, med håper du skjønner.

Lenke til kommentar

Vel, NAT gjør egentlig ikke det.

Må være en FTP-spesifikk handler for det i routeren din (i den som NAT'er), f.eks. ip_conntrack_ftp modulen til iptables i linux.

 

For det NAT'eren må gjøre er å endre slik;

 

inet-ip: 129.129.129.129

local-ip server: 10.0.0.5

 

Så transformerer NAT'eren et svar f.eks. slik

original-pakke:

227 Entering passive mode (10,0,0,5,70,45)

 

pakke modifisert for sending over inet:

227 Entering passive mode (129,129,129,129,10,23)

 

og legger til en connnection-mapping på de aktuelle portene slik at når clienten kobler seg til

129.129.129.129:2583

så blir den forwarded til

10.0.0.5:17965

 

Hvis FTP-"oversetting" er enablet får man ikke noe problem. Saken er at ip_conntrack_ftp modulen i linux ikke klarer å plukke opp alle 227 svar, eller man rett og slett ikke kjører den, eller bruker annen NAT'er uten FTP-støtte, og derfor må gjøre denne endringen i selve FTP-serveren. Da oppstår problemet.

Lenke til kommentar

Hmm, vet ikke helt hva du mener... Etter det jeg leser du skriver så sier du jo akkurat det samme som meg. Det er ikke en automatisk NAT eller noe i den banen... Det er sånn jeg har satt opp routeren med port-filter (FW), og NAT. Det NAT gjør er jo å sende pakker fra en ekstern IP til rette lokale IP og omvendt. NAT sender da aldri ut den lokale IP'en, derfor er det ingen grunn til å sette ekstern IP i FTP-oppsettet heller.

 

Mitt system er helt standard. Router med port-filter, NAT og DHCP server. I LAN har jeg 4-5 maskiner hvor en av maskinene står som FTP server som jeg aksesserer både lokalt og eksternt (også andre enn meg selvfølgelig).

 

Og som sagt, her funker det utmerket med PASV. Topp fart lokalt, og "linjehastighet" 864kbit eksternt. I CuteFTP får jeg ca. 12MB/s og det skulle være ganske nær 100Mbit/s...

 

Skjønner ikke helt hvorfor dette skulle være så galt. Som sagt her funker det 100% så noe må da være riktig. Han som bruker ekstern IP har problemer...

Lenke til kommentar

Tror kanskje du har rett med hensyn til router/NAT'en min. Jeg prøvde å lytte på en annen port enn 21 og da fikk den problemer. Jeg regner med at NAT'en detecter hva slags trafikk det er vha porten pakkene går gjennom.

 

Internt var det selvfølgelig ikke noe prob...

 

Men er det så uvanlig at der er innebygget FTP translation i routere/NAT'er da?

Lenke til kommentar

Det er ikke uvanlig, men som du sier, de fleste takler ikke at ftp-serveren kjører på noe annet enn port 21. Hos meg klarer både Cisco 667'en og linux'en min å handle ftp, så jeg trenger heller ikke sette extern-ip.

Men om man skal kjøre ftp-serveren på non-21 må man sette extern-ip selv vanligvis.

Og re NAT og slikt. Husk at vanlig NAT bare endrer på source IP (SNAT) eller destination (DNAT) for en og en pakke. Den ser ikke på data inne i selve pakken. For å støtte ftp må man se og endre innholdet i selve pakken. Derfor egen module i linux for FTP.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...