Ракувањето е свежо во wg show, крајната точка е точна, клучевите никогаш не се промениле — а ping се уште вели дека нема рута до партнерот. Ја сменивте подмрежата на тунелот пред еден час. Тој симптом е потпис на неусогласеност на префиксот, а не проблем со клучеви: WireGuard го заврши ракувањето и потоа ги отфрли податоците затоа што изворната адреса веќе не одговара на она што ќе го прифати партнерот примач. Постојат два разумни начина да се спроведе промена на подмрежа и тие паѓаат на различни места.

Два начина да ја спроведете промената и колку чини секој

Опцијата A е пренумерирање на самото место: уредете ја адресата на интерфејсот, опсезите на партнерите, рутите и секоја копија од конфигурацијата, потоа вчитајте повторно. Опцијата B е да изградите втор интерфејс на новиот префикс покрај стариот, да ги преместите партнерите и да го отстраните стариот интерфејс откако сообраќајот навистина ќе се премести.

A: renumber in placeB: parallel interface
DowntimeThe reload window, per hostNone if peers are added to both
RollbackRe-apply the previous filesPoint peers back at the old interface
RiskHalf-applied change: new address, old rangesTwo live interfaces with overlapping intent
EffortSmall, if the deployment has one ownerHigher, and needs a cleanup step
FitsTwo or three peers you controlMany peers, remote sites, or no maintenance window

Полуприменетата состојба е она што ја прави опцијата A опасна, затоа што не изгледа расипана. Интерфејсот се крева, ракувањето успева, и само патеката на податоците паѓа. Опцијата B бара повеќе работа, но одржува жива работна патека додека ги наоѓате сите референци.

Што мора да се движи заедно на вашата страна

Четири работи на локалниот домаќин опишуваат иста подмрежа, а промената на една е промена на сите: адресата на интерфејсот, AllowedIPs на секој партнер, рутата што системот ја користи за тие одредишта и сето она што менаџерот го инсталира во ваше име. Со wg-quick последните две се генерираат од конфигурацијата секој пат кога интерфејсот се крева, па застарена копија тивко го враќа стариот префикс.

Споредете го конфигурираното со живото, наместо да им верувате на едно од двете:

wg show
wg showconf wg0
ip addr show wg0
ip route get 10.90.0.5

Пребарувањето на рута е чекорот што луѓето го прескокнуваат. Тоа одговара што јадрото навистина би направило за одредиште, вклучувајќи поспецифична рута што ја оставил менаџер или контејнерско опкружување. Ако пријави различен интерфејс од тунелот, конфигурацијата не е проблемот.

За интерфејс што работи, примените ја уредената датотека без да го расклопите тунелот:

wg syncconf wg0 <(wg-quick strip wg0)

Тоа ги ажурира партнерите и опсезите на самото место. Не ја ажурира адресата на интерфејсот или рутите, затоа што тие не се WireGuard поставки — па пренумерирањето се уште бара повторно создавање на интерфејсот или промена на адресата со ip, а потоа повторна проверка на рутирањето.

Што мора да се движи заедно на далечната страна

Тука промената на подмрежа обично умира. AllowedIPs не е само навестување за рутирање; тоа е и списокот на изворни адреси што партнерот смее да ги претстави. Кога пренумерирате клиенти и го оставите AllowedIPs на серверот на стариот префикс, серверот го прифаќа ракувањето, ги прима шифрираните пакети и ги отфрла затоа што внатрешниот извор не одговара на ниту еден опсег што го поврзува со тој партнер. Не се евидентира грешка, а клиентот гледа истекување на времето.

Затоа ажурирајте ја страната што прима со намера: записот за партнерот на серверот мора да го наведе новиот префикс на клиентот, сопствената повратна рута на серверот мора да покажува кон тунелот за тој префикс, и секоја низводна мрежа зад серверот мора да ја научи новата патека. Политиката на огнениот ѕид што го именувала стариот опсег бара ист третман, како и сето она што прави избор врз основа на извор.

Дијагностиката што ги раздвојува двата дефекти е евтина. Свежо ракување без податоци значи дека тунелот е кренат и внатрешното адресирање не се согласува. Целосно отсуство на ракување значи дека гледате достапност или клучеви. Не ги ротирајте клучевите поради проблем со префикс; тоа го ресетира единственото што работеше.

Застарени копии што го надживуваат вашето уредување

Уредувањето на датотека не е исто како менување на системот што работи, а копиите се повеќе отколку што луѓето очекуваат: единицата или менаџерот што го поседува интерфејсот, втор профил со исто име во друга папка, контејнер со конфигурација вградена во слика, интерфејс на рутер со своја уредена верзија и клиентска апликација што при стартување повторно увезува зачуван тунел. Секоја од нив може да го врати стариот префикс откако вашата промена ќе изгледа завршена.

И имињата патуваат. Ако нумеричката рута работи, а името на домаќинот не, внатрешен DNS запис или конфигурација на услуга се уште покажува на старата адреса на тунелот. Поправете ја референцата наместо да го проширувате секој опсег на партнер, што би го покрило вистинскиот проблем и истовремено би го зголемило ACL-от на изворот.

Држете една патека за враќање отворена додека работите: втор начин да влезете на домаќинот, сериска конзола или закажано враќање на конфигурациските датотеки. Промена на тунел што ве заклучува надвор од машината што ја менувате е најчестиот начин оваа задача да стане вечер.

Избор меѓу двете и проверка на префрлањето

Изберете A кога го поседувате секој партнер, бројот е мал и краток прекин е прифатлив. Изберете B кога партнерите се далечни раце што не ги контролирате, кога врската меѓу локациите мора да остане, или кога не можете да гарантирате дека секоја копија ќе биде ажурирана во еден премин. Во тој случај додајте го новиот префикс на двата интерфејса, преместувајте партнери еден по еден, набљудувајте го сообраќајот на новиот и само потоа отстранете го стариот интерфејс и неговите рути.

Во двата случаи промената е готова кога ќе поминат четири проверки: ракувањето е свежо, пребарувањето на рута за одредиште со новиот префикс го именува тунелот, товар од неколку стотици бајти преминува во двете насоки и истото важи по рестартирање на домаќинот или менаџерот. Официјалниот прирачник wg(8) е референца за тоа што значи AllowedIPs во секоја насока, и вреди повторно да се прочита пред да проширите опсег за да исчезне симптом.

  • Свежо ракување и нема податоци: погледнете го AllowedIPs кај примачот пред да ги допрете клучевите.
  • Пребарувањето на рута покажува погрешен интерфејс: рутата ја поседува менаџер или контејнер, не вашата датотека.
  • Нумеричката адреса е во ред, името на домаќинот е расипано: стара референца, не јамка за рутирање.
  • Промената е завршена само кога по рестартирање се уште се користи новиот префикс.

Поврзани статии