Hvers vegna blokkun alls ICMP brýtur virka VPN-leið
Stærðar-endurgjafaskilaboð eru ekki ping-svör. Þegar þau berast aldrei ganga litlir pakkar, stórir hverfa og tunnillinn virðist titra.
Tunnill sem auðkennir sig, flytur ping og stöðvast svo á fyrstu stóru sendingunni er klassískt merki um skilaboð ICMP sem vantar, ekki bilað VPN. Sendandinn kemst aldrei að því að pakkinn var of stór, endurtekur sömu stærð og forritið bíður. Að laga þetta er ákvörðun um reglur eldveggjar, ekki enduruppsetning biðlarans. Röðin skiptir máli: mældu hvar stærðarmörkin liggja og þrengdu svo regluna sem gleypti skýrsluna.
Hvað ICMP flytur í raun á þessari leið
IPv4 leiðar-MTU uppgötvun byggist á því að beinir tilkynni að ekki hafi verið hægt að senda pakka með don't-fragment bitanum stilltum áfram. Sú tilkynning er ICMP Fragmentation Needed skilaboð, og án hennar hefur sendandinn enga ástæðu til að minnka stærð bútans. IPv6 er strangara: beinar sundra ekki í gegnumferð, svo ICMPv6 Packet Too Big skilaboð eru eina merkið sem fær sendandann til að minnka sig.
Bæði skilaboðin eru endurgjöf stjórnflatar og hvorugt er greiningarbergmál. Stefna sem blokkar ping og stefna sem blokkar allt ICMP líta svipað út á reglulista en hegða sér mjög ólíkt á netinu. Sú seinni getur breytt rétt mældum tunni í einstefnuleið fyrir allt sem er stærra en minnsti hlekkur keðjunnar.
Sumar flutningsleiðir útfæra eigin uppgötvun með könnunarpökkum, eins og RFC 4821 lýsir, og eru minna háðar þessari endurgjöf. Það er rök til að athuga hvaða flutningsleið þú keyrir, ekki til að gera ráð fyrir að hver tunnill sé ónæmur.
| Skilaboð | Tilgangur á leiðinni | Ef blokkuð |
|---|---|---|
| ICMPv4 tegund 3 kóði 4 | Pakkinn var of stór fyrir næsta hlekk | Sendandinn endurtekur og stöðvast |
| ICMPv6 tegund 2 | Packet Too Big, IPv6 jafngildið | Sama stöðvun, án sundrunarvaraleiðar |
| ICMP tegund 11 | Tími liðinn, traceroute notar | Greining tapar stökkum, umferðin streymir áfram |
| ICMP bergmálsbeiðni og svar | Aðgengispróf | Ping mistekst, leiðin getur verið í lagi |
Bilanin fer eftir stærð
Spyrðu hvort bilanin fylgist með pakkastærð. Innskráningarsíða, DNS-fyrirspurn og stutt API-kall ganga, á meðan skráarhleðsla, stórt svar eða myndniðurhal stöðvast. Þetta mynstur bendir til stærðarmarka einhvers staðar milli endanna tveggja, ekki auðkenningar eða leiðarvalar. Árangursríkt lítið ping segir næstum ekkert um hvar þessi mörk liggja.
Inni í tunni eru tvö lög sem þarf að hafa í huga: nytsamapakkinn og ytri umbúðapakkinn. Innri sendandinn getur hegðað sér rétt á meðan ytri leiðin er minni en tunnillinn gerir ráð fyrir, og þess vegna skipta bæði eigin MTU-stilling tunnilsins og líkamlegi hlekkurinn undir honum máli.
Mældu áður en þú breytir reglum
Kannaðu með don't-fragment bitanum og þeirri nytsamastærð sem þú velur, frá bilaða biðlinum að vernduðu vistfangi:
ping -M do -s 1472 10.20.5.7
ping -M do -s 1300 10.20.5.7
Nytsemi upp á 1472 bæti auk 28 bæta af hausum er 1500 bæta pakki. Ef stóra könnunin mistekst með sundrunarvillu og sú minni fer í gegn, hefur þú fundið mörkin; leiðréttu fyrir yfirborði tunnilsins og endurtaktu þar til virka stærðin er stöðug.
Staðfestu svo að bilið sé skýrslan sjálf. Ef könnunin mistekst hljóðlega, án villu og án svars, er skilaboðunum líklega hent í stað þess að vera afhent, og grunaði er reglan.
Þrengdu regluna og prófaðu svo verkefnið aftur
Leiðréttingin ætti að leyfa tiltekin stjórnskilaboð, ekki allt samskiptareglurnar. Á iptables-vél er formið tegundarsértæk leyfi; aðlagaðu setningafræðina að því sem stýrir eldveggnum á þínum vettvangi:
iptables -I INPUT -p icmp --icmp-type fragmentation-needed -j ACCEPT
ip6tables -I INPUT -p icmpv6 --icmpv6-type packet-too-big -j ACCEPT
Hafðu bergmálssvör blokkuð ef það er staðbundin stefna, því leiðin þarf ekki á þeim að halda. Prófaðu svo sendinguna sem mistókst upphaflega aftur, frá nýrri tengingu, og staðfestu að teljarar reglunnar sýni skilaboðin berast.
Ef stóra sendingin stöðvast enn eftir að skilaboðin eru leyfð er afgangsmörkin annars staðar: of hátt stillt MTU tunnils, milliþjónn sem endurskrifar pakka eða millibox sem hendir í stað þess að tilkynna. ICMP-reglan var nauðsynleg, ekki nægileg.