GNU/Linux >> LINUX-Kenntnisse >  >> Linux

mehrere physische Schnittstellen mit IPs im selben Subnetz

Lösung 1:

Sie benötigen ein starkes Endsystemmodell. Linux ist im Grunde um ein Weak-Send-Systemmodell herum aufgebaut, daher ist es wirklich keine gute Betriebssystemwahl für diese Anwendung.

Sie müssen jedes erforderliche Verhalten vortäuschen, von ARP über Richtlinien-Routing bis hin zur Auswahl der Quelladresse. Sie benötigen auch Filter, um zu verhindern, dass Pakete akzeptiert werden, wenn sie auf der falschen Schnittstelle ankommen.

Die unbedingt notwendigen Schritte sind:

  1. Konfigurieren Sie arp_filter=1 und arp_ignore=2 auf allen Schnittstellen.

  2. Fügen Sie schnittstellenbasiertes, quellenbasiertes Routing für ausgehenden Datenverkehr hinzu. (Die Zielschnittstelle muss basierend auf der Quelladresse ausgewählt werden.)

  3. Fügen Sie Eingangsfilterung pro Schnittstelle hinzu, um Pakete, die auf der falschen Schnittstelle empfangen wurden, stillschweigend zu verwerfen. (Pakete mit einer Zieladresse, die einer anderen Schnittstelle zugewiesen ist.)

Leider besteht kein Konsens darüber, ob diese drei Schritte ausreichen. Das schwache Endsystemmodell ist in den gesamten Linux-TCP/IP-Stack eingebaut, und es ist nicht klar, was bei subtilen Problemen wie Multicast schief gehen könnte.

Es ist nicht klar, wie Sie beispielsweise die Ausgabeschnittstelle für Sendungen auswählen würden. Sollen alle raus? Vielleicht. Was ist das richtige Verhalten, wenn der Stack einen ausgehenden Broadcast mit einer Quelladresse erhält, die keiner der Schnittstellen zugewiesen ist?

Auch hier haben Sie das falsche Werkzeug für den Job ausgewählt.

Lösung 2:

Wahrscheinlich möchten Sie eine Bridge mit den 8/9-Schnittstellen erstellen und dieser Bridge dann eine IP-Adresse zuweisen (bridge-utils-Paket, Befehl 'brctl add').

Auf diese Weise fungiert die Bridge wie ein Switch und kann eine IP-Adresse in Ihrem Subnetz haben.

Lösung 3:

Ich würde empfehlen, die physischen Schnittstellen zu verbinden und dann alle Adressen auf der einzelnen verbundenen Schnittstelle zu konfigurieren.

Auch auf dem Switch benötigen Sie Unterstützung.

Hier ist ein Mini-Tutorial, mit dem Sie beginnen können.

Lösung 4:

Anscheinend möchten Sie eine Testumgebung, die 9 separaten Computern entspricht, und glauben, dass 9 Schnittstellen auf einem Computer dies emulieren könnten. Unter Linux ist dies aus Gründen, die David Schwartz beschrieben hat, einfach nicht über einen einzigen Stack möglich. BTDT und haben die Narben. Es war schon schlimm genug mit 2 Schnittstellen.

Eine bessere Lösung könnte darin bestehen, 8 oder 9 diskrete virtuelle Maschinen auf einem Host auszuführen und 8 oder 9 Schnittstellen zu diesen virtuellen Maschinen zu überbrücken.


Linux
  1. `find` mit mehreren `-name` und `-exec` führt nur die letzten Übereinstimmungen von `-name` aus?

  2. Warum haben mehrere Instanzen von Mate-Terminal dieselbe Pid?

  3. Zählen Sie die Anzahl der Zeilen mit einer Zeichenfolge, die N-mal in mehreren Spalten vorkommt?

  4. Wie verwende ich denselben SSH-Alias ​​mit mehreren Hostadressen/Ports/etc.?

  5. Mehrere Dropbox-Konten auf demselben Computer?

Lernen Sie Linux mit dem Raspberry Pi

Ausführen einer ausführbaren Datei im Pfad mit demselben Namen wie eine vorhandene Funktion?

So installieren Sie mehrere Discourse-Container auf demselben Server

So hosten Sie mehrere WordPress-Sites auf demselben Server mit Docker

Eröffnen Sie ein neues Terminalfenster mit demselben Verzeichnis wie das vorherige Fenster

Woher weiß die CPU, welche physikalische Adresse welcher virtuellen Adresse zugeordnet ist?