Адна канчатковая кропка Client VPN можа дасягнуць VPC, які знаходзіцца ў peering з яе асацыяваным VPC, і для гэтага не патрэбны бастыён. Выбар, які варта зрабіць, — дзе трафік пераходзіць з рук у рукі: маршрут канчатковай кропкі, які трапляе ў падсетку асацыяцыі і перасякае злучэнне peering, або хост у сумежным VPC, які завяршае сеанс. Абодва шляхі працуюць і адмаўляюць у розных месцах, таму рашэнне пра ўласнасць і аўдыт, а не пра тое, што дазваляе AWS. Вось як я выбіраю паміж імі і чатыры запісы, якія робяць маршрутызаваны шлях працоўным.

Два шляхі, адна канчатковая кропка, розныя ўласнікі

На маршрутызаваным шляху кліенцкі трафік дасягае канчатковай кропкі, пераўтвараецца ў адрас сеткавага інтэрфейса Client VPN у падсетцы асацыяцыі і пакідае гэтую падсетку праз злучэнне peering ад A да B. VPC B не завяршае ніякага сеансу VPN; ён бачыць звычайны трафік з VPC A, таму яго зваротны маршрут паказвае на VPC A, а не на пул кліентаў.

На шляху праз бастыён кліент спачатку дасягае хоста. Бастыён у A усё яшчэ пакідае апошні крок праз злучэнне peering, таму вы захоўваеце працу peering і дадаеце сеанс. Бастыён у B таксама патрабуе шляху ад кліента, і калі гэты шлях — той самы маршрут канчатковай кропкі, вы атрымліваеце маршрутызаваную схему плюс адзін крок. Бастыён здымае працу толькі тады, калі ён ужо існуе, ужо мае адабрэнне, а тое, што за ім, патрабуе мяжы сеансу, а не сеткавай мяжы.

Чатыры запісы робяць маршрутызаваны шлях працоўным

AWS апісвае гэты сцэнар на старонцы Client VPN how-it-works, і на практыцы ўсё зводзіцца да чатырох запісаў, якімі валодаюць дзве або тры каманды. Дыяпазоны прыведзены для ілюстрацыі; сумежны дыяпазон павінен быць унікальным, а зваротны дыяпазон — адпавядаць вашаму плану.

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

Маршрут і дазвол — асобныя сродкі кантролю. Правільны маршрут канчатковай кропкі без адпаведнага правіла аўтарызацыі не дае кліенту нічога; правіла аўтарызацыі для прызначэння, якое канчатковая кропка не можа маршрутызаваць, дае яму чорную дзіру. Абодва павінны называць адзін і той жа дыяпазон.

Маршрут канчатковай кропкі паказвае на падсетку ўласнага VPC канчатковай кропкі, ніколі на злучэнне peering. Табліцы маршрутаў VPC паказваюць на злучэнне peering, ніколі на інстанс або інтэрфейс. Капіраванне значэння паміж імі захоўваецца без скаргаў і нічога не маршрутызуе.

Паколькі падсетка асацыяцыі пераўтварае крыніцу кліента, B павінен маршрутызаваць назад да VPC A, а не да пула кліентаў. Адпраўка кліенцкага дыяпазону праз злучэнне peering выглядае сіметрычна, праходзіць прагляд і моўчкі адмаўляе, бо B ніколі не бачыць пакет з кліенцкай крыніцай.

Групы бяспекі і апошні метр дазволу

Маршрутызацыя дастаўляе пакеты ў B; B усё яшчэ вырашае. Для актыўнага злучэння peering у тым жа рэгіёне група бяспекі ў B можа спасылацца на групу, ужытую да асацыяцыі Client VPN, што захоўвае правіла вузкім і ўстойлівым да змены адрасоў. Там, дзе спасылка на групу немагчымая, дазвольце дыяпазон падсеткі асацыяцыі яўна, замест пашырэння да 0.0.0.0/0, што ператварае памылку маршрутызацыі ў непатлумачальны тайм-аўт.

Затым праверце тое, чаго маршрутызацыя ніколі не кранае: сеткавыя ACL на абедзвюх падсетках, белы спіс праграмы або аўдыторыю токена і DNS. Peering не капіруе прыватныя хост-зоны, таму ноўтбук можа трымаць працоўны маршрут да адраса, які не можа вырашыць, а злучэнне peering не дадае даверу да сертыфіката. Накіруйце канчатковую кропку на рэзалвер, які адказвае за B, затым пацвердзіце, што прыватнае імя і сертыфікат супадаюць.

