د 1,500 بایټ ثابت داخلي پاکټ د VPN له لارې لېږدول
د 1,500 بایټ ثابت داخلي پاکټ په 1,500 بایټ بهرنۍ لاره کې نه ځای پر ځای کېږي. اوور هیډ واندازه کړئ، بیا لوی underlay MTU یا ملاتړ شوی فریګمینټیشن غوره کړئ.
تاسو ته یو داسې غوښتنه لرئ چې نه ټېټ کېږي: بل اړخ باید هماغه 1,500 بایټ IP پاکټ ترلاسه کړي چې لېږونکی یې صادروي، د سرلیکونو په ګډون. ټنل نشي کولی هغه پاکټ او خپل فریمینګ په دویم 1,500 بایټ IP پاکټ کې وتړي، نو د ډیزاین یو څه باید پرېږدي. لاندې ترتیب هغه دی چې زه یې په بدلون کړکۍ کې کاروم: د بایټ بودیجه ولیکئ، ثابته کړئ چې underlay په رېښتیا څه لېږدولی شي، بیا په دقیق ډول یوه لېږدونکې طریقه وټاکئ او په بل اړخ کې داخلي پاکټ تایید کړئ.
د پروفایل د سمون مخکې د بایټ بودیجه ولیکئ
انکپسولیشن په څو پوړونو کې بایټ ورزیاتوي، او ټولټال ستاسو د پروفایل ځانګړتیا ده، نه هغه ثابت عدد چې وموندل شي. د پتې کورنۍ، د سایفر غوراوی، د لېږد پروتوکول او هر کوم فشار یا فریمینګ انتخاب شمېره بدلوي، نو له بل ځای څخه کاپي شوې کمېدنه د بودیجې په توګه بې ارزښته ده. له داخلي غوښتنې پیل کړئ، د خپلې ترتیباویې اندازه شوې پر-پاکټ اوور هیډ ورزیات کړئ، او د پایلې بهرنی اندازه د بدلون ټکټ کې ولیکئ، مخکې له دې چې څوک فایل سم کړي.
دوه شمېرې ډیزاین فیصله کوي: تر ټولو لوی بهرنی پاکټ چې لاره یې پرته له فریګمینټیشن لېږدوي، او هغه اضافي بایټ چې ستاسو انکپسولیشن ته اړتیا ده. کله چې لومړی له دویم څخه د 1,500 په ورزیاتولو سره کم وي، یو له دوی باید بدل شي. بیا غوراوی تنګ وي نه تخلیقي، نو زه دواړه شمېرې د انتخابونو له بحث مخکې لیکم. د ټنل په پوړ کې هېڅ شی هغه بایټ نه فشاروي، او هېڅ یو MTU بشپړ عدد هغه غوښتنه نه لرې کوي چې تاسو ته ورکړل شوې وه.
underlay د do-not-fragment ping له لارې وازموئ
لاره واندازه کړئ، د انټرفیس MTU باور مه کوئ، ځکه په بهرنۍ لاره کې تر ټولو کوچنی تړی مهم دی. په Linux کې, -M do د do-not-fragment بټ ټاکي او -s د ICMP پیلوډ اخلي، نو 1,500 بایټ فریم د 20 بایټ IP سرلیک او 8 بایټ ICMP سرلیک له کمولو وروسته په 1,472 بایټ پیلوډ ځواب ورکوي. پیلوډ لوړ کړئ تر څو چې ازموینه ناکامه شي، بیا jumbo اندازې ته ورګډ شئ او وګورئ چې لاره یې په بشپړ ډول لېږدوي که نه.
ping -M do -s 1472 -c 2 198.51.100.10 ping -M do -s 8972 -c 2 198.51.100.10 tracepath -n 198.51.100.10
هغه لاره چې 1,472 تېروي او په 8,972 ناکامه شي، نشي کولی 1,500 بایټ داخلي پاکټ له اوور هیډ سره په یوه بهرني پاکټ کې ولېږدوي. دا هغه ځواب دی چې تاسو ته د VPN ترتیباویې له پرانیستلو مخکې اړین و. دا هم فیصله کوي چې د راتلونکو دوو برخو کومه یې تاسو ته اړه لري، نو دواړه د ازموینې پایلې د ټکټ تر څنګ وساتئ. دلته اټکل کول یوه ساتنې کړکۍ ضایع کوي، ځکه هغه ټنل چې ځان up ښیي، د لارې د منلو وړ تر ټولو لوی پاکټ په اړه هېڅ نه وایي.
د لارې MTU یوازې هغه ځای لوړ کړئ چې هر هپ سره موافق وي
Jumbo فریمونه end-to-end ځانګړتیا ده, نه هغه ترتیب چې په دوو هغو پای ټکو کې چالانوئ چې ناڅاپه یې کنټرول لرئ. په بهرنۍ لاره کې هر سویچ، روټر او د عرضه کوونکي سپارل باید پر لوی اندازې سره موافق شي، او یو 1,500 بایټ هپ به هغه پاکټ چې همدا اوس مو لوی کړ، په چوپتیا وغورځوي. یوازې ځایي انټرفیس لوړول هغه کلاسیک نیم بدلون دی چې ټنل مات ښکاري او underlay په چوپتیا غورځوي.
ip link set dev eth1 mtu 9000 ip link show dev eth1 ping -M do -s 8972 -c 2 198.51.100.10
انټرفیس بدل کړئ، بیا مخکې له دې چې بل څه بدل کړئ هماغه لاره بیا وازموئ. که ازموینه لا هم ناکامه وي، په ip link set dev eth1 mtu 1500 بېرته یې راوګرځوئ او د هغې لینک په اړه چې ستاسو نه ده له عرضه کوونکي سره جنجال کولو پرځای فریګمینټیشن ته لاړ شئ.
کله چې underlay ونه شي غټېدلی، د ټنل فریګمینټیشن وکاروئ
د داخلي پاکټ لاندې ملاتړ شوی فریګمینټیشن میکانیزم څو بهرنیو پاکټونو ته اجازه ورکوي چې یو داخلي پاکټ ولېږدوي، او بل ټنل پای ټکی هغوی بیا یوځای کوي مخکې له دې چې اصلي پاکټ سټیک ته وسپاري. د Community OpenVPN د UDP fragment انتخاب د هغې مفکورې یو تطبیق دی، او د بهرني پاکټ د عادي IP فریګمینټیشن په څېر نه دی. دواړه peer باید هغه نسخه چلوي چې دا بڼه ملاتړ کوي، او د معلوماتو لاره باید هغه وي چې تاسو یې فکر کوئ: OpenVPN 3 کلاینټونه او د کرنل له خوا چټک شوي معلوماتي چینلونه بېلابېل حدود لري، نو هغه پروفایل چې په یو کلاینټ کار کوي ممکن په بل کې ناکام شي.
openvpn --config client.ovpn --tun-mtu 1500 --fragment 1400 --verb 4
عادي بهرنی فریګمینټیشن بل انتخاب دی، او هغه کمزوری دی. IPv6 روټرونه لېږدول شوی پاکټ هېڅ فریګمینټ نه کوي، نو ډېر لوی بهرنی پاکټ یوازې مري، او لېږونکی یې یوازې هغه وخت پوهېږي چې اړوند ICMPv6 پیغام په لاره کې ژوندی پاتې شي. فریګمینټونه فلټر کول او د زیان زیاتوالی هم رابولي، نو زه دا د پلان نه، بلکې د بدیلې لارې په توګه ګڼم.
د جریان پر بنسټ بهرنی وړونکی د اندازې پوښتنه په دې ترڅ کې پرېږدي چې خپل بایټ جریان برخې برخې کوي، او بیا جوړ شوی داخلي پاکټ لا هم 1,500 بایټ کېدای شي. دا د لېږد یوه پرېکړه ده چې خپله بیه لري، د TCP دننه د TCP پېژندل شوي چلند په ګډون، نو په قصد یې وکړئ نه د MTU د جنجال نیمګړې پایله.
تایید کړئ چې داخلي پاکټ بې بدلونه رسیږي
تصدیق یو بریالی handshake نه دی. په دواړو سرو کې د ټنل په انټرفیس کې ثبت کړئ او د هغه پاکټ اندازه او منځپانګه چې اپلیکیشن په رېښتیا ولېږله د هغه سره پرتله کړئ چې بل اړخ ترلاسه کړ.
ip link show dev tun0 ping -M do -s 1472 -c 2 10.8.0.1 tcpdump -ni tun0 -c 5 'icmp and greater 1000'
که ثبت په بل سر کې بشپړ اندازه داخلي پاکټ وښيي، نو د لېږد غوراوی کار کوي او پاتې کار یې ثبتول دي. که هېڅ ونه ښيي او ټنل ځان up ښيي، نو بهرنی پاکټ د پای ټکو ترمنځ چېرې غورځول کېږي، چې تاسو ته د سایفر ترتیباتو نه، بلکې ازموینې ته بېرته راګرځوي.
د ټکټ له بندولو مخکې درې شیان ولیکئ: اندازه شوې بهرنۍ بودیجه، غوره شوی میکانیزم، او هغه کمانډ چې ثابته کړه چې داخلي پاکټ ژوندی پاتې شو. بل کس چې دا ټنل لمس کړي درېواړه ته اړتیا لري، او هېڅ یو یې یوازې د ترتیباویې فایل څخه بیا جوړېدای نه شي.