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
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.
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
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
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
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.
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
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
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.