Sommige L2VPN-roetes verdwyn nadat jy roete-reflekteerders bygevoeg het
Sessies bly op terwyl ’n paar L2VPN-roetes nooit aankom nie. Hergebruikte cluster-ID’s, kliëntverhoudings en die refleksiegraaf verduidelik daardie selektiewe verlies.
Sessies bly op, die IGP is stabiel, en tog verskyn ’n handvol L2VPN-roetes nooit op twee van die vier verskafferrante nie. Daardie patroon hoort by ’n refleksieprobleem eerder as by ’n vervoerprobleem, want ’n gebreekte sessie faal heeltemal, terwyl ’n hergebruikte refleksiegrens selektief faal. Die fisiese ring het niks daarmee te doen nie; die logiese verspreidingsgraaf is waar daardie roetes gestop het. Om daardie punt te vind, vereis nie dat jy die beheervlak herbou nie.
Die verlies is selektief, wat die soektog vernou
Vier verskafferrante op ’n fisiese ring benodig ses logiese sessies vir ’n volle maas, want elke router paar met die ander drie. Daardie sessies ry op die gerouteerde vervoer, so die bekabeling sê niks oor hoeveel aanliggendhede bestaan of watter daarvan reflekteer nie. Wanneer twee rante ’n spesifieke stel voorvoegsels mis terwyl alles anders konvergeer, is die kabel nie die verdagte nie.
Selektiewe verlies dui op lusvoorkoming, beleid of die rigting van die verhouding, waar sommige roetes ’n grens oorsteek en ander onderweg laat val word. Totale verlies dui op die sessie of die adresfamilie. Om te besluit watter van dié twee jy sien, is die eerste nuttige stap, en dit neem een opdrag.
Wat refleksie werklik verander
Roete-refleksie verslap die reël dat ’n iBGP-spreker nie ’n roete wat by ’n ander iBGP-spreker geleer is, mag heradverteer nie. RFC 4456 druk die uitsondering uit deur die verhouding tussen die spreker en die bron van die roete, en die rigting van daardie verhouding maak meer saak as wat die meeste opsommings voorstel. ’n Roete wat by ’n kliënt geleer is, mag na ander kliënte en na nie-kliënte gereflekteer word, terwyl ’n roete wat by ’n nie-kliënt geleer is, slegs na kliënte gereflekteer mag word. Lees die asimmetrie twee keer, want dit verduidelik hoe die byvoeging van ’n kliëntverhouding ’n ontwerpfout kan verberg: dit open ’n pad wat die topologie nooit bedoel het nie.
Die CLUSTER_LIST-attribuut teken die refleksiegeskiedenis aan, en ’n reflekteerder wat sy eie cluster-ID in daardie lys vind, moet die adverensie ignoreer. Dit is lusvoorkoming, en dit is ook die meganisme wat roetes uitwis wanneer identifiseerders per ongeluk hergebruik word. ORIGINATOR_ID speel ’n verwante rol deur die router te noem wat die roete eerste geadverteer het.
Hergebruikte cluster-ID’s is hoe roetes verdwyn
’n Klein netwerk nooi ’n kortpad uit: gee elke router ’n cluster-ID gelyk aan sy loopback, voeg later nog ’n reflekteerder by, en hergebruik ’n bestaande loopback omdat dit gerieflik byderhand is. As daardie identifiseerder nou by twee onafhanklike refleksiestadia verskyn, sien die tweede stadium sy eie ID in CLUSTER_LIST en gooi die roete weg. Niks teken ’n fout aan nie, want weggooi is die korrekte reaksie op ’n lus.
Oortollige reflekteerders wat een cluster bedien, is die wettige uitsondering: hulle deel doelbewus ’n ID sodat albei dieselfde kliënte kan bedien. Die identifiseerder moet by die refleksieontwerp pas eerder as om rakname te onderskei.
Teken die beoogde graaf voordat jy enige konfigurasie aanraak: wie die voorvoegsel oorsprong gee, watter kliëntverhouding die eerste refleksie toelaat, watter reflekteerder dit na die volgende stadium dra, en waar die laaste kliënt sit. Elke hop in daardie graaf is ’n plek waar ’n hergebruikte identifiseerder, ’n ontbrekende kliëntverhouding of ’n beleidsfilter die roete kan stop. Met die graaf geteken, het ’n ontbrekende roete ’n ligging eerder as ’n raaisel.
Weerstaan om elke buur ’n kliënt te maak
Die vinnige herstelling vir ’n ontbrekende roete is om elke buur ’n kliënt van elke reflekteerder te maak. Verspreiding kom terug, en die ontwerp hou op om jou enigiets te vertel: dit vermenigvuldig die roetes wat elke spreker dra terwyl dit verberg watter verhouding veronderstel was om die werk te doen.
’n Klein netwerk het gewoonlik een van twee vorms nodig. ’n Volledige iBGP-maas is ses sessies vir vier routers sonder enige refleksie, en ’n aangewese paar reflekteerders wat die oorblywende rante bedien, is die ander. Albei is makliker om oor te redeneer as ’n gedeeltelike maas waarin elke router ’n bietjie reflekteer. Kies die vorm volgens skaal en foutgedrag, nie volgens die bekabelingsdiagram nie.
Kontroleer die adresfamilie voordat jy refleksie blameer
’n TCP-sessie op poort 179 bewys die twee sprekers kan praat, en niks oor of die VPN-adresfamilie ’n enkele roete uitgeruil het nie. Stel sessietoestand vas, dan die familie, dan die individuele voorvoegsel.
vtysh -c "show bgp summary"
vtysh -c "show bgp l2vpn evpn summary"
vtysh -c "show bgp l2vpn evpn"
Daardie drie uitsette skei ’n aanliggendheidsprobleem van ’n uitruilprobleem van ’n ontbrekende-voorvoegselprobleem. As die familie glad geen voorvoegsels wys nie, ondersoek die buur se aktiveertoestand en uitvoerbeleid voordat jy na refleksie kyk. As voorvoegsels op een rand verskyn maar nie op ’n ander nie, vergelyk die clusterlys en oorsprong aan die ontvangkant, en stap dan die graaf uit die vorige afdeling.
Hou volgende-hop-bereikbaarheid en aansturingstoestand buite daardie kontrole. ’n Gereflekteerde roete met ’n onbereikbare volgende hop is teenwoordig en onbruikbaar, wat soos ’n refleksiefout lees totdat jy na die volgende-hop-kolom kyk. Los die volgende hop op, bevestig die aansturinginskrywing, en besluit eers daarna of die verspreidingsgraaf nog ’n reflekteerder nodig het.