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

سابقے سے نہیں، وقفے سے شروع کریں

کچھ اور لکھنے سے پہلے پہلا پتہ اور آخری پتہ لکھ لیں۔ یہ جوڑی ہی ضرورت ہے؛ سابقہ اس کا صرف ایک ممکنہ اظہار ہے، اور کبھی کبھی غلط اظہار۔ دو عددوں کی جانچ ماسک سے کہیں زیادہ آسان بھی ہے۔

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

غلطی کی دونوں سمتیں اہم ہیں۔ سرنگ میں جانے والے راستے کے لیے اضافی پتے VPN میں کھینچ لیے جاتے ہیں۔ بائی پاس استثنا کے لیے اضافی پتے اسے چھوڑ دیتے ہیں۔ دونوں میں سے کوئی نتیجہ ایسی روٹ ٹیبل میں نظر نہیں آتا جو صرف آپ کا لگایا ہوا سابقہ دکھاتی ہے۔

پہلا معاملہ: وقفہ اتفاقاً سیدھ میں ہے

198.51.100.64 سے 198.51.100.127 لیں۔ پہلا پتہ 64 پتوں کی حد پر سیدھ میں ہے اور وقفہ بالکل 64 پتے ہے، اس لیے ایک ہی /26 بغیر کسی باقی کے اس کی وضاحت کرتا ہے۔

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

دستاویزی رینجیں اچھی مثالیں بنتی ہیں کیونکہ ان کا کوئی مالک نہیں ہوتا۔ ان پتوں کو کسی حقیقی سرنگ پر نہ لگائیں اور یہ نہ سمجھیں کہ آپ کو دی گئی رینج محض عجیب دکھنے کی وجہ سے دستاویزی جگہ ہے۔

دوسرا معاملہ: سیدھ میں نہیں ہے، اس لیے تقسیم کریں

اب 198.51.100.100 سے 198.51.100.107 لیں۔ یہ آٹھ پتے ہیں، جو دو کی طاقت ہے، لیکن 100 آٹھ کا ضرب نہیں ہے۔ اس حجم کا ایک بلاک وہاں سے شروع نہیں ہو سکتا، اس لیے وقفے کو ایک سے زیادہ سے ڈھانپنا ہوگا۔

درست ڈھانپ دو /30 بلاک ہیں: 198.51.100.100/30 100 سے 103 تک ڈھانپتا ہے، اور 198.51.100.104/30 104 سے 107 تک۔ کل آٹھ پتے، وقفے سے باہر کچھ نہیں، اور تقسیم دیے گئے وقفے کے لیے منفرد ہے۔

python3 -c "from ipaddress import ip_address, summarize_address_range as s; print(*s(ip_address('198.51.100.100'), ip_address('198.51.100.107')), sep='\n')"

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

ناپ لیں کہ وسیع سابقہ کیا پکڑتا

کسی شارٹ کٹ کو قبول کرنے سے پہلے اس کی قیمت شمار کریں۔ 198.51.100.96 سے شروع ہونے والا /28 96 سے 111 تک ڈھانپتا ہے، جو آٹھ کی بجائے سولہ پتے ہیں۔ اضافی آٹھ 96 سے 99 اور 108 سے 111 ہیں، اور ان میں سے ہر ایک کو راستہ وراثت میں ملتا۔

python3 -c "from ipaddress import ip_network as n; w=set(n('198.51.100.96/28')); t=set(n('198.51.100.100/30'))|set(n('198.51.100.104/30')); print(len(w), len(t), sorted(w-t))"

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

حساب اور دریافت کو الگ رکھیں۔ نیٹ ورک آپریٹر کی دی گئی رینج بالکل تبدیل ہوتی ہے۔ بدلتی سروس کا ایک DNS جواب اس سروس کی مکمل یا مستقل رینج ثابت نہیں کرتا، اور غیر متعلق نام ایک پتہ بانٹ سکتے ہیں۔

درست مجموعہ لگائیں اور کناروں کی تصدیق کریں

ہر نتیجے والا سابقہ VPN کنفیگریشن کے مالک کو دیں اور اسے معاون طریقے سے لگانے دیں۔ اگر ضرورت کو دو اندراجات چاہیے تو فارم چھوٹا کرنے کے لیے ایک کو چوڑا کرنے کی بجائے دو اندراجات رکھیں۔

sudo ip route add 198.51.100.100/30 via 10.90.0.1 dev tun0
sudo ip route add 198.51.100.104/30 via 10.90.0.1 dev tun0
ip route get 198.51.100.101
ip route get 198.51.100.97

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

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

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