Ich habe ein Linux-System mit 3 dedizierten Netzwerkkarten und alle 3 befinden sich im selben Subnetz mit den folgenden IPs
ETH0: 192.168.1.10
ETH1: 192.168.1.11
ETH2: 192.168.1.12
Ich habe drei Routingtabellen und entsprechende IP-Routen und Regeln eingerichtet, um den Verkehr der drei Ports zu isolieren. Unten wird dasselbe für ETH1 angezeigt. ETH0 und ETH2 haben ebenfalls ähnliche Einträge.
default via 192.168.1.1 dev eth1
192.168.1.0/24 dev eth1 src 192.168.1.11
32752: from all to 192.168.1.11/24 lookup 1
32753: from 192.168.1.11/24 lookup 1
Wenn ETH1 und ETH2 getrennt sind, während ETH0 verbunden ist, erhalte ich beim Pingen der IPs von ETH1 und ETH2 eine Antwort von ETH0. In einer anderen Frage:Ghost-Ping auf einem Linux-System mit mehreren NetzwerkkartenIch habe herausgefunden, dass dies daran liegt, dass die ARP-Tabelle für alle drei Ports mit derselben MAC-Adresse gefüllt ist.
Ich habe arp_ignore und arp_announce wie hier angegeben eingestelltUbuntu Linux - mehrere NICs, dasselbe LAN… ARP-Antworten gehen immer an eine einzelne NIC& Ich kann die ARP-Einträge auf dem PC sehen, die die richtigen MAC-Adressen enthalten.
Ich sehe jedoch immer noch, dass in diesem Fall nur ein Port zum „Standard“ wird. Dies lässt sich sehr leicht erkennen, wenn beispielsweise ETH1 und ETH2 bereits verbunden sind und das Kabel für ETH0 jetzt eingesteckt ist, ETH0 jedoch an einen isolierten Switch angeschlossen ist (der keine Verbindung zum Subnetz hat). Jetzt wird ETH0 zum Standard und aufgrund der Isolierung schlagen auch Pings an ETH1 und ETH2 fehl.
Gibt es eine Möglichkeit, den Datenverkehr auf den drei Ports wirklich zu isolieren?