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

وہ تین اعداد جنہیں لوگ MTU کہتے ہیں

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

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

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

اپنے قابو والے پے لوڈ سے راستہ جانچیں

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

ping -M do -s 1372 -c 2 203.0.113.20
ping -4 -f -l 1372 vpn.example

پہلا کمانڈ فریگمنٹیشن بند رکھ کر 1372 بائٹ پے لوڈ کے ساتھ لینکس ٹیسٹ بھیجتا ہے، اور دوسرا ونڈوز پر وہی کرتا ہے جہاں پے لوڈ -l سے مقرر ہوتا ہے۔ جواب کا مطلب ہے کہ وہ سائز راستہ طے کر گیا۔ فریگمنٹیشن کی ضرورت کا پیغام معلوماتی ہے، جبکہ ٹائم آؤٹ مبہم ہے کیونکہ ہوسٹ یا درمیانی ڈیوائس ICMP کو محض گرا سکتی ہے۔

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

IPv4 اور IPv6 مختلف طریقے سے فریگمنٹ ہوتے ہیں، اس لیے ایک خاندان کا نتیجہ دوسرے کے بارے میں کچھ نہیں بتاتا۔ اسی خاندان کی جانچ کریں جو ایپ واقعی استعمال کرتی ہے۔

MSS کلیمپنگ صرف TCP کی مدد کرتی ہے

TCP میں مؤثر پے لوڈ ہینڈ شیک کے دوران طے ہوتا ہے، اور راستے کا راؤٹر اس قدر کو نیچے کی طرف دوبارہ لکھ سکتا ہے تاکہ دونوں سرے چھوٹے سیگمنٹ بھیجیں۔ MSS کلیمپنگ یہی کرتی ہے، اور یہ کلائنٹ کو بالکل چھوئے بغیر کام کرتی ہے۔

iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
ip link show tun0

پہلا قاعدہ آگے بھیجے جانے والے TCP ہینڈ شیک کے لیے اعلان شدہ MSS کو راستے کے MTU پر کلیمپ کرتا ہے، اور دوسرا ٹنل انٹرفیس کا اپنا MTU دکھاتا ہے تاکہ آپ اسے راستے کی اجازت سے موازنہ کر سکیں۔ ہینڈ شیک کے بعد رکنے والی TCP ایپ کے لیے کلیمپنگ سب سے کم مداخلت والا حل ہے۔

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

OpenVPN tun-mtu، mssfix اور فریگمنٹیشن سے متعلق ترتیبات جیسے اختیارات پیش کرتا ہے، اور ان کا رویہ ورژن اور اس پر منحصر ہے کہ ڈیٹا چینل AEAD ہے یا نہیں۔ زیر استعمال ورژن کا دستی پڑھیں، اور ایک وقت میں ایک اختیار بدلیں۔

ایک معاون ترتیب بدلیں اور دونوں دوڑیں دہرائیں

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

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

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

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