Bütün ICMP-ni bloklamaq işləyən VPN yolunu niyə pozur
Ölçü ilə bağlı geri bildirim mesajları ping cavabları deyil. Onlar heç vaxt gəlmədikdə kiçik paketlər keçir, böyüklər yox olur və tunel titrəyən kimi görünür.
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.
| Mesaj | Yoldakı məqsədi | Bloklanarsa |
|---|---|---|
| ICMPv4 tip 3 kod 4 | Paket növbəti halqa üçün çox böyük idi | Göndərən təkrar cəhd edir və donur |
| ICMPv6 tip 2 | Packet Too Big, IPv6 ekvivalenti | Eyni donma, fraqmentasiya ehtiyatı olmadan |
| ICMP tip 11 | Vaxt aşıldı, traceroute istifadə edir | Diaqnostika hopları itirir, trafik axmağa davam edir |
| ICMP echo sorğusu və cavabı | Əlçatanlıq testi | Ping 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.