Калі бастыён — сумленны адказ

Я трымаю тры трыгеры для свядомага выбару бастыёна. Сумежны VPC належыць камандзе, якая не дадасць зваротны маршрут для вашага дыяпазону або не прыме спасылку на групу. Доступ павінен быць адабронены або запісаны для кожнага сеансу, а праграма не можа гэтага несці сама. Або апошні крок павінен застацца ўнутры B, бо сэрвіс вырашаецца толькі там і яго ідэнтычнасць TLS прымацаваная да ўнутранага імя.

Нішто з гэтага не абыход таго, што peering не транзітыўны. Нетранзітыўнасць абмяжоўвае тое, што могуць рабіць рэсурсы ў B: яны не могуць выкарыстоўваць A як транзіт да трэцяга VPC, з якім A у peering. Гэта ніколі не значыла, што карыстальнік VPN не можа дасягнуць непасрэдна сумежнага VPC, а бастыён, пабудаваны ў абыход гэтага няправільнага чытання, — гэта хост, які трэба латаць без прычыны.

Зваротная памылка каштуе больш з часам: прапусціце кожную каманду праз адзіны бастыён, які ўжо існуе, і выявіце, што яго група бяспекі, табліца маршрутаў і акно латання — гэта прадукцыйная залежнасць. Запішыце, якому трыгеру служыць хост, і выведзіце яго з эксплуатацыі, калі трыгер знікне.

Transit Gateway і некалькі асацыяцый змяняюць арыфметыку

Калі канчатковая кропка падключана непасрэдна да Transit Gateway, а не да падсеткі, мадэль змяняецца: кліенты больш не пераўтвараюцца ў адрас інтэрфейса ў падсетцы асацыяцыі, а табліцы маршрутаў шлюза павінны несці кліенцкі дыяпазон плюс падлучэнне, якое вядзе да сумежнага VPC. Гэта чысцей пры маштабе, але праца перамяшчаецца з чатырох запісаў у табліцы маршрутаў шлюза.

Некалькі асацыяцый памнажаюць праверкі. Маршрут канчатковай кропкі належыць канчатковай кропцы, але кожная падсетка асацыяцыі патрабуе табліцу маршрутаў з рэальным наступным крокам peering. Сеанс можа прайсці праз адну асацыяцыю, пакуль іншая не мае зваротнага шляху, таму правярайце кожную.

Парадак праверкі, які хутка знаходзіць паломку

Выконвайце гэта па парадку; кожны крок можа прайсці, пакуль наступны адмаўляе, а тайм-аўт кліента амаль ніколі не кажа, які менавіта зламаўся.

  1. Вырашыце імя праграмы з кліента і праверце, што адрас унутры сумежнага дыяпазону.
  2. Падключыцеся, затым прачытайце журнал злучэнняў канчатковай кропкі для асацыяцыі, якая завяршыла сеанс.
  3. На гэтай падсетцы асацыяцыі пацвердзіце, што табліца маршрутаў накіроўвае сумежны дыяпазон на актыўнае злучэнне peering.
  4. На падсетцы рэсурсаў у B пацвердзіце зваротны запіс для дыяпазону інтэрфейса і адпаведныя правілы групы.
  5. Праверце адну дазволеную аперацыю і адзін рэсурс, які павінен застацца недасяжным; другі ловіць рэшткі адладкі.
  6. Перападключыцеся пасля любой змены маршруту split-tunnel, бо працуючы тунель не падхопіць новы набор маршрутаў.

Два сімптомы варта запомніць. SYN, які дасягае B без адказу, амаль заўсёды — адсутны зваротны маршрут. Злучэнне, якое завяршаецца і потым скідваецца, звычайна — група, ACL або праграма. Ні адзін не паказваецца ў журнале канчатковай кропкі як прычына, таму трымайце чатыры запісы з уласнікам побач з кожным.

Калі ні адзін з трох трыгераў не дзейнічае, скончыце маршрутызаваны шлях і запішыце гэтыя чатыры запісы. Калі адзін дзейнічае, трымайце бастыён толькі для гэтай мяжы і пакіньце маршрут канчатковай кропкі для сэрвісаў, якім не патрэбны сеанс перад імі.

Падобныя артыкулы