Die Behauptung, Equal-Cost-Multipath sei für eine Host-Route sinnlos, wird so oft wiederholt, dass sie wahr klingt. Ein /32 wählt eine Zieladresse aus, und nichts an dieser Auswahl beschränkt das Paket auf einen physischen Link. Ist das Ziel ein entfernter VXLAN-Tunnelendpunkt, können mehrere nächste Hops unterschiedliche Overlay-Flows tragen, und ob sie es tun, hängt davon ab, was der Forwarding-Hash sehen darf. Der Rest ist Arithmetik auf dem äußeren Header, keine Eigenschaft des Präfixes.

Die Route entscheidet über die Erreichbarkeit; der Hash entscheidet über die Verteilung.

Der Mythos: ein /32 bedeutet einen Pfad

OSPF kann eine gleichwertige Erreichbarkeit zu einem VTEP-Loopback melden, während die Forwarding-Tabelle eine Gruppe nächster Hops für dasselbe Präfix installiert. Das Protokoll liefert die Kandidaten; die Plattform entscheidet, welche davon nutzbar sind und wie ein Paket zugeordnet wird. Kein Routingprotokoll berechnet für jeden gekapselten Frame einen neuen Hash. Genau diese Trennung ist der Grund, warum zwei Router mit identischen Routen den Verkehr dennoch unterschiedlich verteilen können.

Sehen Sie sich den installierten Forwarding-Eintrag an und nicht nur die Routenanzeige, denn Hardware- oder Richtlinienlimits können Kandidaten verwerfen, die die Control Plane noch ankündigt.

Woher die Entropie kommen muss

Zwischen zwei VTEPs bleiben die äußeren Quell- und Zieladressen fest, und der UDP-Zielport ist in einer konventionellen Bereitstellung 4789. Ein Hash, der nur diese Werte liest, sieht eine konstante Eingabe und liefert einen konstanten Pfad. Etwas im äußeren Header muss variieren, und das VTEP ist das Gerät, das es variieren kann.

RFC 7348 schlägt vor, den UDP-Quellport aus Feldern innerhalb des gekapselten Frames abzuleiten. Unterschiedliche innere Konversationen erzeugen dann unterschiedliche äußere Tupel, was einem gewöhnlichen Transport-Hash etwas zum Arbeiten gibt.

Wenn die Forwarding-Hardware tiefer in das Paket schauen kann, prüfen Sie, welche inneren Felder ihre Hash-Implementierung unterstützt. Diese Tiefe sollte nicht als Anforderung für jedes Underlay-Gerät gelten, da die Variation des Quellports allein bereits nützliche Unterschiede offenlegt.

Prüfen Sie den Hash, den Sie tatsächlich bekommen

Messen statt annehmen. Fangen Sie eine Stichprobe des gekapselten Verkehrs ab und schauen Sie sich die äußeren Quellports an, und vergleichen Sie das Ergebnis dann mit den Forwarding-Einträgen und den Zählern pro Link.

show ip route 10.255.0.5/32
show ip cef 10.255.0.5 internal
ip route show 10.255.0.5
tcpdump -ni eth0 -c 200 'udp port 4789' -vv

Ein Quellport, der über viele verschiedene innere Konversationen hinweg erscheint, bedeutet, dass das VTEP das Feld nicht variiert, und kein Underlay-Tuning wird die Last verteilen. Viele verschiedene Ports bei einem einzigen genutzten nächsten Hop deuten stattdessen auf die Forwarding-Gruppe hin.

Notieren Sie die Zähler vor und nach der Stichprobe und beachten Sie fremden Verkehr, der sich die Uplinks teilt, sonst sehen die Zahlen schlechter aus, als der Hash verdient.

Was gleichmäßige Verteilung nicht bedeutet

Ein Per-Flow-Hash ist darauf ausgelegt, eine Konversation auf einem Pfad zu halten, solange ihre Eingaben und die verfügbare Pfadmenge unverändert bleiben. Eine einzelne große TCP-Übertragung bündelt daher nicht alle Uplinks, und zusätzliche Links werden diesen einen Flow nicht beschleunigen. Das ist normales Verhalten, kein Fehler.

Mehrere Flows können auch zufällig auf demselben nächsten Hop kollidieren. Eine kurze Stichprobe kann stark schief aussehen, während der Hash genau das tut, wofür er konfiguriert wurde, und ein Linkausfall oder eine Änderung der Pfadmenge kann bestehende Flows mitten in der Übertragung verschieben.

Testen Sie mit repräsentativen Adresspaaren, Transporten und Raten nach einem genehmigten Plan, und halten Sie die Auswahl der Link-Aggregations-Mitglieder getrennt von der Auswahl des gerouteten Multipath, weil zwei Hashing-Stufen ihr eigenes Muster bilden. Eine gefüllte Next-Hop-Gruppe plus sichtbare äußere Entropie erklärt das Ergebnis; die Präfixlänge nicht.

Ähnliche Artikel