Síða hleðst, lítill API-kall kemur aftur, og þá hangir skráarupphleðsla þangað til biðlarinn gefst upp. Ekkert í annál serversins skýrir það, því pakkarnir voru felldir niður á miðri slóðinni án þess að senda gagnlegt svar til baka. Þetta mynstur er MTU-svarthol: tenging þrengri en sendandinn gerir ráð fyrir, auk hljóðs synjunar á að segja það. Stærðin sem bregst er endurtakanleg, og það er það sem gerir hana greinanlega.

Hvað gerir holið svart

Hver tenging hefur hámarksflutningseiningu, og pakki sem er stærri en takmörk næsta hopps verður annaðhvort að vera sundurliðaður eða hafnað með ICMP-skilaboði sem segir það. Uppgötvun MTU-slóðarinnar fer eftir því að skilaboðin berist og að þau séu virt. Að sía þau eða hunsa skilur sendandann eftir að endurtaka pakka sem kemst aldrei fyrir.

Innheimtun gerir þetta algengt í kringum VPN, því göng bæta ytri haus við pakka sem var þegar stærðaður fyrir líkamlegu tenginguna. Innri pakkinn er löglegur við 1500 bæti og sá innheimtaði ekki, svo hann deyr á mörkum meðan litlir pakkar renna í gegn. Lokið handaband og vinnandi innskráningarsíða sanna aðeins að litlir pakkar virka. Stærsti pakkinn sem forritið reynir að senda er sá sem skiptir máli.

Finndu stærðina þar sem það brotnar

Leitið tvíundarlega að stærð farminnar með prófi án sundurliðunar, frá hýsli á annarri hlið ganganna að hýsli á hinni. Stærsta farmin sem fer í gegn er nothæft slóðar-MTU þitt að frádregnum yfirhaus haussins.

ping -M do -s 1400 -c 2 192.0.2.20
ping -M do -s 1200 -c 2 192.0.2.20
ping -f -l 1372 192.0.2.20

Farmur af 1472 bætum fer í gegn á hreinni 1500 bæta Ethernet-slóð þegar 28 bætum IPv4- og ICMP-hausanna er bætt við. Þegar sama próf gengur aðeins með minni farm eftir að göngin eru uppi, er munurinn yfirhaus innheimtunarinnar, og mörk ganganna eru þar sem synjunarboðið hefði átt að verða til. Skráið báðar tölurnar, fyrir og eftir tengingu, því það par er sönnunin. Endurtakið prófið fyrir IPv6 þegar forritið notar það, þar sem hausinn er stærri og bilanarþröskuldurinn færist.

Lestu sönnunargögnin áður en þú kennir göngunum um

Villur í fjartengdum forritum, þrengsli og venjulegt tap stöðva líka upphleðslur, svo ein misheppnuð flutningur auðkennir ekki svarthol. Það sem aðgreinir þau er stærðarsambandið: endurtakanleg velgengni við 1200 bæti og endurtakanleg stöðvun við 1400 bæti, í sömu átt, um sama endapunkt.

Upptaka á báðum endum sýnir stóru pakkana fara og aldrei koma, án synjunar á milli. Það er augnablikið til að líta á marktækið í stað serversins, sem svarar hverri beiðni sem það fær í raun. Þrengsli stöðvast líka, en þau stöðva mismunandi stærðir á mismunandi tímum, og það er önnur undirskrift.

Staðfestið viðgerðina á báðum flutningum

Studda viðgerðin er að leyfa mörkunum að tilkynna raunverulega takmörkin, eða þrengja þar hámarkshlutastærð TCP svo ekkert of stórt hlut sé reynt. Að lækka hvert MTU á netinu, eða slökkva á eldveggnum, felur einkennið og skilur eftir stillingar sem enginn getur rökrætt síðar.

ip link show dev tun0
sudo nft list ruleset | grep -i -E 'mtu|mss'
sysctl net.ipv4.tcp_mtu_probing
ping -M do -s 1400 -c 2 192.0.2.20

Sannreynið með sama stærðarprófi, svo með forritinu sem brást, og athugið annað samskiptareglur, því UDP-forrit fá aldrei hlutastærðarleiðréttingu TCP. Geymið upprunalegu gildin í miðanum, því viðgerð sem ekki er hægt að afturkalla er annað vandamál sem bíður þess að gerast. Ef stærðarprófið gengur og upphleðslan stöðvast samt, var svartholið ekki orsökin, og rannsóknin ætti að halda áfram í stað þess að víkka breytinguna.

Tengdir greinar