zwei NICs im selben Subnetz - müssen Routing einrichten

zwei NICs im selben Subnetz - müssen Routing einrichten

Ich habe einen kniffligen Fall:

+---+                      +----+
|D1 +->eth0---------<-eth0-+D2  |
|   |                      |    |
|   +->eth1---------<-eth1-+    |
+---+                      +----+

Auf D2 eth0und eth1haben IP-Adressen aus demselben Subnetz: eth0 10.1.1.1/24, eth1 10.1.1.2/24. Schnittstellen auf D1 haben keine zugewiesenen Adressen und es verhält sich wie ein Switch.

10.1.1.2Jetzt möchte ich, dass D2 den Datenverkehr über senden kann eth0, daher muss der Paketpfad wie folgt lauten: D2(eth0)--D1(eth0)--D1(eth1)--D2(eth1).

Wenn ich derzeit 10.1.1.2von D2 aus pinge, werden Pakete lokal gesendet, d. h. D1 empfängt keine. Was muss ich an D2 ändern, um das gewünschte Verhalten zu erreichen?

Danke.

Antwort1

Was du willst, ist unter Linux nicht möglich. Zumindest nicht innerhalb der Routing-Schicht. Wenn eine Zieladresse zu einer lokalen Schnittstelle gehört, geht das Paket immer durch die Loopback-Schnittstelle, von wo aus es (per RfC) nicht nach außen geroutet werden kann.

Ich dachte, es wäre vielleicht möglich iptables, DNATdas Ziel auf eine unbenutzte Adresse im Subnetz zu ändern und ip neighdie MAC-Adresse statisch auf die der anderen Netzwerkkarte einzustellen, aber nicht einmal die DNATRegel trifft auf Pakete an lokale Adressen zu.

Mit einer virtuellen Maschine oder mit Netzwerk-Namespaces ist dies möglicherweise möglich, sodass der Kernel 10.1.1.1es nicht sieht eth0. Sie benötigen jedoch Proxy-ARP und DNAT, um die eingehenden Pakete von der physischen zur virtuellen Schnittstelle zu verschieben.

Ist es diesen Aufwand wert?

Antwort2

Netzwerk-Namespaces können eine Option sein. Sie sind im Wesentlichen unabhängige Instanzen des Netzwerkstapels und sollten daher zumindest theoretisch in der Lage sein, zwei Schnittstellen zu trennen.

Als ich das letzte Mal versucht habe, mit ihnen zu spielen, habe ich es allerdings nicht geschafft, dass es richtig funktionierte.

verwandte Informationen