Autentifikasiyadan keçən, ping daşıyan və sonra ilk böyük ötürmədə donan tunel pozulmuş VPN-in deyil, itkin ICMP mesajının klassik əlamətidir. Göndərən heç vaxt paketin çox böyük olduğunu öyrənmir, eyni ölçünü təkrar cəhd edir və tətbiq gözləyir. Bunu düzəltmək firewall siyasəti qərarıdır, müştərinin yenidən quraşdırılması deyil. Sıra vacibdir: ölçü sərhədinin harada olduğunu ölçün, sonra hesabatı udan qaydanı daraldın.

ICMP bu yolda əslində nə daşıyır

IPv4 yol MTU aşkarlanması don't-fragment biti qoyulmuş paketin yönləndirilə bilmədiyini marşrutlaşdırıcının bildirməsinə əsaslanır. Bu bildiriş ICMP Fragmentation Needed mesajıdır və o olmadan göndərənin seqment ölçüsünü azaltmağa heç bir səbəbi yoxdur. IPv6 daha sərtdir: marşrutlaşdırıcılar tranzitdə fraqmentləşdirmir, ona görə göndərəni kiçilməyə məcbur edən yeganə siqnal ICMPv6 Packet Too Big mesajıdır.

Hər iki mesaj idarəetmə müstəvisinin geri bildirimidir və heç biri diaqnostik əks-səda deyil. Ping-i bloklayan siyasət və bütün ICMP-ni bloklayan siyasət qaydalar siyahısında oxşar görünür, şəbəkədə isə tamam fərqli davranır. İkincisi düzgün ölçülmüş tuneli zəncirdəki ən kiçik halqadan böyük olan hər şey üçün birtərəfli yola çevirə bilər.

Bəzi nəqlər öz aşkarlanmasını zond paketləri ilə həyata keçirir, RFC 4821-in təsvir etdiyi kimi, və onlar bu geri bildirimdən daha az asılıdır. Bu, hansı nəqli işlətdiyinizi yoxlamaq üçün arqumentdir, hər tunelin toxunulmaz olduğunu fərz etmək üçün deyil.

MesajYoldakı məqsədiBloklanarsa
ICMPv4 tip 3 kod 4Paket növbəti halqa üçün çox böyük idiGöndərən təkrar cəhd edir və donur
ICMPv6 tip 2Packet Too Big, IPv6 ekvivalentiEyni donma, fraqmentasiya ehtiyatı olmadan
ICMP tip 11Vaxt aşıldı, traceroute istifadə edirDiaqnostika hopları itirir, trafik axmağa davam edir
ICMP echo sorğusu və cavabıƏlçatanlıq testiPing uğursuz olur, yol yaxşı ola bilər

Uğursuzluq ölçüdən asılıdır

Uğursuzluğun paket ölçüsü ilə bağlı olub-olmadığını soruşun. Giriş səhifəsi, DNS sorğusu və qısa API çağırışı keçir, fayl yükləməsi, böyük cavab və ya şəkil endirməsi isə donur. Bu nümunə iki uc arasında bir yerdə ölçü həddinə işarə edir, autentifikasiya və ya marşrutlaşdırmaya deyil. Uğurlu kiçik ping həmin sərhədin harada olduğu barədə demək olar ki, heç nə demir.

Tunelin içində iki qat nəzərə alınmalıdır: faydalı yük paketi və xarici inkapsulyasiya edilmiş paket. Daxili göndərən düzgün davrana bilər, xarici yol isə tunelin fərz etdiyindən kiçik ola bilər; buna görə tunelin öz MTU ayarı və altındakı fiziki keçid hər ikisi vacibdir.

Qaydaları redaktə etməzdən əvvəl ölçün

don't-fragment biti və özünüz seçdiyiniz faydalı yük ölçüsü ilə zondlayın, nasaz müştəridən qorunan ünvana doğru:

ping -M do -s 1472 10.20.5.7
ping -M do -s 1300 10.20.5.7

1472 baytlıq faydalı yük üstəgəl 28 bayt başlıq 1500 baytlıq paketdir. Böyük zond fraqmentasiya xətası ilə uğursuz olub kiçiyi keçirsə, sərhədi tapmısınız; tunel əlavə yükü üçün düzəliş edin və işlək ölçü sabitləşənə qədər təkrarlayın.

Sonra boşluğun hesabatın özü olduğunu təsdiqləyin. Zond səssizcə uğursuz olursa, nə xəta nə cavab varsa, mesaj çatdırılmır, çox güman ki atılır və şübhəli qaydadır.

Qaydanı daraldın, sonra tapşırığı yenidən sınaqdan keçirin

Düzəliş bütün protokolu deyil, konkret idarəetmə mesajlarını icazə verməlidir. iptables hostunda forma tipə xas icazədir; sintaksisi platformanızda firewall-u idarə edənə uyğunlaşdırın:

iptables -I INPUT -p icmp --icmp-type fragmentation-needed -j ACCEPT
ip6tables -I INPUT -p icmpv6 --icmpv6-type packet-too-big -j ACCEPT

Əks-səda cavablarını yerli siyasət belədirsə bloklanmış saxlayın, çünki yolun ehtiyacı olan onlar deyil. Sonra ilk dəfə uğursuz olan ötürməni yeni bağlantıdan yenidən sınayın və qayda sayğaclarının mesajların gəldiyini göstərdiyini təsdiqləyin.

Mesajlara icazə verildikdən sonra böyük ötürmə hələ də donursa, qalan hədd başqa yerdədir: çox yüksək qurulmuş tunel MTU-su, paketləri yenidən yazan proxy və ya bildirmək əvəzinə atan ara qutu. ICMP qaydası zəruri idi, kafi deyildi.

Əlaqəli məqalələr