alexside
Goto Top

2 HTTP Server mit gleichem Port hinter Router, Verständnisfrage

Hallo Ihr Lieben,


Ich habe zuhause eine Lan-Festplatte (Freecom Networkdrive Pro), die ich per Browser konfigurieren kann.

diese hat die Adresse: 192.168.2.24

Wenn ich das richtig verstanden habe, läuft also auf der Festplatte ein HTTP Server (für die Webkonfiguration), der auf dem Port 80 lauscht und bei der eingabe dieser IP antwortet.

Jetzt kann meine Lan-Festplatte aber auch HTTP Server fungieren, diese Funktion habe ich eingeschaltet und alles eingerichtet.

Also eine Dynamische DNS besorgt, im Router eingegeben, Portweiterleitung Port 80 auf 192.168.2.24.

Wenn ich aus meinem Büro nun meine DynDNS IP im Browser eingebe, sehe ich meine von mir erstellte Website, funktioniert also alles prima, allerdings verstehe ich nicht warum es funktioniert.

Jetzt die erste Frage:

Wenn ich zuhause bin und 192.168.2.24 eingebe, bekomme ich die Weboberfläche und nicht meine Website.
Wie (und wer) unterscheidet, ob ich mit dem HTTP Server oder mit der Konfigurationsoberfläche verbunden werde, beide antworten doch auf Port 80???


Irgendwie habe ich einen Gedankenfehler.

Die zweite Frage:

Ich möchte nun als nächstes den FTP Server einrichten. Allerdings habe ich schon auf meiner Fritzbox 7170 einen FTP Server laufen, unter Port 21 (getestet, ist von aussen und innen erreichbar)

Meinem FTP Server auf der Lanfestplatte werde (muss ich? ) ich den Port 22 geben. Dann werde ich Portweiterleitung auf dem Router einrichten, öffentlicher Port 21 auf 192.168.2.24 Port 22. Oder muss ich das umgekehrt machen (wie ich vermute)? Also der FTP Server auf der NAS PLatte läuft auch mit Port 21, aber im Router mache ich eine Portforward von Port 22 auf Port 21 und frage aus dem Internet per ftp://ftpuser@dyndns.org:22 an?

Wenn ich jetzt von aussen meine mit einem Browser ftp://ftpuser@dyndns.org eintippe, woher weiss mein Router, ob er mich mit dem FTP Server der Fritzbox oder mit dem FTP Server der Lanfestplatte verbindet?? Zuhause kann ich ja mittels der IP Adressen auswählen, wohin.

Ich habe versucht, mich in das NAT Prinzip(ien) einzulesen, stehe aber irgendwie auf dem Schlauch und bitte um Gnade face-smile Erklärt mir das bitte jemand.

Content-Key: 93448

Url: https://administrator.de/contentid/93448

Printed on: April 18, 2024 at 20:04 o'clock

