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

سابقے کو مالک چاہیے، لمحہ نہیں

ضرورت کو فاعل والا جملہ لکھ کر شروع کریں: پہنچیں 10.77.0.0/24 دفتر کے VPN کے ذریعے، جب تک وہ کنکشن قائم ہے۔ وہ جملہ سابقے، کنکشن اور شرط کا نام لیتا ہے، اور فوراً دو مقبول متبادل خارج کر دیتا ہے: لاگ اِن ہک اور اس طرح کا انٹرفیس نام ppp0 یا utun2.

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

راستے کے ارادے کا معاون ذریعہ استعمال کریں

گیٹ وے، منظم پروفائل یا مالک کلائنٹ کا دستاویزی راستہ میکانزم اس کی صحیح جگہ ہے، جب وہ میکانزم ضرورت بیان کر سکے۔ کون سا لاگو ہوتا ہے یہ پروٹوکول اور فراہم کنندہ پر منحصر ہے، اور چابیاں اُن کے درمیان سفر نہیں کرتیں، اس لیے پروفائل کنفیگر کرنے والی قدر OpenVPN مقامی L2TP یا IKEv2 کلائنٹ کے بارے میں کچھ نہیں بتاتی۔

MechanismCan carry extra prefixesWho owns the lifetime
Gateway-pushed routesOften, if the gateway is configured for itThe connection
Managed profile settingsDepends on the client and profile formatThe profile
Provider tunnel settingsYes, as included and excluded routesThe provider process
Manual commandYes, onceNobody

پیکٹ ٹنل بنانے والوں کے لیے، Apple کی IPv4 ٹنل سیٹنگز شامل اور خارج شدہ راستے واضح طور پر ظاہر کرتی ہیں، اور IPv6 کا بھی اپنا ہم منصب ہے۔ یہ وہ API ہیں جو فراہم کنندہ استعمال کرتا ہے، یہ ثبوت نہیں کہ ہر مقامی VPN پینل منتظم کو من مانی راستوں کی فہرست دیتا ہے۔ اگر موجودہ امتزاج مطلوبہ سابقے بیان نہیں کر سکتا، تو اگلا قدم آپریٹر کی طرف سے معاون کنفیگریشن کا راستہ ہے، کوئی دوسرا ایپ نہیں جو بہتر برتاؤ کرے گا اس اُمید میں نصب کیا جائے۔

عمر میں صفائی شامل ہے

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

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

دوبارہ جڑنے کی دوڑ

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

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

کیا جانچنا ہے، اور راستہ کیا نہیں کر سکتا

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

route -n get 10.77.0.5
netstat -rn -f inet

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

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

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