DNS həll olunur, SSH sessiyası davam edir, sonra böyük yükləmə donur, halbuki eyni hosta ping hələ də cavab verir. Bu ayrılma qırılmış tunelə deyil, paket ölçüsünə işarə edir. İç-içə tunellər buna heç bir tunelin tək başına çatmayacağı ölçülərdə çatır. Daxili sessiya qaydasındadır; ona sadəcə artıq sığmayan paketlər verilir.

Yolun MTU dəyəri əslində hara gedir

Hər inkapsulyasiya növbəti qatın növbəsinə qədər bayt xərcləyir. Ethernet yolu xarici paketə 1500 bayt təklif edir və xarici tunel içindəki heç nə ünvanlana bilməzdən əvvəl öz payını götürür. Təxmin edilmiş bir yük ölçüsü tam da vacib olan qədər səhv olacaq.

Qatları sıra ilə sadalayın: giriş yolu, xarici nəqletmə, xarici tunel, daxili nəqletmə, daxili tunel, tətbiq. Hər başlığı bir dəfə sayın və UDP-ni tunelin öz başlığından və teqindən ayrı saxlayın.

İki WireGuard qatı, bir dəfə sayılır

Bir IPv4 giriş yolu götürün, içində başqa bir WireGuard tuneli olsun. Xarici qat 20 bayt IPv4, 8 bayt UDP və WireGuard data başlığı üçün 32 bayt üstəgəl autentifikasiya teqi xərcləyir. Bunun içində daxili tunel özünün 20 baytlıq IPv4 başlığına və 8 baytlıq UDP başlığına, sonra ikinci 32 baytlıq WireGuard yükünə ehtiyac duyur. Qalan hissə IPv4 başlığını, TCP başlığını və məlumatı tutur. Xarici IPv6 yolu 20 yerinə 40 xərcləyir və 1320 buraxır.

LayerBytes
Path MTU1500
Outer IPv4 header20
Outer UDP header8
Outer WireGuard header and tag32
Inner transport IPv4 header20
Inner UDP header8
Inner WireGuard header and tag32
Innermost IPv4 header20
TCP header20
Payload that fits1340

Hesab 1340 baytda bitir. Eyni qaydalarla bir qat TCP yükü üçün 1400 buraxır, yəni 1500 minus 20, 8, 32, 20 və 20, və 60 baytlıq fərq məhz ikinci tunelin əlavə etdiyi daxili inkapsulyasiyadır.

1400-ü iç-içə yola tətbiq edin və daxili tunel 60 bayt qısa qalır; bu, paket ona ehtiyac duyacaq qədər böyüyənə qədər görünməzdir. Doldurma və protokolun öz parçalanma seçimi rəqəmləri yenidən dəyişir, ona görə cədvələ güvənin.

MTU, MSS və parçalanma müxtəlif yerlərdə işləyir

Interfeys MTU interfeysin nə buraxacağını məhdudlaşdırır, TCP MSS sıxılması isə TCP həmsöhbətinin nə göndərməyə hazır olduğunu dəyişir. Sıxılma TCP sessiyalarını düzəldir və böyük UDP verdiqramı üçün heç nə etmir; düzəliş bir tətbiq üçün uğurlu görünüb növbətini səssizcə qaçırması elə belə olur. Protokolun öz parçalanma seçimi öz uğursuzluqları olan üçüncü qoldur. Interfeys MTU isə ən çox işlədilən ilk addım və ən kobud olandır.

Körpülənmiş və marşrutlaşdırılmış tunellər fərqli çərçivələr daşıyır, ona görə başqa yerləşdirmədən gələn rəqəmlər nadir hallarda keçərlidir. Yol MTU kəşfi, RFC 8201-də təsvir olunduğu kimi, yalnız ondan asılı olan ICMP mesajlarının keçməsinə icazə verildikcə kömək edir.

Qısa qalan qatı tapmaq

Tələblər müqayisəyə imkan verirsə, tunelləri iç-içə etməzdən əvvəl hər birini tək yoxlayın. Sabit ölçülü zond bunu həll edir: ping -M do -s 1472 -c 3 10.8.0.1 həmin qatın içində tam 1500 baytlıq IPv4 paketi göndərir. İkinci qatı əlavə edin və eyni zondunu təkrarlayın ki, hər hansı nasazlıq məlum dəyişikliyə aid olsun.

Köçürmə dayandıqda, sənədləşdirilmiş bir parametri bir dəfə dəyişin və uğursuz ölçünü qeyd edin. Qayıdış yolunu da yoxlayın, çünki iç-içə marşrut rekursiyası paket ölçüsü problemini bir günə başa gələcək qədər dəqiq təqlid edə bilər. Filtrlənmiş ICMP cavabı əsl həddi gizlədə bilər, ona görə zond əsaslandırmadan daha önəmlidir.

Büdcəni növbəti şəxsin tapacağı yerə yazın

Hər qat üçün bir sətirli cədvəl təcrübə qaydasından daha uzun yaşayır. Onu tunel diaqramının yanında saxlayın ki, heç kim təzyiq altında hesabı yenidən aparmasın.

Daha çox tunel daha çox asılılıq deməkdir, ona görə geri qaytarma planı büdcənin yanında yer qazanır. Rəqəmlər hələ də uyğun gəlmirsə, yenidən təxmin etmək yerinə yolu ölçün. Məqsəd yadda saxladığınız deyil, müdafiə edə bildiyiniz rəqəmdir.

Əlaqəli məqalələr