VPN završava na EC2 instanci, možete doći do adrese tunela te instance, a promet koji bi kroz nju trebao ići prema drugom privatnom hostu nestaje. To su dva različita testa i njihovo miješanje gubi sate. Prvi pita možete li doći do instance; drugi traži da ona prosljeđuje promet za odredište koje nije njezino, što zahtijeva Linux prosljeđivanje, pravilo vatrozida, rutu na suprotnoj strani i dozvolu na razini AWS-a koja nema nikakve veze s gostujućim operativnim sustavom. Ništa u konzoli ne skreće pozornost na tu razliku. Simptom izgleda kao kvar usmjeravanja i obično nije.

Razdvojite dva testa prije nego što bilo što promijenite

Dolazak do pristupnika dokazuje tunel, rutu do njegove adrese i sigurnosnu grupu koja dopušta razmjenu. Prosljeđivanje za drugi host ne dokazuje ništa od toga: koristi drugu izvornu adresu, drugo odredište i instancu u ulozi za koju nije nužno građena. Napišite dva testa odvojeno i zabilježite koji pada, jer ispravak za svaki živi u drugoj konzoli. Instanca pristupnika građena samo za završavanje tunela nema razloga prosljeđivati ništa drugo i njezine zadane postavke to odražavaju. Zato drugi test treba vlastito postavljanje, a ne malu prilagodbu prvoga.

Ping koji radi prema pristupniku i ping koji pada prema hostu iza njega nije povremeni problem. To je očekivano ponašanje instance kojoj nije rečeno da smije prosljeđivati.

Zapišite put prije nego što dirnete postavku

Zabilježite prefiks klijenta, instancu ili mrežno sučelje za prosljeđivanje, ciljnu podmrežu i povratnu rutu. Unos u tablici ruta VPC-a koji pokazuje na instancu ne konfigurira operativni sustav instance za prosljeđivanje, a gostujuća jezgra s uključenim prosljeđivanjem ne stvara VPC rutu. Oba kraja tog odnosa moraju postojati i uređuju se na različitim mjestima, od ljudi s različitim pristupom.

Zatim pregledajte postavku provjere izvora/odredišta na stvarnoj komponenti za prosljeđivanje, a ne na svakoj instanci u VPC-u. AWS dokumentira zašto instanca koja prosljeđuje promet za druge treba imati tu provjeru isključenu, kao i zašto je postavka odluka po instanci, a ne zadana vrijednost na razini VPC-a.

Četiri granice, a provjera je samo jedna od njih

Tretirajte put kao četiri pitanja i odgovorite na njih po redu. Prvi odgovor koji padne mjesto je na kojem je posao i nijedan ga drugi neće nadoknaditi.

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?

Redoslijed je važan jer je provjera jeftina: rute su vidljive na jednoj stranici, provjera je jedan atribut, a mišljenje odredišta obično je posljednje što itko pita.

Prevođenje mijenja koji izvor odredište vidi

Usmjereni dizajn čuva izvornu adresu klijenta, pa odredištu treba povratna ruta do prefiksa klijenta. Prevedeni dizajn umjesto toga predstavlja adresu pristupnika, što uklanja taj zahtjev i zamjenjuje ga tablicom stanja na pristupniku. Odlučite prema arhitekturi koju namjeravate, umjesto da dodajete prevođenje jer ga je neki nepovezani primjer koristio i izgledao ispravan.

Ako prevodite, ograničite pravilo na prefiks klijenta i predviđeno odredište. Ako čuvate, potvrdite da suprotna strana doista zna rutu, umjesto da pretpostavljate da će je naučiti.

Testirajte s izvornog klijenta, zatim zadržite promjenu

Zahtjev stvoren na pristupniku može uspjeti dok proslijeđeni zahtjev pada, jer je to drugi izvor i drugi slučaj prosljeđivanja. Nakon ciljane ispravke ponovite točan test klijent-prema-resursu koji je pao, s istog klijenta, i potvrdite da se odgovor vraća, a ne samo da je zahtjev stigao.

Na kraju, stavite postavku u upravljanu konfiguraciju pristupnika kako bi je zamjenska instanca dobila. Uspješan test koji ovisi o ručnoj iznimci test je koji istječe pri sljedećoj obnovi, a osoba koja ga je otkrila neće biti tamo da se prisjeti zašto.

Povezani članci