ECMP prema jednom VTEP-u: odakle dolazi VXLAN entropija
Udaljeni VTEP može imati nekoliko sljedećih skokova jednake cijene, ali /32 ih ne čini korisnima. Raspodjela ovisi o vanjskom tupleu i hashu izvornog porta.
Tvrdnja da je višestazno usmjeravanje jednake cijene besmisleno za host rutu ponavlja se dovoljno često da zvuči istinito. /32 odabire odredišnu adresu i ništa u tom odabiru ne ograničava paket na jednu fizičku vezu. Kad je odredište udaljena krajnja točka VXLAN tunela, nekoliko sljedećih skokova može nositi različite overlay tokove, a hoće li ih nositi ovisi o tome što hash za prosljeđivanje smije vidjeti. Ostalo je aritmetika na vanjskom zaglavlju, a ne svojstvo prefiksa.
Ruta odlučuje o dosegljivosti; hash odlučuje o raspodjeli.
Mit: /32 znači jedan put
OSPF može prijaviti dosegljivost jednake cijene do VTEP loopbacka dok tablica prosljeđivanja instalira grupu sljedećih skokova za isti prefiks. Protokol daje kandidate; platforma odlučuje koji su od njih iskoristivi i kako se paket dodjeljuje. Nijedan protokol usmjeravanja ne računa novi hash za svaki inkapsulirani okvir. Upravo to razdvajanje objašnjava zašto dva usmjerivača s identičnim rutama ipak mogu različito raspodijeliti promet.
Gledajte instalirani zapis prosljeđivanja, a ne samo prikaz rute, jer hardverska ili politička ograničenja mogu odbaciti kandidate koje kontrolna ravnina još oglašava.
Odakle entropija mora doći
Između dva VTEP-a vanjske adrese izvora i odredišta ostaju fiksne, a UDP odredišni port je 4789 u uobičajenoj implementaciji. Hash koji čita samo te vrijednosti vidi stalan ulaz i vraća stalan put. Nešto na vanjskom zaglavlju mora varirati, a VTEP je uređaj koji to može omogućiti.
RFC 7348 predlaže izvođenje UDP izvornog porta iz polja unutar inkapsuliranog okvira. Različiti unutarnji razgovori tada daju različite vanjske tupleove, što običnom transportnom hashu daje nešto s čime može raditi.
Ako hardver za prosljeđivanje može zaviriti dublje u paket, provjerite koja unutarnja polja podržava njegova implementacija hasha. Tu dubinu ne treba smatrati uvjetom za svaki underlay uređaj, jer sama varijacija izvornog porta već otkriva korisne razlike.
Provjerite hash koji doista dobivate
Mjerite umjesto da pretpostavljate. Snimite uzorak inkapsuliranog prometa i pogledajte vanjske izvorne portove, a zatim usporedite rezultat sa zapisima prosljeđivanja i brojačima po vezi.
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
Jedan izvorni port koji se pojavljuje kroz mnogo različitih unutarnjih razgovora znači da VTEP ne mijenja polje i nikakvo podešavanje underlaya neće raspodijeliti opterećenje. Mnogo različitih portova uz jedan iskorišten sljedeći skok upućuje na grupu za prosljeđivanje.
Zabilježite brojače prije i poslije uzorka i zabilježite nepovezani promet koji dijeli uplinkove, inače će brojevi izgledati gore nego što hash zaslužuje.
Što ravnomjerna raspodjela ne znači
Hash po toku namijenjen je držanju jednog razgovora na jednom putu dok njegovi ulazi i raspoloživi skup putova ostaju nepromijenjeni. Zato jedan veliki TCP prijenos ne objedinjuje sve uplinkove i dodavanje veza neće ubrzati taj tok. To je normalno ponašanje, a ne kvar.
Nekoliko tokova može se i slučajno sudariti na istom sljedećem skoku. Kratak uzorak može izgledati jako iskrivljeno dok hash radi točno ono za što je konfiguriran, a prekid veze ili promjena skupa putova može premjestiti uspostavljene tokove usred prijenosa.
Testirajte s reprezentativnim parovima adresa, transportima i brzinama prema odobrenom planu i držite odabir članova agregacije veza odvojeno od odabira usmjerenog višestaznog puta, jer se dva stupnja hasha sklapaju u vlastiti uzorak. Popunjena grupa sljedećih skokova plus vidljiva vanjska entropija objašnjava ishod; duljina prefiksa ne.