Hallo, Ich möchte eine Ethernet-Bridge bauen, um 2 IP-Netze miteinander zu verbinden. Die Bridge soll aus 2 Ethernet-Karten und einem Microcontroller bestehen, der das Ganze steuern soll. Leider kann ich die Karten nicht in den Promiscuous-Mode schalten. Ich empfange also nur Broadcasts und an mich gerichtete Pakete. Welche Möglichkeiten habe ich dann? Ich denke mir, es könnte gehen, wenn alle ARP-Broadcasts abgefangen werden und ich die MAC-Adressen gegen Meine austausche, so daß der IP-Verkehr gezwungenermassen über mein Device läuft. Wäre das eine Möglichkeit oder ist es Blödsinnig? Oder muß mein Device so tun wie ein Internet-Gateway? Danke im Voraus für alle Tips. -> Peter
Das was du beschreibst nennt sich Proxy-ARP. Das Problem liegt darin, dass du wissen musst, welche IP-Adresse auf welcher Seite liegt. Du musst also für alle ARP-Anfragen explizit auf der anderen Seite selber einen ARP durchführen, um das festzustellen. Normalerweise macht man sowas aber mit Routing, so dass auf beiden Seites verschiedene IP-Netze liegen.
> Das was du beschreibst nennt sich Proxy-ARP. Das Problem liegt darin, > dass du wissen musst, welche IP-Adresse auf welcher Seite liegt. Würde es nicht reichen, wenn ich bei empfangenen ARP-Requests z.B auf ETH0 einfach die MAC-Adresse von ETH1 einsetze und sie auf die andere Seite schicke? Erhalte ich eine Antwort, dann setze ich die MAC-Adresse von ETH0 ein und schicke sie über ETH0 weiter. Bei folgenden IP-Paketen müsste ich auch nur die MAC-Adressen tauschen. Das einzige Problem, was ich sehe, ist, daß beide Schnittstellen niemals im gleichen IP-Netz sein dürfen, weil ich sonst irrtümlich doppelte ARP-Antworten generieren würde. > Normalerweise macht man sowas aber mit Routing, so dass auf beiden > Seites verschiedene IP-Netze liegen. Müssen dazu die Clients nicht spezielle Routing-Protokolle unterstützen, oder? Was mache ich mit "dummen" Clients, die solche Protokolle nicht können?
Peter wrote: > Würde es nicht reichen, wenn ich bei empfangenen ARP-Requests z.B auf > ETH0 einfach die MAC-Adresse von ETH1 einsetze und sie auf die andere > Seite schicke? Ja, genau das meite ich ja. > Müssen dazu die Clients nicht spezielle Routing-Protokolle unterstützen, > oder? Der Client muss nur den Default-Gateway kennen, was m.W. bei jedem Client eingestellt werden kann. Und der Default-Gateway muss wissen, wer der richtige Router für das betreffende Netz ist. Schlimmstenfalls führt das dazu, dass der Default-Gateway nicht nur den Frame an den Router weiterreicht, sondern zwecks Information des Clients an diesen zusätzlich einen ICMP Redirect schickt, den der, wenn er damit nichts anfangen kann, ebenso standhaft ignoriert.
PS: Lohnt sich das eigentlich? Das kann jeder Ethernet-Switch für 5€ besser. PPS: Ich seh grad in deinem ersten Posting ein Detail: Das ganze geht so nur wenn es eben nicht 2 getrennte IP-Netze sind, sondern aus Sicht der Teilnehmer ein einziges IP-Netz ist. Denn sonst wird erst garkein ARP verwendet, sondern direkt der Gateways angesprochen.
> PS: Lohnt sich das eigentlich? Das kann jeder Ethernet-Switch für 5€ > besser. Ja, aber mein Gerät mit den zwei Netzwerkkarten gibt es schon. Ich wollte einen ARP-Proxy als zusätzliches Feature einbauen. > PPS: Ich seh grad in deinem ersten Posting ein Detail: Das ganze geht so > nur wenn es eben nicht 2 getrennte IP-Netze sind, sondern aus Sicht > der Teilnehmer ein einziges IP-Netz ist. Denn sonst wird erst garkein > ARP verwendet, sondern direkt der Gateways angesprochen. Wusste ichs doch, daß die Sache eine Haken hat :-( Dann fällt diese Methode wohl aus. Die einzige Möglichkeit ist wohl, daß ich selber als Gateway fungiere, oder gibts da noch was, das den Clients keine spezielle Intelligenz abverlangt?
Also das was beschriben wird ist als Hardware schon gelöst: Atmel AVR32 NGW STK. AP7000 Controller mit zwei Ethernet MAC's. Es gibt dafür auch ein Embedded Linux, so dass man nur noch die Einstellungen für das Routing / Forwarding einstellen muss. (Gibt's z.B. bei elektronikladen.de)
Ich hätte da auch noch eine Lösung: Features: - automatisches Erkennen aller Adressen - unterstützt alle Protokolle - selbstkonfigurierend - extrem kompakt - warungsfrei http://www.mercateo.com/p/c_c1001-1139987/EFB_Elektronik_37529_1.html Oliver
@Oliver: Ich glaube nicht, dass dies bei verschiedenen IP-Netzen auf beiden Seiten funktionieren wird, ohne mindestens dem Default-Gateway eine Sekundäradresse zu verpassen.
>Das ganze geht so nur wenn es eben nicht 2 getrennte IP-Netze sind, >sondern aus Sicht der Teilnehmer ein einziges IP-Netz ist. Denn sonst >wird erst garkein ARP verwendet, sondern direkt der Gateways >angesprochen. Also, für die Ursprungsfunktionalität reichts. Oliver
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.