Ping veikia, SSH veikia, mažas puslapis įkeliamas, o paskui kiekvienas didelis atsakymas užstringa, kol baigiasi laikas. Klasikinis modelis rodo į paketo dydį, o ne į pasiekiamumą: kelias neša rankos paspaudimą ir pirmuosius kelis kilobaitus, tada viso dydžio segmentas dingsta. Linux IPsec šliuze TCP MSS taisyklė dažnai yra sprendimas, bet tik jei suprantate, ką ji keičia ir kur iš tikrųjų yra paketas, kurį ji paliečia. Žemiau pateikta tvarka seka paketą nuo simptomo iki taisyklės vietos, todėl galite sustoti, kai tik paaiškinimas nustoja tikti.

Simptomas, kuris rodo į MSS

TCP rankos paspaudimo metu derasi dėl didžiausio segmento dydžio. Jei ši reikšmė didesnė nei tai, ką kelias gali pernešti po inkapsuliavimo, siuntėjas toliau kuria segmentus, kurie niekada neatvyksta, ir ryšys užstringa po pirmojo rato. Maži atsakymai telpa; dideli ne.

ICMP grįžtamasis ryšys gali išgelbėti ryšį per kelio MTU aptikimą, o ugniasienė, kuri išmeta tuos pranešimus, paverčia strigimą tylia juoda skyle. Todėl tas pats tunelis veikia vienai programai ir nepavyksta kitai be jokio akivaizdaus konfigūracijos skirtumo.

Ką TCPMSS taisyklė daro, o ko ne

Taisyklė perrašo MSS parinktį TCP rankos paspaudimo paketuose jiems praeinant. Ji nenustato tunelio sąsajos MTU, nekeičia IPsec politikos, o dabartinėse branduoliuose tik sumažina paskelbtą reikšmę, o ne padidina jau mažesnę. Ji taip pat paliečia tik TCP; UDP naudingosios apkrovos, DNS elgsena ir suderinti srauto selektoriai yra už jos ribų.

Kadangi pakeitimas įvyksta rankos paspaudimo metu, esamas ryšys, užmegztas prieš taisyklę, išlaiko savo seną reikšmę. Išbandykite su nauju ryšiu ir tikėkitės, kad pirmasis bandymas po pakeitimo bus tas, kuris jums ką nors pasakys. Niekas taisyklėje nepasiekia jau atviro ryšio. Todėl pataisa, pritaikyta incidento viduryje, gali atrodyti taip, tarsi ji nieko nepadarė.

Įdėkite taisyklę į vidinį TCP kelią

Politika pagrįstame Linux šliuze persiunčiamas paketas ugniasienei vis dar atrodo kaip įprastas TCP. IPsec politika nusprendžia, kad paketas bus apsaugotas; ugniasienė nemato ESP antraštės vidiniam srautui, todėl sutapatinimas su ESP čia apibūdina visiškai kitą paketą. Būtent šis neatitikimas yra priežastis, kodėl kai kurios taisyklės atrodo teisingos ir niekada nesutampa.

iptables terminais taisyklė priklauso persiuntimo kelio mangle lentelei, apribota rankos paspaudimo paketams: iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1270. Skaičius yra pavyzdys, o ne universali konstanta; išveskite jį iš inkapsuliavimo sąnaudų ir tikrojo kelio MTU. nftables atitikmuo nustato didžiausią segmento dydį forward arba postrouting grandinėje.

Laikykite išorines IKE ir ESP klausymosi taisykles atskirai nuo vidinių persiuntimo taisyklių. Viena taisyklė, kuri bando leisti ir programos srautą, ir išorinį protokolą, galiausiai patikimai nesutampa su nė vienu.

Gerbkite ugniasienės savininką ir NAT tvarką

Jei UFW valdo pagrindinio kompiuterio ugniasienę, pridėkite mangle ir persiuntimo pakeitimus per jo palaikomą nuolatinę konfigūraciją, o ne įvesdami komandą, kuri išnyks kitą kartą įkeliant. Taisyklė, įterpta į netinkamą lentelę arba po galutinės taisyklės, neturi jokio poveikio, o veikianti lentelė tai nuo jūsų paslepia.

Šaltinio vertimas yra atskiras sprendimas, kuris dažnai sąveikauja su šiuo. Išimtis, įdėta prieš bendrą masquerade taisyklę, neleidžia apsaugotam srautui prarasti šaltinio, kurio reikalauja jo politika; ji netaiso dydžio problemos, o dydžio taisyklė netaiso vertimo problemos.

Patikrinkite siaurai ir tada sustokite

Atidarykite naują ryšį su nepavykstančia paslauga ir stebėkite ir programą, ir taisyklės skaitiklius. Jei strigimas išnyksta, turite įrodymų apie tą TCP kelią su tuo inkapsuliavimu. Neturite įrodymų, kad tinka kiekvienas VPN protokolas, kad pataisyta kiekviena UDP programa arba kad konkreti aukštesnė paslauga buvo pradinė priežastis.

Leiskite ICMP dydžio grįžtamajam ryšiui veikti ten, kur politika leidžia, ir atsargiai vertinkite automatinį ribojimą pagal maršruto MTU, kai išorinis IPsec kelias nėra atstovaujamas vidinio maršruto. Kuo siauresnė išvada, tuo lengviau diagnozuoti kitą incidentą.

Susiję straipsniai