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 веќе се смени еднаш, а замената на базенот со јазли може да ја ресетира мрежата на кластерот. Третирајте го договорот за изворот како нешто што треба да се провери, а не како нешто што се претпоставува.
По ажурирање, испратете едно барање од под до локална услуга и прочитајте го изворот што партнерот го запишува. Тоа едно набљудување фаќа регресија што страницата за состојба на тунелот со задоволство би ја пријавила како здрава. Повторувањето чини една минута и штеди на следниот човек една вечер.