VGW BGP skelbimai prieš VPC maršrutų lentelę: kas ką keičia
VPC maršrutų lentelė valdo persiuntimą potinkliuose; ji nekeičia to, ką virtualusis privatusis tarpuvartis skelbia per BGP. Sekite kiekvieną kryptį atskirai.
Trūkstamas prefiksas VPC potinklio maršrutų lentelėje ir trūkstamas prefiksas kliento maršrutizatoriuje yra dvi skirtingos gedimų rūšys, ir tik viena jų pašalinama AWS maršrutų lentelėse. Virtualusis privatusis tarpuvartis skelbia su jo VPC susietus CIDR blokus; potinklio maršrutų lentelė nusprendžia, kur darbo krūvis siunčia atsakymą. Antrąjį traktuoti kaip būdą pakeisti pirmąjį yra dažniausia klaidinga posūkio vieta šioje diagnostikoje. Atlikite toliau pateiktus patikrinimus iš eilės ir laikykite abi kryptis atskirai.
Prieš skaitydami bet kokią lentelę, įvardykite prisijungimą
Site-to-Site VPN baigiasi arba virtualiajame privačiajame tarpuvartyje, arba tranzito tarpuvartyje, o išteklių ID nusprendžia, kuris maršrutizavimo modelis taikomas. Pirmiausia perskaitykite juos: aws ec2 describe-vpn-connections --vpn-connection-ids vpn-0123456789abcdef0 --query 'VpnConnections[].{Tunnels:VgwTelemetry,Gateway:GatewayId,Transit:TransitGatewayId}'. Atsakymas pasakys, ar kita tikrinama lentelė yra VPC maršrutų lentelė, ar tranzito tarpuvartės maršrutų lentelė.
Jei VPN prisijungęs prie tranzito tarpuvartės, nustokite VPC maršrutų lentelę laikyti valdymo plokštuma. Ten VPC lentelė nurodo į tarpuvartės prisijungimą, o susiejimas ir sklidimas vyksta tranzito tarpuvartės maršrutų lentelėje. Sumaišius abu požiūrius gaunamos užtikrintos išvados apie netinkamą objektą.
Kryptis iš AWS į biurą yra skelbimas
VGW prisijungimo atveju tarpuvartis skelbia su jo VPC susietus CIDR blokus kliento tarpuvartei per BGP. Pridėjus atskirą potinklio maršrutą arba nukreipus maršrutą į susietą VPC ar įrenginį, nepridedamas kitas susietas CIDR ir tai neatsiranda tame skelbime. Jei biurui trūksta prefikso, palyginkite gautų maršrutų sąrašą su VPC susiejimais prieš redaguodami bet kokią maršrutų lentelę.
Paprasta taisyklė turi išimčių, todėl laikykitės jos taikymo srities. VPN CloudHub konfigūracija gali iš naujo skelbti vietos prefiksus tarp klientų tarpuvartų, o tranzito tarpuvartis laikosi savo sklidimo taisyklių. Teiginys, kad VGW skelbia tik savo VPC, yra naudinga numatytoji prielaida, o ne įstatymas, apimantis kiekvieną topologiją, kurią sutiksite.
Kryptis iš biuro į AWS yra sklidimas ir atranka
Priešinga kryptimi VGW išmoksta biuro prefiksą, bet vien tai neperkelia darbo krūvio. Potinklio maršrutų lentelėje turi būti įjungtas sklidimas prisijungimui arba turi būti statinis maršrutas į tą pačią paskirties vietą. Kai abu egzistuoja vienam prefiksui, laimi statinis maršrutas, o ilgiausio prefikso atitikimas vykdomas prieš abu.
Skaitykite kilmę, o ne darykite prielaidą: aws ec2 describe-route-tables --route-table-ids rtb-0123456789abcdef0 --query 'RouteTables[].Routes'. Įrašas su kilme EnableVgwRoutePropagation atėjo iš BGP; įrašą su kilme CreateRoute įvedė žmogus, ir jis laimės tol, kol kas nors jį ištrins.
Runbook, kuris laiko abi kryptis atskirai
Prieš ką nors keisdami, AWS pusėje užsirašykite keturis faktus: prisijungimo tipą, susietus VPC CIDR, atitinkamo prefikso potinklio maršruto kilmę bei tunelio ir BGP būseną. Tas pats describe kvietimas grąžina VgwTelemetry su priimtų maršrutų skaičiumi kiekvienam tuneliui, kas pasako, ar AWS apskritai priėmė kokių nors maršrutų. Tada palyginkite tai su tuo, ką kliento įrenginys iš tikrųjų įdiegė. Prefiksas, esantis BGP, bet nesančio persiuntimo lentelėje, yra vietinio importo ar geriausio kelio problema, o ne AWS maršrutų lentelės problema.
Jei potinklio lentelėje prefikso visai nėra, įjunkite sklidimą arba pridėkite statinį maršrutą, tada tą pačią užklausą perskaitykite dar kartą po sklidimo intervalo, o ne manykite, kad pakeitimas buvo momentinis. Jei prefiksas yra, o srautas vis tiek nepavyksta, palikite valdymo plokštumą ramybėje ir pereikite prie duomenų kelio.
Ko nekeisti, kol esate ten
Neįjunkite ir neišjunkite sklidimo nesusijusiose maršrutų lentelėse, kad pataisytumėte vieną trūkstamą prefiksą, ir nepridėkite numatytojo maršruto, kad užmaskuotumėte vieną trūkstamą CIDR. Abu pakeitimai padidina poveikio apimtį ir apsunkina kitą diagnostiką. Apribokite redagavimą tik ta lentele, kuri aptarnauja atitinkamą darbo krūvio potinklį.
Duomenų kelias yra atskirtas nuo viso to. Saugos grupės yra būsenos, tinklo ACL – ne, o prieglobos užkarda arba asimetriškas grįžimo kelias gali numesti srautą, kurį maršrutizavimas pristatė teisingai. Skelbiamas agregatas taip pat nesuteikia teisių kiekvienai paslaugai jo viduje, todėl ribokite prieigą ties politikos riba, o ne pasikliaukite tuo, ar adresas atsitiktinai pasirodo BGP skelbime.
Išsaugokite kiekvienos maršrutų lentelės užklausos būseną prieš ir po pakeitimų žurnale. Jei pakeitimas pablogina situaciją, atkurkite ankstesnius maršrutus ir patvirtinkite ta pačia užklausa, nes atsukimas, kurio negalite patikrinti, yra tik spėjimas.