Verwendung von zwei verbundenen Netzwerkschnittstellen in Ubuntu 14.04

564
Vishal Yarabandi

Ich habe 6 Ethernet-Karten in meinem Server. 4 von 1 Gbit / s und 2 von 10 Gbit / s. Also habe ich alle 4Gig-Karten als bond0 mit statischer IP 144 und 10Gig-Karten als bond1 mit IP 122 konfiguriert gebundene Grenzfläche, dh entweder bond0 oder bond1. Und wenn ich den Server neu starte, wird wahrscheinlich die andere verbundene Schnittstelle verwendet.

Das mache ich.

scp abc.xyz me@192.168.1.144:

Ich erwarte, dass bond0 den Verkehr hier empfängt, aber das passiert nicht.

selbst wenn ich scp mit IP 122 mache, wählt es bond1. Und nachdem ich das System neu gestartet habe und wenn ich scp mit beiden IPs diesmal versuche, wählt es bond0.

Was ich aber erwarte, ist statisches Verhalten, dh wenn ich scp auf IP 144 mache, sollte der Datenverkehr von bond0 ausgewählt werden, und wenn ich scp auf 122 mache, sollte der Datenverkehr auf bond1 umgeleitet werden.

1
Vielleicht müssen Sie bond1 und bond2 an eine andere Bindung binden, um das zu erreichen, was Sie möchten Tom Yan vor 8 Jahren 0

1 Antwort auf die Frage

0
suprjami

Sie beschreiben, wie Linux standardmäßig arbeitet, wenn sich mehrere Schnittstellen im selben Subnetz befinden.

Linux hat standardmäßig kein Konzept für "diese Schnittstelle und ihren MAC" und "diese Schnittstelle und ihren MAC", es kennt nur "meine Schnittstellen und MACs" und antwortet auf jede ARP-Anfrage auf einer beliebigen Schnittstelle.

Sie können jede Schnittstelle für ARP mit den einstellbaren Parametern richtig konfigurieren:

net.ipv4.conf.all.arp_filter = 1 net.ipv4.conf.all.arp_announce = 2 

Damit der Datenverkehr wie gewünscht abläuft, müssen Sie das Richtlinienrouting so einrichten, dass jede Verbindung mit dem Standard-Gateway über eine separate Routing-Tabelle verfügt. Daher gibt es IP-Regeln für die Quelladressen jeder Verbindung, um den Datenverkehr in die gewünschte Routing-Tabelle zu verschieben . Dies erfordert, dass sich Anwendungen an die Quelladresse binden, um zu funktionieren.

Dies ist jedoch eine komplexe problematische Konfiguration, und ich empfehle es nicht.

Wenn Sie möchten, dass auf jeder Bondschnittstelle ein anderer Datenverkehr getrennt wird, platzieren Sie eine Bondverbindung in einer anderen Broadcastdomäne und ein anderes Subnetz zur anderen Bondverbindung, und leiten Sie den Verkehr ordnungsgemäß weiter.