Member: spacyfreak
spacyfreak Aug 02, 2008 at 13:11:28 (UTC)
Goto Top
Ein webserver kann ja beliebige Webseiten hosten die alle über Port 80 erreichbar sind.
Die Unterscheidung, welche Seite der Webserver anzeigen soll wird anhand der URL bzw. virtual hosts config gemacht (sprich: URL http://webserv.name.de/admin = seite /srv/www/htdocs/admin/index.html
URL http://webserv.name.de = seite /srv/www/htdocs/index.html).

Beim Zugriff von aussen wird ein Portforwarding gemacht.
Du sendest Pakete an Port 80 (oder 20/21) an die öffentliche IP der FritzBox.
Diese beantwortet die Anfrage entweder selber, oder (wenn ein entsprechendes Port-Forwarding konfiguriert ist) sie leitet die Pakete direkt weiter an den internen PC.
Die Fritzbox packt dabei die Pakete aus und wechselt die Quell- und Ziel-IPs aus.
Anhand des anfragenden (Quell-)Ports weiss sie jedoch wo die Anfrage herkam, und da werden die Antwortpakete dann auch wieder zurückgeschickt.


Client-IP/TCP-Quellport------------------IP/TCP-Zielport-Fritzbox---------------------------Server
Member: AlexSide
AlexSide Aug 02, 2008 at 14:15:39 (UTC)
Goto Top
OK, das mit den Virtual Hosts habe ich jetzt verstanden.

Aber wie unterscheidet die Fritzbox, ob ich jetzt im WWW http://meineseite.dyndns.org (in der Fritzbox auf den Port 80 von 192.168.2.24 Port 80 geleitet) eingetippt habe oder im LAN 192.168.2.24?

Beides wird auf meine LAN Festplatte weitergeleitet, nur mit dem Unterschied, dass ich aus dem WWW meine Homepage sehe, aber aus dem LAN die Konfigurationsoberfläche meiner NAS?

An meine Fritzbox kann ich z.B. einen USB Stick anschließen und diesen per FTP freigeben. Die Adresse lautet dann ftp://ftpuser@meineseite.dyndns.org

Wenn ich aber jetzt noch den FTP Server meiner LAN Festplatte einschalte und Port 21 forwarding auf die 192.168.2.24 mache, auf welchem FTP Server lande ich dann aus dem WWW? Oder aus dem LAN? Oder geht das nicht, so dass ich jedem FTP Server einen eigenen Port zuweisen muss?

Virtual Server kann ich ja auf einem Server machen, aber ich habe ja 2 Server (Fritzbox + NAS Platte)?

Vielen Dank für die Mühe, mir zu antworten face-smile
Member: aqui
aqui Aug 02, 2008 at 15:06:15 (UTC)
Goto Top
Das funktioniert natürlich nicht ! Die TCP Ports sind einzigartig pro Applikation und können auch immer nur auf einen einzigen Host im lokalen Netz geforwardet werden !

Hast du 2 Anwendungen im lokalen Netz, z.B. 2 Webserver dann musst du zwingend eine Port Translation machen, da sonst der Router diese Ports nicht mehr richtig zuordnen kann.
Z.B.
Webserver 1: loakle IP 172.16.1.1
Webserver 2: loakle IP 172.16.1.2

Dann lautet die Port Weiterleitungsliste z.B. so:

Eingehender Port TCP 80 -> ausgehend: lokale IP 172.16.1.1 Port TCP 80
Eingehender Port TCP 8080 -> ausgehend: lokale IP 172.16.1.2 Port TCP 80

Im Browser musst du dann http://meineseite.dyndns.org:8080 angeben wenn du auf den 2ten Webserver willst.

Analog geht das mit dem FTP Server bzw. allen Anwendungen bzw. Ports wenn mehrere davon im lokalen Netz vorhanden sind !

Kann dein Router keine Port Translation, dann müsste man den 2ten Webserver in der Konfig so umstellen das er per Default auf den Port 8080 hört. So gut wie alle DSL Router supporten aber Port Translation !!
Member: AlexSide
AlexSide Aug 02, 2008 at 15:45:04 (UTC)
Goto Top
Vielen Dank für die Antwort!

Aber das weiss ich schon.

Meine Frage, ganz konkret:

Als Router habe ich die Fritzbox.
Dort ist DynDNS eingerichtet.
Dort ist Portweiterleitung auf die Lokale IP: 192.169.2.24 Port 80 eingestellt.

Der Host 192.169.2.24 ist eine Lan-Festplatte, die

1. Per Webbrowser konfiguriert werden kann
(192.168.2.24 im Webbrowser eingeben)

2. einen eingebauten HTTP Server hat, den man einschalten kann (was ich getan habe, der ebenfalls auf Port 80 hört).

Meiner Logik nach habe ich also 2 Applikationen
1. Konfigurationsseite der Lanfestplatte
2. der HTTP Server der Lanfestplatte
die auf Port 80 lauschen.

Wenn ich also im LAN
192.168.2.24 eingebe, erscheint die Konfigurationsseite.

Wenn ich im WWW meineadresse.dyndns.org eingebe (was in der Fritzbox auf 192.168.2.24:80 umgesetzt wird), erscheint meine Homepage.

Und das verstehe ich nicht. Warum erscheint z.B. nicht im WWW die WEB-Konfigurationsseite (die ja auch im Prinzip ein HTTP Server ist und auf Port 80 hört) und warum erscheint nicht im LAN z.B. meine Homepage?

Woher weiss die Fritzbox, was ich will???

lg Alex
Member: aqui
aqui Aug 02, 2008 at 17:09:36 (UTC)
Goto Top
Wo liegt denn deine Hompage ?? Auch auf der 192.169.2.24 bzw. dem NAS ???

Nimm dir einen Sniffer wie den
http://www.wireshark.org/
oder den von MS:
http://www.microsoft.com/downloads/details.aspx?FamilyID=18b1d59d-f4d8- ...

und sniffer den Port TCP 80 Verbindungsaufbau einmal lokal mit und einmal von extern auf die 192.169.2.24.

Wenn du beide Traces vergleichst wirst du sofort sehen wo der Unterschied ist. Vermutlich fügt die FB da irgendwas ein, denn normal ist das nicht.
Es sollte immer nur die index.html geladen werden.
Member: spacyfreak
spacyfreak Aug 02, 2008 at 19:08:41 (UTC)
Goto Top
Also ich kanns mir jetzt auch nicht erklären warum der Webserver je nach Quell-IP verschiedene Webseiten ausliefert. Bist du sicher dass du aus dem internen Netz nicht http://192.168.x.x/admin oder sowas eingibst=
Member: AlexSide
AlexSide Aug 03, 2008 at 09:38:17 (UTC)
Goto Top
Hallo Spacyfreak,

100% sicher.

Ich meine, ich freue mich ja dass es funktioniert, aber ich will auch wissen, warum ;)

