mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik "Hardware Ethernet Sniffer"


Autor: Thomas Winkel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen,
ich habe vor, mit einer externen Hardware die Netzwerkverbindung eines
PCs zu überwachen (nur mitlesen). Wenn ein bestimmter Code anliegt soll
ein Ausgang gesetzt werden. Ich hab dabei an ne Platine mit zwei RJ45
Buchsen (rein und direkt wieder raus), nen Übertrager, nen RTL8139 und
einen AVR oder PIC gedacht. Die Abschlusswiderstände entfallen hier
natürlich, terminiert wird ja an den beiden Enden.
Da ich mich mit dem ganzen Digitalkram, speziell Netzwerkprotokolle
nicht auskenne wollte ich euch erst einmal fragen, ob das so überhaupt
machbar ist.

Gruß,
Thomas

Autor: Niels Huesken (monarch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist möglich. Ich würde eine von den 1000 verfügbaren embedded
Netzwerkschaltungen nehmen und das Interface zusammen mit dem PC an
einem HUB (kein Switch) hängen. Damit könnte der AVR dann den traffic
mitlesen.

Jedoch ohne jemanden, der sich damit auskennt, sehe ich da wenig
erfolgschancen. Das Ganze ist doch relativ aufwendig.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da haste dir aber was vorgenommen, wenn du keine Ahnung hast.
Das mit einfach Übertrager und mitlauschen, denke das wird nicht gehen.
Der Übertrager stellt einen komplexen Widerstand dar, der paralell
liegt. Das könnte das Signal unzulässig dämpfen.

Peter

Autor: Thomas Winkel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
danke für eure schnellen Antworten!
An nen Router hab ich auch schon gedacht, nur sollte das schon eine
all-in-one Lösung sein, werd mir aber mal anschauen wie so ein Router
arbeitet, vielleicht reicht es ja aus das Signal mit nem schnellen
OpAmp zu entkoppeln. Wofür ist der Übertrager eigentlich gut? Um den
Gleichanteil rauszufiltern? Hab das nämlich auch schonmal ohne
gesehen.
Wo bekommt man eigentlich den RTL8139 oder einen vergleichbaren Chip
her? Eigentlich reicht mir ja was ganz simples, was mir einfach nen
verwertbaren seriellen Datenstrom erstellt, auf den PCI Controller
könnte ich ja verzichten. Sollte halt billig und einfach zu handeln
sein.
Ich hab auch schonmal an ein FPGA mit dem Ethernet Core von
opencores.org gedacht, da würde ja dann alles draufpassen, nur wäre das
auch wieder völliges Neuland für mich...
Ich muss das übrigens nicht alleine machen, ich bin primär für die
Planung und Hardware zuständig. Das ganze ist ein Projekt was so
nebenbei zur "Kontaktpflege" läuft, ohne besondere Priorität also.
Eigentlich bastel ich grad an meiner Diplomarbeit, ist halt ne gute
gelegenheit mal über den Tellerrand zu schauen und was dazu zu
verdienen.

Rock'n'Roll,
Thomas

Autor: Georg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Am einfachsten ist es wohl, wenn du (wie schon vorgeschlagen) einen Hub
nimmst. An diesen kannst du einen Mikrochip mit Netzwerkhardware
anschliessen (z.B. AVR mit RTL8139).

Die meisten Netzwerkkarten unterstützen einen "promiscious" mode,
indem sie alle Frames unabhängig von MAC/IP Adresse empfangen. In
diesem Modus ist es möglich, alle Daten zwischen den beiden PCs
mitzuschneiden.

Das ganze ist aber IMHO kein Kindergeburtstag und wenn du keine
speziellen Vorkenntnisse hast, solltest du erstmal Teilprojekte
durchführen und die irgendwann am Ende zusammenfügen
(Netzwerkgrundlagen, Sniffing am PC, Ethernet mit dem Mikrocontroller,
Treibererweiterung für Sniffing)

Georg

Autor: Unbekannter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein Hub geht aber auch nicht völlig transparent. Da der Hub dann aus der
Voll-Duplex-Verbindung zwischen z.B. PC und Switch eine
Halb-Duplex-Verbindung macht.

Es gibt auch schon kleine Switches mit Monitoring-Port. Auf dem Port
kommen dann Kopien des Trafics von anderen Ports an. Funktioniert
natürlich nur solange zuverlässig, wie das Datenvolumen auf der zu
überwachenden Voll-Duplex-Strecke nicht mehr als die Kapazität einer
Halb-Duplex-Verbindung überschreitet.

> Da ich mich mit dem ganzen Digitalkram, speziell
> Netzwerkprotokolle nicht auskenne

Dann solltest Du das jemanden machen lassen, der sich auskennt. Ich
schätze, Du scheiterst an diesem Projekt.

Autor: Thomas Winkel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für eure Anregungen!
Wie schon gesagt, auf externe Geräte will ich eigentlich verzichten,
hab mich oben übrigens vertippt, meinte natürlich HUB statt Router.
Ziel ist eine PCI Karte, in die Das Netzwerkkabel reinkommt (anstatt in
die Netzwerkkarte) und aus der dann ein kurzes Kabel raus in die
Netzwerkkarte geht. Der PCI Bus dient dabei lediglich als
Spannungsversorgung und Halterung.
Möglicherweise reden wir auch ein wenig aneinander vorbei, ich will ja
nicht den gesamten Netzwerkverkehr analysieren wie z.B. Ethereal. Ich
will lediglich auf eine fest definierte Zeichenfolge warten und darauf
reagieren.
So wie ich das sehe ist mein Hauptproblem erstmal dem Netzwerkverkehr
zu lauschen ohne ihn dabei zu beeinflussen. Referenzdesigns für RTL+AVR
gibts genug im Internet, und wie gesagt, die Software schreibt jemand
anderes (jemand, der sich damit auskennt ;) ).
Im Moment bin ich halt noch in der Planungsphase und versuche dafür
Informationen und Anregungen zu sammeln.
OK, habe mittlerweile rausgefunden, dass die Übertrager tatsächlich den
Gleichanteil rausfiltern sollen, da kann ich also bei langen Leitungen
und Netzgespeisten Geräten nicht drauf verzichten.
Naiverweise würde ich das Signal einfach vorher mit schnellen OPs
entkoppeln, was haltet ihr davon?
Wenn ich mir dieses Bild ansehe:
http://www.reichelt.de/bilder/web/E910/LS803TXR.jpg
könnte ich sogar ernsthaft auf die Idee kommen eine komplette
Netzwerkkarte nachzubauen und meine Funktionen noch zusätzlich zu
implementieren, dann entfällt das Problem mit dem "lauschen" und
sauberer wäre diese Lösung auch, haltet ihr sowas für realistisch? Mit
Platinenlayout hab ich übrigens Erfahrung, auch die kleinen Strukturen
sind kein Problem, ist ja nicht so, dass ich gar nichts kann, nur von
den Netzwerkprotokollen und PC Technik hab ich keine Ahnung.
Das Ganze muss übrigens auf Hardwareebene implementiert werden, das ist
Voraussetzung.
Ist ein AVR überhaupt schnell genug um in einem 100Mbit Netzwerk auf
eine bestimmte Zeichenfolge zu warten? Oder ist ein FPGA dann doch die
bessere Lösung?
So, FEIERABEND jetzt! Ich lunger schon wieder viel zu lange im Labor
rum, seit ich mim Fahrrad zur FH fahre arbeite ich viel länger, weil
ich mich immer drum drücke die 12km wieder nach hause zu radeln... ;)
Also bis dann,
Thomas

Autor: Μαtthias W. (matthias) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

ein AVR dürfte selbst mit einem ausgelasteten 10MBit Netzwerk so seine
Probleme haben. Sind ja rund 1MByte/s. Da bleiben bei maximalem Takt
von 20MHz gerade mal 20 Takte/Byte. Das kann schon reichlich knapp
werden und erfordert, wenns überhaupt klappt, handoptimierten
Assembler.

Matthias

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.