Pse bllokimi i të gjithë ICMP prish një rrugë VPN që funksionon
Mesazhet e reagimit për madhësinë nuk janë përgjigje ping. Kur nuk mbërrijnë kurrë, paketat e vogla kalojnë, ato të mëdha zhduken, dhe tuneli duket sikur dridhet.
Një tunel që autentikohet, mbart një ping dhe pastaj ngec në transferimin e parë të madh është shenja klasike e një mesazhi ICMP që mungon, jo e një VPN të prishur. Dërguesi nuk e mëson kurrë që paketa ishte shumë e madhe, përsërit të njëjtën madhësi, dhe aplikacioni pret. Rregullimi i kësaj është një vendim i politikës së firewall-it, jo riinstalim i klientit. Rendi ka rëndësi: matni ku ndodhet kufiri i madhësisë, pastaj ngushtoni rregullin që gëlltiti raportin.
Çfarë mbart në të vërtetë ICMP në këtë rrugë
Zbulimi i MTU-së së rrugës IPv4 mbështetet në faktin që një ruter raporton se një paketë me bitin don't-fragment nuk mund të përçohej. Ai raport është një mesazh ICMP Fragmentation Needed, dhe pa të dërguesi nuk ka arsye të zvogëlojë madhësinë e segmentit. IPv6 është më i rreptë: ruterët nuk fragmentojnë në tranzit, prandaj mesazhi ICMPv6 Packet Too Big është sinjali i vetëm që e bën dërguesin të tkurret.
Të dy mesazhet janë reagim i planit të kontrollit dhe asnjëri nuk është jehonë diagnostikuese. Një politikë që bllokon ping dhe një politikë që bllokon të gjithë ICMP duken njësoj në një listë rregullash, por sillen shumë ndryshe në rrjet. E dyta mund ta kthejë një tunel të dimensionuar saktë në një rrugë njëdrejtimëshe për çdo gjë më të madhe se lidhja më e vogël në zinxhir.
Disa transportues e zbatojnë zbulimin e tyre me paketa sondimi, siç përshkruan RFC 4821, dhe varen më pak nga ky reagim. Ky është një argument për të kontrolluar çfarë transporti po ekzekutoni, jo për të supozuar se çdo tunel është i paprekshëm.
| Mesazh | Qëllimi në rrugë | Nëse bllokohet |
|---|---|---|
| ICMPv4 tipi 3 kodi 4 | Paketa ishte shumë e madhe për lidhjen tjetër | Dërguesi vazhdon të provojë dhe ngec |
| ICMPv6 tipi 2 | Packet Too Big, ekuivalenti i IPv6 | I njëjti ngecje, pa alternativë fragmentimi |
| ICMP tipi 11 | Koha skadoi, përdoret nga traceroute | Diagnostika humb hop-e, trafiku vazhdon të rrjedhë |
| Kërkesë dhe përgjigje jehonë ICMP | Test arritshmërie | Ping dështon, rruga mund të jetë në rregull |
Dështimi varet nga madhësia
Pyetni nëse dështimi lidhet me madhësinë e paketës. Një faqe hyrjeje, një pyetës DNS dhe një thirrje e shkurtër API kalojnë, ndërsa një ngarkim skedari, një përgjigje e madhe ose një shkarkim imazhi ngecin. Ky model tregon një kufi madhësie diku midis dy skajeve, jo autentikimin ose rrugëzimin. Një ping i vogël i suksesshëm nuk thotë pothuajse asgjë për atë se ku ndodhet ky kufi.
Brenda një tuneli ka dy shtresa për t'u marrë parasysh: paketa e ngarkesës dhe paketa e jashtme e enkapsuluar. Dërguesi i brendshëm mund të sillet saktë ndërsa rruga e jashtme është më e vogël sesa supozon tuneli, prandaj kanë rëndësi si cilësimi i MTU-së së tunelit ashtu edhe lidhja fizike poshtë tij.
Matni përpara se të redaktoni rregulla
Sondoni me bitin don't-fragment dhe me një madhësi ngarkese që zgjidhni vetë, nga klienti me probleme drejt një adrese të mbrojtur:
ping -M do -s 1472 10.20.5.7
ping -M do -s 1300 10.20.5.7
Një ngarkesë prej 1472 bajtësh plus 28 bajtë tituj formon një paketë prej 1500 bajtësh. Nëse sonda e madhe dështon me një gabim fragmentimi dhe ajo e vogël kalon, keni gjetur kufirin; rregulloni për mbingarkesën e tunelit dhe përsëritni derisa madhësia funksionale të jetë e qëndrueshme.
Pastaj konfirmoni se hendeku është vetë raporti. Nëse sonda dështon në heshtje, pa gabim dhe pa përgjigje, mesazhi me gjasë hidhet poshtë në vend që të dorëzohet, dhe i dyshuari është rregulli.
Ngushtoni rregullin, pastaj ritestoni detyrën
Korrigjimi duhet të lejojë mesazhet specifike të kontrollit, jo të gjithë protokollin. Në një host me iptables forma është një leje e tipit specifik; përshtatni sintaksën me atë që administron firewall-in në platformën tuaj:
iptables -I INPUT -p icmp --icmp-type fragmentation-needed -j ACCEPT
ip6tables -I INPUT -p icmpv6 --icmpv6-type packet-too-big -j ACCEPT
Lërini përgjigjet e jehonës të bllokuara nëse kjo është politika lokale, pasi rruga nuk ka nevojë për to. Pastaj ritestoni transferimin që dështoi fillimisht, nga një lidhje e re, dhe konfirmoni se numëruesit e rregullit tregojnë mesazhet që po mbërrijnë.
Nëse transferimi i madh ngec ende pasi mesazhet lejohen, kufiri i mbetur është diku tjetër: një MTU tuneli i vendosur shumë lart, një proxy që rishkruan paketat, ose një kuti e ndërmjetme që hedh poshtë në vend që të raportojë. Rregulli ICMP ishte i nevojshëm, jo i mjaftueshëm.