Повторното вчитување на сертификатот на Nebula не ја смени IP-адресата: еве зошто
Повторното вчитување ги препрочитува ингеренциите на домаќинот само кога overlay-адресата останува иста. Промената на адресата значи рестарт и мрежна промена, а не нов обид.
Издавате нов сертификат за домаќин со друга overlay-адреса, го копирате врз старата датотека, ја праќате наредбата за повторно вчитување, а домаќинот продолжува да одговара на адресата што ја имал претходно. Рефлексот е да се претпостави дека вчитувањето не успеало или дека е прочитана погрешна датотека. Обично не се случило ниту едното: процесот што работи намерно ја задржал идентитетот што веќе го имал, бидејќи замената сменила нешто што повторното вчитување не може да го примени.
Поддршката за повторно вчитување на PKI во Nebula е документирана токму со оваа граница, и лесно се пропушта кога истата документација покажува дека вчитувањето работи за други промени.
Што всушност препрочитува повторното вчитување
Сертификатот за домаќин не е само ингеренции како што е SSH-клучот. Тој ја носи overlay-адресата, името на домаќинот, членството во групи и периодот на важност, и сето тоа е поврзано со потписот на CA. Демонот ја користи таа потпишана содржина за да одлучи како се претставува и кои правила важат за него.
Повторното вчитување му овозможува на процесот да прими обновени ингеренции без да ги исфрли своите тунели, што е вредно за рутинска ротација: иста адреса, исто име, исти групи, подоцнежен рок. Ограничувањето е дека идентитетот мора да остане ист. Сменете ја overlay-адресата и патеката за вчитување не може да ја примени, бидејќи адресата е дел од она на што инстанцата што работи веќе се обврзала.
Значи, однесувањето што го видовте е документираното ограничување што ја врши својата работа, а не тивок неуспех. Датотеката на дискот е нова; идентитетот во меморијата е стар; процесот нема поддржан начин да ја усогласи таа разлика без рестарт.
Адресата, името и групите се еден идентитет
Помага да се мисли за сертификатот како за еден запис, а не како за збир полиња што може независно да се уредуваат. Преместувањето на адресата не е како промена на поставка, бидејќи адресата се појавува во конфигурациите на соработниците на други домаќини, во врските на услугите и во политиките напишани против идентитетот.
| Field | What changes when you replace it |
|---|---|
| Overlay address | Peers that pinned the old address, service bindings, and any rule written against it |
| Host name | Name-based policy and the identities other hosts expect to see |
| Groups | Which access rules match, even if the address stays identical |
| Validity window | Nothing structural, which is why renewal reloads cleanly |
Групите заслужуваат свој ред, бидејќи предизвикуваат потивка верзија на истата забуна. Домаќин што ја задржува адресата, но ги менува групите, по рестарт може да достигне други услуги, а тестот што само пингува старата адреса ќе изгледа сосема здрав, додека одлуките за пристап под него се смениле. Проверете една услуга опфатена со правило, не само достапноста. Тоа е разликата меѓу потврдување на тунелот и потврдување на политиката.
Споредете го вчитаниот сертификат со замената
Пред да претпоставите дека демонот ја игнорирал датотеката, прочитајте ги двете. Отпечатете го сертификатот што ќе го вчитате и потврдете ги полињата што мислите дека сте ги смениле, потоа потврдете дека конфигурацијата што работи покажува кон таа патека, а не кон копија на друго место.
nebula-cert print -path /etc/nebula/host.crt
systemctl status nebula
ps -o args= -p $(pgrep -f 'nebula -config' | head -1)Аргументите на процесот се поважни отколку што луѓето очекуваат. Единицата што го пренесува -config /etc/nebula/config.yml ја чита ставката pki.cert од таа датотека, а сертификат инсталиран во привремена папка не влијае на ништо. Проверете ја патеката во командната линија што работи, а не патеката во документацијата што сте ја следеле. Ако двете се разликуваат, сте го нашле проблемот без воопшто да го допрете сертификатот.
Ако новиот сертификат има друга адреса, а процесот ја задржал старата, сега имате објаснување наместо загатка. Рестартирајте го ако тоа е прифатливо, и третирајте ја промената на адресата како планирана мрежна промена, а не случајна.
Промената на адреса е мрежна промена
Планирајте го како што би планирале преместување на машина. Другите домаќини можеби ја заковале старата адреса во нивната конфигурација, услугите можеби се изречно врзани за неа, а правилата на огнениот ѕид можеби се напишани против неа. Промената на сертификатот го преместува домаќинот, а преместувањето на домаќинот ги поништува претпоставките на други места.
Држете достапна втора административна патека додека го правите тоа, бидејќи overlay-врската можеби е токму таа што ја прекинувате. Да се прави тоа преку тунелот што ќе го скршите е класичен начин да се претвори петминутна промена во посета на локација.
Дали рестартот е прифатлив зависи од тоа што прави домаќинот, и тоа е прашање на планирање, не техничко. Она што не е изборно е да се признае барањето за рестарт наместо по петти пат да се праќа вчитувањето.
Повлечете ги старите ингеренции одделно
Инсталирањето замена на една машина остава секој соработник да им верува на ингеренциите што веќе ги знае. Ако причината за промената била компромитација, стариот идентитет мора да биде повлечен преку постапката за доверба или блок-список, за да го одбијат соработниците навистина.
Ова е одделен чекор со сопствена проверка: потврдете од друг домаќин дека стариот идентитет повеќе не работи, наместо да претпоставите дека новата датотека ја завршила работата. Документацијата за PKI-конфигурацијата на Nebula ги опфаќа поставките што можат повторно да се вчитаат и ограничувањето на адресата опишано овде, и вреди целосно да се прочита пред да ротирате нешто во продукција.