سیشن کے دوران پیر کا پتہ بدل گیا: OpenVPN میں float کیا کرتا ہے
float تصدیق شدہ پیر کو سیشن کے دوران اپنا بیرونی پتہ بدلنے دیتا ہے۔ یہ آخری نقاط دریافت نہیں کرتا، مردہ رابطہ دوبارہ نہیں کھولتا اور شناخت کی جانچ نہیں چھوڑتا۔
لیپ ٹاپ دفتر کے Wi-Fi سے فون کے ہاٹ اسپاٹ پر جاتا ہے، سرنگ کچھ سیکنڈ مزید قائم رہتی ہے اور پھر ٹریفک رک جاتی ہے جبکہ انٹرفیس اب بھی جڑا ہونے کا دعویٰ کرتا ہے۔ سرور پر، حالت کی فہرست اب بھی پرانا عوامی پتہ دکھاتی ہے۔ یہ وہی صورت حال ہے جس کے لیے float موجود ہے، اور یہ بھی وہی صورت حال ہے جہاں لوگ اس سے اس کے کام سے کہیں زیادہ توقع رکھتے ہیں۔ حد کو درست سمجھنا کسی الجھن بھرے ٹھہراؤ کو یا تو ایک سطر کی تشکیل کی تبدیلی بنا دیتا ہے یا بالکل کسی اور تحقیق میں بدل دیتا ہے۔
float کیا ڈھیلا کرتا ہے، اور کیا کبھی ڈھیلا نہیں کرتا
عام طور پر سیشن اسی بیرونی پتے اور پورٹ سے بات کرتا رہتا ہے جن سے شروع ہوا تھا، اور کہیں اور سے آنے والے پیکٹ نظر انداز کر دیے جاتے ہیں۔ float کا اختیار اس سخت بندھن کو ہٹا دیتا ہے جب پیر پہلے ہی خود کو ثابت کر چکا ہو، اس لیے بدلا ہوا ماخذ میپنگ خارج ہونے کے بجائے وہی سیشن جاری رکھ سکتا ہے۔ خفیہ کاری کی جانچ میں کچھ نہیں بدلتا: کلیدیں، سرٹیفکیٹ اور کوئی بھی HMAC تحفظ بالکل ویسے ہی رہتے ہیں جیسے ترتیب دیے گئے تھے۔
یہ ہر پیکٹ کا فیصلہ ہے، یہ پالیسی نہیں کہ کون جڑ سکتا ہے۔ کسی نئے پتے سے پیکٹ بھیجنے والی نامعلوم مشین نے کچھ ثابت نہیں کیا، اور اس کا پیکٹ کسی بھی دوسری غیر تصدیق شدہ ٹریفک کی طرح خارج کر دیا جاتا ہے۔ صرف وہی ٹریفک ریکارڈ شدہ پیر کا پتہ ہلا سکتی ہے جو سیشن کی اپنی تصدیق سے گزرے، اسی لیے جن ماحول میں کلائنٹ گھومتے ہیں وہاں float کو آن رکھنا محفوظ ہے۔
یہ اندرونی سرنگ کے بارے میں بھی کچھ نہیں کہتا۔ ہٹایا گیا بیرونی پتہ سرنگ کا پتہ دوبارہ تفویض نہیں کرتا، تالاب نہیں بدلتا اور پیر کو کسی نئی چیز تک رسائی نہیں دیتا۔ سرنگ کے اندر، ہلنے سے پہلے اور بعد میں وہی شناخت اور وہی دھکیلے گئے راستے لاگو ہوتے ہیں۔ گھومنا ڈیٹا چینل پر دوبارہ گفت و شنید بھی نہیں کرتا، اس لیے طے شدہ سائفر اور کلیدیں جاری رہتی ہیں۔
سیشن کو ہلانے والے پیکٹ کی تصدیق ہونی چاہیے
ترتیب دیے گئے دور دراز سرے کے سامنے معمول کے مطابق سیشن شروع کریں، اور میپنگ بدلنے پر کیا ہوتا ہے یہ float سنبھالتا ہے۔ بہاؤ کے دوران نمبر بدلنے والا موبائل آپریٹر، اپنی پورٹ میپنگ دوبارہ لکھنے والا NAT گیٹ وے، یا اپ لنک بدلنے والا لیپ ٹاپ سب ایک ہی شکل بناتے ہیں: نئے ٹپل سے تصدیق شدہ پیکٹ، جو اب بھی پرانے پر یقین رکھنے والے سیشن تک پہنچتے ہیں۔
جب پوچھا جائے کہ float کام کر رہا ہے یا نہیں، تو مفید ثبوت مکمل ہونے والا ہاتھ ملانا اور اس کے بعد قبول شدہ ماخذ کی تبدیلی ہے، صرف پتے کے بارے میں ایک لاگ سطر نہیں۔ پرانے اور نئے بیرونی پتے کو زندہ بچ جانے والے سیشن سے جوڑیں، پھر تصدیق کریں کہ ٹریفک واقعی سرنگ سے جاری رہی۔
اگر سیشن ہلنے کے بجائے مر جائے، تو نئے پتے سے آنے والا پیکٹ شاید تصدیق میں ناکام ہوا یا آیا ہی نہیں۔ کلائنٹ کی طرف سے دونوں صورتیں یکساں دکھتی ہیں۔ سرور پر، عوامی انٹرفیس پر کی گئی گرفت بتا دیتی ہے کہ کون سی صورت ہے، کسی بھی تشکیل کو چھونے سے پہلے۔
دریافت بالکل الگ طریقہ کار ہے
float ٹائمر پر نام حل نہیں کرتا اور متحرک DNS ریکارڈ کی نگرانی نہیں کرتا۔ اگر سرور کا ہوسٹ نام نئے پتے پر حل ہونے لگے، تو غیر فعال کلائنٹ کے پاس اسے نوٹ کرنے کی کوئی وجہ نہیں اور نئے سرے سے تصدیق کرنے کے لیے کوئی پیکٹ نہیں۔ وہ مسئلہ دوبارہ رابطے کی منطق، کلائنٹ کے اپنے دوبارہ کوشش کے رویے اور DNS کا ہے، float کا نہیں۔
اختیار کو ایک بار پھر شامل کرنا نئے پتے تک راستے کی کمی کی تلافی نہیں کر سکتا۔ جب پیر خاموش ہو تب بھی یہ مدد نہیں کرتا، کیونکہ خاموش پیر کبھی وہ تصدیق شدہ پیکٹ نہیں بھیجتا جو کچھ ہلا سکے۔
نیچے کی فائر وال کی بھی رائے ہے۔ صرف پرانے بیرونی سرے کی اجازت دینے والا قاعدہ بدلے ہوئے پتے کو OpenVPN کے دیکھنے سے پہلے ہی روک دیتا ہے، اور کلائنٹ کی طرف کی کوئی تشکیل اسے درست نہیں کرتی۔ اجازت شدہ پتوں کے زندگی کے چکر کا الگ کام کے طور پر جائزہ لیں؛ قاعدے کو کسی بھی ماخذ تک بڑھانا چھوٹی مشکل کو بڑی سے بدلنا ہے۔
جب NetworkManager پروفائل کا مالک ہو
کمانڈ لائن پروفائل اور درآمد شدہ کنکشن الگ الگ تشکیلات ہیں، اور ایک میں ترمیم دوسرے کو نہیں چھوتی۔ اختیار کو غیر معاون ماننے سے پہلے طے کریں کہ محفوظ پروفائل واقعی کس قسم کا پلگ ان استعمال کرتا ہے اور اس کی اقدار کہاں رہتی ہیں۔ پروفائل کا UUID وہ شناخت کنندہ ہے جو اہم ہے جب آپ کچھ معائنہ یا تبدیل کرتے ہیں۔
اصل درآمد فائل کے بجائے محفوظ کنکشن کا معائنہ کریں۔ .ovpn فائل میں بچ جانے والی سطر کچھ ثابت نہیں کرتی اگر فعال منتظم نے اسے کبھی لاگو نہ کیا ہو، اور کسی مخصوص اختیار کے لیے چیک باکس کے بغیر ایڈیٹر بھی پروٹوکول کی صلاحیتوں کے بارے میں کچھ ثابت نہیں کرتا۔
رویہ شامل کرنے کے لیے پیکج شدہ پلگ ان کو پیچ نہ کریں، خاص طور پر کسی غیر متعلقہ جزو کے تاریخی ورژن کے لیے لکھے گئے diff سے نہیں۔ اگر نصب شدہ انضمام واقعی وہ ترتیب بیان نہیں کر سکتا، تو صحیح قدم معاون پروفائل یا تعیناتی کے مالک کی منظور شدہ کوئی دوسری کلائنٹ راہ ہے۔
فرض کرنے کے بجائے منتقلی ثابت کریں
جانچ اسی طرح چلائیں جیسے ناکامی پیش آتی ہے۔ جڑیں، سرنگ سے ٹریفک کی تصدیق کریں، بیرونی پتے کو بدلنے پر مجبور کریں، اور پھر تین چیزیں جانچیں: سیشن اب بھی موجود ہے، ریکارڈ شدہ پیر کا پتہ ہل گیا ہے، اور حقیقی درخواست اب بھی اپنی منزل تک پہنچتی ہے۔ تینوں سے کم کوئی بھی چیز ادھورا جواب ہے۔
جانچ کے دوران بحالی کی رسائی دستیاب رکھیں، کیونکہ گھومنے کے تجربات کی عادت ہے کہ جس مشین سے آپ کام کر رہے ہیں اسے پھنسا کر چھوڑ دیں۔ سیریل کنسول یا بینڈ سے باہر کا راستہ ناکام جانچ کو مقام کے دورے کے بجائے پانچ منٹ کی بحالی میں بدل دیتا ہے۔
آخر میں، صرف اسی صورت حال کا بیان کریں جس کا آپ نے عملاً تجربہ کیا۔ سیشن کے دوران کامیاب پتہ تبدیلی اس بات کا ثبوت نہیں کہ DNS کی منتقلی، کوئی دوسرا کلائنٹ نفاذ یا دوبارہ بنایا گیا پروفائل ویسا ہی رویہ رکھیں گے۔ link-options دستاویز اختیار کا دائرہ درست طریقے سے بیان کرتی ہے؛ آپ کے جانچ کے لاگ میں لکھا ہونا چاہیے کہ آپ نے اس دائرے کا کون سا حصہ واقعی ڈھانپا۔