Səhifə açılır, kiçik bir API çağırışı qayıdır, sonra fayl yükləməsi müştəri təslim olana qədər asılı qalır. Server jurnalında bunu izah edən heç nə yoxdur, çünki paketlər yolun ortasında, faydalı cavab göndərilmədən atılıb. Bu nümunə MTU qara dəliyidir: göndərənin güman etdiyindən dar bir keçid, üstəlik bunu deməkdən səssiz imtina. Uğursuz olan ölçü təkrarlanandır və onu diaqnoz edilə bilən edən də elə budur.

Dəliyi qara edən nədir

Hər keçidin maksimal ötürmə vahidi var və növbəti atlamanın həddindən böyük paket ya parçalanmalı, ya da bunu bildirən ICMP mesajı ilə rədd edilməlidir. Marşrut MTU kəşfi həmin mesajın gəlib gözlənilməsindən asılıdır. Onu süzmək və ya görməməzlikdən gəlmək göndərəni heç vaxt sığmayan paketi təkrar göndərməyə qoyur.

Enkapsulyasiya bunu VPN ətrafında adi hala gətirir, çünki tunel artıq fiziki keçid üçün ölçülən paketə xarici başlıq əlavə edir. Daxili paket 1500 baytda qanunidir, enkapsulyasiya olunmuş paket isə deyil, buna görə sərhəddə ölür, kiçik paketlər isə keçib gedir. Tamamlanmış əl sıxma və işləyən giriş səhifəsi yalnız kiçik paketlərin işlədiyini sübut edir. Tətbiqin göndərməyə çalışdığı ən böyük paket əhəmiyyətlidir.

Pozulduğu ölçünü tapın

Fraqlama qadağası testi ilə faydalı yükün ölçüsünü ikili axtarışla tapın, tunelin bir tərəfindəki hostdan digər tərəfindəki hosta. Uğur qazanan ən böyük faydalı yük istifadə edilə bilən marşrut MTU-nuzdan başlıq yükünün çıxılmasıdır.

ping -M do -s 1400 -c 2 192.0.2.20
ping -M do -s 1200 -c 2 192.0.2.20
ping -f -l 1372 192.0.2.20

1472 baytlıq faydalı yük təmiz 1500 baytlıq Ethernet yolunda IPv4 və ICMP başlıqlarının 28 baytı əlavə edildikdən sonra uğur qazanır. Eyni test tunel qurulandan sonra yalnız daha kiçik faydalı yükdə uğur qazanırsa, fərq enkapsulyasiya yüküdür və rədd mesajının yaradılmalı olduğu yer tunel sərhəddidir. Hər iki rəqəmi, qoşulmadan əvvəl və sonra qeyd edin, çünki bu cüt sübutdur. Tətbiq ondan istifadə edəndə testi IPv6 üçün təkrarlayın, çünki başlıq daha böyükdür və uğursuzluq həddi dəyişir.

Tuneli günahlandırmadan əvvəl sübutları oxuyun

Uzaq tətbiq xətaları, tıxac və adi itki də yükləmələri dayandırır, buna görə bir uğursuz ötürmə qara dəliyi müəyyən etmir. Onları ayıran ölçü əlaqəsidir: 1200 baytda təkrarlanan uğur və 1400 baytda təkrarlanan dayanma, eyni istiqamətdə, eyni son nöqtədən.

Hər iki tərəfdə çəkiliş böyük paketlərin çıxdığını və heç vaxt gəlmədiyini, arada heç bir rədd olmadığını göstərir. Bu, hər aldığı sorğuya cavab verən serverə deyil, sərhəd cihazına baxmaq məqamıdır. Tıxac da dayandırır, lakin müxtəlif vaxtlarda müxtəlif ölçüləri dayandırır, bu isə başqa imzadır.

Təmiri hər iki nəqliyyatda yoxlayın

Dəstəklənən təmir sərhədin həqiqi həddi bildirməsinə icazə vermək və ya heç bir böyük seqment cəhd edilməsin deyə TCP-nin maksimal seqment ölçüsünü orada sıxmaqdır. Şəbəkədə hər MTU-nu aşağı salmaq və ya firewall-u söndürmək simptomu gizlədir və sonradan heç kimin mühakimə edə bilməyəcəyi konfiqurasiya qoyur.

ip link show dev tun0
sudo nft list ruleset | grep -i -E 'mtu|mss'
sysctl net.ipv4.tcp_mtu_probing
ping -M do -s 1400 -c 2 192.0.2.20

Eyni ölçü testi ilə, sonra uğursuz olan tətbiqlə yoxlayın və ikinci protokolu yoxlayın, çünki UDP tətbiqləri TCP-nin seqment ölçüsü düzəlişini heç vaxt almır. Orijinal dəyərləri biletdə saxlayın, çünki geri qaytarıla bilməyən təmir baş verəcək ikinci problemdir. Ölçü testi keçirsə və yükləmə hələ də dayanırsa, qara dəlik səbəb deyildi və araşdırma dəyişikliyi genişləndirmək əvəzinə davam etməlidir.

Əlaqəli məqalələr