WireGuard: ішкі желі өзгергеннен кейін серіктеске маршрут жоқ — екі шығу жолы
Ішкі желінің өзгеруі WireGuard-ты екі жерде бұзады: AllowedIPs және қайтару жолы. Орнында қайта нөмірлеуді интерфейсті қайта құрумен салыстырыңыз.
wg show ішінде қол алысу жаңа, соңғы нүкте дұрыс, кілттер ешқашан өзгерген жоқ — ал ping әлі де серіктеске маршрут жоқ деп тұр. Туннельдің ішкі желісін бір сағат бұрын өзгерттіңіз. Бұл белгі кілт мәселесі емес, префикстің сәйкессіздігінің таңбасы: WireGuard қол алысуды аяқтап, содан кейін деректерді тастады, өйткені бастапқы мекенжай енді қабылдаушы серіктес қабылдайтын мәнге сәйкес келмейді. Ішкі желі өзгерісін жүзеге асырудың екі парасатты жолы бар және олар әртүрлі жерде сәтсіздікке ұшырайды.
Өзгерісті жүзеге асырудың екі жолы және әрқайсысының құны
А нұсқасы — орнында қайта нөмірлеу: интерфейс мекенжайын, серіктес ауқымдарын, маршруттарды және конфигурацияның әр көшірмесін өңдеп, содан кейін қайта жүктеу. В нұсқасы — жаңа префиксте ескінің қасында екінші интерфейс құру, серіктестерді көшіру және трафик шынымен көшкен соң ескі интерфейсті жою.
| A: renumber in place | B: parallel interface | |
|---|---|---|
| Downtime | The reload window, per host | None if peers are added to both |
| Rollback | Re-apply the previous files | Point peers back at the old interface |
| Risk | Half-applied change: new address, old ranges | Two live interfaces with overlapping intent |
| Effort | Small, if the deployment has one owner | Higher, and needs a cleanup step |
| Fits | Two or three peers you control | Many peers, remote sites, or no maintenance window |
А нұсқасын қауіпті ететін — жартылай қолданылған күй, өйткені ол бұзылған болып көрінбейді. Интерфейс көтеріледі, қол алысу сәтті болады, тек деректер жолы істен шығады. В нұсқасы көбірек жұмыс талап етеді, бірақ сіз әр сілтемені тапқанша жұмыс істеп тұрған жолды тірі ұстайды.
Сіздің жағыңызда не бірге қозғалуы керек
Жергілікті хосттағы төрт нәрсе бір ішкі желіні сипаттайды және біреуін өзгерту — барлығын өзгерту: интерфейс мекенжайы, әр серіктестің 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 мәнін ескі префиксте қалдырсаңыз, сервер қол алысуды қабылдайды, шифрланған пакеттерді алады және оларды тастайды, өйткені ішкі бастапқы мекенжай ол сол серіктеспен байланыстыратын ешбір ауқымға сәйкес келмейді. Ешқандай қате журналға жазылмайды, ал клиент уақыттың бітуін көреді.
Сондықтан қабылдаушы жақты әдейі жаңартыңыз: сервердегі серіктес жазбасы жаңа клиент префиксін тізімдеуі керек, сервердің өз қайтару маршруты сол префикс үшін туннельге нұсқауы керек, ал сервердің артындағы кез келген төменгі желі жаңа жолды үйренуі керек. Ескі ауқымды атаған брандмауэр саясаты да сол емді қажет етеді, сондай-ақ бастапқы мекенжайға негізделген таңдау жасайтын кез келген нәрсе.
Екі ақауды ажырататын диагностика арзан. Жаңа қол алысу бірақ деректер жоқ болса, туннель көтерілген және ішкі мекенжайлау келіспейді. Қол алысу мүлдем жоқ болса, сіз қолжетімділікке немесе кілттерге қарап отырсыз. Префикс мәселесі үшін кілттерді айналдырмаңыз; бұл жұмыс істеп тұрған жалғыз нәрсені қалпына келтіреді.
Сіздің өңдеуіңізден ұзақ өмір сүретін ескірген көшірмелер
Файлды өңдеу жұмыс істеп тұрған жүйені өзгертумен бірдей емес, ал көшірмелер адамдар күткеннен көп: интерфейске ие unit немесе менеджер, басқа каталогтағы сол атпен екінші профиль, конфигурациясы бейнеге пісірілген контейнер, өзінің өңделген нұсқасын ұстайтын маршрутизатор интерфейсі және іске қосылғанда сақталған туннельді қайта импорттайтын клиент қолданбасы. Олардың әрқайсысы сіздің өзгерісіңіз аяқталған болып көрінгеннен кейін ескі префиксті қайтара алады.
Аттар да саяхаттайды. Егер сандық маршрут жұмыс істеп, хост аты істен шықса, ішкі DNS жазбасы немесе қызмет конфигурациясы әлі де туннельдің ескі мекенжайына нұсқайды. Әр серіктес ауқымын кеңейтудің орнына сілтемені түзетіңіз, өйткені бұл нақты мәселені жасырып, сонымен бірге бастапқы ACL-ді үлкейтеді.
Жұмыс кезінде бір қалпына келтіру жолын ашық ұстаңыз: хостқа кірудің екінші жолы, сериялық консоль немесе конфигурация файлдарын жоспарлы қайтару. Өзгертіп жатқан машинаңыздан сізді құлыптайтын туннель өзгерісі — бұл тапсырманың кешке айналуының ең көп тараған жолы.
Екеуінің арасында таңдау және ауысуды тексеру
Әр серіктес сіздікі болса, саны аз болса және қысқа үзіліс қолайлы болса, А таңдаңыз. Серіктестер сіз бақыламайтын алыс қолдар болса, сайт-сайт байланысы көтеріліп тұруы керек болса немесе әр көшірменің бір өтуде жаңаратынына кепілдік бере алмасаңыз, В таңдаңыз. Бұл жағдайда жаңа префиксті екі интерфейске қосыңыз, серіктестерді бір-бірлеп көшіріңіз, жаңасындағы трафикті бақылаңыз, содан кейін ғана ескі интерфейс пен оның маршруттарын жойыңыз.
Екі нұсқада да өзгеріс төрт тексеру өткенде аяқталады: қол алысу жаңа, жаңа префиксті мақсатқа маршрут іздеу туннельді атайды, бірнеше жүз байттық жүк екі бағытта да өтеді және хостты немесе менеджерді қайта қосқаннан кейін де солай болады. Ресми wg(8) нұсқаулығы әр бағытта AllowedIPs нені білдіретініне анықтама болып табылады және симптомды жою үшін ауқымды кеңейтпес бұрын оны қайта оқыған жөн.
- Қол алысу жаңа және деректер жоқ: кілттерге тимес бұрын қабылдаушыдағы AllowedIPs-ке қараңыз.
- Маршрут іздеу дұрыс емес интерфейсті көрсетеді: маршрутқа менеджер немесе контейнер ие, сіздің файлыңыз емес.
- Сандық мекенжай дұрыс, хост аты бүлінген: ескі сілтеме, маршруттау ілмегі емес.
- Өзгеріс қайта қосқаннан кейін де жаңа префикс қолданылғанда ғана аяқталған.