Pingai pavyksta, dideli perkėlimai stringa, o tunelis praneša esąs sveikas. Vienas sumažina sąsajos MTU, kitas apriboja MSS, ir kartais problema dingsta dėl priežasčių, kurių niekas neužrašo. Du skaičiai apibūdina skirtingus objektus, todėl netinkamo pakeitimas duoda pataisą, kuri atrodo kaip sėkmė. Štai procedūra: nustatykite sluoksnį, pritaikykite atitinkamą derinimą ir tada bandykite nauju ryšiu.

Du skaičiai, du objektai

MTU priklauso jungčiai arba sąsajai: tai didžiausias paketas, kurį galima perduoti nesuskaidžius. MSS priklauso TCP: tai didžiausias TCP naudingosios apkrovos kiekis, kurį segmentas gali nešti, ir jis neapima nei TCP, nei IP antraščių. Įprastoje Ethernet jungtyje su IPv4 1500 baitų MTU duoda gerai žinomą 1460 baitų MSS. Šie skaičiai apibūdina skirtingus sluoksnius ir keičiami skirtingais mechanizmais. Juos supainioti lengva, nes abu matuojami baitais ir abu yra netoli 1500.

Vienas ateina kaip sąsajos nuostata. Kitas ateina kaip parinktis SYN segmente, suderinta tarp galų, kurie niekada nemato jūsų sąsajos.

Kur nusileidžia išorinis papildomas svoris

VPN įdeda vidinį paketą į kitą, o išorinis paketas turi tilpti į fizinį kelią. Inkapsuliavimo antraštės, išorinė IP antraštė, transporto antraštė ir bet kokia autentifikavimo žyma sunaudoja baitus, kurių vidinis paketas negali naudoti. Palikite tunelio sąsają ties 1500, ir išorinis paketas nuolat viršija tai, ką kelias gali pernešti. Kai nustatytas 'neskaidyti' bitas, maršrutizatorius jį numeta ir turėtų grąžinti ICMP klaidą; jei ta klaida filtruojama, siuntėjas apie tai niekada nesužino.

Todėl gedimas atrodo selektyvus. Mažos užklausos baigiamos, o viskas, kas užpildo segmentą, užstringa, nes atmetami tik dideli paketai. Tunelis, kuris praleidžia ping, nėra tunelis, kuris neša duomenis.

MSS apribojimas ir kur jis taikomas

MSS apribojimas perrašo SYN segmento reikšmę, kai jis kerta pasirinktą tašką, todėl abu galai pasirenka mažesnę apkrovą nesuprasdami kodėl. Linux tai yra mangle lentelės taikinys, taikomas aiškia taisykle, ir jis turi pataikyti į SYN paketus norima kryptimi. Apribokite jį tunelio sąsaja ir adresų diapazonu, nes plati taisyklė keičia srauto, kuris niekada nepatenka į tunelį, elgseną.

Poveikis tik TCP. UDP programa, QUIC sesija ir bet kuris protokolas, kuris kuria savo datagramas, lieka nepaliesti.

Diagnozuokite fiksuotu keliu

Laikykite vieną kintamąjį vienu metu. Bandykite su paketu, kurio dydį pasirenkate patys, ir nustatykite 'neskaidyti' vėliavėlę, kad branduolys praneštų rezultatą, o ne jį slėptų.

Užrašykite, kur prasideda gedimas: tunelio viduje, tunelio sąsajoje ar fiziniame kelyje po inkapsuliavimo. Tada pakeiskite vieną skaičių ir pakartokite tą patį bandymą, o ne kitą. Esami ryšiai išlaiko suderintą MSS, todėl politikos pakeitimas matomas tik naujame ryšyje, todėl talpykloje esantis puslapis nieko neįrodo nė viena kryptimi. Jei vienas didelis įkėlimas pradeda veikti, sužinojote apie tą kelią, o ne apie kiekvieną jame esantį protokolą.

Ko kiekvienas pakeitimas neištaiso

Sąsajos MTU sumažinimas nekeičia jau nustatytos sesijos MSS. MSS apribojimas nepadeda UDP srautui ir nesutvarko kelio, kuriame ICMP klaidos filtruojamos tik viena kryptimi. Kiekvienas pakeitimas ištaiso vieną problemų klasę, o likusias palieka lygiai tokias, kokios buvo.

Užrašykite, kokį derinimą kur pritaikėte ir kuris bandymas parodė skirtumą, kitaip kitas inžinierius pritaikys abu ir praras galimybę pasakyti, kuris buvo svarbus. Jei apribojimas tikras ir nuolatinis, pirmenybę teikite tunelio MTU, kuris jį atspindi, o ne apribojimui, kuris jį slepia. Jei turite apriboti, palikite taisyklę susiaurintą ir su komentaru, nes nepaaiškinta mangle taisyklė pagal nutylėjimą tampa nuolatinė.

Susiję straipsniai