ECMP do jednego VTEP: skąd bierze się entropia VXLAN
Zdalny VTEP może mieć kilka następnych skoków o równym koszcie, ale /32 nie czyni ich użytecznymi. Rozkład zależy od zewnętrznej krotki i skrótu portu źródłowego.
Twierdzenie, że wielościeżkowość o równym koszcie jest bezsensowna dla trasy hosta, powtarza się dość często, by brzmieć prawdziwie. /32 wybiera adres docelowy i nic w tym wyborze nie ogranicza pakietu do jednego łącza fizycznego. Gdy celem jest zdalny punkt końcowy tunelu VXLAN, kilka następnych skoków może przenosić różne przepływy nakładki, a to, czy to robią, zależy od tego, co skrót przekazywania może zobaczyć. Reszta to arytmetyka na zewnętrznym nagłówku, a nie właściwość prefiksu.
Trasa decyduje o osiągalności; skrót decyduje o rozkładzie.
Mit: /32 oznacza jedną ścieżkę
OSPF może zgłaszać osiągalność o równym koszcie do pętli zwrotnej VTEP, podczas gdy tablica przekazywania instaluje grupę następnych skoków dla tego samego prefiksu. Protokół dostarcza kandydatów; platforma decyduje, które z nich są użyteczne i jak przydzielany jest pakiet. Żaden protokół routingu nie oblicza nowego skrótu dla każdej enkapsulowanej ramki. Właśnie ten rozdział wyjaśnia, dlaczego dwa routery z identycznymi trasami mogą wciąż rozdzielać ruch inaczej.
Patrz na zainstalowany wpis przekazywania, a nie tylko na widok trasy, ponieważ limity sprzętowe lub polityki mogą odrzucić kandydatów, których płaszczyzna sterowania wciąż ogłasza.
Skąd entropia musi pochodzić
Między dwoma VTEP zewnętrzne adresy źródłowy i docelowy pozostają stałe, a port docelowy UDP wynosi 4789 w konwencjonalnym wdrożeniu. Skrót czytający tylko te wartości widzi stałe wejście i zwraca stałą ścieżkę. Coś w zewnętrznym nagłówku musi się zmieniać, a VTEP jest urządzeniem, które może to zapewnić.
RFC 7348 proponuje wyprowadzać port źródłowy UDP z pól wewnątrz enkapsulowanej ramki. Różne wewnętrzne rozmowy dają wtedy różne zewnętrzne krotki, co daje zwykłemu skrótowi transportowemu materiał do pracy.
Jeśli sprzęt przekazujący może zajrzeć głębiej w pakiet, sprawdź, które pola wewnętrzne obsługuje jego implementacja skrótu. Tej głębokości nie należy traktować jako wymogu dla każdego urządzenia underlay, ponieważ sama zmienność portu źródłowego ujawnia już użyteczne różnice.
Sprawdź skrót, który faktycznie otrzymujesz
Mierz zamiast zakładać. Przechwyć próbkę enkapsulowanego ruchu i spójrz na zewnętrzne porty źródłowe, a następnie porównaj wynik z wpisami przekazywania i licznikami na łącze.
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
Jeden port źródłowy pojawiający się w wielu różnych rozmowach wewnętrznych oznacza, że VTEP nie zmienia pola i żadne strojenie underlay nie rozłoży obciążenia. Wiele różnych portów przy jednym używanym następnym skoku wskazuje raczej na grupę przekazywania.
Zanotuj liczniki przed próbką i po niej oraz zwróć uwagę na niezwiązany ruch współdzielący uplinki, inaczej liczby będą wyglądać gorzej, niż skrót na to zasługuje.
Czego równomierny rozkład nie oznacza
Skrót na przepływ jest zaprojektowany tak, by utrzymać jedną rozmowę na jednej ścieżce, dopóki jej wejścia i dostępny zbiór ścieżek nie zmieniają się. Dlatego jedno duże przesłanie TCP nie agreguje wszystkich uplinków, a dodanie łączy nie przyspieszy tego przepływu. To normalne zachowanie, nie usterka.
Kilka przepływów może też przypadkiem zderzyć się na tym samym następnym skoku. Krótka próbka może wyglądać mocno skośnie, podczas gdy skrót robi dokładnie to, do czego został skonfigurowany, a awaria łącza lub zmiana zbioru ścieżek może przenieść ustalone przepływy w środku transmisji.
Testuj z reprezentatywnymi parami adresów, transportami i szybkościami według zatwierdzonego planu i trzymaj wybór członków agregacji łączy oddzielnie od wyboru rutowanej wielościeżkowości, ponieważ dwa etapy mieszania tworzą własny wzorzec. Wypełniona grupa następnych skoków plus widoczna zewnętrzna entropia wyjaśniają wynik; długość prefiksu nie.