WireGuard: لا مسار إلى النظير بعد تغيير الشبكة الفرعية — طريقتان للخروج
تغيير الشبكة الفرعية يكسر WireGuard في مكانين: AllowedIPs ومسار العودة. قارن إعادة الترقيم في المكان بإعادة بناء الواجهة.
المصافحة حديثة في wg show، ونقطة النهاية صحيحة، والمفاتيح لم تتغير قط — ومع ذلك لا يزال ping يقول إنه لا يوجد مسار إلى النظير. لقد غيّرت شبكة النفق الفرعية قبل ساعة. هذه العَرَض هو بصمة عدم تطابق البادئة لا مشكلة في المفاتيح: أكمل WireGuard المصافحة ثم أسقط البيانات لأن عنوان المصدر لم يعد يطابق ما سيقبله النظير المستقبِل. هناك طريقتان معقولتان لإنزال تغيير الشبكة الفرعية، وكلتاهما تفشل في مواضع مختلفة.
طريقتان لإنزال التغيير، وتكلفة كل منهما
الخيار A هو إعادة الترقيم في المكان: حرّر عنوان الواجهة ونطاقات النظير والمسارات وكل نسخة من الإعداد، ثم أعد التحميل. الخيار B هو بناء واجهة ثانية على البادئة الجديدة بجانب القديمة، ونقل النظير عبرها، وإزالة الواجهة القديمة بعد أن تنتقل حركة المرور فعليًا.
| 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 |
الحالة نصف المطبَّقة هي ما يجعل الخيار 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 داخليًا أو إعداد خدمة ما يزال يشير إلى عنوان النفق القديم. أصلح المرجع بدلًا من توسيع كل نطاق نظير، لأن ذلك سيطلي المشكلة الحقيقية ويوسّع قائمة التحكم بالمصدر في الوقت نفسه.
أبقِ مسار استرجاع واحدًا مفتوحًا أثناء عملك: طريقة ثانية للدخول إلى المضيف، أو وحدة تحكم تسلسلية، أو استرجاعًا مجدولًا لملفات الإعداد. تغيير نفق يُقفل عليك الآلة التي تغيّرها هو أكثر الطرق شيوعًا لتحويل هذه المهمة إلى أمسية.
الاختيار بين الطريقتين، والتحقق من القطع
اختر A عندما تملك كل نظير، والعدد صغير، وانقطاع قصير مقبول. اختر B عندما يكون النظير أيديًا بعيدة لا تتحكم بها، أو عندما يجب أن يبقى رابط موقع-إلى-موقع قائمًا، أو عندما لا تستطيع ضمان تحديث كل نسخة في تمريرة واحدة. في هذه الحالة أضف البادئة الجديدة إلى الواجهتين، وانقل النظير واحدًا تلو الآخر، وراقب الحركة على الجديدة، وبعدها فقط أزل الواجهة القديمة ومساراتها.
في أي من الخيارين يكون التغيير منتهيًا عندما تنجح أربعة فحوص: المصافحة حديثة، وبحث المسار لوجهة بالبادئة الجديدة يسمّي النفق، وحمولة من بضع مئات من البايتات تنتقل في الاتجاهين، وينطبق الشيء نفسه بعد إعادة تشغيل المضيف أو المدير. أما دليل wg(8) فهو المرجع لمعنى AllowedIPs في كل اتجاه، ويستحق إعادة قراءته قبل أن توسّع نطاقًا لتُخفي عَرَضًا.
- مصافحة حديثة وبلا بيانات: انظر إلى AllowedIPs عند المستقبِل قبل لمس المفاتيح.
- بحث المسار يشير إلى الواجهة الخطأ: مدير أو حاوية يملك المسار، لا ملفك.
- العنوان الرقمي سليم واسم المضيف معطل: مرجع قديم، لا حلقة توجيه.
- التغيير مكتمل فقط عندما تظل إعادة التشغيل تستخدم البادئة الجديدة.