Miks sinu BGP-sessioon VPC marsruutimistabelis ei ilmu
BGP-sessioon EC2 seadmes ei paigalda VPC marsruute. Levitamine lubatakse iga marsruutimistabeli jaoks eraldi ja seade edastab endiselt iga paketi.
Korduv lugu on see, et EC2 VPN-seadme marsruutimisdemon õpetab VPC-le selle kauged prefiksid kohe, kui BGP püsti tuleb. Pool sellest on tõsi. Sessioon tuleb püsti ja VPC marsruutimistabelis ei muutu sellest midagi, mistõttu esimene sümptom on tavaliselt alamsuvõrk, mis suunab liikluse vaikselt musta auku.
Siin aetakse segi kaks erinevat asja: peerimine marsruutimisserveriga ja marsruutide paigaldamine tabelisse.
Müüt: tõsta BGP püsti ja VPC õpib prefiksid
BGP on vestlus kahe kõneleja vahel ja selles disainis on kõnelejateks teie seadme marsruutimisdemon ja VPC Route Serveri lõpp-punkt, mille AWS paigutab teie omanduses olevasse alamsuvõrku. See vestlus kannab prefikse. See ei puuduta teie töökoormuse alamsuvõrkude marsruutimistabelit, sest need tabelid õpivad ainult levitamise kaudu, mis tuleb igas tabelis eraldi lubada. Kuni seda ei juhtu, ei tea VPC kangas midagi sellest, mida seade teab.
Seadistamise sammud on eraldi mõistlikul põhjusel: seosta, loo lõpp-punkt, peeri, seejärel luba levitamine.
Route Server on juhtimistasand, mitte tunnel
Route Server ei krüpteeri, edasta ega kontrolli ühtegi paketti. Ta on olemas selleks, et vahetada seadmega BGP-d ja anda saadud prefiksid neile marsruutimistabelitele, mis on konfigureeritud neid vastu võtma. Andmetasand jääb muutumatuks: paketid väljuvad endiselt seadme võrguliidese kaudu, reisivad selle VPN-is ja tulevad sama teed tagasi.
See tähendab, et edastava instantsi lähte- ja sihtkoha kontroll on endiselt oluline, sest instants edastab nüüd liiklust, mis on adresseeritud kellelegi teisele.
Turvagrupid ja alamsuvõrgu kontrollid kehtivad ka edastatava voo kohta. Route Server ei pane liiklust pillavat seadet seda edastama ega paranda kaugemas otsas puuduvat tagasitee marsruuti.
Levitamine käib marsruutimistabeli, mitte VPC kaupa
Marsruutimisserveri VPC-ga sidumine ja levitamise lubamine marsruutimistabelis on kaks otsust ning ainult teine muudab seda, mida alamsuvõrk teeb. Kuue marsruutimistabeliga VPC võib saada levitatud prefiksi ühes tabelis, kuid mitte ülejäänud viies, mis on hub-alamsuvõrgu jaoks täpselt õige ja täpselt see, mis tekitab segase «töötab poolikult» tulemuse. Isegi seal, kus levitamine on sees, võib konkureeriv marsruut võita, sest VPC marsruudivalik eelistab pikimat prefiksit ja võrdse pikkuse korral eelistab staatilist marsruuti levitatud marsruudile. Seda eelistust rakendatakse vaikselt.
Kontrollige konkreetse alamsuvõrgu tegelikku tabelit, mitte seadme teatatud prefiksite loendit. API vastab sellele küsimusele otse: aws ec2 associate-route-server ja aws ec2 enable-route-server-propagation --route-table-id <id> on kaks sammu, mille inimesed unustavad, ja aws ec2 describe-route-tables --route-table-ids <id> näitab, kas prefiks üldse route serveri kirjena saabus.
Seade kannab endiselt iga paketti
Kättesaadavuse kuulutamine ei ole sama, mis selle omamine. BGP-sessioon võib jääda püsti ka siis, kui seadme VPN on maas, ja staatiline kuulutus, mis kunagi ei muutu, tõmbab liiklust edasi surnud tee poole. Route Server toetab rikete tuvastamist, näiteks BFD-d, kuid see testib peeri elujõudu, mitte kõige selle tervist, mis on peeri taga.
Siduge kuulutus tegeliku kaugmarsruudiga: kuulutage prefiks välja, kui tunnel ja kaugvõrk on püsti, ja võtke tagasi, kui need ei ole.
Võtke prefiks tagasi ja vaadake, mis juhtub
Testige etappide kaupa ja tehke viimasest etapist eemaldamine. Kinnitage, et kuulutus saabub, prefiks ilmub igasse kavandatud tabelisse, seade on järgmine hüpe, edastus läbib aktiivse tunneli ja kaugem ots vastab. Seejärel võtke testprefiks tagasi või sulgege kinnitatud tunnel ja jälgige, kas liiklus liigub sinna, kuhu disain ütleb. Kirjutage tabelid enne ja pärast üles, kuni test on veel avatud.
Marsruudi viimine teise seadmesse ei vii selle kantud sessioone üle, sest NAT-i ja tulemüüri olek jääb esimesse seadmesse.
Fikseeritud tosina prefiksi puhul jäävad VPC tabelite staatilised marsruudid odavamaks vastuseks. Route Server teenib oma koha välja siis, kui prefiksite loend tõesti muutub ja tagasivõtmise poliitika on midagi, mida saate valves olevale inimesele selgitada.