Еден Client VPN endpoint може да достигне VPC што е во peering со неговиот поврзан VPC, и за да го направите тоа легитимно не ви треба bastion. Изборот што вреди да се направи е каде сообраќајот ги менува рацете: endpoint рута што слетува во асоцијациската подмрежа и ја преминува peering врската, или host во peering VPC што ја завршува сесијата. Двете патеки работат и тие не успеваат на различни места, така што одлуката е за сопственост и ревизија, а не за тоа што го дозволува AWS. Еве како избирам меѓу нив, и четирите записи што ја прават рутираната патека функционална.

Две патеки, еден endpoint, различни сопственици

На рутираната патека сообраќајот на клиентот стигнува до endpoint, се преведува во адресата на мрежниот интерфејс на Client VPN во асоцијациската подмрежа и ја напушта таа подмрежа преку peering врската од A до B. VPC B не завршува ниту една VPN сесија; гледа обичен сообраќај од VPC A, затоа неговата повратна рута покажува на VPC A, а не на клиентскиот базен.

На патеката преку bastion клиентот прво стигнува до host. Bastion во A сè уште го остава последниот скок да ја премине peering врската, така што ја задржувате peering работата и додавате сесија. Bastion во B исто така бара патека од клиентот, и кога таа патека е истата endpoint рута, имате рутиран дизајн плус еден скок. Bastion отстранува работа само кога веќе постои, веќе е одобрен, и она што е зад него бара граница на сесија, а не мрежна граница.

Четири записи ја прават рутираната патека функционална

AWS го документира ова сценарио на страницата Client VPN how-it-works, и во практиката сè се сведува на четири записи што ги поседуваат два или три тима. Опсезите се илустративни; peering опсегот мора да биде единствен, а повратниот опсег мора да одговара на вашиот план.

ControlWhat it must say
Endpoint route10.70.0.0/16 targets the association subnet
Authorization ruleThe approved group may reach 10.70.0.0/16
VPC A association-subnet table10.70.0.0/16 targets the peering connection
VPC B resource-subnet tableVPC A's range targets the same peering connection

Рутата и дозволата се одделни контроли. Точна endpoint рута без соодветно правило за авторизација не му дава ништо на клиентот; правило за авторизација за дестинација што endpoint не може да ја рутира му дава црна дупка. Двете мора да го наведат истиот опсег.

Endpoint рутата покажува на подмрежа во сопствениот VPC на endpoint, никогаш на peering врската. Табелите на рути на VPC покажуваат на peering врската, никогаш на инстанца или интерфејс. Копирањето вредност меѓу двете се зачувува без жалба и не рутира ништо.

Бидејќи асоцијациската подмрежа го преведува изворот на клиентот, B мора да рутира назад кон VPC A, а не кон клиентскиот базен. Испраќањето на клиентскиот опсег преку peering врската изгледа симетрично, поминува ревизија и тивко не успева затоа што B никогаш не гледа пакет со клиентски извор.

Безбедносни групи и последниот метар дозвола

Рутирањето внесува пакети во B; B сè уште одлучува. За активна peering врска во истиот регион, безбедносна група во B може да реферира групата применета на асоцијацијата на Client VPN, што го држи правилото тесно и преживува промени на адреси. Каде што референцата на група не е изводлива, дозволете го опсегот на асоцијациската подмрежа експлицитно наместо да го проширите на 0.0.0.0/0, што ја претвора грешката во рутирање во необјаснет таймаут.

Потоа проверете го она што рутирањето никогаш не го допира: мрежните ACL на двете подмрежи, списокот на дозволени на апликацијата или публиката на токенот, и DNS. Peering не копира приватни хостирани зони, така што лаптопот може да држи работна рута до адреса што не може да ја реши, и peering врската не додава доверба на сертификат. Насочете го endpoint кон resolver што одговара за B, потоа потврдете дека приватното име и сертификатот се совпаѓаат.

Кога bastion е чесниот одговор

Држам три тригери за намерен избор на bastion. Peering VPC му припаѓа на тим што нема да додаде повратна рута за вашиот опсег или нема да прифати референца на група. Пристапот мора да се одобри или евидентира по сесија и апликацијата не може да го носи сама. Или последниот скок мора да остане внатре во B затоа што услугата се решава само таму и нејзиниот TLS идентитет е прикачен на внатрешно име.

Ништо од ова не е заобиколување на фактот дека peering не е транзитивен. Нетранзитивноста ограничува што смеат да прават ресурсите во B: не можат да го користат A како транзит кон трет VPC со кој A е во peering. Тоа никогаш не значело дека VPN корисник не може да достигне директно peering VPC, а bastion изграден за да го заобиколи тоа погрешно читање е host што се крпи без причина.

Обратната грешка чини повеќе со времето: поминете го секој тим низ единствениот веќе постоечки bastion, потоа откријте дека неговата безбедносна група, табела на рути и прозорец за крпење се производната зависност. Запишете на кој тригер му служи host, и повлечете го кога тригерот ќе исчезне.

Transit Gateway и неколку асоцијации ја менуваат аритметиката

Ако endpoint е поврзан директно на Transit Gateway наместо на подмрежа, моделот се менува: клиентите повеќе не се преведуваат во адреса на интерфејс во асоцијациска подмрежа, и табелите на рути на gateway мора да го носат клиентскиот опсег плус приклучокот што води до peering VPC. Тоа е почисто во размер, но работата се сели од четири записи во табелите на рути на gateway.

Неколку асоцијации ги умножуваат проверките. Endpoint рутата му припаѓа на endpoint, но секоја асоцијациска подмрежа бара табела на рути со вистински peering следен скок. Сесија може да успее преку една асоцијација додека друга нема повратна патека, затоа тестирајте ја секоја.

Редослед на проверка што брзо го наоѓа прекинот

Изведете ги овие по ред; секој чекор може да помине додека следниот не успева, а таймаутот на клиентот речиси никогаш не кажува кој се скрши.

  1. Решете го името на апликацијата од клиентот и проверете дека адресата е во peering опсегот.
  2. Поврзете се, потоа прочитајте го дневникот на врски на endpoint за асоцијацијата што ја заврши сесијата.
  3. На таа асоцијациска подмрежа потврдете дека табелата на рути го насочува peering опсегот кон активна peering врска.
  4. На ресурсната подмрежа во B потврдете повратен запис за опсегот на интерфејсот и соодветни правила на групата.
  5. Тестирајте една дозволена операција и еден ресурс што мора да остане недостапен; вториот ги фаќа остатоците од дебагирање.
  6. Поврзете се повторно по секоја промена на split-tunnel рута, затоа што тунел што работи нема да прими нов сет на рути.

Два симптоми вреди да се запаметат. SYN што стигнува до B без одговор речиси секогаш е повратната рута што недостасува. Врска што завршува и потоа се ресетира обично е групата, ACL или апликацијата. Ниту едно не се појавува во дневникот на endpoint како причина, затоа држете ги четирите записи со сопственик покрај секој.

Ако ниту еден од трите тригери не важи, завршете ја рутираната патека и запишете ги тие четири записи. Ако важи еден, задржете го bastion само за таа граница и оставете ја endpoint рутата за услуги на кои не им треба сесија пред нив.

Поврзани статии