دو صحت مند VPN ایگزٹ، ایک طویل اپ لوڈ پہلے سے چل رہا ہے، اور یہ تقاضا کہ اگلا کنکشن دوسری ٹنل استعمال کرے۔ اسے پورا کرنے کے دو طریقے ہیں، اور ان میں سے صرف ایک زندہ گیٹ وے پر محفوظ ہے۔ ڈیفالٹ روٹ بدلنے سے ہر پیکٹ ہلتا ہے، اپ لوڈ سے متعلق پیکٹ بھی۔ منصوبہ بند ڈرین نئے کنکشن کے لیے انتخاب بدلتا ہے اور ٹریک شدہ فلو کو اسی راستے پر چھوڑ دیتا ہے جہاں سے وہ شروع ہوئے تھے۔

ایگزٹ بدلنے کے دو طریقے

روٹ تبدیلی ایک ہی کمانڈ ہے اور چند سیکنڈ میں واپس آ سکتی ہے، اسی لیے واقعات کے دوران اسے استعمال کیا جاتا ہے۔ یہ غیر امتیازی بھی ہے: موجودہ اپ لوڈ کے پیکٹ اچانک دوسری ٹنل سے نکلتے ہیں، مختلف عوامی ماخذ پتے اور الگ ترجمہ حالت کے ساتھ۔

اگر دور کا سرا ماخذ پتے کے مطابق فلو ٹریک کرتا ہے، تو اپ لوڈ کی شناخت ہی بند ہو سکتی ہے۔ ڈرین اس سے بچتا ہے، ہر کنکشن کے لیے ایک بار فیصلہ کر کے اسے محفوظ کر کے، اس لیے پرانا اپ لوڈ ختم ہونے تک اپنا ایگزٹ برقرار رکھتا ہے۔ یہی اس مشق کی پوری قدر ہے: دور کے سرے کو کوئی ایسی تبدیلی نظر نہیں آتی جس کی اسے تشریح کرنی پڑے۔ وہ پہلے سے جانے ہوئے کنکشن سے مطابقت رکھنے والے پیکٹ وصول کرتا رہتا ہے۔

قیمت پیچیدگی ہے: دو روٹنگ جدولیں، درست ہک پر چلنے والا درجہ بندی کنندہ، اور ایسے نشانات جنہیں مشین پر انہیں استعمال کرنے والی ہر دوسری چیز کے ساتھ ہم آہنگ کرنا پڑتا ہے۔

ہر ایگزٹ کو اپنی جدول دیں

ہر ایگزٹ کے لیے ایک روٹنگ جدول اور دو انتخابات کے لیے الگ نشان قدریں یا بٹس مخصوص کریں۔ ہر جدول کو صرف نام نہیں، بلکہ اپنے کردار کے مطابق راستے چاہیے، اور غائب حالت کے لیے جان بوجھ کر ناکامی کا نتیجہ چاہیے۔ خالی جدول جو خاموشی سے مرکزی جدول میں گر جاتی ہے — ٹریفک اسی طرح ایسے ایگزٹ سے باہر جاتا ہے جسے کسی نے نہیں چنا۔

ip rule add fwmark 0x10/0x10 table 101
ip rule add fwmark 0x20/0x20 table 102
ip route add default via 192.0.2.1 dev wg-a table 101
ip route add default via 198.51.100.1 dev wg-b table 102

ہر جدول کے آخر میں blackhole راستہ شامل کریں، تاکہ بغیر مماثلت کی تلاش آپ کے نہ چنے ہوئے ڈیفالٹ کی طرف بھاگنے کے بجائے بلند آواز میں ناکام ہو۔

ایک بار چنیں، پہلے پیکٹ پر

کنکشن ٹریکنگ موجود ہونے کے بعد اور اہم روٹ تلاش سے پہلے درجہ بندی کریں۔ نئے، غیر درجہ بند LAN کنکشن کے لیے ایگزٹ چنیں اور اسے کنکشن حالت میں محفوظ کریں۔ بعد کے پیکٹوں پر، محفوظ قدر کو اس پیکٹ نشان میں بحال کریں جسے پالیسی روٹنگ پڑھتی ہے۔

باریک بات یہ ہے کہ نیا سے کیا مراد ہے۔ جواب نظر آنے سے پہلے ابتدائی پیکٹوں اور دوبارہ ترسیل کے لیے conntrack اب بھی NEW بتا سکتا ہے، اس لیے صرف اسی حالت پر انحصار کرنے والا درجہ بندی کنندہ پہلے کیے گئے انتخاب کو مٹا سکتا ہے۔ ایک مقرر کرنے سے پہلے جانچیں کہ کنکشن کے لیے کوئی ایگزٹ محفوظ نہیں۔

