VPN sa končí na inštancii EC2, na adresu tunela tejto inštancie sa dostanete, a prevádzka, ktorá mala prejsť cez ňu k inému súkromnému hostiteľovi, mizne. Sú to dva rôzne testy a ich miešanie stráca hodiny. Prvý sa pýta, či sa na inštanciu dostanete; druhý žiada, aby preposielala prevádzku pre cieľ, ktorý nie je jej vlastný, čo vyžaduje preposielanie v Linuxe, politiku firewallu, trasu na druhej strane a povolenie na úrovni AWS, ktoré nemá nič spoločné s hosťujúcim operačným systémom. Nič v konzole na tento rozdiel neupozorňuje. Príznak vyzerá ako porucha smerovania a zvyčajne ňou nie je.

Oddeľte oba testy, kým čokoľvek zmeníte

Dosiahnutie brány dokazuje tunel, trasu k jej adrese a bezpečnostnú skupinu, ktorá výmenu umožňuje. Preposielanie pre iného hostiteľa nedokazuje nič z toho: používa inú zdrojovú adresu, iný cieľ a inštanciu v role, pre ktorú nemusela byť postavená. Zapíšte oba testy oddelene a poznamenajte, ktorý zlyháva, pretože oprava každého je v inej konzole. Inštancia brány postavená len na ukončovanie tunelov nemá dôvod preposielať čokoľvek iné a jej predvolené hodnoty to odrážajú. Preto druhý test potrebuje vlastné nastavenie, a nie drobnú úpravu prvého.

Ping, ktorý funguje na bránu, a ping, ktorý zlyháva na hostiteľa za ňou, nie je občasný problém. Je to očakávané správanie inštancie, ktorej nebolo povedané, že smie preposielať.

Zapíšte si cestu, kým sa dotknete nastavenia

Zaznamenajte prefix klienta, inštanciu alebo sieťové rozhranie preposielania, cieľovú podsieť a spätnú trasu. Záznam v tabuľke trás VPC ukazujúci na inštanciu nenastavuje operačný systém inštancie na preposielanie a hosťujúce jadro so zapnutým preposielaním nevytvára trasu VPC. Musia existovať oba konce tohto vzťahu a upravujú sa na rôznych miestach ľuďmi s rôznym prístupom.

Potom skontrolujte nastavenie kontroly zdroja/cieľa na skutočnom komponente preposielania, nie na každej inštancii vo VPC. AWS dokumentuje, prečo musí mať inštancia, ktorá preposiela prevádzku za iných, túto kontrolu vypnutú, aj prečo je nastavenie rozhodnutím pre každú inštanciu a nie predvolenou hodnotou pre celé VPC.

Štyri hranice a kontrola je len jedna z nich

Berte cestu ako štyri otázky a odpovedajte na ne v poradí. Prvá zlyhávajúca odpoveď je miesto, kde je práca, a žiadna z ostatných to nenahradí.

BoundaryQuestion it answers
VPC route tablesDo the destinations and replies select the intended gateway?
Forwarding instanceDo the AWS check and the guest OS both permit forwarding?
Access policyDo security groups, ACLs and host rules allow the exchange?
DestinationCan the service accept that source and return a reply?

Poradie je dôležité, pretože kontrola je lacná: trasy sú viditeľné na jednej stránke, kontrola je jediný atribút a názor cieľa je zvyčajne to posledné, na čo sa niekto pýta.

Preklad mení, ktorý zdroj cieľ vidí

Smerovaný návrh zachováva zdrojovú adresu klienta, takže cieľ potrebuje spätnú trasu k prefixu klienta. Preložený návrh namiesto toho predstavuje adresu brány, čo túto požiadavku odstraňuje a nahrádza ho tabuľkou stavov na bráne. Rozhodnite sa podľa architektúry, ktorú zamýšľate, namiesto pridávania prekladu preto, že ho použil nesúvisiaci príklad a zdal sa funkčný.

Ak prekladáte, obmedzte pravidlo na prefix klienta a zamýšľaný cieľ. Ak zachovávate, potvrďte, že druhá strana trasu skutočne pozná, namiesto predpokladu, že sa ju naučí.

Testujte z pôvodného klienta a potom zmenu ponechajte

Požiadavka vytvorená na bráne môže uspieť, zatiaľ čo preposielaná požiadavka zlyháva, pretože ide o iný zdroj a iný prípad preposielania. Po cielenej oprave zopakujte presný test klient až zdroj, ktorý zlyhal, z toho istého klienta, a potvrďte, že odpoveď sa vracia, a nie len že požiadavka dorazila.

Nakoniec vložte nastavenie do spravovanej konfigurácie brány, aby ho náhradná inštancia dostala. Úspešný test, ktorý závisí od ručnej výnimky, je test, ktorý vyprší pri ďalšej prestavbe, a človek, ktorý ho objavil, tam nebude, aby si spomenul prečo.

Súvisiace články