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

مخالف سروں کو بیان کرنے والے دو نمبر

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

درمیان کا راؤٹر اس ماخذ کو اپنی 'NAT' میپنگ میں دوبارہ لکھ سکتا ہے۔ اسی لیے سرور پر نظر آنے والے نمبر کا لیپ ٹاپ کے چنے ہوئے نمبر سے اکثر کوئی تعلق نہیں ہوتا۔

باہر جاتے وقت ماخذ نمبر کہاں بدلتا ہے

IPv4 کی ایک فرضی مثال لیں: ترجمہ کرنے والے راؤٹر کے پیچھے ایک کلائنٹ، ایک 'UDP' سننے والے والا سرور، اور دونوں کو عبور کرنے والا ایک ڈیٹاگرام۔ جدول تین مشاہداتی مقامات پر پیکٹ دوبارہ چلانے کے بجائے ہر سرے اور اس کے ساتھ کیا ہوتا ہے کا نام دیتا ہے۔

EndpointWhat stays fixedWhat changes on reconnectWho owns it
Server listenerThe service port and the address the profile namesNothing; the listener does not follow the clientThe server operator
Client socketThe destination it dialsThe local source port, chosen per socketThe client, or its operating system
Translated sourceUsually the public address of the routerThe port, and sometimes the address after a network switchThe NAT device or the upstream carrier

منزل ہر قطار میں مستقل ہے، اور صرف ماخذ کی شناخت بدلتی ہے۔ UDP NAT کی ضروریات اندرونی پتے اور پورٹ کو بیرونی میپنگ سے الگ کرتی ہیں، اور یہی دوسری اور تیسری قطار کے درمیان فرق ہے۔ راؤٹر کلائنٹ کا ماخذ پورٹ رکھ سکتا ہے یا کوئی اور چن سکتا ہے؛ رکھنا ایسی چیز نہیں جسے ایپلیکیشن فرض کرے۔

تینوں سرے خود میزبانوں سے پڑھیں

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

ss -lunp 'sport = :1194'
ss -unp | grep 1194
conntrack -L -p udp | grep 1194

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

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

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

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

ریکارڈ میں تہوں کو الگ الگ لیبل کریں

سرنگ کے اندر اپنے پورٹوں والی دوسری گفتگو ہوتی ہے۔ سرنگ کی لے جانے والی HTTPS درخواست کی منزل TCP 443 ہے، جبکہ بیرونی خفیہ کردہ کنکشن UDP 1194 استعمال کرتا ہے، اس لیے بیرونی ماخذ پورٹ بدلنے سے اندرونی خدمت میں کچھ نہیں بدلتا۔

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

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

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