BGP je naučio prefiks, ali saobraćaj i dalje zaobilazi tunel
Prefiks u BGP tabeli je vijest kontrolne ravni, a ne odluka o prosljeđivanju. Provjerite prijem, izbor, instalaciju i podudaranje prije nego okrivite tunel.
Grani brendmauer prikazuje prefiks oblaka u svojoj BGP tabeli, sesija sa provajderom je uspostavljena, a korisnički zahtjev prema tom prefiksu ipak izlazi kroz pogrešan interfejs. Ništa nije pokvareno onako kako monitoring sugeriše, jer “BGP je to naučio” je tvrdnja o kontrolnoj ravni. Između te tabele i paketa postoje četiri odvojena prelaza, a tok se zaustavlja na tačno jednom od njih. Prođite kroz kapije redom i zaustavite se na prvoj koja padne.
Prva kapija: šta je susjed zaista poslao
Počnite od prefiksa onakvog kakav je primljen, a ne sažetog. Nađite tačnu mrežu i masku u BGP tabeli i zabilježite sljedeći hop, AS putanju i svaku community koju bi politika importa mogla poklopiti. Sažeta ruta na kontrolnoj tabli može sakriti činjenicu da konkretni prefiks nikada nije prihvaćen.
Politika importa je uobičajeno mjesto gdje ruta nestane bez greške. Lista prefiksa, filter community vrijednosti ili ulazna route mapa mogu odbaciti ažuriranje dok sesija ostaje podignuta i zdrava, i zato zeleno svjetlo susjeda tako malo dokazuje. Odsustvo log linije ne znači odsustvo odluke. Obično znači da je odluka donesena tiho, tačno kako je konfigurisano.
show ip bgp 10.60.20.0/24 show ip bgp neighbors 203.0.113.5 advertised-routes show ip route 10.60.20.0 show ip cef 10.60.20.0
Čitajte izlaz tim redom. Prve dvije komande kažu da li je informacija stigla i šta susjed tvrdi da je poslao; posljednje dvije kažu da li je išta stiglo do tabela rutiranja i prosljeđivanja. Prefiks prisutan u prvoj komandi, a odsutan u trećoj, problem je izbora ili instalacije, ne povezanosti.
Druga kapija: izbor, pa instalacija
BGP bira najbolju putanju, a izabrana putanja se ne instalira automatski. Sljedeći hop se mora razriješiti, a drugi izvor ruta možda već posjeduje taj prefiks s boljom administrativnom distancom. Statička ruta zaostala iz migracije lako će pobijediti valjanu BGP putanju i poslati saobraćaj negdje drugdje.
RFC 4271 drži tri ideje odvojeno: šta je susjed poslao, šta je ovaj speaker izabrao kao najbolje i šta će dalje oglašavati. To su konceptualne uloge, a ne tri fizičke baze podataka koje proizvođač mora izložiti, ali upravo to razdvajanje čini “to je u BGP-u” nepotpunim odgovorom.
Provjerite i koji kontekst rutiranja čitate. Ruta instalirana u VRF kojoj korisnički interfejs ne pripada nevidljiva je za pakete tog korisnika, a tabela cijelo vrijeme izgleda ispravno.
Treća kapija: pretraga koja se primjenjuje na ovaj tok
Sada prestanite pitati o ruti i počnite pitati o paketu. Zabilježite korisničku izvornu adresu, odredište, protokol, port i ulazni interfejs, jer svaki od njih može odabrati drugu politiku. Zatim pogledajte pretragu koja se primjenjuje na tu kombinaciju, a ne opštu tabelu rutiranja.
ip route get 10.60.20.25 from 10.60.10.40 ip rule show sudo tcpdump -ni tun0 'host 10.60.20.25'
Specifičniji prefiks je ovdje najčešće iznenađenje, a policy ruta drugo. Obje nadjačavaju agregat koji ste gledali, a nijedna nije vidljiva u sažetku BGP tabele.
Ping s brendmauera nije dokaz o korisničkoj sesiji. Druga izvorna adresa, druga putanja politike i često drugačiji rezultat. Testirajte s istim izvorom koji aplikacija koristi ili prihvatite da test odgovara na drugo pitanje.
Četvrta kapija: daleka polovina putanje
Ako lokalna pretraga zaista odabere tunel, paket i dalje mora biti prihvaćen od zaštitne politike, dozvoljen pravilom prosljeđivanja i odgovoren od nečega s druge strane. Crypto ACL koji ne obuhvata par adresa odbacit će saobraćaj dok tunel sebe prijavljuje kao podignut, što stvara timeout koji se ne razlikuje od kvara rutiranja.
Povratna putanja je jednako važna kao odlazna. Strana oblaka mora znati kako doći do izvora grane, bilo rutom bilo translacijom koju ste namjerno konfigurisali. Asimetrične povratne putanje česte su u dizajnima testiranim samo iz jednog smjera.
Povežite svježu autorizovanu vezu s tri zapažanja: lokalna politika koja se poklopila, brojači tunela koji su se pomjerili i prijem na dalekoj strani gdje je to vidljivo. Ako se brojači ne pomjeraju, paket nikada nije ušao u tunel bez obzira šta tabela ruta kaže. Ako se pomjeraju a ništa ne stiže, daleka strana ga odbacuje ili pogrešno rutira. Ta dva ishoda vode do potpuno različitih timova.
Imenujte prelaz koji je pao
Zapišite rezultat kao jedno od pet stanja: nije primljeno, nije prihvaćeno politikom, nije izabrano, nije instalirano ili nije poklopljeno ovim tokom. Dodajte šesto za slučaj kada je lokalna putanja ispravna, a daleki kraj ne može odgovoriti. Ta rečenica je rezultat i mnogo je korisnija od snimka ekrana uspostavljenog susjeda.
Zadržite i negativni test u planu prihvatanja: odredište koje ne smije ići kroz tunel, provjereno nakon promjene. Kontrolna lista koja dokazuje samo sretnu putanju neće uhvatiti široko pravilo politike koje neko doda u sljedećem prozoru za održavanje.