Mae twnnel yn cwblhau ei ysgwyd llaw, daw ceisiadau bach yn ôl, ac mae'r trosglwyddiad mawr cyntaf yn sticio. Mae'r patrwm hwnnw'n pwyntio at MTU llwybr ymhell cyn iddo bwyntio at drwmpas. Mae pob dolen ar hyd y llwybr yn cyfyngu maint y pecyn, ac mae ymwadded yn treulio rhan o'r lwfans hwnnw ar benawdau allanol, felly rhaid i'r pecyn mewnol fod yn llai nag y byddai'r llwybr crai'n awgrymu. Mae'r methiant yn ddistaw, a dyna sy'n ei wneud yn ddrud i'w ddiagnosio.

Beth mae MTU llwybr yn ei fesur mewn gwirionedd

MTU llwybr yw'r MTU dolen lleiaf ar y llwybr rhwng dau letywr, nid yr MTU a argraffwyd ar eich rhyngwyneb lleol. Y gwerth lleol yw man cychwyn yr amcangyfrif, a'r llwybr sy'n penderfynu lle rhaid iddo orffen. Dyma pam y gall yr un twnnel weithio ar un rhwydwaith mynediad a sticio ar un arall: newidiodd y llwybr, nid y ffurfweddiad. Mesur unwaith a chymryd yn ganiataol ym mhob man yw'r camgymeriad sy'n cadw'r broblem hon yn fyw.

Ar gyfer twnnel, y nifer sy'n cyfrif yw'r MTU mewnol, sef lwfans y llwybr allanol heb y cyfan y mae'r ymwadded yn ei dreulio. Mae WireGuard yn ychwanegu pennawd IP allanol a phennawd UDP; mae cludwyr eraill yn ychwanegu eu rhai eu hunain. Gosodwch y maint mewnol yn rhy uchel ac mae pob pecyn maint llawn angen darnio na fydd efallai byth yn digwydd.

Pam mae twnnel yn lleihau'r pecyn defnyddiadwy

Os yw rhyngwyneb y twnnel yn cadw MTU'r ddolen ffisegol, mae pob pecyn mawr yn dibynnu ar rywun i lawr yr afon fod yn fodlon ei ddarnio. Mae IPv4 yn caniatáu hynny mewn egwyddor, ond mae llwybrydd y dywedwyd wrtho i beidio â darnio yn dychwelyd gwall yn lle hynny. Nid yw llwybryddion IPv6 byth yn darnio wrth drafod, felly mae'r un gosodiad yn ymddwyn yn wahanol yn ôl y teulu cyfeiriadau. Naill ffordd na'r llall, nid yw'r anfonwr yn dysgu dim nes bod rhywbeth yn adrodd yn ôl.

Y canlyniad ymarferol yw maint sy'n ffitio'r ysgwyd llaw ac nad yw'n ffitio'r llwyth. Mae TLS ClientHello neu ymholiad DNS yn ddigon bach i groesi llwybr wedi'i leihau heb ei gyffwrdd, tra nad yw trosglwyddiad swmp felly. Felly mae'r symptomau'n clystyru o amgylch gweithrediadau penodol yn hytrach na lletywyr penodol.

Dim ond pan ddaw'r adborth mae darganfod yn gweithio

Mae darganfod IPv4 yn dibynnu ar y did gwahardd darnio: mae llwybrydd na all anfon y pecyn ymlaen yn dychwelyd ICMP fragmentation-needed gydag MTU'r naid nesaf, ac mae'r anfonwr yn gostwng ei amcangyfrif. Mae IPv6 yn defnyddio negeseuon Packet Too Big yn lle hynny, oherwydd nad yw llwybryddion yn darnio wrth drafod. Mae'r ddau fecanwaith yn tybio bod y neges yn dod o hyd i'w ffordd yn ôl at yr anfonwr, drwy'r twnnel ac heibio unrhyw wal dân ar y llwybr dychwelyd. Pan fydd y dybiaeth honno'n methu, mae'r anfonwr yn dal i ailgeisio maint na all y llwybr ei gario.

Nid yw wal dân sy'n caniatáu echo request ac echo reply o reidrwydd wedi caniatáu'r mathau hynny o wall. Mae ICMP yn deulu, a 'r aelodau sy'n bwysig yma yw'r gwallau, nid y pâr echo. Gwiriwch y polisi traffig rheoli ar ddau ben y twnnel ac ar y llwybr rhyngddynt, a dilynwch y canllawiau a gefnogir ar y platfform yn lle caniatáu pob math ICMP ym mhob man.

Gall yr un hidlo fod y tu mewn i'r twnnel. Os yw'r llwybr mewnol yn gollwng y gwall ond mae'r llwybr allanol yn ei gario, gall yr anfonwr addasu i derfyn nad yw'r traffig ymwaddedig byth yn ei weld mewn gwirionedd.

Profwch y llwybr yn lle dyfalu rhif

Cadwch y gyrchfan, y rhwydwaith mynediad a'r twnnel yn sefydlog, yna newidiwch y maint pecyn yn unig. Mae gwiriad gwahardd darnio sy'n methu ag awgrym MTU yn rhoi terfyn y naid nesaf i chi; ailadroddwch nes bod maint yn pasio, a chofnodwch y maint a'r teulu cyfeiriadau.

ping -M do -s 1400 10.60.20.10
ping -M do -s 1300 10.60.20.10
ping -6 -M do -s 1300 2001:db8::10

Nid yw ping sy'n ffitio'n profi bod segmentau maint llawn rhaglen go iawn yn ffitio, felly ailadroddwch y prawf gyda'r trosglwyddiad a fethodd mewn gwirionedd. Cymharwch y gwiriad mwyaf sy'n gweithio â'r MTU twnnel a ffurfweddwyd gennych, a chadwch y ddau rif ar wahân yn eich nodiadau. Os ydynt yn gwahaniaethu oddeutu gwerth un pennawd, rydych wedi darganfod y gorbenion ymwadded, nid nam.

Mae PLPMTUD, a ddisgrifir yn RFC 4821, yn profi tuag i fyny ac yn defnyddio cydnabyddiaethau cludo yn lle ymddiried yng ngwallau a draddodwyd. Mae'n helpu ar lwybrau sy'n hidlo ICMP, ond mae cymorth yn amrywio yn ôl y stac a'r rhaglen. Gall ffrwd TCP wella ar ei phen ei hun tra bod rhaglen UDP â maint datagram sefydlog yn parhau i fethu.

Dewiswch werth a chofnodwch y rhesymeg

Mae gostwng MTU y twnnel yn ddiagnostig ac yn atgyweiriad dilys unwaith y gwyddoch y llwybr. Nid yw'n disodli gwybod pa lwybr a pha fecanwaith adborth a oedd yn gysylltiedig, oherwydd bydd gwerth a diwniwyd ar gyfer dolen symudol yn rhy fach yn ddiangen ar gysylltiad ffibr. Cofnodwch y maint a ddewiswyd, y gwiriad a'i cyfiawnhaodd a'r cam dad-twymu.

Disgrifir y mecanwaith IPv4 yn RFC 1191 a'r canllawiau pecynnu IPv6 yn RFC 8201; mae enwi'r ddau yn cadw'r peiriannydd nesaf rhag ailddeillio'r dybiaeth. Os yw'r trosglwyddiad yn dal i sticio ar y maint a ddewisoch, stopiwch ostwng y rhif a golowch ar y haen nesaf. Nid yw llwybr sy'n methu ar bob maint yn broblem MTU.

Erthyglau cysylltiedig