GCP Cloud VPN: правярайце шлюз, тунель і файрвол па парадку
Тунель, які паведамляе пра ўсталяваны стан, пакуль кожная праверка выходзіць па тайм-ауце, звычайна не мае правіла файрвола VPC. Правярайце шлюз, селектары і тып маршрутызацыі менавіта ў гэтым парадку.
Ваша кансоль паказвае зялёны тунель, лакальны маніторынг па-ранейшаму не можа дасягнуць ні адной інстанцыі, і перабудова тунеля выглядае як відавочнае рашэнне. Гэта рэдка так. Усталяваны тунель даказвае толькі тое, што два шлюзы завяршылі абмен IKE. Ён нічога не кажа пра тое, ці быў пакет калі-небудзь дапушчаны ў ваш VPC.
Паміж той зялёнай іконкай і адказам стаяць чатыры рашэнні, і яны адмаўляюць у прадказальным парадку. Пачынайце з самых танцых.
Тры аб'екты, і толькі адзін з іх шыфруе
Шлюз VPN валодае знешнім адрасам, на які шыфруе ваш партнёр. У кансолі вы ніколі не ствараеце яго ўручную: выберыце або зарэзервуйце адрас унутры формы злучэння, і шлюз зявіцца разам з ім. Шлюз HA займае два адрасы на двух інтэрфейсах, што важна пры праверцы квот пазней.
Тунель — гэта спарванне паміж гэтым шлюзам і партнёрам. Ён нясе агульны сакрэт і селектары трафіку, якія абяцае абараніць. Менавіта з гэтых селектараў пачынаюцца большасць ціхіх збояў. Тунель, лакальны селектар якога пакрывае 10.0.0.0/24, не будзе дастаўляць 10.0.1.0/24, якім бы здаровым ні выглядаў статус.
Далёкі бок трымае свой уласны спіс, звычайна званы даменам шыфравання, і тэрмінальнае абсталяванне параўноўвае яго з вашым. Ніводзін бок не ўзгадняе селектар, які яму не далі.
Тып маршрутызацыі вызначае, што трапляе ў табліцу маршрутаў
Cloud VPN прапануе тры формы маршрутызацыі, і яны не змешваюцца чыста. Маршрутызацыя на аснове палітыкі захоўвае статычныя пары селектараў, маршрутызацыя на аснове маршрутаў чакае, што вы самі дадасце статычныя маршруты, а дынамічная маршрутызацыя абвяшчае прэфіксы праз Cloud Router па BGP. Выберыце адну свядома.
Дынамічны тунель з напісанымі ўручную статычнымі маршрутамі побач стварае табліцу маршрутаў, якая апускаецца кожны раз, калі сесія BGP вагаецца.
Дынамічная — адзіная форма, якая дазваляе абароненым прэфіксам змяняцца без перабудовы тунеля, і яна ўцягвае Cloud Router у набор аб'ектаў, якія трэба праверыць. Статычныя селектары застаюцца працаздольнымі, калі партнёр — апаратны файрвол, які не ўмее гаварыць BGP. Тады абодва канцы патрабуюць адных дыяпазонаў, і больш канкрэтны запіс павінен перамагчы на абодвух. Пара, якая разыходзіцца на адну падсетку, усталёўваецца і затым нясе палову вашага трафіку.
Няяўны забарон стаіць за тунелем
Уваход ацэньваецца супраць няяўнага забарону з найніжэйшым прыярытэтам, і гэтае правіла не зважае на тое, што пакет прыйшоў зашыфраваным. Пакуль правіла файрвола не назве лакальны дыяпазон і порт, які выкарыстоўваецца, пакет расшыфроўваецца, правяраецца і скідваецца. Журнал VPN застаецца чыстым увесь час, бо тунель зрабіў менавіта тое, што абяцаў.
Чытайце журнал адмоваў файрвола замест гэтага, калі тунель працуе, а праверка выходзіць па тайм-ауце, потым абмяжуйце правіла крынічным дыяпазонам і патрэбнымі партамі:
gcloud compute firewall-rules create allow-from-dc \
--network=vpn-vpc \
--direction=INGRESS \
--source-ranges=192.168.10.0/24 \
--allow=tcp:22,tcp:5432,icmpПраца аднаго напрамку — гэта падказка файрвола
Выхад паводзіць сябе інакш, бо няяўнае правіла дазволу дазваляе інстанцыям адпраўляць куды заўгодна. Цэнтр даных, які не можа дасягнуць VM, часта стаіць за цалкам працаздольным зыходным шляхам у іншым напрамку. Гэтая асіметрыя аддзяляе пропуск у файрволе ад збою маршрутызацыі, бо збой маршрутызацыі ламае абодва напрамкі адначасова. Праверце зваротны напрамак, перш чым рэдагаваць яшчэ адно правіла.
Стварэнне адраса — таксама аперацыя з квотамі. Праект, блізкі да свайго ліміту знешніх адрасоў, адхіляе злучэнне з памылкай, якая чытаецца як збой правоў.
Селектары, квоты, потым чатыры праверкі
Тунелі, створаныя ў кансолі, часам вяртаюць пусты аддалены селектар трафіку з gcloud compute vpn-tunnels describe, пакуль згенераваныя маршруты правільна нясуць трафік. Параўнайце тое, што фіксуе API, з дыяпазонамі, якія вы фактычна абараняеце, перш чым вырашыць, што тунель няправільны. Стварэнне праз API або SDK захоўвае селектар відавочным.
Квоты — іншы просты недагляд. Запытайце павелічэнне перад акном абслугоўвання, а не падчас яго, і праверце колькасць адрасоў у тым жа праекце, што і шлюз.
Працуйце звоны унутр: статус партнёра, абодва спісы селектараў, маршрут для кожнага боку, правіла ўваходу для крынічнага дыяпазону і порта, потым захоп пакетаў. Запішыце адрас шлюза, абодва спісы селектараў і тып маршрутызацыі ў заяўку на змену, пакуль тунель новы, бо наступнаму інжынеру, які дадасць падсетку, спатрэбяцца ўсе тры.