Kaks saiti, üks tunnel ja kaugemal asuv prefiks, mis vastab mõnda aega ja jääb siis vaikseks. Refleks on nimetada seda marsruutimissilmuseks, ja mõnikord ongi see täpselt seda. Kuid silmus ja flappiv marsruut tekitavad sama kaebuse ning vajavad vastupidiseid parandusi: üks on edastusotsus, mis ei lõpe kunagi, teine on prefiks, mis lahkub tabelist ikka ja jälle. Kolm tähelepanekut eristavad neid, ja kõik kolm saab koguda lüüsi käsurealt enne, kui puudutate filtrit või taaskäivitate tunnelit.

Silmus otsustatakse hüpe hüppe haaval. Sait A valib sihtkoha jaoks järgmiseks hüppeks B, B valib sama sihtkoha jaoks A, ja pakett aegub TTL-il pärast kahte edasi-tagasi käiku. Flappimise otsustab seevastu marsruutimisprotokoll: prefiks tõmmatakse tagasi, paigaldatakse uuesti või asendatakse alternatiivse järgmise hüppega, nii et mõnel paketil pole üldse marsruuti, samal ajal kui teised järgivad täiesti head.

Kolm kontrolli, mis küsimuse lahendavad

Esimese otsuse tegemiseks pole vaja pakette püüda. Vaja on prefiksi olekut mõlemas otsas, järgmist hüpet, mille kumbki pool valib, ja hüpete arvu, mis kas kordub või mitte. Kui prefiks jääb sama järgmise hüppega paigaldatuks, samal ajal kui liiklus nurjub, elab silmus edastusteel. Kui prefiks kaob ja tuleb tagasi, on viga edastusest kõrgemal ja parandus kuulub marsruutimisprotokolli, mitte staatilisse marsruuti.

ObservationRouting loopRoute flapping
Prefix in the tableInstalled, same next hop throughoutWithdrawn and reinstalled, or next hop alternates
Hop countReaches zero at the same two gatewaysExpires only while the prefix is missing
Failure shapeConsistent loss for that prefix from every sourceBursts, often after a link or peer event
Where the fix belongsThe site that owns the prefix, plus filters on the transit pathAdvertisement, hold timers, or the flapping link

Üks hoiatus enne alustamist. Kui loete seda läbi tunneli, mis silmustab, sureb teie seanss hetkel, kui marsruuti muudate. Avage konsool või haldustee, mis ei sõltu prefiksist, mida kavatsete parandada.

Esimene kontroll: kas prefiks on stabiilne või keerleb

Küsige tuumalt, mille see paigaldas, mitte mida konfiguratsioonifail lubab. Linuxi lüüsil teeb ip route get 10.20.30.40 sama otsingu, mida teeb edastustee, sealhulgas poliitikatabelid, samal ajal kui ip route show 10.20.30.0/24 näitab kirjet ennast. ip monitor route edastab iga muudatuse selle toimumise hetkel, mis on kiireim viis näha prefiksi saabumist ja lahkumist.

FRR-i või BIRD-iga ruuteril pole huvitav edastustabel. show ip bgp 10.20.30.0/24 tagastab valitud tee ja selle tööaja; tööaeg, mis lähtestub iga paari minuti tagant, on flappimine, mida saate nimetada, mitte silmus. show ip bgp summary näitab naabri olekut ja prefiksite arvu, seega pidevalt langev naaber võtab süü edastusteelt.

Kirjutage vastus üles enne, kui midagi muudate. Kümme minutit stabiilne, samal ajal kui pingid nurjusid, ja neli korda kümne minuti jooksul kadunud viivad erinevate järgmiste sammudeni. Teine muudab iga staatilise marsruudi teooria ebaoluliseks.

Teine kontroll: kas järgmine hüpe osutab tagasi saabumistunneli

