MSS clamping VPN atean: zer konpontzen duen eta zer ez
Clamping-ak MSS berridazten du TCP eskuhartzeetan, segmentuak tunelean sar daitezen. Ez du inoiz UDP edo path-MTU egiaztapen hautsia konpontzen. Hiru egiaztapen, hurrenez hurren.
Eskaera txikiek funtzionatzen dute, deskarga handiak blokeatu egiten dira, eta norbaitek MSS clamping proposatzen du. Proposamen hori askotan nahikoa zuzena da orden egokian probatzea merezi izateko, eta askotan nahikoa okerra arratsalde bat galtzeko itsu-itsuan aplikatzen baduzu. Beheko hiru egiaztapenek TCP tamaina arazo benetakoa UDP arazo batetik, path-MTU aurkikuntza hautsitik eta berridatzi beharko lukeen eskuhartzea inoiz ikusten ez duen clamp batetik bereizten dute.
Hasi hutsegitearen formarekin
Tamaina hutsegiteak sinadura bat du: konexioa ezartzen da, autentifikazioak eta erantzun txikiek arrakasta dute, eta gero transferentzia mugagabe gelditzen da tamaina osoko segmentua behar duenean. Testua kargatzen duten baina irudia inoiz amaitzen ez duten orriek hutsegite bera dira eskala txikiagoan. Ezer inola ere konektatzen ez bada, arazoa bidean lehenago dago eta clamping-ak ez du lagunduko. Clamp batek inoiz iritsi ez den eskuhartze bat ezin du konpondu.
Sinadura existitzen da eskuhartzea segmentu tamaina adosten den tokia delako. Alde bakoitzak segmentu tamaina maximoa iragartzen du TCP aukera gisa, eta bidaltzaileek parearen iragarkia errespetatzen dute. Bideak hain segmentu handia ezin badarama, hutsegitea geroago agertzen da, bidaltzaileak azkenean bat probatzen duenean.
Eduki garraioa begi-bistan sintoma hori irakurtzen duzun bitartean. Clamping TCP aukera baten berridazketa da, beraz tunel beraren azpian gelditzen den ahots edo bideo deia ez da MSS arazoa eta ez da hobetuko. Idatzi garraioa TCP aukera bat ukitu aurretik.
Preziatu bidea, eta gero alderatu tunelekin
Bi zenbaki garrantzitsuak dira eta askotan nahasten dira. path-MTU bideak zatiketarik gabe daraman pakete handiena da, eta IPv4-rako iragarritako MSS balio hori ken IP eta TCP goiburuen 40 byteak da, edo ken 60 IPv6-rako. Tunelaren kapsulatzeak aurrekontuaren zati bat jaten du barne paketea hasi baino lehen ere.
ping -M do -s 1400 198.51.100.20
tracepath 198.51.100.20
do-not-fragment biteko ping-ak esaten dizu karga tamaina horretako paketea bizirik ateratzen den; doitzen ezazu tamaina huts egiten duen arte eta bidearen muga enpirikoki aurkitu duzu. tracepath-ren irteerak ibilbidean zehar aurkitutako MTU-a jakinarazten du, hau azkarragoa da funtzionatzen duenean eta fidagarriagoa ez hop ertain batek zundak iragazten dituenean.
Orain kendu tunelaren gainkarga. Kanpo IP goiburua, UDP goiburua eta tunelari dagokion goiburua 1500 byte beretatik ateratzen dira, beraz Ethernet oinarri tipiko batean erabil daitekeen barne MTU-a esteka fisikoak iradokitzen duena baino baxuagoa da. Kalkulatutako barne MTU-a zure pareek iragartzen dutena baino baxuagoa bada, clamp hautagai benetakoa aurkitu duzu, ez susmo bat. Kalkulatutako balioa pareen iragarkia baino altuagoa bada jada, gelditu hemen eta begiratu beste nonbait.
Jarri clampa eskuhartzea pasatzen den tokian
Clamp-ak MSS aukera SYN eta SYN-ACK paketeetan berridatziz funtzionatzen du, atea zeharkatzen duten bitartean. Erregela bi norabideek inoiz zeharkatzen ez duen interfaze batean badago, negoziazioa aldaketarik gabe amaitzen da eta sintoma irauten du, horregatik kokapenak erabakitzen du emaitza balioak baino gehiago.
| Symptom | What it points to | Next check |
|---|---|---|
| Handshake completes, large transfer stalls | Segment size larger than the path can carry | Path MTU against the tunnel's effective MTU |
| Nothing connects, small or large | Routing, firewall or keying failure | Not MSS; look at the tunnel state |
| Only UDP applications stall | Datagram size or a dropped ICMP error | Platform-specific UDP handling, not clamping |
| Fixed after reconnect, returns later | Clamp applied to one direction or one interface | Rule placement and the handshake path |
Norabidea da beste erdia. Norabide bakarrean clamp egiteak fluxuen erdia konpontzen du eta gainerakoa noizbehikakoa dirudien moduan huts egiten uzten du, beraz aplikatu birbidalitako trafikoaren bi norabideetan. Tunel interfaze baterako Linux-en forma klasikoa SYN paketeei dagokien mangle erregela da:
iptables -t mangle -A FORWARD -o tun0 -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
Kontuan hartu --clamp-mss-to-pmtu-k benetan egiten duena: balioa ibilbidearen MTU-tik ateratzen du, eta hori ez da beti tunelaren karga aurrekontu erreala. Ibilbide aldetik oinarritutako tunelean, barne ibilbidea eta kanpo bidea desberdinak direnean, aurreko egiaztapenean kalkulatutako balio esplizitua automatikoa baino aurreikusgarriagoa da.
Egiaztatu konexio berri batekin eta mantendu feedback-a bizirik
Ezarritako konexioak negoziatu zuen MSS-a gordetzen du, beraz saio berean probatzeak ez du ezer frogatzen. Aldaketaren ondoren konexio berri bat ireki eta negoziatutako balioa zuzenean irakurri, kasualitatez amaitzen den transferentzia batetik ondorioztatu beharrean.
ss -tin dst 198.51.100.20
iptables -t mangle -S | grep TCPMSS
Lehen komandoak socket-aren MSS-a jakinarazten du kongestio egoerarekin batera, eta hori da clamp-ak eragin duela baieztatzeko modurik azkarrena. Bigarrenak uste duzun gehitu duzun erregela existitzen den erregela dela baieztatzen du, jarri zen taulan.
Gero babestu konpondu ez duzun mekanismoa. path-MTU aurkikuntzak ICMP fragmentation-needed mezuak bidaltzailearengana iristea behar du, beraz horiek botatzen dituen suebaki batek transferentzia handiak hausten jarraituko du clamp zuzena izanik ere. Baimendu mezu horiek tunelaren biderako, edo onartu clamping-ak aukeratu zenuen politika bat konpentsatzen duela.
Azkenik, aurk egin clamp-a doikuntza botoi gisa tratatzeko tentazioari. Segmentu tamaina mugatzen du, eta horrek throughput-a kostatzen du inoiz behar izan ez zuten bideetan. Hiru egiaztapenen ondoren aplikatuta konponketa zuzendua da; lehenengo aplikatuta jatorrizko hutsegitea ezkutatzen duen eta ondorengo proba bakoitzari bigarren aldagai bat gehitzen dion aldaketa da. Truke hori nahita egin behar da, ez lehenespenez.
Idatzi neurtutako path-MTU-a, kendutako tunel gainkarga, gehitutako erregela eta geroago ikusitako MSS-a. Lau zenbakik hurrengo gertaera bilaketa bihurtzen dute, ikerketa izan beharrean.