د VPN په ګیټوې کې MSS کلپینګ: څه سمول کوي او څه نه
کلپینګ د TCP لاس ورکولو کې MSS بیا لیکي تر څو سګمنټونه په ټنل کې ځای شي. دا هیڅکله UDP یا خراب path-MTU تګ نه سمول کوي. درې تګونه، په ترتیب.
کوچنۍ غوښتنې کار کوي، لوی ډاونلوډونه بند پاتې کېږي، او یو څوک د MSS کلپینګ وړاندیز کوي. دا وړاندیز په سم ترتیب کې د هڅولو وړ وي، او د سترګو پټولو سره د غوښتنې پلي کول یوه نیمه ورځ ضایع کوي. لاندې درې تګونه ریښتینی TCP د اندازې ستونزه له UDP ستونزې، له خراب path-MTU کشف او له هغه کلپینګ څخه چې هغه لاس ورکول چې باید بیا یې لیکي هېڅکله نه ویني، بېلوي.
د ناکامۍ له بڼې سره پیل وکړئ
د اندازې ناکامۍ یوه لاسلیک لري: اړیکه جوړېږي، تصدیق او کوچني ځوابونه بریالي کېږي، او بیا د بشپړ اندازې سګمنټ اړتیا سره سم لیږد د نامعلوم وخت لپاره بند پاتې کېږي. هغه پاڼې چې متن پورته کوي خو تصویر هیڅکله بشپړوي نه، په کوچني کچې کې هماغه ناکامي ده. که هېڅ هم ونه نښلول شي، ستونزه په لاره کې مخکې ده او کلپینګ مرسته نه کوي. کلپینګ نشي کولی هغه لاس ورکول جوړ کړي چې هېڅکله نه دی راغلی.
دا لاسلیک ځکه شته چې د سګمنټ اندازه په هماغه لاس ورکولو کې موافقه کېږي. هر اړخ تر ټولو زیاته د سګمنټ اندازه د TCP انتخاب په توګه اعلانوي، او لیږونکي د بل اړخ اعلان درناوی کوي. که لاره دومره لوی سګمنټ ونه شي وړل کولی، ناکامي وروسته ښکاري، کله چې لیږونکی بالاخره یو هڅوي.
دې نښې ته په کتلو سره لیږد له نظره مه ورکوئ. کلپینګ د TCP انتخاب بیا لیکنه ده، نو هغه غږیز یا ویډیویي زنګ چې د هماغه ټنل لاندې بند پاتې کېږي MSS ستونزه نه ده او له هغې به ښه نشي. د TCP انتخاب له لاس وهلو مخکې لیږد ولیکئ.
د لارې بیه وټاکئ، بیا یې له ټنل سره پرتله کړئ
دوه عددونه مهم دي او ډېری وختونه سره ګډېږي. path-MTU هغه تر ټولو لوی پاکټ دی چې لاره یې پرته له ویشل کېدو وړي، او د IPv4 لپاره اعلان شوی MSS هغه ارزښت دی چې د IP او TCP سرلیکونو 40 بایټ کموي، یا د IPv6 لپاره 60 کموي. د ټنل انکپسولیشن د دنني پاکټ له پیلېدو مخکې د بودیجې یوه برخه خوري.
ping -M do -s 1400 198.51.100.20
tracepath 198.51.100.20
د do-not-fragment بټ سره ping تاسو ته وایي چې د هغه بار د اندازې پاکټ ژوندی پاتې کېږي که نه؛ اندازه بدل کړئ تر څو ناکام شي او لارې حد مو په تجربه سره پیدا کړ. د tracepath تولید په مسیر کې موندل شوی MTU راپور کوي، کوم چې کله کار کوي چټک او کله منځنی هپ پټې کتنې فلټر کړي لږ باوري وي.
اوس د ټنل اضافي لګښت کم کړئ. بهرنی IP سرلیک، UDP سرلیک او ټنل ته ځانګړی سرلیک ټول له هماغو 1500 بایټونو راځي، نو په عادي ایترینټ بنسټ کې د کارېدو وړ دننی MTU له هغه څه کم دی چې فزیکي تړاو یې وړاندیز کوي. که حساب شوی دننی MTU ستاسو ملګرو له اعلان څخه کم وي، تاسو اټکل نه، بلکې ریښتینی د کلپینګ نوماند موندلی دی. که حساب شوی ارزښت له سره د ملګرو له اعلان څخه لوړ وي، دلته ودرو او بل ځای وګورئ.
کلپینګ هغه ځای کېږدئ چې لاس ورکول تېرېږي
کلپینګ د SYN او SYN-ACK پاکټونو کې MSS انتخاب بیا لیکلو سره کار کوي، کله چې دوی ګیټوې تېروي. که قاعده په هغه انټرفیس کې وي چې هېڅ یوه لوری یې هېڅکله نه تېروي، خبرې اترې پرته له بدلون بشپړېږي او نښه پاتې کېږي، له همدې کبله ځای د ارزښت څخه زیات پایله ټاکي.
| Symptom | What it points to | Next check |
|---|---|---|
| Handshake completes, large transfer stalls | Segment size larger than the path can carry | Path MTU against the tunnel's effective MTU |
| Nothing connects, small or large | Routing, firewall or keying failure | Not MSS; look at the tunnel state |
| Only UDP applications stall | Datagram size or a dropped ICMP error | Platform-specific UDP handling, not clamping |
| Fixed after reconnect, returns later | Clamp applied to one direction or one interface | Rule placement and the handshake path |
لوری بل نیم دی. د یو لوري کلپینګ د جریانونو نیمه سمول کوي او نور پاتې کېږي چې په منځنۍ بڼه ناکام شي، نو د لیږل شوي ترافیک دواړو لورو ته یې پلي کړئ. د ټنل انټرفیس لپاره د Linux کلاسیک بڼه هغه mangle قاعده ده چې SYN پاکټونه سره مطابقت لري:
iptables -t mangle -A FORWARD -o tun0 -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
پام وکړئ --clamp-mss-to-pmtu په رښتیا څه کوي: دا ارزښت د مسیر MTU څخه اخلي، کوم چې تل د ټنل ریښتینی د بار بودیجه نه ده. په مسیر ولاړ ټنل کې چې دننی مسیر او بهرنی لاره توپیر لري، په تېره تګ کې حساب شوی روښانه ارزښت له اتوماتیک څخه زیات وړاندوینې وړ دی.
د نوي اړیکې سره تایید کړئ او نظر ژوندی وساتئ
جوړه شوې اړیکه هغه MSS ساتي چې پرې موافقه شوې وه، نو په هماغه ناسته کې ازموینه هېڅ نه ثابتوي. له بدلون وروسته نوې اړیکه پرانیزئ او موافقه شوی ارزښت سیده ولولئ، نه دا چې له یوه ناڅاپي بشپړېدونکي لیږد څخه یې اټکل کړئ.
ss -tin dst 198.51.100.20
iptables -t mangle -S | grep TCPMSS
لومړی حکم د ساکټ MSS د هغې د ګڼېدنې حالت سره راپور کوي، کوم چې د کلپینګ د اغیزې تر ټولو چټک تایید دی. دوهم تاییدوي چې هغه قاعده چې تاسو فکر کوئ مو زیاته کړې، هغه قاعده ده چې شته، په هماغه جدول کې چې ایښودل شوې.
بیا هغه میکانیزم وژغورئ چې تاسو نه دی سم کړی. د path-MTU کشف په دې ولاړ دی چې د ICMP fragmentation-needed پیغامونه لیږونکي ته ورسیږي، نو هغه فایروال چې دوی غورځوي به لوی لیږدونه خرابوي حتی د سم کلپینګ سره. د ټنل لارې لپاره دې پیغامونو ته اجازه ورکړئ، یا ومنئ چې کلپینګ هغه تګلاره جبرانوي چې تاسو غوره کړې.
په پای کې، د کلپینګ د تنظیم نوب په توګه کتلو هیلې سره مقابله وکړئ. دا د سګمنټ اندازه محدوده کوي، کوم چې په هغو لارو کې د تېرېدو وړتیا لګښت کوي چې هېڅکله ورته اړتیا نه وه. له دریو تګونو وروسته پلي شوی دا هدفمن سمون دی؛ لومړی پلي شوی دا هغه بدلون دی چې اصلي خرابي پټوي او هر وروستي ازموینې ته دوهم متغیر زیاتوي. هغه تبادله په قصد سره کول ارزښت لري، نه په ډیفالټ.
هغه path-MTU چې مو اندازه کړ، کم شوی ټنل لګښت، زیات شوی قاعده او وروسته لیدل شوی MSS ولیکئ. څلور عددونه بلې پیښې ته د څیړنې پر ځای لټون بڼه ورکوي.