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

ہر نوڈ پر وہی پتہ کیوں کام کرتا ہے

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

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

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

اسے سرنگ پر نہیں، لوپ بیک پر تفویض کریں

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

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

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

ip address show dev lo | grep 10.250.0.1
ip address add 10.250.0.1/32 dev lo

ایک راستہ دھکیلیں اور ایک ہی منزل کا ارادہ کریں

کلائنٹ کو پتے کے لیے میزبان راستہ درکار ہے، جو وہ سرور پیش کرتا ہے جس سے وہ جڑتا ہے۔ چونکہ ہر سرور وہی منزل پیش کرتا ہے، کلائنٹ کے حرکت کرنے پر پروفائل نہیں بدلتا۔

سروس کو قصوروار ٹھہرانے سے پہلے دیکھیں کہ کلائنٹ نے کیا نصب کیا۔

ip route get 10.250.0.1

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

مشترکہ پتہ کیا نہیں کر سکتا

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

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

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

سروس کی شناخت نام کے ساتھ رکھیں

لکھیں کہ پتے کا کیا مطلب ہے: یہ اس نوڈ پر سروس تک پہنچتا ہے جس سے کلائنٹ اس وقت جڑا ہوا ہے۔ وہ ایک جملہ اس زیادہ تر غلط فہمی کو روکتا ہے جو یہ نمونہ کھینچتا ہے۔

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

اگر ضرورت نوڈ کے مقامی سروس کے لیے مستحکم منزل ہے، تو یہ نمونہ موزوں ہے اور تقریباً کچھ خرچ نہیں کرتا۔

اگر ضرورت دستیابی ہے، تو ایک درجہ اوپر جائیں: لوڈ بیلنسر، صحت کی جانچ کے ساتھ سروس کا نام، یا ایسا آرکسٹریشن نظام جو پہلے سے جانتا ہے کہ نوڈ کیسے بدلنا ہے۔

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

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