Clampio MSS ar borth VPN: beth mae'n ei drwsio a beth nad yw
Mae clampio yn ailysgrifennu'r MSS mewn ysgwyd llaw TCP fel bod segmentau'n ffitio'r twnnel. Ni thrwsia UDP na gwiriad path-MTU wedi torri. Tri gwiriad, yn eu trefn.
Mae ceisiadau bach yn gweithio, mae lawrlwythiadau mawr yn hongian, ac mae rhywun yn awgrymu clampio MSS. Mae'r awgrym hwnnw'n gywir yn ddigon aml i fod yn werth ei roi ar brawf yn y drefn gywir, ac yn anghywir yn ddigon aml i wastraffu prynhawn os ydych chi'n ei gymhwyso'n ddall. Mae'r tri gwiriad isod yn gwahanu problem maint TCP wirioneddol oddi wrth broblem UDP, oddi wrth ddarganfyddiad path-MTU wedi torri, ac oddi wrth glamp sy'n byth yn gweld yr ysgwyd llaw y mae i fod i'w hailysgrifennu.
Dechreuwch gyda siâp y methiant
Mae gan fethiant maint lofnod: mae'r cysylltiad yn sefydlu, mae dilysu ac ymatebion bach yn llwyddo, ac yna mae trosglwyddiad yn stopio'n amhenodol unwaith y bydd angen segment maint llawn. Mae tudalennau sy'n llwytho testun ond byth yn gorffen delwedd yr un methiant ar raddfa lai. Os nad oes dim yn cysylltu o gwbl, mae'r broblem yn gynharach ar y llwybr ac ni fydd clampio'n helpu. Ni all clamp drwsio ysgwyd llaw na chyrhaeddodd erioed.
Mae'r llofnod yn bodoli oherwydd mai'r ysgwyd llaw yw lle y cytunir ar faint y segment. Mae pob ochr yn hysbysebu maint segment uchaf fel opsiwn TCP, ac mae anfonwyr yn parchu hysbyseb y cymar. Os na all y llwybr gario segment mor fawr, mae'r methiant yn ymddangos yn ddiweddarach, pan fydd yr anfonwr yn ceisio un o'r diwedd.
Cadwch y cludiant mewn golwg wrth ddarllen y symptom hwnnw. Ailysgrifennu opsiwn TCP yw clampio, felly nid yw galwad llais neu fideo sy'n stopio o dan yr un twnnel yn broblem MSS ac ni fydd clampio'n ei gwella. Nodwch y cludiant cyn i chi gyffwrdd ag opsiwn TCP.
Prisiwch y llwybr, yna cymharwch â'r twnnel
Mae dau rif yn bwysig ac yn aml yn cael eu cymysgu. path-MTU yw'r pecyn mwyaf y bydd y llwybr yn ei gario heb ddarnio, a'r MSS hysbysebiedig ar gyfer IPv4 yw'r gwerth hwnnw heb y 40 beit o benawdau IP a TCP, neu heb 60 ar gyfer IPv6. Mae encapswleiddio twnnel yn bwyta rhan o'r gyllideb cyn i'r pecyn mewnol hyd yn oed ddechrau.
ping -M do -s 1400 198.51.100.20
tracepath 198.51.100.20
Mae'r ping gyda'r bit do-not-fragment yn dweud wrthych a yw pecyn o'r maint llwyth hwnnw'n goroesi; addaswch y maint nes iddo fethu ac rydych wedi dod o hyd i derfyn y llwybr yn empirig. Mae allbwn tracepath yn adrodd yr MTU a ddarganfuwyd ar hyd y llwybr, sy'n gyflymach pan fydd yn gweithio ac yn llai dibynadwy pan fydd naid ganolradd yn hidlo'r profion.
Nawr tynnwch ordal y twnnel. Mae pennawd IP allanol, pennawd UDP a phennawd sy'n benodol i'r twnnel i gyd yn dod o'r un 1500 beit, felly mae'r MTU mewnol defnyddiadwy ar islae Ethernet nodweddiadol yn is nag y mae'r ddolen ffisegol yn ei awgrymu. Os yw'r MTU mewnol a gyfrifwyd yn is na'r hyn y mae eich cymheiriaid yn ei hysbysebu, rydych wedi dod o hyd i ymgeisydd clamp go iawn yn hytrach na dyfaliad. Os yw'r gwerth a gyfrifwyd eisoes yn uwch na'r hysbyseb, stopiwch yma ac edrychwch yn rhywle arall.
Gosodwch y clamp lle mae'r ysgwyd llaw yn pasio
Mae clamp yn gweithio drwy ailysgrifennu'r opsiwn MSS ym mhecynnau SYN a SYN-ACK wrth iddynt groesi'r borth. Os yw'r rheol yn eistedd ar ryngwyneb nad yw'r naill gyfeiriad na'r llall byth yn ei groesi, mae'r trafodaeth yn cwblhau'n ddigyfnewid ac mae'r symptom yn parhau, a dyna pam mae lleoliad yn penderfynu'r canlyniad yn fwy na'r gwerth.
| 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 |
Cyfeiriad yw'r hanner arall. Mae clampio un cyfeiriad yn trwsio hanner y llifoedd ac yn gadael y gweddill yn methu mewn ffordd sy'n edrych yn ysbeidiol, felly cymhwyswch ef i'r ddau gyfeiriad o'r traffig a anfonir ymlaen. Y ffurf glasurol yn Linux ar gyfer rhyngwyneb twnnel yw rheol mangle sy'n cyfateb i becynnau SYN:
iptables -t mangle -A FORWARD -o tun0 -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
Sylwch beth mae --clamp-mss-to-pmtu yn ei wneud mewn gwirionedd: mae'n deillio'r gwerth o MTU'r llwybr, nad yw bob amser yn gyllideb llwyth go iawn y twnnel. Ar dwnnel sy'n seiliedig ar lwybr lle mae'r llwybr mewnol a'r llwybr allanol yn wahanol, mae gwerth penodol a gyfrifwyd yn y gwiriad blaenorol yn fwy rhagweladwy nag un awtomatig.
Gwiriwch gyda chysylltiad newydd, a chadwch yr adborth yn fyw
Mae cysylltiad sefydledig yn cadw'r MSS y cytunodd arno, felly nid yw profi ar yr un sesiwn yn profi dim. Agorwch gysylltiad newydd ar ôl y newid a darllenwch y gwerth a gytunwyd yn uniongyrchol yn lle ei gasglu o drosglwyddiad sy'n digwydd gorffen.
ss -tin dst 198.51.100.20
iptables -t mangle -S | grep TCPMSS
Mae'r gorchymyn cyntaf yn adrodd MSS y soced ynghyd â'i gyflwr tagfeydd, sef y cadarnhad cyflymaf bod y clamp wedi gweithio. Mae'r ail yn cadarnhau mai'r rheol rydych chi'n meddwl i chi ei hychwanegu yw'r rheol sy'n bodoli, yn y tabl lle cafodd ei gosod.
Yna diogelwch y mecanwaith na wnaethoch ei drwsio. Mae darganfod path-MTU yn dibynnu ar i negeseuon ICMP fragmentation-needed gyrraedd yr anfonwr, felly bydd mur tan a'u gollwng yn parhau i dorri trosglwyddiadau mawr hyd yn oed gyda clamp cywir yn ei le. Caniatewch y negeseuon hynny ar gyfer llwybr y twnnel, neu derbyniwch fod clampio'n iawndal am bolisi a ddewiswyd gennych.
Yn olaf, gwrthwynebwch y demtasiwn i drin y clamp fel bwlyn tiwnio. Mae'n cyfyngu maint y segment, sy'n costio trwybwn ar lwybrau na fuont erioed ei angen. Wedi'i gymhwyso ar ôl y tri gwiriad mae'n atgyweiriad wedi'i dargedu; wedi'i gymhwyso gyntaf mae'n newid sy'n cuddio'r methiant gwreiddiol ac yn ychwanegu ail newidyn at bob prawf diweddarach. Mae'r fargen honno'n werth ei gwneud yn fwriadol, nid yn ddiofyn.
Nodwch y path-MTU a fesuroch, ordal y twnnel a dynnwyd gennych, y rheol a ychwanegoch a'r MSS a welsoch wedyn. Mae pedwar rhif yn gwneud y digwyddiad nesaf yn chwiliad yn lle ymchwiliad.