Silmus vajab kahe lüüsi kokkulepet. Vastuvõtva saidi juures vaadake marsruuti, mida pakett lahkumiseks kasutab: ip route get 10.20.30.40 from 10.10.5.20 tegeliku lähteaadressiga, sest poliitikareegel võib vastata teisiti kui põhitabel. Seejärel korrake otsingut saidil, mis selle saatis. Kui kumbki pool valib teise sama prefiksi järgmiseks hüppeks, on silmus tõestatud ja ükski püük ei lisa midagi.

Põhjus on peaaegu alati teadaanne, mis ei oleks tohtinud tunnelit läbida. Tunnelisse ümberjaotatud vaikimisi marsruut, kaugsaidi oma alavõrku kattev agregaat või igaks juhuks partnerile osutav staatiline marsruut tekitavad kõik sama vastastikuse järgmise hüppe. Tunnel võib olla täielikult üles ehitatud ja vedada liiklust ikkagi ringis; strongSwan edastusmärkused kirjeldavad selle nõude marsruutimispoolt.

WireGuard väärib oma märkust, sest pole teadaannet, mida süüdistada. wg show loetleb iga partneri AllowedIPs-i ja tuum aktsepteerib partneri sihtaadressi ainult siis, kui see jääb sellesse vahemikku. Silmus seal on kattuv AllowedIPs-i vahemik või staatiline marsruut, mis osutab tagasi üle liidese, seega elab parandus neis kahes kohas ja mitte mujal.

Kolmas kontroll: lugege hüpete arvu, mitte tärne

traceroute -n -I 10.20.30.40 ja mtr -n -r -c 20 10.20.30.40 näitavad mõlemad teed ning ICMP-režiim jääb sageli ellu filtreerimisest, mis sööb UDP-proovid. Silmus näeb välja nagu lühike korduv samade kahe lüüsiaadressi jada, kusjuures TTL kasvab iga kord. Katkestus näeb välja nagu tärnid pärast viimast vastanud lüüsi, ja üks vaikne hüpe ei ole millegi tõestus.

Kui tee on mitmetähenduslik, lugege TTL-i juhtmel. tcpdump -ni any -vv icmp mõlemas lüüsis näitab iga paketi TTL-i ja iga aegumisvastuse lähteaadressi. Kui pakett jõuab kaugsaiti TTL-iga, mis on madalam kui hüpete arv, mida tee võib sisaldada, lisab keegi hüppeid, mida traceroute teile ei näita, ja seda juhtub siis, kui ühe saidi tulemüür vastab proovidele teise eest.

Parandage prefiksi omanikku, seejärel kontrollige mõlemat suunda

Otsustage, milline sait sihtkoha loob ja millised transiiditeed on lubatud, seejärel muutke teadaannet või staatilist marsruuti selle omaniku juures. Vastuvõtva saidi parandamine on ahvatlev ja tavaliselt vale: see peidab silmuse ühe prefiksi jaoks ja jätab halva teadaande järgmise jaoks paigale. Marsruudisildid, jaotuslistid ja split-horizon reeglid on olemas, et seda allikas peatada, ja need on odavamad kui filtrist, mis vastab ühele prefiksile.

Pärast muudatust kontrollige edasi- ja tagasisuunda eraldi, sest silmuse võib asendada musta auguga, ilma et sümptom nähtavalt paraneks. Käivitage ip route get mõlemast otsast, saatke liiklust hostist, mis ei ole lüüs, ja jätke ip monitor route tööle vähemalt üheks hoiutaimeriks, et flappimist ei aetaks parandusega segamini.

Enne kui midagi muudate, kinnitage need viis punkti: prefiks on stabiilne või keerleb, järgmine hüpe mõlemas otsas osutab tunnelile, hüpete arv kordub või mitte, üks sait omab prefiksit ja teil on haldustee, mis muudatuse üle elab. Kui mõni viiest on teadmata, on ülejäänud neli oletused.

Seotud artiklid