Thread!!!
|
BassBouncer
Usernummer # 1219
|
verfasst
Ich stehe bei unserem Netzwerk vor folgendem Problem, und hier gibt es doch sicherlich einige Netzwerkprofis:
HTTP-Anfragen von außerhalb werden vom Router auf einen Webserver geleitet, der normalerweise alle Anfragen bearbeitet. Jetzt gibt es neuerdings einen zweiten Server, der ebenfalls erreichbar sein soll. Die Anfragen für diesen zweiten Server gehen auch alle über Port 80 (HTTP), allerdings wären sie über die verwendete Domain (abcd.dyndns.org/verzeichnis/index.html) von Anfragen an den ersten Server zu unterscheiden.
Der Router selbst scheint keine Möglichkeit einer solchen Unterscheidung (über Namen) zu bieten. Vielleicht kann Server 1 die Anfragen analysieren und bei Erkennen der entsprechenden Domain die Anfrage weiterleiten? Hatte mal geschaut, ob "Name Based Virtual Server" von Apache was bringen, aber das schien mir nicht das richtige zu sein, da ich schließlich physikalische und nicht virtuelle Hosts ansprechen will, oder??
Noch kurze Rechnerinfo: Server 1: Linux, Apache Server 2: W2003, IIS
Hat jemand sowas vielleicht schonmal gemacht? Auch im Netz finde ich irgendwie nichts passendes. Vielleicht denke und suche ich die ganze Zeit in die falsche Richtung?
Ääääh... falls das alles zu unverständlich war, bitte schreien
|
Thomas Broda
Usernummer # 72
|
verfasst
Die Lösung findeste unter den Stichworten "Destination NAT" (DNAT) und "Masquerading".
Im Ergebnis willst Du ein IP-Datagramm dahingehend ändern, daß die ursprüngliche Ziel-IP-Adresse durch eine andere Ziel-IP-Adresse ersetzt wird.
Ich geh jetzt mal davon aus, daß der Router nicht nur ein bloßer Router ist, sondern ein Gerät ist, daß eine Level 3 und 4-Paketfilter-Funktionalität hat - es sollte also in der Lage sein, das Routing anhand von Informationen, die sich aus den IP- und TCP-Headern herauslesen lassen, speziell behandeln zu können.
Im Grunde mußt Du für die Forwarding-Kette des Routers nur eine einfache Regel erstellen, die sinngemäß sagt:
"Leite alle IP-Datagramme mit der Ziel-IP1, Ziel-Port 80 zur Ziel-IP 'Linux', Ziel Port 80 weiter" und eine zweite "Leite alle IP-Datagramme mit der Ziel-IP2, Ziel-Port 80 zur Ziel-IP 'Windows', Ziel Port 80 weiter"
Die ganze Sache ist produktunabhängig - das geht mit jedem Router so. Falls Du einen Linux-Router hast, würde die Filterregel ungefähr so aussehen:
iptables -t nat -A PREROUTING -p tcp --dport 80 -d $URSPRUENGLICHE_IP -j DNAT --to $NEUE_IP
Vom Prinzip her sieht's mit jedem anderen Router genauso aus.
|
Thomas Broda
Usernummer # 72
|
verfasst
Es gibt noch einen zweiten, etwas uneleganteren - aber eigentlich einfacheren - Lösungsansatz (fiel mir nur später ein). Voraussetzung ist, daß der Apache die Anfragen zuerst bekommt.
Über die Direktive RedirectMatch in der /etc/httpd.conf lassen sich Anfragen weiterleiten.
Die Syntax ist einfach:
RedirectMatch Muster Ziel-Host
Beispiel:
RedirectMatch technoforum www.google.de
= alle Anfragen, die "technoforum" in der URI enthalten, werden zum Rechner www.google.de weitergeleitet.
|
BassBouncer
Usernummer # 1219
|
verfasst
Hey, das klingt ja erstmal vielversprechend! Der Router ist ein (keine Ahnung, wie man das nennt) äähh... Router-in-da-box von SMC. Werd gleich morgen früh mal schauen, was der nicht alles kann!
Danke schonmal!
Edit: Ei, die zweite Variante sieht ja noch einfacher aus! Da soll mich doch der Teufel holen, wenn nicht eine der beiden Möglichkeiten funzt
|
|