Linux-da marşrut üzrə MTU: üç ölçü idarəedicisi, bir marşrut
İnterfeys MTU, marşrut MTU və MSS məhdudlaşdırması müxtəlif qatlarda işləyir. Dəyişikliyi geri qaytarıla bilən saxlayaraq büdcəni axtarışda qalib gələn marşruta bağlayın.
Linux müştərisində üç parametr „paketləri kiçilt“ kimi səslənir və onlar müxtəlif qatlarda işləyir. İnterfeys MTU cihazın göndərdiyi hər paketi məhdudlaşdırır. Marşrut MTU həmin marşrutdan istifadə edən paketləri məhdudlaşdırır və bir VPN təyinatı üçün çox vaxt istədiyiniz elə budur. TCP MSS məhdudlaşdırması iki son nöqtənin razılaşdığını dəyişir və UDP üçün heç nə etmir.
Eyni düymə kimi görünən üç idarəedici
Seçim etməzdən əvvəl onları yan-yana qoyun, çünki səhv sətri seçmək işləməyən məsləhətlərin çoxunu izah edir:
| Control | Scope | What it cannot fix |
|---|---|---|
| Interface MTU | Every packet the device sends | Nothing, but it over-constrains unrelated traffic |
| Route MTU | Packets using that route | A send that the lookup never routes there |
| MSS clamp | TCP handshake on that path | UDP payload sizes and ICMP |
Ethernet MTU-nu bütün maşın üçün aşağı salmaq bu düzəlişin kobud variantıdır. İşləyir, həm də hostdakı hər digər tətbiqi cəzalandırır, o cümlədən yolları qaydasında olanları. Marşrut üzrə dəyər eyni niyyəti yan xərclər olmadan ifadə edir.
Müqayisə yalnız hostun yaratdığı trafik üçün keçərlidir. Başqa müştəri üçün paketin ötürülməsi həmin müştərinin öz yolunu və tunelin xarici büdcəsini əhatə edir və bu hostdakı marşrut metrikası o sərhədi aşmır.
Büdcəni axtarışda qalib gələn marşruta bağlayın
Nümunəvi IPv4 marşrut qeydi belə görünür:
ip -4 route get 10.60.0.20
ip -4 route add 10.60.0.0/16 dev tun-office src 10.90.0.2 mtu 1380
Qeydi yapışdırılacaq dəyər kimi deyil, niyyətin təsviri kimi oxuyun. Prefiks, cihaz və üstünlük verilən mənbə real konfiqurasiyaya uyğun olmalıdır və rəqəm blog yazısından deyil, inkapsullaşdırılmış yol haqqında sübutlardan gəlməlidir. Marşrut MTU daxili IP paketini məhdudlaşdırır, bu isə 1380 baytlıq TCP yükü və ya 1380 baytlıq şifrələnmiş xarici paket demək deyil.
Bir şey əlavə etməzdən əvvəl axtarışın həqiqətən harada həll olunduğuna baxın. Siyasət qaydaları olan host verilmiş təyinatı main cədvəlindən başqa cədvəldən keçirə bilər, və yalnız main cədvəlində olan metrika həmin sorğu üçün görünməzdir. ip -4 route show table all ilə ip route get cavabını müqayisə edin, qaydalar istifadə etdikdə mark və ya ad məkanı kontekstini daxil etməklə. İkisi uyğun gəlmirsə, cavab verən cədvəl metrikaya ehtiyacı olan cədvəldir, daha səliqəli görünən deyil.
mtu, mtu lock deyil
Susmaya görə nüvə yol MTU-nu ICMP əks-əlaqəsindən yenə də yeniləyə bilər, yol MTU aşkarlanması bunun üçündür. lock əlavə etmək bunu dayandırır. Bu fərqli qərardır, eyni rəqəmi saxlamağın daha güclü yolu deyil və IPv4 üçün „parçalama“ bitinin sənədləşdirilmiş emalını dəyişir.
Kilidləmə yolu ölçdüyünüz və nə gəlirsə gəlsin dəyərin yerində qalmasını istədiyiniz zaman məqbuldur. Şəbəkə qanuni ölçü əks-əlaqəsi göndərdikdə bu pis susmaya görə seçimdir, çünki nüvə artıq tənzimləyə bilmir və nasazlıq başqa simptoma keçir.
ICMP yolun hər hansı yerində süzülürsə, heç bir marşrut parametri bunu düzəltmir. Düzəliş süzgəcin yeridir və daha kiçik MTU növbəti dəfə yol dəyişənə qədər həqiqi nasazlığı gizlədən müvəqqəti həlldir.
Tunel proqramı öz ölçü düymələrini əlavə edir
OpenVPN- mssfix parametri sənədləşdirilmiş UDP tunel halı üçün TCP seqment ölçüsünü tənzimləyir. O, TCP söhbəti üzərində işləyir, ona görə əməliyyat sisteminin marşrut MTU-sunun başqa yazılışı deyil və razılaşmanı nəzərə almayan UDP xidmətinə kömək edə bilməz.
Bir dəyişiklik pəncərəsində marşrut MTU-nu, interfeys MTU dəyişikliyini və MSS məhdudlaşdırmasını üst-üstə yığmayın. Problem yox olarsa, hansının vacib olduğunu bilməyəcəksiniz və saxladıqlarınız heç kimin xatırlamadığı bir səbəbdən illərlə trafiki məhdudlaşdıracaq.
Onu geri qaytarıla bilən et, sonra sübut et
Marşrutun həqiqi sahibi dəyişikliyin yenidən qoşulmadan sonra qalıb-qalmadığını həll edir. Marşrutu dinamik quraşdıran VPN müştərisi onu adətən metrikanız olmadan yenidən quracaq və əl ilə ip route add əmri bir gün sonra uğursuz olan düzəliş kimi görünəcək. Dəyəri menecerin konfiqurasiyasına qoyun və müvəqqəti sınaq lazımdırsa əvvəlcə orijinal marşrutu qeyd edin.
Tıxanan əməliyyatı yerinə yetirən yeni bağlantı ilə sınayın, sonra nəzərdə tutulan şəxsi marşrutun hələ də qalib gəldiyini və əlaqəsiz təyinatların dəyişmədiyini təsdiqləyin. Tuneli yenidən qoşun və marşrutu yenidən oxuyun, çünki yenidən qoşulmada yox olan dəyər düzəliş deyil.
Sübutlar dəyişikliyi dəstəkləmirsə, ləğvi onun meneceri vasitəsilə çıxarın və marşrutu silmək əvəzinə orijinal marşrut atributlarını bərpa edin. Sonra nəyi, hansı yolda ölçdüyünüzü qeyd edin ki, növbəti şəxs həqiqi yaxşılaşmanı işlək qalmış sınaqdan ayıra bilsin.