Aufgrund einer früheren Frage vor über einem Jahr ( Multiplexed 1 Gbps Ethernet? ) Habe ich ein neues Rack mit einem neuen ISP mit LACP-Verbindungen überall eingerichtet. Dies ist erforderlich, da wir über einzelne Server (eine Anwendung, eine IP-Adresse) verfügen, die Tausende von Clientcomputern im gesamten Internet mit einer Gesamtgeschwindigkeit von über 1 Gbit / s bedienen.
Diese LACP-Idee soll es uns ermöglichen, die 1-Gbit / s-Grenze zu überschreiten, ohne ein Vermögen für 10GoE-Switches und NICs auszugeben. Leider habe ich Probleme mit der Verteilung des ausgehenden Datenverkehrs. (Dies trotz der Warnung von Kevin Kuphal in der oben verlinkten Frage.)
Der Router des Internetdienstanbieters ist eine Art Cisco. (Das habe ich aus der MAC-Adresse abgeleitet.) Mein Switch ist ein HP ProCurve 2510G-24. Und die Server sind HP DL 380 G5s, auf denen Debian Lenny läuft. Ein Server ist ein Hot-Standby-Server. Unsere Anwendung kann nicht geclustert werden. Hier ist ein vereinfachtes Netzwerkdiagramm, das alle relevanten Netzwerkknoten mit IPs, MACs und Schnittstellen enthält.
Obwohl es alle Details enthält, ist es etwas schwierig, mit meinem Problem umzugehen und es zu beschreiben. Der Einfachheit halber ist hier ein Netzwerkdiagramm dargestellt, das auf die Knoten und physischen Verbindungen beschränkt ist.
Also ging ich los und installierte mein Kit im neuen Rack und verband die Verkabelung meines ISP mit dessen Router. Beide Server haben eine LACP-Verbindung zu meinem Switch und der Switch hat eine LACP-Verbindung zum ISP-Router. Von Anfang an stellte ich fest, dass meine LACP-Konfiguration nicht korrekt war: Tests ergaben, dass der gesamte Datenverkehr zu und von jedem Server über eine physische GoE-Verbindung ausschließlich zwischen Server-zu-Switch und Switch-zu-Router übertragen wurde.
Mit einigen Google-Suchen und viel RTMF-Zeit in Bezug auf das Binden von Linux-Netzwerkkarten habe ich festgestellt, dass ich das Binden von Netzwerkkarten durch Ändern steuern kann /etc/modules
# /etc/modules: kernel modules to load at boot time.
# mode=4 is for lacp
# xmit_hash_policy=1 means to use layer3+4(TCP/IP src/dst) & not default layer2
bonding mode=4 miimon=100 max_bonds=2 xmit_hash_policy=1
loop
Dadurch wurde der Datenverkehr, der meinen Server verlässt, wie erwartet über beide Netzwerkkarten übertragen. Der Datenverkehr wurde jedoch immer noch über nur eine physische Verbindung vom Switch zum Router geleitet .
Wir brauchen diesen Datenverkehr über beide physischen Verbindungen. Nach dem Lesen und erneuten Lesen des Verwaltungs- und Konfigurationshandbuchs für den 2510G-24 finde ich Folgendes :
[LACP verwendet] Quell-Ziel-Adresspaare (SA / DA) zum Verteilen des ausgehenden Datenverkehrs über Bündelverbindungen. SA / DA (Quelladresse / Zieladresse) bewirkt, dass der Switch den ausgehenden Verkehr auf der Grundlage von Quell- / Zieladressenpaaren auf die Verbindungen innerhalb der Trunk-Gruppe verteilt. Das heißt, der Switch sendet Verkehr von derselben Quelladresse zu derselben Zieladresse über dieselbe Bündelverbindung und Verkehr von derselben Quelladresse zu einer anderen Zieladresse über eine andere Verbindung, abhängig von der Rotation der Pfadzuweisungen zwischen den Links im Kofferraum.
Es sieht so aus, als ob eine geklebte Verbindung nur eine MAC-Adresse enthält, und daher wird mein Server-zu-Router-Pfad immer über einen Pfad von Switch zu Router verlaufen, da der Switch nur einen MAC sieht (und nicht zwei - einen von jeden Port) für beide LACP-Verbindungen.
Verstanden. Aber das ist was ich will:
Ein teurerer HP ProCurve Switch ist der 2910al, der Quell- und Zieladressen der Stufe 3 in seinem Hash verwendet. Im Abschnitt "Verteilung des ausgehenden Datenverkehrs über gebündelte Verbindungen" des ProCurve 2910al-Handbuchs für Verwaltung und Konfiguration :
Die tatsächliche Verteilung des Verkehrs durch eine Amtsleitung hängt von einer Berechnung ab, die Bits aus der Quelladresse und der Zieladresse verwendet. Wenn eine IP-Adresse verfügbar ist, werden die letzten fünf Bits der IP-Quelladresse und der IP-Zieladresse berechnet, andernfalls werden die MAC-Adressen verwendet.
OKAY. Damit dies so funktioniert, wie ich es möchte, ist die Zieladresse der Schlüssel, da meine Quelladresse festgelegt ist. Dies führt zu meiner Frage:
Wie genau und speziell funktioniert das Layer-3-LACP-Hashing?
Ich muss wissen, welche Zieladresse verwendet wird:
- die IP des Kunden , das Endziel?
- Oder die IP des Routers , das nächste Übertragungsziel der physischen Verbindung.
Wir haben noch keinen Ersatzschalter gekauft. Bitte helfen Sie mir, genau zu verstehen, ob der Layer-3-LACP-Zieladressenhashing das ist, was ich benötige oder nicht. Der Kauf eines weiteren unbrauchbaren Schalters ist keine Option.