Ich bin gerade dabei, einige neue Virtualisierungsserver bereitzustellen, und ein Teil davon besteht darin, einige Pipes mit höherer Bandbreite in sie zu integrieren. Das ultimative Ziel besteht darin, 4 GigE-Ports in einen einzigen Trunk zu binden, der 802.1q-Tagged-Verkehr transportiert. Ich kann so weit kommen, aber ich bin auf ein seltsames Problem gestoßen. Aber zuerst ein Diagramm.
---------- ---------- 1GbE trunks
| | 10GbE | | ------------- --------
| SW1 |-------| SW2 | ------------- | VM1 |
| | | | ------------- --------
---------- ----------
| | 1GbE -----------
| 1GbE |--------| client2 |
| -----------
----------
| | 1GbE -----------
| SW3 |------| client1 |
| | -----------
----------
Alle Switches sind HP ProCurve 2910al-Switches und nicht gestapelt. Client2 im obigen Diagramm befindet sich im selben VLAN wie VM1. Client1 befindet sich in einem anderen VLAN. Für den VM-Computer (CentOS 6) wurden sowohl iptables als auch SELinux deaktiviert.
Mein Problem ist, dass bei Trunking kein bidirektionaler Netzwerkverkehr möglich ist, wenn mit einem der Client-Computer gesprochen wird. TCPDUMP zeigt an, dass Pings von ihnen empfangen und ECHO REPLY-Pakete gesendet werden, der VM-Host sie jedoch nie sieht. Wenn ich gleichzeitig versuche, die VM von einem Client-Computer aus zu pingen, funktioniert dies nicht. Die Tatsache, dass ich client2, das sich im selben Subnetz befindet, nicht anpingen kann, deutet darauf hin, dass irgendwo in der Netzwerkschicht etwas schief läuft.
Seltsamerweise kann ich vom VM-Host aus die Gateway-IPs auf jedem der Switches anpingen. Wenn ich eine einzelne Schnittstelle verwende, funktioniert alles mit und ohne VLAN-Tagging einwandfrei. Wenn ich nur eine einzelne Schnittstelle binde und das VLAN-Tagging auf dieser Schnittstelle aktiviere, kann ich überall hingehen. Baue einen Kofferraum, und ich beschränke mich auf die Switch-Fabric.
Die Art des Kofferraums scheint keine Rolle zu spielen. Im Moment sind sie mit Amtsleitungen des Modus 0 (balance-rr) konfiguriert, obwohl sich die Verwendung von LACP / 802.1qa genauso verhält.
vlan 70
name "Virtualization Subnet"
untagged 35,36,38,40
tagged Trk1-Trk2,Trk5,Trk8
no ip address
jumbo
exit
Das ist die VLAN-Konfiguration auf SW2 dort oben. In der VLAN 70-Definition von SW1 ist die "IP-Adresse" definiert. Das obige Snippet befindet sich im vollständig nicht überlasteten Modus. Wenn ich gestaut bin:
trunk 35-36,38,40 Trk16 trunk
vlan 70
name "Virtualization Subnet"
tagged Trk1-Trk2,Trk5,Trk8,Trk16
no ip address
jumbo
exit
Die 802.1qa / LACP-Version tauscht die Trunk-Definition gegen trunk 35-36,38,40 Trk16 lacp
aus, ändert aber, wie gesagt, nichts an der Problemdarstellung.
Client2 ist tatsächlich mit SW1 verbunden, aber das Einfügen in das Diagramm hätte die Formatierung schwieriger gemacht. In jedem Fall ist das einzige, was in der Zeilengruppe Interface steht, eine name
Direktive. Es ist als untagged
Port in der Zeilengruppe vlan 70 für SW1 aufgeführt.
Was vermisse ich?
quelle
Antworten:
Nach einer langen Debatte im Chat beteiligt MikeyB , Pauska und ChrisS endete das Problem bis zu sein zweifach:
bonding
Modul nicht als Teil vonservice network restart
geändert wurden, sodass meine Änderungen zwischen LACP-Modus (4) und Roundrobin (0) nicht verfolgt wurden.Nachdem ich die verbundene Schnittstelle über diesen Befehl in den LACP / 802.1qa-Modus versetzt hatte:
Sowohl der Server als auch der Switch sprachen. Ab diesem Zeitpunkt funktionierte der Datenverkehr normal, beginnend mit nur einer auf dem Switch aktivierten Schnittstelle. Durch Aktivieren einer zweiten, dritten und schließlich der vierten Schnittstelle funktionierte der Datenverkehr weiter.
Letztendlich hat der LACP-Modus die Dinge zum Laufen gebracht. Der Hinweis war, dass der Round-Robin-Modus funktionierte, wenn nur ein aktivierter Switch-Port im Trunk vorhanden war. Der Server überlebt einen Neustart und wird im richtigen Modus gestartet. A
service network restart
bewirkt jedoch nicht, dass derMODE="4"
Teil derifcfg-bond0
Datei in/etc/sysconfig/network-scripts/
wirksam wird. Wenn sich dieser Modus ändert, bleibt er beim Booten eingestellt (oder wahrscheinlicher beim Laden desbonding
Moduls des Moduls).quelle
Sie haben in Ihrer Konfiguration:
Sollte das nicht sein:
quelle
untagged 35-36,38,40
undtagged 35-36,38,40...
beide funktionieren, solange ich nicht versuche, Schnittstellen auf dem Linux-Server zusammenzufassen.untagged Trk16
undtagged Trk16...
beide funktionieren nicht.