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 پرانے سابقہ پر چھوڑ دیتے ہیں، سرور ہینڈ شیک قبول کرتا ہے، خفیہ شدہ پیکٹ وصول کرتا ہے اور انہیں پھینک دیتا ہے، کیونکہ اندرونی ماخذ اُس ہم منصب سے منسلک کسی بھی حد سے مطابقت نہیں رکھتا۔ کوئی خرابی لاگ نہیں ہوتی اور کلائنٹ کو وقت کی حد نظر آتی ہے۔
لہٰذا وصول کرنے والا سرا جان بوجھ کر اپ ڈیٹ کریں: سرور پر ہم منصب کا اندراج نیا کلائنٹ سابقہ درج کرے، سرور کا اپنا واپسی راستہ اُس سابقہ کے لیے ٹنل کی طرف اشارہ کرے، اور سرور کے پیچھے کوئی بھی نیچے کا نیٹ ورک نیا راستہ سیکھے۔ پرانی حد کا نام لینے والی فائر وال پالیسی کو بھی وہی علاج چاہیے، اور ماخذ کی بنیاد پر انتخاب کرنے والی ہر چیز کو بھی۔
دونوں ناکامیوں کو الگ کرنے والی تشخیص سستی ہے۔ تازہ ہینڈ شیک لیکن ڈیٹا نہیں، یعنی ٹنل اوپر ہے اور اندرونی پتہ کاری متفق نہیں۔ بالکل ہینڈ شیک نہ ہونا یعنی آپ رسائی یا چابیاں دیکھ رہے ہیں۔ سابقہ کے مسئلے کے لیے چابیاں نہ گھمائیں؛ یہ اُس واحد چیز کو ری سیٹ کرتا ہے جو کام کر رہی تھی۔
آپ کی ترمیم سے زیادہ زندہ رہنے والی پرانی نقلیں
فائل میں ترمیم کرنا چلتے نظام کو بدلنے کے برابر نہیں، اور نقلیں لوگوں کی توقع سے زیادہ ہوتی ہیں: انٹرفیس کا مالک یونٹ یا مینیجر، کسی دوسری ڈائریکٹری میں اسی نام کا دوسرا پروفائل، ایسی کنٹینر جس کا کنفیگ امیج میں پکا ہوا ہے، اپنا ترمیم شدہ ورژن رکھنے والا راؤٹر UI، اور ایسی کلائنٹ ایپ جو شروع ہونے پر محفوظ شدہ ٹنل دوبارہ درآمد کرتی ہے۔ ان میں سے ہر ایک آپ کی تبدیلی مکمل دکھائی دینے کے بعد پرانا سابقہ واپس لا سکتی ہے۔
نام بھی سفر کرتے ہیں۔ اگر عددی راستہ چلتا ہے لیکن ہوسٹ نام ناکام ہوتا ہے، تو اندرونی DNS ریکارڈ یا سروس کنفیگ اب بھی پرانے ٹنل پتے کی طرف اشارہ کرتا ہے۔ ہر ہم منصب کی حد وسیع کرنے کے بجائے حوالہ درست کریں، کیونکہ اس سے اصل مسئلہ چھپ جاتا اور ساتھ ہی ماخذ ACL بڑا ہوتا۔
کام کرتے وقت ایک بحالی راستہ کھلا رکھیں: ہوسٹ میں داخل ہونے کا دوسرا طریقہ، سیریل کنسول، یا کنفیگ فائلوں کا مقررہ رول بیک۔ وہ ٹنل تبدیلی جو آپ کو اُس مشین سے باہر بند کر دے جسے آپ بدل رہے ہیں، اس کام کے شام بننے کا سب سے عام طریقہ ہے۔
دونوں میں سے انتخاب، اور کٹ کی تصدیق
A منتخب کریں جب ہر ہم منصب آپ کا ہو، تعداد کم ہو اور مختصر رکاوٹ قابل قبول ہو۔ B منتخب کریں جب ہم منصب دور کے ہاتھ ہوں جنہیں آپ کنٹرول نہیں کرتے، جب سائٹ سے سائٹ لنک اوپر رہنا چاہیے، یا جب آپ یقین دہانی نہ کر سکیں کہ ہر نقل ایک ہی پاس میں اپ ڈیٹ ہوگی۔ اُس صورت میں نیا سابقہ دونوں انٹرفیس میں شامل کریں، ہم منصبوں کو ایک ایک کرکے منتقل کریں، نئے پر ٹریفک دیکھیں اور اُس کے بعد ہی پرانا انٹرفیس اور اس کے راستے ہٹائیں۔
کسی بھی آپشن میں، تبدیلی اُس وقت مکمل ہوتی ہے جب چار جانچیں پاس ہوں: ہینڈ شیک تازہ ہے، نئے سابقہ کی منزل کے لیے راستہ تلاش ٹنل کا نام لیتا ہے، چند سو بائٹ کا پے لوڈ دونوں سمتوں میں جاتا ہے، اور ہوسٹ یا مینیجر کے دوبارہ آغاز کے بعد بھی یہی ہوتا ہے۔ اس کے لیے wg(8) دستی ہر سمت میں AllowedIPs کے معنی کا حوالہ ہے، اور کسی علامت کو مٹانے کے لیے حد وسیع کرنے سے پہلے اسے دوبارہ پڑھنا مناسب ہے۔
- ہینڈ شیک تازہ اور ڈیٹا نہیں: چابیوں کو چھونے سے پہلے وصول کنندہ پر AllowedIPs دیکھیں۔
- راستہ تلاش غلط انٹرفیس دکھا رہا ہے: راستے کا مالک مینیجر یا کنٹینر ہے، آپ کی فائل نہیں۔
- عددی پتہ درست اور ہوسٹ نام ٹوٹا ہوا: پرانا حوالہ، روٹنگ لوپ نہیں۔
- تبدیلی صرف اُس وقت مکمل ہے جب دوبارہ آغاز کے بعد بھی نیا سابقہ استعمال ہو۔