Ich habe ein eingebettetes Linux-System mit einem einzigen Ethernet-Port, aber ich muss zu vielen Ports gehen. Es ist offensichtlich, dass ich Magnete und Anschlüsse hinzufügen muss. Die schwierigeren Teile folgen.
Mein Prozessor hat einen On-Board-MAC und ich verwende einen Einzeltreiber-PHY. Brauche ich nur einen neuen PHY mit mehr Treibern? Ist es möglich, mehrere PHYs auf demselben MAC zu verwenden? Benötige ich für jeden Port einen MAC?
Wenn es sich um einen Prototyp handelt, sollten Sie einen USB-Ethernet-Adapter hinzufügen.
Wenn Sie ein Produkt bauen, würde ich einen integrierten Ethernet-Switch-Chip in Betracht ziehen. So was:
http://www.micrel.com/page.do?page=product-info/fastether_sw.jsp
(Quelle: micrel.com )
Der ADM6996 ist möglicherweise auch eine Option, wenn Sie ihn finden können.
Wenn Ihr Prozessor nur einen PHY hat, werden Sie nicht viel mehr Geschwindigkeit erhalten, wenn Sie den Schalter auf Ihrem Board einbetten. Es wird viel einfacher sein, einfach einen Schalter hinzuzufügen:
Wie der Text in diesem Beispiel zeigt, wird jeder halbwegs anständige Switch 10/100/1000 Mbit/s, Kabel-Crossover, automatisch aushandeln.
Switches sind mit 4 bis 48 Ports erhältlich, wobei 5 Ports eine übliche Zahl für einfache Desktop-Switches sind. Sie können auf Ihrem Schreibtisch stehen oder in einem Rack montiert werden. Sie können sie für eine lächerliche Anzahl von Ports aneinander ketten, wenn Sie sich dazu gezwungen fühlen. Sie können sie für weniger als 10 $ (besuchen Sie Newegg ) oder bis zu 10.000 $ bekommen. Eine wichtige Sache, die Sie berücksichtigen sollten, ist, ob Sie einen verwalteten oder nicht verwalteten Switch wünschen, aber wir benötigen weitere Informationen, um diese Entscheidung zu treffen, und dies wird schnell zu einer Frage für ServerFault.
Ein externer Switch ist wahrscheinlich die flexibelste, einfachste und kostengünstigste Möglichkeit, das zu tun, was Sie möchten. Es wird physisch größer sein, als den Inhalt eines Schalters auf Ihrer Leiterplatte zu platzieren, aber ich würde das nicht tun, es sei denn, es wäre absolut notwendig.
Wenn jeder Port in ein völlig separates Netzwerk geht, können Sie mit einer einzigen MAC-Adresse davonkommen, aber das funktioniert wirklich nicht, wenn Sie ihn im selben Netzwerk haben.
Ich würde dringend empfehlen, separate Treiber mit separater MAC-Adresse pro Port zu haben.
Meine Antwort konzentriert sich darauf, ob Sie ein Gerät wie eine eingebettete Firewall erstellen, bei der der Datenverkehr an einem Port eingehen, gefiltert und dann an einem anderen Port in ein anderes Netzwerk zurückgesendet werden soll.
Schließe mich dem Wechselvorschlag an.
Wenn Sie verschiedene Netzwerke trennen müssen, konfigurieren Sie den Switch-Chip so, dass er die Ports in verschiedene VLANs aufteilt und alle VLANs zu dem Port führt, an dem sich die Linux-Box befindet.
Linux kann auf alle VLANs zugreifen, als hätte das System individuelle Netzwerkschnittstellen zu den verschiedenen Netzwerken.
Die meisten, wenn nicht alle Switch-Chips können über ein serielles EEPROM konfiguriert werden, sodass das Modifizieren eines handelsüblichen Switches für einen POC oder einen einmaligen Hack einfach genug sein sollte.
Shawn J. Goff