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

قواعد جدول چنتے ہیں، پھر جدول راستہ چنتا ہے

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

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

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

قواعد کے مجموعے کو فہرست نہیں، ترتیب کے طور پر پڑھیں

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

ip rule show
ip route show table all | sed -n '1,60p'
ip route get 198.51.100.20 from 10.8.0.2
ip route get 198.51.100.20 from 10.8.0.2 mark 0x1

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

نشانات اور ساکٹ: کلائنٹ ٹریفک تقسیم کرنے کے دو طریقے

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

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

مزید قاعدہ شامل کرنے سے پہلے ملکیت کا سراغ لگائیں

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

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

دائرہ ایک نہیں، دو بہاؤ سے ثابت کریں

اصلاح کی تصدیق صرف اس بہاؤ سے ہوتی ہے جس پر اثر ہونا چاہیے اور اس بہاؤ سے جس پر نہیں ہونا چاہیے۔ وہ منزل چنیں جسے پالیسی سرنگ میں روٹ کرتی ہے، اور ایک جسے باہر رہنا چاہیے، پھر دونوں کے لیے تلاشیں اور گرفت موازنہ کریں:

ip route get 198.51.100.20 from 192.0.2.44
ip route get 198.51.100.21 from 192.0.2.44
tcpdump -ni any host 198.51.100.21 and port 443

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

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

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