Hoe om 'n roeteringlus van roetefladdering op VPN-terreine te onderskei
'n Roeteringlus en 'n fladderende roete veroorsaak dieselfde onderbroke verlies. Drie kontroles op die poorte onderskei hulle voordat jy enigiets verander.
Twee terreine, een tonnel en 'n afgeleë prefiks wat 'n rukkie antwoord en dan stil word. Die refleks is om dit 'n roeteringlus te noem, en soms is dit presies wat dit is. Maar 'n lus en 'n fladderende roete lewer dieselfde klag, en hulle verg teenoorgestelde herstellings: die een is 'n aanstuurbe-sluit wat nooit eindig nie, die ander is 'n prefiks wat aanhou om die tabel te verlaat. Drie waarnemings skei hulle, en jy kan al drie by die poort se opdragreël versamel voordat jy aan 'n filter raak of 'n tonnel herbegin.
'n Lus word hop vir hop beslis. Terrein A kies B as die volgende hop vir die bestemming, B kies A vir dieselfde bestemming, en die pakket verval op TTL ná twee heen-en-weer-reise. 'n Fladdering word eerder deur die roeteringprotokol beslis: die prefiks word onttrek, herinstalleer of deur 'n alternatiewe volgende hop vervang, sodat sommige pakkette glad geen roete het nie terwyl ander 'n heeltemal goeie een volg.
Die drie kontroles wat die vraag besleg
Jy het nie 'n pakketopname nodig om die eerste oproep te maak nie. Jy het die prefikstatus aan beide kante nodig, die volgende hop wat elke kant kies, en 'n hoptelling wat óf herhaal óf nie. As die prefiks geïnstalleer bly met dieselfde volgende hop terwyl verkeer misluk, woon die lus in die aanstuurpad. As die prefiks verdwyn en terugkom, is die fout stroomop van aanstuur en hoort die herstelling in die roeteringprotokol, nie in 'n statiese roete nie.
| Observation | Routing loop | Route flapping |
|---|---|---|
| Prefix in the table | Installed, same next hop throughout | Withdrawn and reinstalled, or next hop alternates |
| Hop count | Reaches zero at the same two gateways | Expires only while the prefix is missing |
| Failure shape | Consistent loss for that prefix from every source | Bursts, often after a link or peer event |
| Where the fix belongs | The site that owns the prefix, plus filters on the transit path | Advertisement, hold timers, or the flapping link |
Een waarskuwing voor jy begin. As jy dit lees oor die tonnel wat loop, sterf jou sessie die oomblik wanneer jy die roete verander. Maak 'n konsole of 'n bestuurspad oop wat nie van die prefiks afhang wat jy op die punt is om te herstel nie.
Kontrole een: is die prefiks stabiel of woelend
Vra die kern wat dit geïnstalleer het, nie wat die konfigurasielêer belowe nie. Op 'n Linux-poort voer ip route get 10.20.30.40 dieselfde opsoek uit as die aanstuurpad, insluitend beleidstabelle, terwyl ip route show 10.20.30.0/24 die inskrywing self wys. ip monitor route stroom elke verandering soos dit gebeur, wat die vinnigste manier is om 'n prefiks te sien kom en gaan.
Op 'n router wat FRR of BIRD hardloop, is die aanstuurtabel nie die interessante een nie. show ip bgp 10.20.30.0/24 gee die gekose pad en sy uptyd terug; 'n uptyd wat elke paar minute herstel, is 'n fladdering wat jy kan benoem, nie 'n lus nie. show ip bgp summary wys buurstatus en prefikstellings, so 'n eweknie wat aanhou val, neem die skuld van die aanstuurpad af.
Skryf die antwoord neer voordat jy enigiets verander. Stabiel vir tien minute terwyl pings misluk het, en vier keer in tien minute verdwyn het, lei tot verskillende volgende stappe. Die tweede een maak elke statiese-roete-teorie irrelevant.
Kontrole twee: wys die volgende hop terug in die aankomstonnel in
'n Lus het twee poorte nodig wat saamstem. Op die terrein wat die pakket ontvang, kyk na die roete wat die pakket sal gebruik om te vertrek: ip route get 10.20.30.40 from 10.10.5.20 met die werklike bronadres, want 'n beleidsreël kan anders antwoord as die hooftabel. Herhaal dan die opsoek op die terrein wat dit gestuur het. As elke kant die ander as die volgende hop vir dieselfde prefiks kies, is die lus bewys en geen opname sal iets byvoeg nie.
Die oorsaak is byna altyd 'n advertensie wat nie die tonnel moes oorsteek nie. 'n Verstekroete wat in die tonnel herverdeel word, 'n samevoeging wat die afgeleë terrein se eie subnet dek, of 'n statiese roete wat net ingeval na die eweknie wys, skep almal dieselfde wedersydse volgende hop. Die tonnel kan volledig gevestig wees en steeds verkeer in 'n kring dra; strongSwan se aanstuur notas beskryf die roeteringskant van daardie vereiste.
WireGuard verdien sy eie nota, want daar is geen advertensie om te blameer nie. wg show lys die AllowedIPs vir elke eweknie, en die kern aanvaar 'n bestemming vir 'n eweknie net as dit binne daardie reeks val. 'n Lus daar is 'n oorvleuelende AllowedIPs-reeks of 'n statiese roete wat terug oor die koppelvlak wys, so die herstelling woon in daardie twee plekke en nêrens anders nie.
Kontrole drie: lees die hoptelling, nie die sterre nie
traceroute -n -I 10.20.30.40 en mtr -n -r -c 20 10.20.30.40 wys albei die pad, en ICMP-modus oorleef dikwels filtering wat UDP-peilings eet. 'n Lus lyk soos 'n kort herhalende reeks van dieselfde twee poortadresse met die TTL wat elke keer klim. 'n Val lyk soos sterre ná die laaste poort wat geantwoord het, en 'n enkele stille hop is nie bewys van enigiets nie.
Wanneer die pad dubbelsinnig is, lees die TTL op die draad. tcpdump -ni any -vv icmp op beide poorte wys die TTL van elke pakket en die bronadres van elke tyd-verstreke antwoord. As 'n pakket die verre terrein bereik met 'n TTL laer as die aantal hope wat die pad kan bevat, voeg iets hope by wat traceroute nie vir jou wys nie, wat gebeur wanneer een terrein se firewall peilings namens 'n ander beantwoord.
Herstel die prefiks se eienaar, en verifieer dan beide rigtings
Besluit watter terrein die bestemming oorspronklik en watter deurvoerpade toegelaat word, en verander dan die advertensie of die statiese roete by daardie eienaar. Om die ontvangende terrein reg te maak is aanloklik en gewoonlik verkeerd: dit verberg die lus vir een prefiks en laat die slegte advertensie in plek vir die volgende een. Roete-etikette, verspreidingslyste en split-horison-reëls bestaan om dit by die bron te stop, en hulle is goedkoper as 'n filter wat 'n enkele prefiks pas.
Verifieer ná die verandering heen en terug afsonderlik, want 'n lus kan deur 'n swart gat vervang word sonder enige sigbare verbetering in die simptoom. Hardloop ip route get van beide kante, stuur verkeer vanaf 'n gasheer wat nie die poort is nie, en laat ip monitor route vir ten minste een hou-timer loop sodat 'n fladdering nie vir 'n herstelling aangesien word nie.
Voordat jy enigiets verander, bevestig hierdie vyf punte: die prefiks is stabiel of woelend, die volgende hop aan beide kante wys na 'n tonnel, die hoptelling herhaal of nie, een terrein besit die prefiks, en jy hou 'n bestuurspad wat die verandering oorleef. As enige een van die vyf onbekend is, is die ander vier vermoedens.