Hvorfor BGP-sesjonen din ikke dukker opp i VPC-ens rutetabell
En BGP-sesjon på en EC2-appliance installerer ikke VPC-ruter. Propagering aktiveres per rutetabell, og appliancen videresender fortsatt hver pakke.
Historien som gjentas, er at en rutingsdæmon på en EC2 VPN-appliance vil lære VPC-en dens eksterne prefikser så snart BGP kommer opp. Halvparten av det er sant. Sesjonen kommer opp, og ingenting i rutetabellen til VPC-en endres på grunn av det, og derfor er det første symptomet vanligvis et subnett som stille sender trafikken i et svart hull.
To forskjellige ting blandes sammen her: peering med en route server, og installasjon av ruter i en tabell.
Myten: få BGP opp, og VPC-en lærer prefiksene
BGP er en samtale mellom to talere, og i dette designet er talerne rutingsdæmonen på appliancen din og et VPC Route Server-endepunkt som AWS plasserer i et subnett du eier. Den samtalen bærer prefikser. Den rører ikke rutetabellen til arbeidsbelastningssubnettene dine, fordi disse tabellene bare lærer gjennom propagering som må aktiveres på hver enkelt. Inntil det skjer, vet ikke VPC-ens fabric noe om det appliancen vet.
Oppsettrinnene er adskilt av en grunn: assosier, opprett endepunktet, peer, og aktiver deretter propagering.
Route Server er et kontrollplan, ikke en tunnel
Route Server krypterer, videresender eller inspiserer ikke en enkelt pakke. Den finnes for å utveksle BGP med appliancen og gi de resulterende prefiksene til rutetabellene som er konfigurert til å motta dem. Dataplanet er uendret: pakker forlater fortsatt gjennom appliancens nettverksgrensesnitt, reiser gjennom VPN-en og kommer tilbake samme vei.
Det betyr at kilde- og destinasjonskontrollen på videresendingsinstansen fortsatt betyr noe, fordi instansen nå videresender trafikk adressert til noen andre.
Sikkerhetsgrupper og subnettkontroller gjelder også for den videresendte strømmen. Route Server får ikke en appliance som dropper trafikk til å videresende den, og den reparerer ikke en manglende returrute på den eksterne siden.
Propagering er per rutetabell, ikke per VPC
Å assosiere route serveren med VPC-en og å aktivere propagering på en rutetabell er to beslutninger, og bare den andre endrer hva et subnett gjør. En VPC med seks rutetabeller kan motta et propagert prefiks i én og ikke i de andre fem, noe som er helt riktig for et hub-subnett og nettopp det som gir det forvirrende «virker halvveis»-resultatet. Selv der propagering er på, kan en konkurrerende rute vinne, fordi VPC-rutevalg foretrekker det lengste prefikset og, ved lik lengde, foretrekker en statisk rute fremfor en propagert. Denne preferansen brukes stille.
Sjekk den effektive tabellen for det aktuelle subnettet i stedet for listen over prefikser appliancen annonserer. API-et svarer direkte på det spørsmålet: aws ec2 associate-route-server og aws ec2 enable-route-server-propagation --route-table-id <id> er de to trinnene folk glemmer, og aws ec2 describe-route-tables --route-table-ids <id> viser om prefikset i det hele tatt ankom som en route server-oppføring.
Appliancen bærer fortsatt hver pakke
Å annonsere tilgjengelighet er ikke det samme som å ha den. En BGP-sesjon kan forbli etablert mens VPN-en til appliancen er nede, og en statisk annonse som aldri endres fortsetter å trekke trafikk mot en død vei. Route Server støtter feildeteksjon som BFD, men det tester levedyktigheten til peeren, ikke helsen til alt bak peeren.
Bind annonsen til den ekte eksterne ruten: annonser prefikset når tunnelen og det eksterne nettverket er oppe, og trekk det tilbake når de ikke er det.
Trekk tilbake et prefiks og se hva som skjer
Test i faser, og gjør den siste fasen til en fjerning. Bekreft at annonsen ankommer, at prefikset vises i hver tiltenkt tabell, at appliancen er neste hopp, at videresendingen krysser den aktive tunnelen, og at den eksterne enden svarer. Trekk deretter tilbake et testprefiks, eller lukk en godkjent tunnel, og observer om trafikken flytter seg dit designet sier. Noter tabellene før og etter mens testen fortsatt er åpen.
Å flytte en rute til en annen appliance flytter ikke sesjonene den bar, fordi NAT- og brannmurstatus blir værende på den første enheten.
For et fast sett på et dusin prefikser er statiske ruter i VPC-tabellene fortsatt det billigere svaret. Route Server fortjener plassen sin når prefikslisten virkelig endrer seg og tilbaketrekkingspolicyen er noe du kan forklare personen på vakt.