VPN بہاؤ میں کلائنٹ کا ماخذ پورٹ اور سرور کا سننے والا
ایک ہی سرنگ میں دو پورٹ نمبروں کا موازنہ کریں: سرور کا مستقل سننے والا اور کلائنٹ کا عارضی ماخذ، اور ان کے درمیان راؤٹر کا ترجمہ کہاں بیٹھتا ہے۔
ایک ہی گفتگو میں دو نمبر نظر آتے ہیں، اور کوئی بھی غلط نہیں۔ سرور کا لاگ خدمت دینے والا سننے والا دکھاتا ہے، لیپ ٹاپ وہ ساکٹ دکھاتا ہے جس نے ڈیٹاگرام بھیجا، اور درمیان کا راؤٹر باہر جاتے وقت دوسرے کو دوبارہ لکھ سکتا ہے۔ گفتگو کے دونوں سروں کا موازنہ کرنا ہندسوں کے موازنہ سے زیادہ مفید ہے۔ نیچے کا موازنہ سننے والے، کلائنٹ ساکٹ اور ترجمہ شدہ ماخذ کو الگ رکھتا ہے، کیونکہ وہ مختلف سوالوں کا جواب دیتے ہیں۔
مخالف سروں کو بیان کرنے والے دو نمبر
سرور کا تشکیل شدہ پورٹ وہ منزل ہے جہاں کلائنٹ ڈائل کرتا ہے۔ اسے پالیسی مقرر کرتی ہے، یہ پروفائل میں دکھائی دیتا ہے اور سرور کی طرف کھلا ہونا چاہیے۔ کلائنٹ کا ماخذ پورٹ مقامی طور پر، عام طور پر عارضی رینج سے چنا جاتا ہے، اور اس لیے موجود ہے کہ جواب کو اترنے کی جگہ ملے۔ یہ ہر دوبارہ جڑنے پر بدل سکتا ہے، اور ڈیزائن میں کچھ بھی اس کی استحکام پر منحصر نہیں۔
درمیان کا راؤٹر اس ماخذ کو اپنی 'NAT' میپنگ میں دوبارہ لکھ سکتا ہے۔ اسی لیے سرور پر نظر آنے والے نمبر کا لیپ ٹاپ کے چنے ہوئے نمبر سے اکثر کوئی تعلق نہیں ہوتا۔
باہر جاتے وقت ماخذ نمبر کہاں بدلتا ہے
IPv4 کی ایک فرضی مثال لیں: ترجمہ کرنے والے راؤٹر کے پیچھے ایک کلائنٹ، ایک 'UDP' سننے والے والا سرور، اور دونوں کو عبور کرنے والا ایک ڈیٹاگرام۔ جدول تین مشاہداتی مقامات پر پیکٹ دوبارہ چلانے کے بجائے ہر سرے اور اس کے ساتھ کیا ہوتا ہے کا نام دیتا ہے۔
| Endpoint | What stays fixed | What changes on reconnect | Who owns it |
|---|---|---|---|
| Server listener | The service port and the address the profile names | Nothing; the listener does not follow the client | The server operator |
| Client socket | The destination it dials | The local source port, chosen per socket | The client, or its operating system |
| Translated source | Usually the public address of the router | The port, and sometimes the address after a network switch | The 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 ڈیٹاگرام نہیں پائے گا صرف اس لیے کہ نمبر ملتا ہے۔ کسی تعیناتی کی دستاویز بناتے وقت سرور کے سننے والے، کلائنٹ ساکٹ اور ترجمہ شدہ ماخذ کو تین الگ چیزوں کے طور پر لیبل کریں، اور ہر ایک میں ٹرانسپورٹ شامل کریں۔
پھر پالیسی کرداروں کی پیروی کرے۔ سرور اپنے سننے والے پر مطلوبہ ٹرانسپورٹ کھولتا ہے اور پھر بھی ساتھی کی تصدیق کرتا ہے؛ کلائنٹ کا فائر وال بغیر کوئی اندرونی خدمت شائع کیے اپنے باہر جانے والے تبادلے کے جوابات قبول کرتا ہے۔ بے حالت فلٹر کو واپسی کی سمت واضح طور پر لکھنی پڑتی ہے، اور صاف ستھرے خاکوں سے آگے اس فرق کے اہم ہونے کی عملی وجہ یہی ہے۔