Bender86
Lieutenant
- Registriert
- Jan. 2007
- Beiträge
- 718
Hallo miteinander, ich hoffe mal für mein Problem ist das das richtige Unterforum. Ich habe ein etwas komplexeres Szenario, bei dem ich einen Android Emulator mit einem virtuellen Netzwerk-Interface verbinden möchte und mich frage, wie ich das machen kann.
Also mal eine kurze Beschreibung:
Das Netz:
Das sind die Randbedingungen, nun frage ich mich: wie verbinde ich den Emulator mit dem Contiki "Server"?
Meine bisherige Idee: ich NATte so, dass Pakete die an 127.0.0.1:ziel-port geschickt werden nach 10.1.1.1:ziel-port weitergeleitet werden und andersherum. Ist das der richtige Weg? Wenn ja, habe ich hier Probleme mit dem "natd" von OS X, dort versuche ich es mit folgendem Befehl:
und bekomme die Fehlermeldung:
Was für eine Adresse ist damit gemeint?
Ist NATten überhaupt der richtige Ansatz? Gibt es Alternativen?
Vielen Dank schonmal!
P.s: Was ich eventuell noch nicht klar herausgestellt habe: ich kann nicht vom Emulator direkt an den Server schicken. Ich kann also nicht beim Emulator als Zieladresse "10.1.1.1" angeben. Innerhalb des Emulators gibt es nur "10.0.2.2" als Schnittstelle zur Aussenwelt und Pakete an die Adresse kommen bei lo0 an.
Also mal eine kurze Beschreibung:
- Host ist mein Laptop (OS X 10.8.3) auf dem sich das ganze Szenario abspielt
- Auf dem Laptop läuft ein Eclipse-Android-Emulator
- Auf dem Laptop läuft eine Contiki "minimal-net" Anwendung, kann man sich der Einfachheit als irgendein Server vorstellen der auf UDP Pakete antworten soll
Das Netz:
- Der Emulator läuft in einem eigenen, automatisch erzeugten Netz, dass am loopback-Interface hängt.
- Wenn eine App vom Emulator an "10.0.2.2" sendet, erscheint das Paket auf dem loopback-Interface mit "VON: 127.0.0.1:app-port; AN 127.0.0.1:ziel-port"
- Die Contiki Anwendung (wie gesagt quasi ein UDP Server) hat die Adresse "10.1.1.1" und ist hinter einem tap-Interface mit der Adresse "10.1.1.100"
- Eine entsprechende Route (Destination "10.1/16, Gateway "10.1.1.100" Interface "tap0" ist eingerichtet.
Das sind die Randbedingungen, nun frage ich mich: wie verbinde ich den Emulator mit dem Contiki "Server"?
Meine bisherige Idee: ich NATte so, dass Pakete die an 127.0.0.1:ziel-port geschickt werden nach 10.1.1.1:ziel-port weitergeleitet werden und andersherum. Ist das der richtige Weg? Wenn ja, habe ich hier Probleme mit dem "natd" von OS X, dort versuche ich es mit folgendem Befehl:
Code:
sudo natd -redirect_port udp 10.1.1.1:50000 127.0.0.1:50000
und bekomme die Fehlermeldung:
Code:
natd: aliasing address not given
Was für eine Adresse ist damit gemeint?
Ist NATten überhaupt der richtige Ansatz? Gibt es Alternativen?
Vielen Dank schonmal!
P.s: Was ich eventuell noch nicht klar herausgestellt habe: ich kann nicht vom Emulator direkt an den Server schicken. Ich kann also nicht beim Emulator als Zieladresse "10.1.1.1" angeben. Innerhalb des Emulators gibt es nur "10.0.2.2" als Schnittstelle zur Aussenwelt und Pakete an die Adresse kommen bei lo0 an.