Kodėl jūsų BGP sesija nerodoma VPC maršrutų lentelėje
BGP sesija EC2 įrenginyje neįdiegia VPC maršrutų. Skleidimas įjungiamas kiekvienai maršrutų lentelei atskirai, o įrenginys vis dar persiunčia kiekvieną paketą.
Pasakojimas, kuris kartojamas, yra toks: maršrutizavimo demonas EC2 VPN įrenginyje išmokys VPC jo nuotolinius prefiksus, kai tik BGP pakils. Pusė to tiesa. Sesija pakyla, ir VPC maršrutų lentelėje dėl to niekas nesikeičia, todėl pirmasis simptomas paprastai būna potinklis, kuris tyliai numeta srautą į juodąją skylę.
Čia painiojami du skirtingi dalykai: peering su maršrutų serveriu ir maršrutų įdiegimas į lentelę.
Mitas: pakelkite BGP ir VPC išmoks prefiksus
BGP yra dviejų kalbėtojų pokalbis, ir šioje konstrukcijoje kalbėtojai yra maršrutizavimo demonas jūsų įrenginyje ir VPC Route Server galinis taškas, kurį AWS įdeda į jums priklausantį potinklį. Tas pokalbis perneša prefiksus. Jis neliečia jūsų darbo krūvio potinklių maršrutų lentelės, nes tos lentelės mokosi tik per skleidimą, kurį reikia įjungti kiekviename iš jų. Kol tai neįvyks, VPC audinys nieko nežino apie tai, ką žino įrenginys.
Sąrankos žingsniai atskirti dėl priežasties: susieti, sukurti galinį tašką, atlikti peering, tada įjungti skleidimą.
Route Server yra valdymo plokštuma, o ne tunelis
Route Server neužšifruoja, nepersiunčia ir netikrina nė vieno paketo. Jis egzistuoja tam, kad apsikeistų BGP su įrenginiu ir perduotų gautus prefiksus maršrutų lentelėms, sukonfigūruotoms juos priimti. Duomenų plokštuma nepakitusi: paketai vis dar išeina per įrenginio tinklo sąsają, keliauja jo VPN ir grįžta tuo pačiu keliu.
Tai reiškia, kad šaltinio ir paskirties tikrinimas persiuntimo instancijoje vis dar svarbus, nes instancija dabar persiunčia srautą, adresuotą kam nors kitam.
Saugos grupės ir potinklio valdikliai taip pat taikomi persiunčiamam srautui. Route Server neprivers įrenginio, kuris meta srautą, jo persiųsti, ir nesutaisys trūkstamo grįžimo maršruto nuotolinėje pusėje.
Skleidimas yra pagal kiekvieną maršrutų lentelę, o ne pagal visą VPC
Maršrutų serverio susiejimas su VPC ir skleidimo įjungimas maršrutų lentelėje yra du sprendimai, ir tik antrasis keičia tai, ką daro potinklis. VPC su šešiomis maršrutų lentelėmis gali priimti paskleistą prefiksą vienoje ir nepriimti kitose penkiose, o tai yra būtent teisinga koncentratoriaus potinkliui ir būtent tai sukuria gluminantį «veikia pusiau» rezultatą. Net kai skleidimas įjungtas, konkuruojantis maršrutas gali laimėti, nes VPC maršruto parinkimas teikia pirmenybę ilgiausiam prefiksui, o esant vienodam ilgiui – statiniam maršrutui, o ne paskleistam. Ši pirmenybė taikoma tyliai.
Tikrinkite konkretaus potinklio efektyvią lentelę, o ne sąrašą prefiksų, kuriuos skelbia įrenginys. API tiesiogiai atsako į šį klausimą: aws ec2 associate-route-server ir aws ec2 enable-route-server-propagation --route-table-id <id> yra du žingsniai, kuriuos žmonės pamiršta, o aws ec2 describe-route-tables --route-table-ids <id> parodo, ar prefiksas apskritai atvyko kaip route server įrašas.
Įrenginys vis dar perneša kiekvieną paketą
Skelbti pasiekiamumą nėra tas pats, kas jį turėti. BGP sesija gali likti nustatyta, kai įrenginio VPN neveikia, o niekada nesikeičiantis statinis skelbimas toliau traukia srautą mirusio kelio link. Route Server palaiko gedimų aptikimą, pavyzdžiui, BFD, bet tai tikrina partnerio gyvybingumą, o ne visko už jo sveikatą.
Susiekite skelbimą su tikruoju nuotoliniu maršrutu: skelbkite prefiksą, kai tunelis ir nuotolinis tinklas veikia, ir atšaukite jį, kai neveikia.
Atšaukite prefiksą ir pažiūrėkite, kas nutinka
Testuokite etapais, o paskutinį etapą padarykite pašalinimu. Patvirtinkite, kad skelbimas atvyksta, prefiksas pasirodo kiekvienoje numatytoje lentelėje, įrenginys yra kitas šuolis, persiuntimas kerta aktyvų tunelį ir nuotolinis galas atsako. Tada atšaukite bandomąjį prefiksą arba uždarykite patvirtintą tunelį ir stebėkite, ar srautas juda ten, kur sako konstrukcija. Užrašykite lenteles prieš ir po, kol testas dar atviras.
Maršruto perkėlimas į antrą įrenginį neperkelia sesijų, kurias jis nešė, nes NAT ir užkardos būsena lieka pirmajame įrenginyje.
Fiksuotam tuzinui prefiksų statiniai maršrutai VPC lentelėse išlieka pigesnis atsakymas. Route Server užsitarnauja savo vietą, kai prefiksų sąrašas tikrai keičiasi ir atšaukimo politika yra tai, ką galite paaiškinti budinčiam žmogui.