Forum: Mikrocontroller und Digitale Elektronik Ethernet Frames lesen


von Martin (Gast)


Lesenswert?

Hallo allerseits,

ich bin auf der Suche nach einem Ethernet Datenlogger. Ich möchte gerne 
Ethernet Frames im Raw Mode lesen.
Zum Hintergrund:
Ich habe hier eine Anwendung auf einem FPGA entwickelt, die an einen 
Ethernet Phy (via RMII Interface) angeschlossen ist. Nun möcht ich 
sehen, ob die Daten wirklich wie gewünscht ankommen.
Da es sich nicht um IP Frames Handelt, werden sie im Wireshark leier 
nicht angezeigt, einen RAW Mode konnte ich leider nicht finden.
Aufbau meiner Frames: (Präambel) (Adressfeld, nicht ethernetkonform) 
(Nutzdaten)

Kennt hier jemand ein gut geeignetes Programm?
Zum Testen stehen mir sowohl windows Vista als auch Ubuntu 8.10 zur 
Verfügung.

Vielen Dank und viele Grüße
Martin

von Peter (Gast)


Lesenswert?

such mal nach 'WinPcap'
aber kann sein dass das auch nicht hilft, wenn deine selbstgebauten 
eth-frames inkompatibel sind (weil z.b. der CRC fehlt oder im header was 
faul ist). eine normale ethernet-karte schmeisst alles weg, was ihr 
nicht geheuer vorkommt. wahrscheinlich müsstest du dir eine eigene 
hardware basteln, um solche frames aufzufangen.

von Martin (Gast)


Lesenswert?

wenn das ganze schon auf Hardware Ebene weggeschmissen wird, dann brauch 
ich auch nicht auf Softwareebene versuchen, das auszulesen. Meine Frames 
sind absolut inkompatibel, CRC gibts nicht, dafür aber auch keine Header 
im normalen Format... Das einzige, womit ich dienen kann, sind 
Ethernetpakete, die ein vielfaches von 64 Bit groß sind...

Vielen Dank erst einmal für Deinen Tip, WinPCap werd ich mir aber 
dennoch mal anschauen

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Wer soll das dann überhaupt verarbeiten?  Schon der nächste Switch
wird sie ja dann wegwerfen.

Mit alten 10-Mbit/s-Hubs und einer klassischen Ethernetkarte im
promiscuous mode solltest du die Frames sehr wohl auch im Wireshark
angezeigt bekommen können.  (Den Hub brauchst du, damit es eben
nicht ein Switch ist, der die Frames gleich gar nicht erst
weiterleitet.)

Keine Ahnung, ob die Windows-Treiber promiscuous mode unterstützen,
Unix-Treiber sollten es tun.

von Daniel B. (dbuergin)


Lesenswert?

Kann mich dem nur anschliessen. Wenn Du im ISO/OSI Modell nicht 
wenigstens bis Layer 3 (Vermittlungsschicht, IP) kompatibel bist, wird 
dir jede normale Netzwerkkarte das Paket wegschmeissen.
Und "Wireshark" wäre grundsätzlich das richtige Tool. Damit kommst du 
bis auf das letzte Bit in einem gültigen Ethernetframe runter, also auf 
die RAW Daten.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Daniel Buergin wrote:

> Kann mich dem nur anschliessen. Wenn Du im ISO/OSI Modell nicht
> wenigstens bis Layer 3 (Vermittlungsschicht, IP) kompatibel bist, wird
> dir jede normale Netzwerkkarte das Paket wegschmeissen.

Nein, Layer 2 (media access) genügt, auch wenn mittlerweile die
Netzwerkkarten teilweise Support für IP (checksum offloading)
besitzen.  Man kann dennoch über sie auch andere Protokolle fahren.

von Daniel B. (dbuergin)


Lesenswert?

Ok, wieder was gelernt ;-)

von Peter (Gast)


Lesenswert?

> Mit alten 10-Mbit/s-Hubs und einer klassischen Ethernetkarte im
> promiscuous mode solltest du die Frames sehr wohl auch im Wireshark
> angezeigt bekommen können.

promiscuous-mode bedeutet nur, dass die karte alle eth-adressen 
akzeptiert normalerweise wird beim empfang nur die eigene, ein paar 
multicast-adressen und die broadcast-adresse durchgelassen. kaputte 
paket (z.b. solche, deren CRC nicht stimmt) werden immer ausgefiltert. 
einige, seltene karten haben aber einen speziellen 'sniffer-modus', der 
wirklich alles durchlässt.

von Matthias L. (Gast)


Lesenswert?

>promiscuous-mode bedeutet nur, dass die karte alle eth-adressen
>akzeptiert normalerweise wird beim empfang nur die eigene, ein paar
>multicast-adressen und die broadcast-adresse durchgelassen.

Sehr interessant. Wie kann ich diesen Modus beim PC aktivieren?

von Peter (Gast)


Lesenswert?

> Wie kann ich diesen Modus beim PC aktivieren?

wenn deine neztzwerkkarte das kann und der treiber auch, dann wirst du 
beim 'wireshark' eine checkbox 'promiscuous-mode' vorfinden. leider wird 
dieser modus nicht von allen karten und treibern unterstützt.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Matthias Lipinsky wrote:

> Wie kann ich diesen Modus beim PC aktivieren?

Über den Treiber.  Auf meinem PC über einen ioctl(SIOCSIFFLAGS).

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
Noch kein Account? Hier anmelden.