Проверката на извор/дестинација е една порта, не целиот VPN пат
Инстанцата што препраќа бара дозвола од AWS, како и Linux рути и правила на огнен ѕид. Проверете ја валидацијата на извор/дестинација на инстанцата што препраќа.
VPN-от завршува на EC2 инстанца, можете да ја достигнете адресата на тунелот на таа инстанца, а сообраќајот што требаше да помине низ неа кон друг приватен хост исчезнува. Тоа се два различни теста, а нивното мешање губи часови. Првиот прашува дали можете да ја достигнете инстанцата; вториот бара таа да препраќа сообраќај за дестинација што не е нејзина, што бара препраќање во Linux, политика на огнен ѕид, рута на далечната страна и дозвола на ниво на AWS што нема никаква врска со гостинскиот оперативен систем. Ништо во конзолата не го привлекува вниманието на таа разлика. Симптомот изгледа како дефект во рутирањето, а обично не е.
Одделете ги двата теста пред да промените нешто
Достигнувањето на портата го докажува тунелот, рутата до нејзината адреса и безбедносната група што ја дозволува размената. Препраќањето за друг хост не докажува ништо од тоа: користи друга изворна адреса, друга дестинација и инстанца во улога за која не е нужно изградена. Запишете ги двата теста одделно и забележете кој не успева, бидејќи исправката за секој е во друга конзола. Портата-инстанца изградена само за завршување тунели нема причина да препраќа за нешто друго, а нејзините стандардни поставки го одразуваат тоа. Затоа вториот тест бара сопствено поставување, а не мала корекција на првиот.
Ping што работи кон портата и ping што не успева кон хостот зад неа не е повремен проблем. Тоа е очекуваното однесување на инстанца на која не ѝ е кажано дека смее да препраќа.
Запишете ја патеката пред да допрете поставка
Забележете го префиксот на клиентот, инстанцата или мрежниот интерфејс за препраќање, целната подмрежа и рутата за одговор. Записот во табелата со рути на VPC што покажува на инстанца не го конфигурира оперативниот систем на инстанцата за препраќање, а гостинското јадро со вклучено препраќање не создава VPC рута. Двата краја на таа врска мора да постојат, и тие се уредуваат на различни места од луѓе со различен пристап.
Потоа проверете ја поставката за проверка на извор/дестинација на вистинската компонента за препраќање, а не на секоја инстанца во VPC. AWS документира зошто на инстанца што препраќа сообраќај за други ѝ треба таа проверка исклучена, како и зошто поставката е одлука за секоја инстанца, а не стандард за целиот VPC.
Четири граници, а проверката е само една од нив
Третирајте ја патеката како четири прашања и одговорете ги по ред. Првиот неуспешен одговор е местото каде е работата, и ниту еден од останатите нема да го надомести.
| Boundary | Question it answers |
|---|---|
| VPC route tables | Do the destinations and replies select the intended gateway? |
| Forwarding instance | Do the AWS check and the guest OS both permit forwarding? |
| Access policy | Do security groups, ACLs and host rules allow the exchange? |
| Destination | Can the service accept that source and return a reply? |
Редоследот е важен зашто проверката е евтина: рутите се гледаат на една страница, проверката е еден атрибут, а мислењето на дестинацијата обично е последното нешто што некој го прашува.
Преводот менува кој извор го гледа дестинацијата
Рутираниот дизајн ја зачувува изворната адреса на клиентот, па дестинацијата бара повратна рута до префиксот на клиентот. Преведениот дизајн наместо тоа ја претставува адресата на портата, што го отстранува тоа барање и го заменува со табела на состојби на портата. Одлучете според архитектурата што ја намеравате, наместо да додадете превод зашто некој неповрзан пример го користел и изгледал како да работи.
Ако преведувате, ограничете го правилото на префиксот на клиентот и предвидената дестинација. Ако зачувувате, потврдете дека далечната страна навистина ја знае рутата, наместо да претпоставувате дека ќе научи една.
Тестирајте од оригиналниот клиент, потоа задржете ја промената
Барање создадено на портата може да успее додека препратено барање не успева, зашто тоа е друг извор и друг случај на препраќање. По насочена исправка, повторете го точното тестирање од клиент до ресурс што не успеа, од истиот клиент, и потврдете дека одговорот се враќа, а не само дека барањето пристигнало.
На крајот, ставете ја поставката во управуваната конфигурација на портата за да ја добие заменска инстанца. Успешен тест што зависи од рачен исклучок е тест што истекува при следното преградување, а личноста што го открила нема да биде таму за да се сети зошто.