WireGuard: دو نصف راستے اور wg-quick میں 0.0.0.0/0
دو /1 حدود /0 جیسے ہی پتے ڈھانپتی ہیں، مگر wg-quick انہیں مختلف انداز میں روٹ کرتا ہے۔ ترمیم سے پہلے پالیسی قواعد، نشانات اور آخری نقطے کا راستہ جانچیں۔
دو /1 سابقے بالکل وہی IPv4 پتے ڈھانپتے ہیں جو ایک /0 ڈھانپتا ہے، اور یہ برابری صرف ہم منصب کی اجازت شدہ سابقوں کی فہرست کے اندر لاگو ہوتی ہے۔ جس لمحے سیٹ اپ کا اوزار فیصلہ کرتا ہے کہ روٹنگ کیسے ہو، یہ لاگو ہونا بند ہو جاتی ہے، کیونکہ Linux میں wg-quick طے شدہ سابقے کو حساب نہیں بلکہ خاص صورت سمجھتا ہے۔ خاص شاخ ایک مخصوص جدول، دو پالیسی قواعد، ایک ساکٹ نشان اور الٹے راستے کی ترتیبات لگاتی ہے جو آدھے راستوں کے جوڑے کو کبھی نہیں ملتیں۔ چنانچہ ترمیم کے بعد جب کوئی پراکسی یا براؤزر کام کرنا بند کرے، سابقے تبدیلی کا سب سے کم دلچسپ حصہ ہوتے ہیں۔
سابقوں کی فہرست پوری ترتیب نہیں
AllowedIPs ایک ساتھ دو کام کرتا ہے، اور ان میں سے صرف ایک ڈھانپنے سے متعلق ہے۔ خود WireGuard کے لیے یہ فہرست خفیہ کلید کی روٹنگ ہے: یہ طے کرتی ہے کہ کون سے منزل ہم منصب کی طرف خفیہ ہوں اور وہ ہم منصب کون سے ماخذ پتے استعمال کر سکتا ہے۔ wg-quick کے لیے یہی فہرست راستے کی تفصیل کا کام بھی دیتی ہے، اور جو راستہ بنتا ہے وہ اس پر منحصر ہے کہ فہرست اتفاقاً کس شاخ سے ملتی ہے۔ لہٰذا دو مختلف فہرست شکلوں میں یکساں ڈھانپنا یکساں میزبان حالت کے بارے میں کچھ نہیں کہتا۔
طے شدہ ترتیب یہ فیصلہ آپ کے ہاتھ سے لے لیتی ہے، کیونکہ Table بطور طے شدہ خودکار ہے اور اوزار خود چنتا ہے کہ راستے کہاں اتریں۔ کوئی دوسرا نیٹ ورک منتظم، تقسیم کا غلاف یا اپنی مرضی کی Table قدر نتیجہ پھر بدل دیتی ہے، اسی لیے ایک میزبان کے لیے لکھا گیا مشورہ اگلے پر غلط لگ سکتا ہے۔
طے شدہ شاخ راستے سے بڑھ کر کیا شامل کرتی ہے
/0 اندراج wg-quick کو اس کے طے شدہ راستے کے راستے میں بھیجتا ہے: ایک الگ روٹنگ جدول طے شدہ وصول کرتا ہے، ایک پالیسی قاعدہ بغیر نشان والی ٹریفک وہاں بھیجتا ہے، دوسرا قاعدہ مرکزی جدول کے زیادہ مخصوص راستوں کو مستند رکھتا ہے، اور انٹرفیس کو اپنے ہی ساکٹ پر فائر وال نشان ملتا ہے۔ وہی نشان پھندے کا محافظ ہے۔ سرنگ کی ٹریفک لے جانے والے خفیہ ڈیٹاگرام نشان لگے ہوئے باہر نکلتے ہیں، تاکہ باقی سب کچھ سرنگ میں دھکیلنے والا قاعدہ سرنگ کے اپنے ترسیلی پیکٹ نگل نہ جائے۔
اس کے بجائے /1 اندراجات کا جوڑا عام راستہ لیتا ہے۔ ترتیب شدہ جدول میں دو راستے اترتے ہیں، اور گرد و نواح کی کوئی مشینری نظر نہیں آتی، یہ اس لیے نہیں کہ وہ غیر ضروری ہے، بلکہ اس لیے کہ اُس کوڈ راستے میں کبھی داخل نہیں ہوا۔
دونوں بندوبست کہاں الگ ہوتے ہیں
فرق پہلے دہراو کے طور پر ظاہر ہوتا ہے۔ جب آدھے راستے مرکزی جدول میں ہوں تو ہم منصب کا اپنا ترسیلی پتہ سرنگ کے سابقے کے اندر آ جاتا ہے، چنانچہ جو پیکٹ سرنگ لے جانا چاہیے وہ سرنگ کے اندر کی طرف اشارہ کرنے والے راستے سے ملتا ہے۔ کسی چیز کو اسے استثنا دینا ہوگا: موجودہ آخری نقطے کے لیے میزبان راستہ، ہاتھ سے لگایا گیا نشان، یا انٹرفیس کا مخصوص قاعدہ۔ میزبان راستہ اُس وقت تک کام کرتا ہے جب تک آخری نقطے کا پتہ نہ بدلے، جو DNS پر مبنی آخری نقطوں، گھومنے والے کلائنٹس اور متعدد ہم منصبوں والی ترتیبات میں ہوتا ہے۔
دوسرے، نشانات پر استدلال کرنے والی ہر چیز کا رویہ بدل جاتا ہے۔ مقامی طور پر روابط کا رخ موڑنے والی شفاف پراکسی نئے ساکٹ بناتی ہے جن کے نشانات اور ماخذ اصل کلائنٹ بہاؤ سے مختلف ہوتے ہیں، اور طے شدہ شاخ کے پیدا کردہ پالیسی قواعد اُن بہاؤں کو الگ کرنے کا حصہ تھے۔ خود پراکسی کے باہر جانے والے رابطے کو پڑھنا اصل منزل تک پہنچنے کی جانچ سے مختلف مشق ہے۔
ترمیم سے پہلے قواعد اور نشانات پڑھیں
سرنگ کے صحت مند رہتے ہوئے موجودہ حالت قید کریں، پھر تبدیلی کے بعد دوبارہ، اور ترتیب کی فائل سے استدلال کرنے کے بجائے دونوں ڈمپ کا موازنہ کریں۔ پالیسی قواعد، ہر جدول، انٹرفیس کا نشان اور درج شدہ آخری نقطے شامل کریں۔
ip rule show
ip -4 route show table all | grep -E 'default|wg1'
wg show wg1 fwmark
wg show wg1 endpoints
اگر آؤٹ پٹ کی پہلی سطر بغیر نشان والی ٹریفک کا قاعدہ کھو چکی ہے اور مخصوص جدول خالی ہے، تو طے شدہ شاخ نہیں چل رہی اور کوئی سابقہ حساب اس کے اثرات واپس نہیں لائے گا۔ پہلے نشان رکھنے والے انٹرفیس پر صفر نشان وہی اشارہ ہے، ایک ہی قدر میں نظر آتا ہے۔
جاری کرنے سے پہلے سرنگ کے ضیاع کی مشق کریں
اگر آدھے راستوں کا بندوبست جان بوجھ کر چنا گیا ہے، تو اسے غائب حصے صریحاً فراہم کرنے ہوں گے: پتہ بدلنے پر بھی قائم رہنے والا آخری نقطہ راستہ، سرنگ گرنے پر مطلوبہ رویہ، اور IPv6 کے لیے مساوی سلوک۔ انہیں کسی رکاوٹ کے دوران دریافت کرنے کے بجائے تقاضے کے طور پر لکھیں۔ پھر ناکامی کی مشق کریں، کیونکہ خاموشی سے طبعی اپر لنک پر واپس گرنے والی مکمل سرنگ کام کرنا چھوڑ دینے والی سرنگ سے بدتر ہے۔
sudo ip -4 route add 198.51.100.20/32 via 192.0.2.1 dev eth0
ip -4 route get 198.51.100.20
sudo wg-quick down wg1
راستے کی تلاش کو سرنگ عبور کیے بغیر طبعی انٹرفیس سے آخری نقطہ حل کرنا چاہیے، اور انٹرفیس اتارنے پر میزبان کو اُس حالت میں رہنا چاہیے جس کا ڈیزائن نے وعدہ کیا تھا۔ تبدیلی کے بعد کام کرنے والی پراکسی ثابت کرتی ہے کہ پیدا شدہ میزبان حالت اہم تھی؛ مگر یہ ثابت نہیں کرتی کہ پھندے کی روک تھام اور بند حالت کا رویہ ترمیم سے بچ گئے۔