@aqui

das werde ich jetzt testen.

lg Alex
Member: AlexSide
AlexSide Aug 03, 2008 at 10:21:31 (UTC)
Goto Top
So, Sniffer ausgeführt, laaangsam komme ich zum Ergebnis:

Folgendes habe ich gemacht:

Wireshark gestartet, Capturedevice lokale Netzwerkkarte "Asustek"

TCP Port 80 Filter

Jetzt habe ich im Webbrowser 192.168.2.24 eingegeben (LAN)

Interessanterweise fragt jetzt meine Netzwerkkarte per Broadcast

"wer hat die 192.168.2.24"? Tell 192.168.2.20 (mein PC, bzw. meine Netzwerkkarte)

Antwortet tut natürlich mein Networkdrive mit seiner Mac-Adresse.

Somit weiss mein Networkdrive, dass die Anfrage von meiner
LAN-Netzwerkkarte gestellt worden ist.



Das gleiche habe ich dann übers Internet gemacht:

im Browser "meineseite.dyndns.org" eingegeben.
Irgendwann ist die Anfrage bis zu meinem Router weitergeleitet worden, und jetzt wirds interessant:

Mein Router (192.168.2.1) fragt meine Netzwerkkarte "wer hat die 192.169.2.20"?
(Von hier ist ja die Anfrage gestartet, die beantwortet werden muss)

Und meine Netzwerkkarte antwortet mit Ihrer Mac-Adresse.

Dann gehen paar Verhandlungen los, bis mein Router per Broadcast fragt:

"Wer ist die 192.168.2.24" (mein Networkdrive)



Somit hat im Lan die "who" anfrage meine Netzwerkkarte beantwortet und im WWW der Router.

Daher schlussfolgere ich, dass man sehr wohl unterscheiden kann, woher die "IP" eingegeben wird und somit Intern die Anfrage dementsprechend weiterbearbeitet werden kann.

Bin ich einen Schritt weiter, wobei ich das noch nicht "komplett" verstanden habe face-smile

lg Alex
Member: spacyfreak
spacyfreak Aug 03, 2008 at 10:32:24 (UTC)
Goto Top
Yo das ist halt das ARP Protokoll - es findet heraus welche MAC-Adresse zur angefragten IP gehört, da im lokalen Netz eben per Ethernetstandard und damit per MAC-Adresse kommuniziert wird.


Beim Aufruf über den Namen stellt dein Client ja eine Verbindung zur öffentlichen IP deines Routers her (da diese IP mit dem DynDNS Namen verknüft ist), der Router schaut ins Portforwarding Table und sendet dann die Frames mit seiner eigenen Mac-Adresse zum networkdrive.

