Nokre L2VPN-ruter forsvinn når du legg til rutereflektorar
Sesjonane held seg oppe, men nokre få L2VPN-ruter kjem aldri fram. Gjenbrukte klynge-ID-ar, klientrelasjonar og refleksjonsgrafen forklarer det selektive tapet.
Sesjonane held seg oppe, IGP-en er stabil, og likevel dukkar nokre få L2VPN-ruter aldri opp på to av dei fire leverandørkantane. Det mønsteret høyrer til eit refleksjonsproblem og ikkje eit transportproblem, fordi ein broten sesjon feilar fullstendig, medan ei gjenbrukt refleksjonsgrense feilar selektivt. Den fysiske ringen har ingenting med det å gjere; den logiske distribusjonsgrafen er der desse rutene stoppa. Å finne det punktet krev ikkje at du byggjer kontrollplanet på nytt.
Tapet er selektivt, og det snevrar inn søket
Fire leverandørkantar på ein fysisk ring treng seks logiske sesjonar for eit fullt mesh, sidan kvar ruter blir para med dei tre andre. Desse sesjonane går over den ruta transporten, så kablinga seier ingenting om kor mange naboskap som finst eller kva av dei som reflekterer. Når to kantar manglar eit bestemt sett med prefiks medan alt anna konvergerer, er kabelen ikkje den mistenkte.
Selektivt tap peikar mot sløyfeførebygging, policy eller relasjonsretning, der nokre ruter kryssar ei grense og andre blir kasta undervegs. Totalt tap peikar mot sesjonen eller adressefamilien. Å avgjere kven av dei to du ser på er det første nyttige steget, og det tek éin kommando.
Kva refleksjon faktisk endrar
Ruterefleksjon lempar på regelen om at ein iBGP-snakkar ikkje kan annonsere på nytt ei rute lært frå ein annan iBGP-snakkar. RFC 4456 uttrykkjer unntaket gjennom forholdet mellom snakkaren og kjelda til ruta, og retninga på det forholdet betyr meir enn dei fleste samandrag antyder. Ei rute lært frå ein klient kan reflekterast til andre klientar og til ikkje-klientar, medan ei rute lært frå ein ikkje-klient berre kan reflekterast til klientar. Les asymmetrien to gonger, for han forklarer korleis det å leggje til ein klientrelasjon kan skjule ein designfeil: det opnar ein veg topologien aldri hadde tenkt seg.
Attributtet CLUSTER_LIST registrerer refleksjonshistoria, og ein reflektor som finn sin eigen klynge-ID i den lista, må ignorere annonsen. Det er sløyfeførebygging, og det er òg mekanismen som slettar ruter når identifikatorar blir gjenbrukte ved eit uhell. ORIGINATOR_ID spelar ei beslekta rolle ved å namngje ruteren som først annonserte ruta.
Gjenbrukte klynge-ID-ar er korleis ruter forsvinn
Eit lite nettverk innbyr til ein snarveg: gi kvar ruter ein klynge-ID lik loopbacken, legg til enda ein reflektor seinare, og gjenbruk ein eksisterande loopback fordi han er praktisk tilgjengeleg. Viss den identifikatoren no dukkar opp på to uavhengige refleksjonstrinn, ser det andre trinnet sin eigen ID i CLUSTER_LIST og forkastar ruta. Ingenting loggar ein feil, fordi forkasting er det rette svaret på ei sløyfe.
Overflødige reflektorar som tener éin klynge er det legitime unntaket: dei deler ein ID med vilje slik at kvar av dei kan tene dei same klientane. Identifikatoren må samsvare med refleksjonsdesignet i staden for å skilje kabinettnamn.
Teikn den tiltenkte grafen før du rører nokon konfigurasjon: kven opprettar prefikset, kva klientrelasjon tillèt den første refleksjonen, kva reflektor ber han til neste trinn, og kvar den siste klienten sit. Kvart hopp i den grafen er ein stad der ein gjenbrukt identifikator, ein manglande klientrelasjon eller eit policyfilter kan stoppe ruta. Når grafen er teikna, har ei manglande rute ein plassering i staden for eit mysterium.
Motstå freistinga til å gjere kvar nabo til klient
Den raske reparasjonen for ei manglande rute er å gjere kvar nabo til klient hos kvar reflektor. Utbreiinga kjem tilbake, og designet sluttar å fortelje deg noko: det mangedoblar rutene kvar snakkar ber, samstundes som det skjuler kva relasjon som skulle gjere arbeidet.
Eit lite nettverk treng vanlegvis ein av to former. Eit fullt iBGP-mesh er seks sesjonar for fire rutarar heilt utan refleksjon, og eit utpeikt par reflektorar som tener dei gjenverande kantane er den andre. Begge er lettare å resonnere om enn eit delvis mesh der kvar ruter reflekterer litt. Vel forma etter skala og feilåtferd, ikkje etter kablingsteikninga.
Sjekk adressefamilien før du klandrar refleksjonen
Ein TCP-sesjon på port 179 beviser at dei to snakkarane kan snakke saman, og ingenting om kvidt VPN-adressefamilien bytte ut ein einaste rute. Fastslå sesjonstilstanden, deretter familien, deretter det enkelte prefikset.
vtysh -c "show bgp summary"
vtysh -c "show bgp l2vpn evpn summary"
vtysh -c "show bgp l2vpn evpn"
Desse tre utdataa skil eit naboproblem frå eit utvekslingsproblem og frå eit manglande prefiks. Viss familien ikkje viser nokon prefiks i det heile, undersøk aktiveringstilstanden og eksportpolicyen til naboen før du ser på refleksjon. Viss prefiks viser seg på ein kant men ikkje på ein annan, samanlikn klyngelista og originatoren på mottakarsida, og gå deretter gjennom grafen frå førre avsnitt.
Hald rekkevidda til neste hopp og videresendingstilstanden utanfor den kontrollen. Ei reflektert rute med eit utilgjengeleg neste hopp er til stades og ubrukeleg, noko som ser ut som ein refleksjonsfeil til du ser på kolonnen for neste hopp. Løys neste hopp, stadfest videresendingsoppføringa, og avgjer først då om distribusjonsgrafen treng enda ein reflektor.