Bridge- oder Routingfrage



  • Hallo,
    ich habe ein 'kleines' Netzwerkproblem. Ich habe einen Rechner in einem Subnetz mit öffentlichen IP-Adressen stehen. Mein Rechner ist dort über eth0 angeschlossen und hat die IP-Adresse "IP1". Soweit, so gut. Funktioniert auch, ich kommen von überall mittels http://"IP1" auf meine Webseite drauf. Desweiteren habe ich in dem Netzwerk noch eine weitere IP-Adresse "IP2" zur Verfügung, die ebenfalls aus dem Internet ansprechbar sein soll (dazu später mehr). Aber nun kommt's:
    An diesen Rechner möchte ich über ein Tunnel-Device einen Laptop "angeschliessen", der irgend wo im Internet steht. Das ist auch noch recht einfach, sofern die beiden Tunnel-Endpunkte eine lokale IP-Adresse haben.
    Angenommen, der Laptop habe vom Serviceprovider die IP-Adresse "IPx" zugewiesen bekommen, so gebe ich auf dem Server als root einfach ein:
    1. modprobe ipip
    2. iptunnel add tun0 mode ipip remote "IPx"
    3. ifconfig tun0 10.0.0.0 pointopoint 10.0.0.1 up

    und auf dem Laptop:
    1. modprobe ipip
    2. iptunnel add tun0 mode ipip remote "IP1"
    3. ifconfig tun0 10.0.0.1 pointopoint 10.0.0.0 up

    Somit können sich nun beide Rechner über die 10er Adresse anpingen, bzw. komme ich vom Laptop auch darüber auf die Webseite des Servers, etc.
    Desweiteren habe es auch geschafft die Routingtabelle auf dem Laptop so zu ändern, dass die 10.0.0.0 das Default-Gateway ist. Nachdem ich Masqurading auf dem Server aktiviert habe, kommt der Laptop über diesen Tunnel wieder überall ins Internet raus, natürlich mit der Absenderadresse "IP1".

    Mein Problem ist nun, dass dem Laptop die Adresse "IP2" zugewiesen werden soll. Wenn ich also irgend wo im Internetkaffee http://"IP2" eingebe, will ich die Webseite des Laptops erreichen, vorausgesetzt das der Tunnel zw. Server mit "IP1" und dem Laptop mit "IPx" besteht.

    Meine erste Idee war, der Netzwerkkarte des Servers zusätzlich die Adresse "IP2" zuzuweisen, so dass ich also auch ein Geräte "eth0:1" mit "IP2" habe und zwischen 10.0.0.1 und "IP2" auf Serverseite statisch "natte". Zum testen funktioniert das auch. Leider erscheind diese Lösung für mein Projekt nicht praktikabel zu sein, denn später handelt es sich nicht nur um einen Laptop, sondern um evtl. tausende mit entsprechend vielen öffentlichen IP-Adressen. Und das hätte dann eth0:1 bis eth0:xyz zur Folge. Darum und auch wegen den tausenden NAT-Einträgen halte ich das für keine gute Lösung.

    Meine Überlegung war nun, den Tunnel nicht zwischen 10.0.0.0 und 10.0.0.1 aufzubauen, sondern dem Tunnelendpunkt des Laptops (also tun0 beim Laptop) direkt die "IP2" zuzuweisen (skripte also wie oben, nur statt 10.0.0.1 direkt "IP2"). Der Tunnel funktioniert auch immer noch und wenn ich auf dem Server eingeloggt bin, komme ich auch mittels http://"IP2" auf den Webservers des Laptops.

    Aber wie kann ich nun dafür sorgen, dass der Server (also Rechner mit eth0="IP1") die Anfragen in seinem Lan, die an "IP2" gerichtet sind entgegen nimmt und dann an "IP2" weiterleitet (er kann ja über "IP2" den Laptop ansprechen). Natürlich soll er weiterhin über "IP1" "normal" erreichbar sein - sonst funktioniert ja auch der Tunnel nicht. Muss ich da evtl etwas mit "brctl" machen? Weiss leider nicht weiter. Auf andere Rechner in dem Lan habe ich leider keinen Einfluss, so dass ich auch nicht sagen könnte, dass dieser Rechner (der mit "IP1") als Gateway für "IP2" zu verwenden ist.

    Ich hoffe, dass ich das Problem verständlich erklärt habe und mir jemand weiter helfen kann.

    Schon mal vielen Dank für's Durchlesen und hoffentlich auch für einen Lösungsvorschlag.
    Schöne Feiertage und lieben Gruß,

    Sven


Anmelden zum Antworten