GKE подови су изгубили приступ VPN-у после 1.14: два начина да се поправи извор
После 1.14 подови стижу до VPN-а са сопственим адресама, па партнери одбацују одговоре. Изаберите уговор о извору, затим подесите nonMasqueradeCIDRs у складу с њим.
Долази ажурирање и системи са друге стране тунела почињу да одбацују саобраћај подова који је радио претходне недеље. Тунел је подигнут, правила заштитног зида су нетакнута и нико није уредио политику партнера. Оно што се променило невидљиво је у дневницима кластера: адреса извора коју ови системи сада виде. Тај јаз објашњава квар који изгледа као прекид мреже, а понаша се као проблем са дозволама.
Постоје два ваљана одговора и они воде на различита места. Изаберите уговор о извору пре него што уредите ConfigMap.
Подразумевано правило које је престало да се инсталира
Старија издања GKE-а инсталирала су правило masquerade које је замењивало изворе подова адресом чвора кад год је одредиште било изван 10.0.0.0/8. VPN пролаз унутар тог опсега видео је адресу пода, док је све даље изгледало као да долази са чвора. Партнери су градили спискове дозвола и повратне руте око адреса чворова јер су то посматрали.
Каснија издања престала су да инсталирају то подразумевано правило. Саобраћај подова сада стиже на пролаз са адресама подова, какво год било одредиште. Партнер који усмерава само адресе чворова одбацује одговоре и ниједна страна не пише корисну ставку у дневник. Захтев може чак и да успе на далекој страни, и то је оно што квар чини збуњујућим за праћење.
Ништа није покварено у смислу мртве компоненте. Две стране се једноставно не слажу који је извор легитиман.
Изаберите извор који партнер треба да види
Задржавање адреса подова је прецизнији уговор. Далека страна види радни терет који је створио саобраћај, дневници остају честити и политика по поду постаје могућа. Цена је да партнер мора да носи префикс подова.
Задржавање адреса чворова је јефтинији уговор. Поново укључите masquerade за то одредиште и партнер наставља да види адресу којој већ верује.
Једно питање одлучује између њих: шта партнер ради са извором? Ако бележи, примењује политику по извору или намеће уско повратно усмеравање, адресе подова оправдавају додатну конфигурацију. Ако треба само да шаље одговоре, masquerade кошта мање и не тражи ништа од друге стране. Сваки избор је одбрањив докле год га оба тима запишу.
Трећа опција је обично грешка: masquerade на све и губитак могућности да се саобраћај припише. Избегавајте је, осим ако партнер заиста не може да усмерава ништа осим адреса чворова.
Усмерите nonMasqueradeCIDRs на стварне опсеге
GKE покреће ip-masq-agent у kube-system-у, а његов ConfigMap наводи одредишта која прескачу masquerade. Да бисте сачували изворе подова према тунелу, опсег подова, подмрежа чвора и локални префикс сви припадају том списку.
Замените примерне вредности опсезима из свог кластера. Не правите списак ширим него што захтев налаже, јер сваки додатни унос мења шта неко друго одредиште види. Три уноса испод представљају мрежу подова, подмрежу чвора и префикс иза тунела:
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 искључује masquerade за сва одредишта, што мења како неповезани радни терети изгледају спољним сервисима и ретко је намерно. Агент поново чита своју конфигурацију на resyncInterval, па рестартовање обично није потребно. Проверите да ли под агента ради, затим отворите монтирану датотеку унутар њега. Управо читање те датотеке доказује да је промена стигла.
Повратни пут је друга половина
Masquerade мења извор захтева и ништа друго. Који год извор партнер прими, још му треба рута назад до њега, а кластеру још треба рута према партнеру.
Снимак на VPN пролазу брзо раздваја два квара. Пакети који стижу са адресама подова и никада не добију одговор значе да партнеру недостаје рута за префикс подова. Одговор који се појави на пролазу али никада не стигне до кластера значи да недостаје локална рута. У сваком случају упишите уговор у тикет: који извор партнер види и на који префикс усмерава одговор.
Проверите поново после сваког ажурирања
Подразумевано понашање masquerade-а већ се једном променило, а замена скупа чворова може да ресетује мрежу кластера. Третирајте уговор о извору као нешто што треба проверити, а не претпоставити.
После ажурирања пошаљите један захтев из пода ка локалном сервису и прочитајте извор који партнер бележи. То једно запажање хвата регресију коју би страница стања тунела радо пријавила као здраву. Понављање кошта минут и штеди следећем човеку вече.