Aus Sicht des Networkdrives sind es jeweils Anfragen aus dem lokalen Netz - einmal sendet der Networkdrive die Antwort an den lokalen Client, einmal an den Router, der die Pakete dann routet und über die öffenltihce IP wiederrum dienem Client sendet.

Erklärt mir nun dennoch nicht warum das Netdrive versch. Webseiten anzeigt.
Member: AlexSide
AlexSide Aug 03, 2008 at 10:52:11 (UTC)
Goto Top
Ja, mir auch nicht so richtig. Nach der who Abfrage durch ARP Protokoll beginnt schon auf der Anwendungsebene die HTTP Verhandlung und dann direkt entweder meine Website oder das Konfigmenü.

Das heisst, mein Router hat damit nichts zu tun, sondern das Networkdrive, dass unterscheiden kann ob die Anfrage bzw. Verhandlung im lokalen Netz stattfindet oder zwischen der "gerouteten" öffentlichen IP und meinr Netzwerkkarte.

Aber wie soll das gehen, der Router übersetzt doch die Öffentliche IP in eine lokale, oder nicht...
Oder merkt das Networkdrive trotzdem, dass die Anfrage ursprünglich aus einer anderen Adressrange gestellt worden ist.

Irgendwie bin ich wieder am Anfang face-smile
Member: spacyfreak
spacyfreak Aug 03, 2008 at 11:02:57 (UTC)
Goto Top
Ich würde sagen der einzige Unterschied ist dass bei der Internetanfrage dei IP das default-gateway ist (IP vom Router) und bei der PC Anfrage eben die IP vom PC. Eventuell ist das die Unterscheidung (bzw. der einizige Unterschied zw. beiden Anfragen) die den Webserver dazu bringt versch. Webseiten anzuzeigen.
Eventuell hat jemand noch ne andere Erklärung - mir fällt keine ein. Was sagt das Handbuch?

Der Webserver weiss vom Routing nichts, das macht ja der Router.
Member: AlexSide
AlexSide Aug 03, 2008 at 11:11:54 (UTC)
Goto Top
Handbuch geht auf solche Themen garnicht ein face-smile

Ich denke auch, dass das Networkdrive anhand der Quell-IP unterscheiden kann, woher was kommt.

Ich denke, wir haben bei der Funktionsweise der IP-Übersetzung was übersehen.

Was passiert genau, wenn ein Port weitergeleitet wird?

AAHHH, natürlich! Es kann garnicht in eine "Lokale" IP übersetzt werden, nur die Port-Maske wird draufgestülpt.

Mit wem soll denn das Networkdrive kommunizieren bei einer Anfrage übers WWW? Dann hätte ja der Sniffer eine Lokale (die übersetzte) IP anzeigen müssen, hat er aber nicht, sondern die Öffentliche!

Daher bleibt die öffentliche IP auch im Lan erhalten! Und anhand der Subnetzmaske kann wohl das Networkdrive unterscheiden, woher die Anfrage kommt. ;)
Member: spacyfreak
spacyfreak Aug 03, 2008 at 11:37:04 (UTC)
Goto Top
Ah jo das ist richtig - in dem Fall wäre das genaugenommen "Destination-NAT/PAT". Die Ziel-IP wird übersetzt, nicht die Quellip. Ja, das wirds wohl sein woran der Webserver die Herkunft der Anfrage unterscheidet u. entsprechend die Webseite ausliefert.
Dann gibts noch die Varianten "NAT" wo beide IPs übersetzt werden, und "Source-NAT" wo nur die Quellip übersetzt wird. Und PAT ist das was eigentlich alle Heim-Router so machen - übersetzten mehrere privatge IPs in EINE öffentliche, und auen eine Port-Table auf wo vermerkt ist welche Session zu welcher Verbindung gehört damit mehrere gleichzeitig über eien IP ins Internet kommen.
Member: AlexSide
AlexSide Aug 03, 2008 at 11:47:03 (UTC)
Goto Top
Dann haben wir es wohl gelöst face-smile

Bei einer LAN Anfrage kommt die Konfig Seite, bei einer öffentlichen Anfrage der HTTP Server.