Kial via BGP-sesio ne aperas en la enkursiga tabelo de la VPC
BGP-sesio sur EC2-aparato ne instalas VPC-enkursigojn. Disvastigo estas ebligata por ĉiu enkursiga tabelo aparte, kaj la aparato daŭre plusendas ĉiun paketon.
La rakonto, kiu ripetiĝas, estas, ke enkursiga demono sur EC2 VPN-aparato instruos al la VPC ĝiajn malproksimajn prefiksojn, tuj kiam BGP ekfunkcios. Duono de tio estas vera. La sesio ekfunkcias, kaj nenio en la enkursiga tabelo de la VPC ŝanĝiĝas pro tio, kaj tial la unua simptomo kutime estas subreto, kiu silente faligas trafikon en nigran truon.
Ĉi tie konfuziĝas du malsamaj aferoj: peerado kun enkursiga servilo, kaj instalado de enkursigoj en tabelon.
La mito: starigu BGP kaj la VPC lernos la prefiksojn
BGP estas konversacio inter du parolantoj, kaj en ĉi tiu dezajno la parolantoj estas la enkursiga demono sur via aparato kaj VPC Route Server-fina punkto, kiun AWS metas en subreton, kiun vi posedas. Tiu konversacio portas prefiksojn. Ĝi ne tuŝas la enkursigan tabelon de viaj laborŝarĝaj subretoj, ĉar tiuj tabeloj lernas nur per disvastigo, kiun oni devas ebligi sur ĉiu el ili. Ĝis tio okazos, la ŝtofo de la VPC scias nenion pri tio, kion scias la aparato.
La agordaj paŝoj estas apartaj pro kialo: asocii, krei la finan punkton, peeri, poste ebligi la disvastigon.
Route Server estas rega ebeno, ne tunelo
Route Server ne ĉifras, ne plusendas kaj ne inspektas eĉ unu paketon. Ĝi ekzistas por interŝanĝi BGP kun la aparato kaj transdoni la rezultajn prefiksojn al la enkursigaj tabeloj agorditaj por ricevi ilin. La data ebeno ne ŝanĝiĝas: paketoj ankoraŭ eliras tra la reta interfaco de la aparato, vojaĝas tra ĝia VPN kaj revenas la saman vojon.
Tio signifas, ke la kontrolo de fonto kaj celo sur la plusenda instanco ankoraŭ gravas, ĉar la instanco nun plusendas trafikon adresitan al iu alia.
Sekurecaj grupoj kaj subretaj kontroloj ankaŭ validas por la plusendata fluo. Route Server ne devigos aparaton, kiu faligas trafikon, plusendi ĝin, kaj ĝi ne riparos mankan revenan enkursigon ĉe la malproksima flanko.
Disvastigo estas por ĉiu enkursiga tabelo, ne por la tuta VPC
Asocii la enkursigan servilon kun la VPC kaj ebligi disvastigon sur enkursiga tabelo estas du decidoj, kaj nur la dua ŝanĝas tion, kion faras subreto. VPC kun ses enkursigaj tabeloj povas ricevi disvastigitan prefikson en unu kaj ne en la aliaj kvin, kio estas ĝuste ĝusta por hub-subreto kaj ĝuste tio, kio produktas la konfuzan rezulton «funkcias duone». Eĉ kie disvastigo estas ŝaltita, konkurenca enkursigo povas venki, ĉar la enkursiga elekto de VPC preferas la plej longan prefikson kaj, ĉe egala longo, preferas statikan enkursigon anstataŭ disvastigita. Tiu prefero estas aplikata silente.
Kontrolu la efektivan tabelon por la konkreta subreto anstataŭ la liston de prefiksoj, kiujn la aparato anoncas. La API respondas al tiu demando rekte: aws ec2 associate-route-server kaj aws ec2 enable-route-server-propagation --route-table-id <id> estas la du paŝoj, kiujn homoj forgesas, kaj aws ec2 describe-route-tables --route-table-ids <id> montras, ĉu la prefikso entute alvenis kiel route server-enskribo.
La aparato ankoraŭ portas ĉiun paketon
Anonci atingeblon ne samas kiel havi ĝin. BGP-sesio povas resti establita dum la VPN de la aparato estas malaktiva, kaj statika anonco, kiu neniam ŝanĝiĝas, daŭre tiras trafikon al morta vojo. Route Server subtenas malkovron de fiaskoj kiel BFD, sed tio testas la vivecon de la peer, ne la sanon de ĉio malantaŭ ĝi.
Ligu la anoncon al la reala malproksima enkursigo: anoncu la prefikson kiam la tunelo kaj la malproksima reto estas aktivaj, kaj retiru ĝin kiam ili ne estas.
Retiru prefikson kaj observu, kio okazas
Testu laŭ etapoj, kaj faru la lastan etapon forigo. Konfirmu, ke la anonco alvenas, ke la prefikso aperas en ĉiu celata tabelo, ke la aparato estas la sekva saltpunkto, ke plusendado transiras la aktivan tunnelon kaj ke la malproksima fino respondas. Poste retiru testan prefikson, aŭ fermu aprobitan tunnelon, kaj observu, ĉu trafiko moviĝas tien, kien la dezajno diras. Notu la tabelojn antaŭ kaj post, dum la testo estas ankoraŭ malfermita.
Movi enkursigon al dua aparato ne movas la sesiojn, kiujn ĝi portis, ĉar la stato de NAT kaj fajroŝirmilo restas ĉe la unua aparato.
Por fiksa aro de dekduo da prefiksoj, statikaj enkursigoj en la tabeloj de VPC restas la pli malmultekosta respondo. Route Server gajnas sian lokon, kiam la prefiksa listo vere ŝanĝiĝas kaj la retira politiko estas io, kion vi povas klarigi al la homo en deĵoro.