اضافی Mac VPN راستوں کو مالک چاہیے، لاگ اِن اسکرپٹ نہیں
لاگ اِن کے وقت ایک بار شامل کیا گیا راستہ دوبارہ جڑنے کی پالیسی نہیں ہے۔ دور کے سابقوں کو مالک دیں اور طے کریں کہ وہ اُس کنکشن کے ساتھ کیسے ظاہر ہوتے، بدلتے اور غائب ہوتے ہیں۔
VPN کے ذریعے نجی سابقہ تک پہنچنا ایک مدت والی ضرورت ہے: یہ اس وقت تک قائم رہتی ہے جب تک وہ کنکشن قابلِ استعمال ہے، اور کنکشن ختم ہونے پر ختم ہو جاتی ہے۔ لاگ اِن اسکرپٹ یہ بیان نہیں کر سکتی، کیونکہ لاگ اِن اور ٹنل کا اوپر آنا مختلف لمحے ہیں، اور لاگ اِن کے وقت موجود ٹنل ایک منٹ بعد ٹریفک لے جانے والا ٹنل نہ ہو۔ پہلا فیصلہ یہ نہیں کہ کون سی کمانڈ چلائی جائے۔ یہ ہے کہ سابقے کا مالک کون سا جزو ہے۔
سابقے کو مالک چاہیے، لمحہ نہیں
ضرورت کو فاعل والا جملہ لکھ کر شروع کریں: پہنچیں 10.77.0.0/24 دفتر کے VPN کے ذریعے، جب تک وہ کنکشن قائم ہے۔ وہ جملہ سابقے، کنکشن اور شرط کا نام لیتا ہے، اور فوراً دو مقبول متبادل خارج کر دیتا ہے: لاگ اِن ہک اور اس طرح کا انٹرفیس نام ppp0 یا utun2.
انٹرفیس کے نام رن ٹائم پر دیے جاتے ہیں اور دوبارہ جڑنے کے دوران مستحکم نہیں رہتے۔ پچھلے ہفتے دیکھے گئے نام سے ملنے والا ہک یا تو چلے گا ہی نہیں یا کسی اور کے انٹرفیس پر چلے گا۔ دونوں نتائج راؤٹنگ بگ کی طرح دکھتے ہیں، نہ کہ اُس پرانی مفروضے کی طرح جو وہ ہیں۔ یہی اعتراض ہر ایسی اسکرپٹ پر لاگو ہے جو ایسے نام سے جڑی ہو جو صرف اُس وقت تک موجود ہو جب تک کوئی مخصوص ٹنل قائم ہو۔
راستے کے ارادے کا معاون ذریعہ استعمال کریں
گیٹ وے، منظم پروفائل یا مالک کلائنٹ کا دستاویزی راستہ میکانزم اس کی صحیح جگہ ہے، جب وہ میکانزم ضرورت بیان کر سکے۔ کون سا لاگو ہوتا ہے یہ پروٹوکول اور فراہم کنندہ پر منحصر ہے، اور چابیاں اُن کے درمیان سفر نہیں کرتیں، اس لیے پروفائل کنفیگر کرنے والی قدر OpenVPN مقامی L2TP یا IKEv2 کلائنٹ کے بارے میں کچھ نہیں بتاتی۔
| Mechanism | Can carry extra prefixes | Who owns the lifetime |
|---|---|---|
| Gateway-pushed routes | Often, if the gateway is configured for it | The connection |
| Managed profile settings | Depends on the client and profile format | The profile |
| Provider tunnel settings | Yes, as included and excluded routes | The provider process |
| Manual command | Yes, once | Nobody |
پیکٹ ٹنل بنانے والوں کے لیے، Apple کی IPv4 ٹنل سیٹنگز شامل اور خارج شدہ راستے واضح طور پر ظاہر کرتی ہیں، اور IPv6 کا بھی اپنا ہم منصب ہے۔ یہ وہ API ہیں جو فراہم کنندہ استعمال کرتا ہے، یہ ثبوت نہیں کہ ہر مقامی VPN پینل منتظم کو من مانی راستوں کی فہرست دیتا ہے۔ اگر موجودہ امتزاج مطلوبہ سابقے بیان نہیں کر سکتا، تو اگلا قدم آپریٹر کی طرف سے معاون کنفیگریشن کا راستہ ہے، کوئی دوسرا ایپ نہیں جو بہتر برتاؤ کرے گا اس اُمید میں نصب کیا جائے۔
عمر میں صفائی شامل ہے
کبھی کبھی بیرونی مددگار واقعی ضروری ہوتا ہے، اور تب «راستہ شامل کریں» اُس کے کام کا سب سے چھوٹا حصہ ہے۔ اُسے جاننا ہوتا ہے کہ وہ کس کنکشن کی خدمت کرتا ہے اور وہ کنکشن کون سا انٹرفیس استعمال کرتا ہے، متعلقہ نیٹ ورک حالت کے مستحکم ہونے تک انتظار کرنا ہوتا ہے، مسلسل دو بار چلنے پر آئیڈم پوٹنٹ رہنا ہوتا ہے، اور ایسی کوئی چیز صاف نہ کرنا ہوتا ہے جو خود نصب نہ کی ہو۔
آخری شرط ہی تکلیف دیتی ہے۔ دفتر کے سابقے سے ملنے والا ہر راستہ مٹانے والا مددگار جلد یا بدیر وہ راستہ بھی مٹا دے گا جو اُس نے شامل نہیں کیا تھا۔ نتیجے میں ہونے والی رکاوٹ VPN کلائنٹ پر ڈالی جاتی ہے، کیونکہ صارف جو حصہ دیکھتا ہے وہ کلائنٹ ہے۔ مددگار کی ملکیت کیا ہے یہ لکھنے سے پہلے طے کرنا، بعد میں یہ سمجھانے سے سستا ہے کہ مقامی ذیلی نیٹ نے جواب دینا کیوں بند کر دیا۔
دوبارہ جڑنے کی دوڑ
تیز دوبارہ جڑنے کا تصور کریں۔ سیشن A گرتا ہے، سیشن B اوپر آ کر اپنا راستہ نصب کرتا ہے، اور پھر A کی تاخیر شدہ صفائی آخرکار چلتی ہے۔ اگر وہ صفائی سابقے کے مطابق راستے ہٹاتی ہے، تو وہ B کی درست حالت بھی ساتھ لے جاتی ہے، اور ایک سیکنڈ پہلے چلنے والا کنکشن اب کہیں راستہ نہیں پاتا۔
یہ ملکیت کی دوڑ ہے، اور اسکرپٹ میں نیند شامل کرنا صرف یہ بدلتا ہے کہ کون سا فریق جیتتا ہے۔ حل یہ ہے کہ صفائی کو شناخت پر مشروط کیا جائے: مددگار نے جو انٹرفیس اور سیشن نصب کیے اُن کا موازنہ ابھی درست رہنے والوں سے کریں، اور صرف میل کھانے پر ہٹائیں۔
کیا جانچنا ہے، اور راستہ کیا نہیں کر سکتا
قبولیت میں چار تبدیلیاں شامل ہونی چاہئیں: پہلا کنکشن، مختلف انٹرفیس پر دوبارہ جڑنا، ناکام کنکشن کی کوشش، اور آخری منقطع ہونا۔ ہر ایک کے بعد، دور کے جانب کے پتے کے لیے نظام نے واقعی جو راستہ چنا وہ پڑھیں، وہ نہیں جس کی آپ توقع کر رہے تھے۔
route -n get 10.77.0.5
netstat -rn -f inet
مشکل صورتیں بھی اُسی مرحلے میں شامل کریں: جہاں ضروری ہو وہاں IPv6، دور کے سابقے سے متجاوز مقامی سابقہ، اور خود عوامی VPN اینڈ پوائنٹ تک کا راستہ، جو ٹنل قائم رہنے تک کام کرتا رہنا چاہیے۔ پھر لکھیں کہ راستہ کیا نہیں ہے۔ یہ پیکٹ چنتا ہے؛ یہ دور کے جانب اجازت نہیں دیتا اور واپسی کا راستہ نہیں بناتا، اور وہ الگ مالکان والی الگ ضرورتیں ہی رہتی ہیں۔
آپ جو نتیجہ چاہتے ہیں وہ ایسا سابقہ ہے جو ہر تبدیلی میں اپنے معاون کنکشن مالک کی پیروی کرے، نہ کہ ایسی کمانڈ جو جس مشین پر لکھی گئی وہاں ایک بار اتفاقاً کامیاب ہوئی۔