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

Існуюць два правільныя адказы, і яны вядуць у розныя месцы. Выберыце кантракт крыніцы перад рэдагаваннем ConfigMap.

Правіла па змаўчанні, якое перасталі ўсталёўваць

Ранейшыя выпускі GKE усталёўвалі правіла masquerade, якое замяняла крыніцы падаў адрасам вузла, калі прызначэнне знаходзілася па-за 10.0.0.0/8. VPN-шлюз унутры гэтага дыяпазону бачыў адрас пада, а ўсё далейшае выглядала як прыйшло ад вузла. Партнёры будавалі спісы дазволаў і зваротныя маршруты вакол адрасоў вузлоў, бо менавіта гэта яны назіралі.

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

Нішто не зламана ў сэнсе мёртвага кампанента. Два бакі проста не згодныя, якая крыніца законная.

Выберыце крыніцу, якую павінен бачыць партнёр

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

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

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

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

Накіруйце nonMasqueradeCIDRs на рэальныя дыяпазоны

GKE запускае ip-masq-agent у kube-system, і яго ConfigMap пералічвае прызначэнні, якія абыходзяць маскараванне. Каб захаваць крыніцы падаў у бок тунеля, дыяпазон падаў, падсетка вузла і лакальны прэфікс усе належаць гэтаму спісу.

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

nonMasqueradeCIDRs:
  - 10.12.0.0/14
  - 10.100.0.0/16
  - 172.16.0.0/12
masqLinkLocal: false
resyncInterval: 60s

Запіс 0.0.0.0/0 адключае маскараванне для ўсіх прызначэнняў, што змяняе тое, як непавязаныя працоўныя нагрузкі выглядаюць для знешніх сэрвісаў, і рэдка бывае наўмысным. Агент перачытвае канфігурацыю па resyncInterval, таму перазапуск звычайна не патрэбны. Праверце, што под аграента працуе, затым адкрыйце змантаваны файл унутры яго. Менавіта чытанне гэтага файла даказвае, што змена дайшла.

Шлях адказу — гэта другая палова

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

Захоп на VPN-шлюзе хутка раздзяляе два збоі. Пакеты, якія прыходзяць з адрасамі падаў і ніколі не атрымліваюць адказу, азначаюць, што ў партнёра няма маршруту для прэфікса падаў. Адказ, які з'яўляецца на шлюзе, але ніколі не дасягае кластара, азначае, што лакальны маршрут адсутнічае. Запішыце кантракт у тыкет у любым выпадку: якую крыніцу бачыць партнёр і на які прэфікс ён маршрутызуе адказ.

Пераправярайце пасля кожнага абнаўлення

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

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

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