اگلی دوبارہ رابطے پر پول کون سا پتہ دے گا؟
پول کے پتے ایسی ترتیب پر چلتے ہیں جو بےترتیب نہیں: پہلے یاد رکھا گیا پتہ، پھر وہ خالی پتہ جو سب سے زیادہ عرصے استعمال نہیں ہوا۔ اصول طے کرنے سے پہلے اسے پڑھیں۔
جو اصول کل مطابق تھا وہ آج مطابق نہیں، کیونکہ کلائنٹ دوسرے سرنگ کے پتے پر واپس آیا۔ تقسیم کار البتہ بےترتیب نہیں، اور اس کی ترتیب جاننا اس حیرت کو پیش گوئی کے قابل واقعہ بنا دیتا ہے۔ وہ وہی پتہ ترجیح دیتا ہے جو اسی کلائنٹ کے پاس پہلے تھا، سب سے زیادہ عرصے سے غیر فعال خالی پتے پر اتر آتا ہے، اور سب کچھ بھول جاتا ہے اگر آپ اسے یاد رکھنے کی جگہ نہ دیں۔ کرایے پر مبنی اصول اس دن تک مطابق رہتے ہیں جب وہ خاموشی سے ایسا کرنا بند کر دیتے ہیں۔
وہ ترتیب جس پر تقسیم کار چلتا ہے
ہر common name کے لیے ایک سیشن کے ساتھ تقسیم کار پہلے وہ پتہ ڈھونڈتا ہے جو اسی کلائنٹ نے پہلے استعمال کیا اور جو اب خالی ہے۔ اگر وہ پتہ نہ ہو تو وہ خالی پتہ لیتا ہے جو سب سے زیادہ عرصے غیر فعال رہا۔ جب اسی نام کے لیے بیک وقت سیشن فعال ہوں تو پچھلے پتے کی ترجیح لاگو نہیں ہوتی اور اس کی جگہ پہلا خالی پتہ استعمال ہوتا ہے، کیونکہ سیشنوں کو الگ برابر کے نوڈ سمجھا جاتا ہے۔
| Situation | Address chosen | Practical effect |
|---|---|---|
| Reconnect, old address still free | The remembered address | Rules appear stable for days |
| Old address taken by another client | Least recently used free address | A working rule silently stops matching |
| Concurrent sessions, same name | First free address, per session | One identity can hold several leases |
اس سے فوراً دو نتائج نکلتے ہیں۔ تیزی سے دوبارہ جڑنے والا کلائنٹ عموماً اپنا پتہ برقرار رکھتا ہے، اسی لیے کوئی میکانزم کو اس وقت تک نہیں دیکھتا جب تک وہ بدل نہ جائے۔ اور اس چھوٹی کھڑکی میں جڑنے والا دوسرا آلہ پتہ اس وقت لے سکتا ہے جب وہ تھوڑی دیر خالی ہو، جس کے بعد پہلے کلائنٹ کو کچھ اور ملتا ہے اور پرانے نمبر پر بنی ہر اصول غلط ہو جاتی ہے۔ دونوں میں سے کوئی واقعہ ایسی لاگ سطر نہیں بناتا جو خرابی جیسی لگے۔
کرایہ مستحکم کیوں لگتا ہے اور پھر سرکتا ہے
یہاں استحکام دوبارہ رابطوں کی پیدا شدہ خاصیت ہے جو کسی اور کے پتے کا دعویٰ کرنے سے پہلے آتے ہیں۔ یہ وعدہ نہیں، اور جب تک کلائنٹ منقطع ہے لاگو نہیں ہوتا۔ پتے کی تبدیلی کی منصوبہ بندی کریں، اس سے حیران ہونے کے بجائے۔ ایسا پول جو آلات کی تعداد سے بمشکل بڑا ہو تصادمات کو معمول بنا دیتا ہے، کیونکہ سب سے زیادہ عرصے غیر فعال پتے پر واپسی کے پاس چننے کو تقریباً کچھ نہیں ہوتا۔
چوٹی کی بیک وقتی وہ عدد ہے جس پر پیمانہ باندھا جائے، صارفین کی تعداد نہیں۔ کوئی جو بیک وقت دو آلات سے جانچتا ہے، یا کلائنٹ جو پرانے سیشن کے ختم ہونے سے پہلے دوبارہ جڑتا ہے، کچھ دیر دو کرائے رکھتا ہے۔ صرف افراد کی تعداد پر باندھا گیا پول بالکل وہی تبدیلی پیدا کرے گا جس کا الزام لوگ سرور پر ڈالتے ہیں۔
استقلال کی فائل یاد رکھتی ہے، محفوظ نہیں کرتی
وہ پتہ جو سروس کی دوبارہ شروعات سے بچ جائے اسے استقلال کی فائل چاہیے۔ یہ بندش کے وقت کلائنٹ کا نام اور پتہ محفوظ کرتی ہے اور سروس کے آغاز پر انہیں دوبارہ پڑھتی ہے، اسی لیے منصوبہ بند دوبارہ شروعات اب آپ کے لکھے تمام اصولوں کو نہیں بگاڑتی۔
ifconfig-pool-persist /etc/openvpn/ipp.txt
server 10.8.0.0 255.255.255.0
جو یہ نہیں کرتی وہ یہ ہے کہ کلائنٹ کی غیر موجودگی میں پتہ روکے رکھے۔ اس وقفے میں تقسیم کار نمبر کسی اور کو دینے میں آزاد ہے، اور فائل پھر ایسی پرانی ترجیح درج کرتی ہے جسے اگلا رابطہ پورا نہیں کر سکتا۔ اسے ایسے اشارے کی طرح لیں جو دوبارہ شروعات کے رویے کو بہتر بناتا ہے، مستقل پتوں کی طرح نہیں۔
جب آپ فائل میں ہوں تو پول کو ہر روٹ شدہ ذیلی نیٹ کے مقابل جانچیں۔ ایسا دائرہ جو آپس میں ملتا ہو ایسے پتے تقسیم کرتا ہے جن تک سرور راستہ نہیں بنا سکتا، اور علامت یہ ہے کہ کلائنٹ جڑتا ہے، پتہ لیتا ہے اور کہیں نہیں پہنچتا۔
پتہ صحیح طریقے سے مستقل کرنا
جب فائر وال اصول یا DNS ریکارڈ کو واقعی مستقل پتہ درکار ہو تو امید کرنے کے بجائے اسے مختص کریں۔ ہر کلائنٹ کے لیے کنفیگریشن اندراج براہِ راست پتہ اور ماسک بھیج سکتا ہے، اور وہ اندراج مؤثر کلائنٹ نام پر کلید شدہ ہے۔
# client-config-dir entry for "laptop-acme"
ifconfig-push 10.8.0.50 255.255.255.0
مستقل پتے متحرک پول سے باہر رکھیں تاکہ تقسیم کار کبھی وہی نمبر کسی دوسرے سیشن کو نہ دے۔ پھر سرنگ کی ساخت جانچیں، کیونکہ یہ بدلتی ہے کہ ہر کلائنٹ کتنے پول پتے خرچ کرتا ہے: پرانا نقطہ بہ نقطہ ترتیب ہر کلائنٹ پر ایک چھوٹا بلاک خرچ کرتا ہے، جبکہ ذیلی نیٹ کی ترتیب ہر ایک پر ایک پتہ استعمال کرتی ہے۔ ایسا پول جو ایک ساخت میں فراخ لگے دوسری میں ختم ہو سکتا ہے۔
نتیجہ کلائنٹ پر تصدیق کریں، سرور کے حساب پر بھروسہ کرنے کے بجائے۔ جب سیشن واپس آئے تو انٹرفیس کا پتہ اور بھیجا گیا راستہ دیکھیں، کیونکہ سرور کی لاگ درخواست شدہ پتہ بتا سکتی ہے جبکہ انٹرفیس خود کوئی اور رکھتا ہو۔
دور کا پتہ الگ سوال ہے
کلائنٹ کی remote سطر میں پتہ کسی بھی سرنگ کے وجود سے پہلے قابلِ رسائی ہونا چاہیے۔ وہاں پول کا پتہ رکھنا، مثلاً خود سرور کا سرنگ اختتامی مقام، یعنی کلائنٹ ایسے سرنگ سے اختتامی مقام تک پہنچنے کی کوشش کرتا ہے جو اس نے ابھی بنائی نہیں، اور نتیجہ مختصر راستے کے بجائے کوئی چکر یا خاموش انتظار ہوتا ہے۔
وہ عوامی اختتامی مقام استعمال کریں جو آپریٹر نے دیا، اور پول کو اسی لیے رکھیں جس کے لیے بنایا گیا: سرنگ کے اندر کے پتے۔ پول کا دائرہ، مستقل مختص اور استقلال کا راستہ ایک ہی جگہ لکھ لینا اگلے شخص کو ہر کرائے کو من مانی سمجھنے سے بچا لیتا ہے۔