nftables پیکٹ اور کنکشن نشانات کو الگ رکھتا ہے، اور میٹا معلومات کی رہنما ہدایت ان کے درمیان واضح نقل کو دستاویز کرتی ہے۔ کنکشن نشان خود بخود وہ پیکٹ نشان نہیں بنتا جس سے آپ کا قاعدہ مطابقت رکھتا ہے، اور یہی سب سے عام وجہ ہے کہ احتیاط سے لکھا گیا درجہ بندی کنندہ کوئی اثر نہیں ڈالتا۔

بحالی کو اسی سمت اور ٹریفک تک محدود رکھیں جس کا آپ ارادہ رکھتے ہیں۔ واپس آنے والے پیکٹوں پر انٹرنیٹ-ایگزٹ نشان لگانے سے جوابات LAN کی بجائے ایگزٹ کی طرف جا سکتے ہیں، اور علامت یک طرفہ کنکشن ہے جو فائر وال مسئلے جیسا دکھتا ہے۔ فائر وال قاعدے کو چھونے سے پہلے جواب کا راستہ پڑھیں، کیونکہ پیکٹ روٹ ہو رہا ہے، صرف بھیجنے والے کی طرف واپس نہیں۔

ڈرین کے چار مراحل

  1. A کو چھوئے بغیر B تیار کریں: روٹنگ، فارورڈنگ، اجازت، NAT اور واپسی کا راستہ۔ گیٹ وے کے موجودہ کنفیگریشن مالک کے ذریعے اس کی جدول اور انتخاب کی پالیسی نصب کریں۔

  2. درجہ بندی کنندہ بدلیں تاکہ نئے، غیر درجہ بند کنکشن B چنیں، محفوظ انتخابات محفوظ رہیں۔ ایٹمک nftables لین دین اس ونڈو سے بچتا ہے جہاں پرانی حالت صاف کرنی پڑے۔

  3. A کے فلو ختم ہونے تک A کھلا رکھیں۔ اس کا انٹرفیس، جدول، دور کا ایگزٹ اور NAT میپنگ اب بھی ان فلو کا حصہ ہیں، اور NAT قاعدے میں ترمیم پہلے سے موجود بائنڈنگز دوبارہ نہیں بناتی۔

  4. ڈرین کی شرط پوری ہونے پر A کو ریٹائر کریں، جس کا اندازہ ایک خاموش وقفے سے نہیں بلکہ کنکشن حالت اور ایپلیکیشن کے رویے سے لگایا جاتا ہے۔

ڈرین کیا وعدہ نہیں کر سکتا

براؤزر کی درخواست نیا ٹرانسپورٹ کنکشن نہیں ہے؛ پولنگ پرانے ہی پر درخواستیں بھیجتی رہتی ہے۔ اس کے برعکس، ایک UDP فلو conntrack سے پرانا ہو سکتا ہے اور بعد کا پیکٹ نئے سرے سے درجہ بند ہوتا ہے۔ ڈرین ٹریک شدہ فلو کی پیروی کرتا ہے، ایپلیکیشن کے سیشن کے تصور کی نہیں۔

اگر A اپنے فلو ختم ہونے سے پہلے ناکام ہو جائے، تو محفوظ نشان انہیں نہیں بچاتا۔ وہ B کے ذریعے دوبارہ جڑتے ہیں، یا بالکل نہیں جڑتے۔ منصوبہ بند ڈرین اصل راستہ صحت مند رہنے تک تسلسل خریدتا ہے؛ یہ آزاد ایگزٹ کے درمیان حالت کی نقل نہیں ہے۔

دونوں نصف حصوں کی تصدیق کریں

تبدیلی سے پہلے طویل المدت اجازت یافتہ کنکشن اور بعد میں واقعی نیا کنکشن شروع کریں۔ تصدیق کریں کہ کون سی ٹنل کون استعمال کرتا ہے اور دور کا سرا کون سا عوامی ماخذ پتہ دیکھتا ہے، پھر جانچیں کہ واپسی ٹریفک واپس آتی ہے۔

نئی انتخاب دکھانے کے لیے conntrack جدول خالی نہ کریں۔ یہ ٹھیک وہی حالت تباہ کرتا ہے جسے ڈرین کو محفوظ رکھنا ہے، اور کنٹرول شدہ منتقلی کو صاف دکھنے والے امتحان کے ساتھ رکاوٹ میں بدل دیتا ہے۔

متعلقہ مضامین