Miten erottaa reitityssilmukka reitin lepatuksesta VPN-sivustoilla
Reitityssilmukka ja lepattava reitti aiheuttavat saman jaksoittaisen katoamisen. Kolme tarkistusta yhdyskäytävillä erottaa ne ennen kuin muutat mitään.
Kaksi sivustoa, yksi tunneli ja etäinen etuliite, joka vastaa aikansa ja vaikenee sitten. Refleksi on kutsua sitä reitityssilmukaksi, ja joskus se on juuri sitä. Mutta silmukka ja lepattava reitti tuottavat saman valituksen ja vaativat vastakkaiset korjaukset: toinen on edelleenlähetyspäätös, joka ei koskaan pääty, toinen on etuliite, joka jatkuvasti poistuu taulukosta. Kolme havaintoa erottaa ne, ja kaikki kolme voi kerätä yhdyskäytävän komentoriviltä ennen kuin kosket suodattimeen tai käynnistät tunnelin uudelleen.
Silmukka ratkeaa hyppy hypyltä. Sivusto A valitsee B:n seuraavaksi hypyksi kohteelle, B valitsee A:n samalle kohteelle, ja paketti vanhenee TTL:ään kahden edestakaisen matkan jälkeen. Lepatuksen ratkaisee sen sijaan reititysprotokolla: etuliite vedetään pois, asennetaan uudelleen tai korvataan vaihtoehtoisella seuraavalla hypyllä, joten joillakin paketeilla ei ole reittiä lainkaan, kun taas toiset seuraavat täysin kelvollista.
Kolme tarkistusta, jotka ratkaisevat kysymyksen
Et tarvitse pakettikaappausta ensimmäiseen päätökseen. Tarvitset etuliitteen tilan molemmissa päissä, kummankin puolen valitseman seuraavan hypyn ja hyppymäärän, joka joko toistuu tai ei. Jos etuliite pysyy asennettuna samalla seuraavalla hypyllä, kun liikenne epäonnistuu, silmukka elää edelleenlähetyspolussa. Jos etuliite katoaa ja palaa, vika on edelleenlähetyksen yläpuolella ja korjaus kuuluu reititysprotokollalle, ei staattiselle reitille.
| 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 |
Yksi varoitus ennen aloitusta. Jos luet tätä tunnelin kautta, joka silmukoi, istuntosi kuolee heti, kun muutat reitin. Avaa konsoli tai hallintapolku, joka ei riipu etuliitteestä, jota olet korjaamassa.
Tarkistus yksi: onko etuliite vakaa vai kuohuuko se
Kysy ytimeltä, mitä se asensi, älä sitä, mitä asetustiedosto lupaa. Linux-yhdyskäytävällä ip route get 10.20.30.40 tekee saman haun kuin edelleenlähetyspolku, mukaan lukien käytäntötaulut, kun taas ip route show 10.20.30.0/24 näyttää itse merkinnän. ip monitor route välittää jokaisen muutoksen sen tapahtuessa, mikä on nopein tapa nähdä etuliitteen saapuvan ja lähtevän.
FRR:ää tai BIRD:iä ajavassa reitittimessä kiinnostava ei ole edelleenlähetystaulukko. show ip bgp 10.20.30.0/24 palauttaa valitun polun ja sen käyntiajan; käyntiaika, joka nollautuu muutaman minuutin välein, on lepatusta, jonka voit nimetä, ei silmukka. show ip bgp summary näyttää naapurin tilan ja etuliitemäärät, joten jatkuvasti putoava naapuri poistaa syyn edelleenlähetyspolulta.
Kirjoita vastaus muistiin ennen kuin muutat mitään. Kymmenen minuuttia vakaa, kun pingit epäonnistuivat, ja neljä kertaa kymmenessä minuutissa kadonnut johtavat erilaisiin seuraaviin vaiheisiin. Jälkimmäinen tekee kaikki staattisen reitin teoriat merkityksettömiksi.
Tarkistus kaksi: osoittaako seuraava hyppy takaisin saapumistunneliin
Silmukka vaatii kahden yhdyskäytävän yksimielisyyden. Katso vastaanottavalla sivustolla reittiä, jota paketti käyttää lähteäkseen: ip route get 10.20.30.40 from 10.10.5.20 todellisella lähdeosoitteella, koska käytäntösääntö voi vastata eri tavalla kuin päätaulukko. Toista sitten haku sivustolla, joka sen lähetti. Jos kumpikin puoli valitsee toisen seuraavaksi hypyksi samalle etuliitteelle, silmukka on todistettu eikä mikään kaappaus lisää siihen mitään.
Syy on lähes aina ilmoitus, jonka ei olisi pitänyt ylittää tunnelia. Tunneliin uudelleenjaettu oletusreitti, etäsivuston oman aliverkon kattava kooste tai varmuuden vuoksi kumppaniin osoittava staattinen reitti luovat kaikki saman molemminpuolisen seuraavan hypyn. Tunneli voi olla täysin muodostettu ja silti kuljettaa liikennettä ympyrää; strongSwanin edelleenlähetyshuomautukset kuvaavat tämän vaatimuksen reitityspuolen.
WireGuard ansaitsee oman huomautuksensa, koska syytettävää ilmoitusta ei ole. wg show luettelee kunkin kumppanin AllowedIPs-arvot, ja ydin hyväksyy kohteen kumppanille vain, jos se osuu kyseiseen alueeseen. Silmukka siellä on päällekkäinen AllowedIPs-alue tai liitännän yli takaisin osoittava staattinen reitti, joten korjaus elää vain noissa kahdessa paikassa.
Tarkistus kolme: lue hyppymäärä, älä tähtiä
traceroute -n -I 10.20.30.40 ja mtr -n -r -c 20 10.20.30.40 näyttävät molemmat polun, ja ICMP-tila selviää usein suodatuksesta, joka syö UDP-koettimet. Silmukka näyttää lyhyeltä toistuvalta samojen kahden yhdyskäytäväosoitteen jaksolta, jossa TTL kasvaa joka kerta. Pudotus näyttää tähdiltä viimeisen vastanneen yhdyskäytävän jälkeen, eikä yksi äänetön hyppy todista mitään.
Kun polku on epäselvä, lue TTL johdosta. tcpdump -ni any -vv icmp molemmilla yhdyskäytävillä näyttää kunkin paketin TTL:n ja kunkin aikakatkaisuvastauksen lähdeosoitteen. Jos paketti saapuu etäsivustolle TTL:llä, joka on pienempi kuin polulla voi olla hyppyjä, jokin lisää hyppyjä, joita traceroute ei näytä sinulle, ja näin käy, kun yhden sivuston palomuuri vastaa koettimiin toisen puolesta.
Korjaa etuliitteen omistaja ja varmista sitten molemmat suunnat
Päätä, mikä sivusto luo kohteen ja mitkä läpikulkupolut ovat sallittuja, ja muuta sitten ilmoitusta tai staattista reittiä kyseisellä omistajalla. Vastaanottavan sivuston korjaaminen on houkuttelevaa ja yleensä väärin: se piilottaa silmukan yhdeltä etuliitteeltä ja jättää huonon ilmoituksen paikoilleen seuraavaa varten. Reittitunnisteet, jakelulistat ja split-horizon-säännöt ovat olemassa, jotta tämä pysäytetään lähteessä, ja ne ovat halvempia kuin suodatin, joka vastaa yhtä etuliitettä.
Tarkista muutoksen jälkeen meno ja paluu erikseen, koska silmukka voi korvautua mustalla aukolla ilman näkyvää oireen paranemista. Aja ip route get molemmista päistä, lähetä liikennettä isännältä, joka ei ole yhdyskäytävä, ja jätä ip monitor route päälle vähintään yhden pitoajastimen ajaksi, jotta lepatusta ei luulla korjaukseksi.
Ennen kuin muutat mitään, vahvista nämä viisi kohtaa: etuliite on vakaa tai kuohuu, seuraava hyppy molemmissa päissä osoittaa tunneliin, hyppymäärä toistuu tai ei, yksi sivusto omistaa etuliitteen, ja sinulla on hallintapolku, joka kestää muutoksen. Jos yksikin viidestä on tuntematon, muut neljä ovat arvauksia.