Firwat d'Blockéiere vun all ICMP eng funktionéierend VPN-Route zerbriechen
Gréisst-Feedback-Noriichten sinn keng Ping-Antwerten. Wa se ni ukennen, geléngen kleng Pakete, grouss verschwannen, an den Tunnel schéngt ze flackeren.
En Tunnel, deen sech authentifizéiert, e Ping dréit an dann um éischte groussen Transfer hänkt, ass de klassesche Zeeche vun enger fehlender ICMP-Noriicht an net vun engem kaputten VPN. Den Absender léiert ni, datt e Paket ze grouss war, widderhëlt déi selwecht Gréisst, an d'Applikatioun waart. Dëst ze fixéiere ass eng Entscheedung iwwer d'Firewall-Politik, net eng Reinstallatioun vum Client. D'Reiefolleg zielt: moosst, wou d'Gréisstegrenz läit, an engt dann d'Regel an, déi de Rapport geschléckt huet.
Wat ICMP op dësem Wee tatsächlech dréit
IPv4-Wee-MTU-Entdeckung berout drop, datt en Router mellt, datt e Paket mat dem don't-fragment-Bit net konnt weidergeleet ginn. Dee Rapport ass eng ICMP Fragmentation Needed-Noriicht, an ouni déi huet den Absender kee Grond, seng Segmentgréisst ze reduzéieren. IPv6 ass méi streng: Router fragmentéieren net am Transit, dofir ass eng ICMPv6 Packet Too Big-Noriicht dat eenzegt Signal, dat den Absender schrumpfe léisst.
Béid Noriichten sinn Feedback vun der Kontrollplang, an keng vun hinnen ass en diagnosteschen Echo. Eng Politik, déi Ping blockéiert, an eng, déi all ICMP blockéiert, gesi gläich aus an enger Regellëscht, awer behuelen sech ganz anescht am Netz. Déi zweet kann en richteg dimensionéierten Tunnel an en Eewee-Wee ëmwandelen fir alles, wat méi grouss ass wéi dat klengst Glidd an der Kette.
Verschidden Transporten implementéieren hir eege Entdeckung mat Sondepaketen, wéi RFC 4821 beschreift, an déi sinn manner vun dësem Feedback ofhängeg. Dat ass en Argument, ze kontrolléieren, wéi en Transport Dir bedreift, net unzehuelen, all Tunnel wier immun.
| Noriicht | Zweck um Wee | Wann blockéiert |
|---|---|---|
| ICMPv4 Typ 3 Code 4 | De Paket war ze grouss fir dat nächst Glidd | Den Absender widderhëlt a bleift hänken |
| ICMPv6 Typ 2 | Packet Too Big, den IPv6-Äquivalent | Dee selwechte Stopp, ouni Fragmentéierungs-Réckfall |
| ICMP Typ 11 | Zäit iwwerschratt, gëtt vun traceroute benotzt | Diagnostik verléiert Hops, den Trafik fléisst nach |
| ICMP-Echo-Ufro an -Äntwert | Erreechbarkeetstest | Ping schléit fehl, de Wee kann a Ordnung sinn |
De Fehler hänkt vun der Gréisst of
Frot, ob de Fehler mat der Paketgréisst korreléiert. Eng Login-Säit, eng DNS-Ufro an en kuerzen API-Opruff geléngen, während en Datei-Upload, eng grouss Äntwert oder en Bilddownload hänke bleiwen. Dëst Muster deit op eng Gréisstegrenz irgendwou tëscht den zwou Enden hin, net op Authentifikatioun oder Routing. En erfollegräiche klengen Ping seet bal näischt driwwer, wou dës Grenz läit.
Bannen an engem Tunnel sinn zwou Schichten ze betruechten: de Notzlaaschtpaket an de baussenzege gekapselten Paket. Den bannenzege Absender kann sech korrekt behuelen, während de baussenzege Wee méi kleng ass wéi den Tunnel unhëlt, dofir zielen souwuel dem Tunnel seng eegen MTU-Astellunge wéi och de physikalesche Link drënner.
Moosst, ier Dir Regelen ännert
Sondéiert mam don't-fragment-Bit an enger Notzlaaschtgréisst, déi Dir selwer wielt, vum fehlerhafte Client a Richtung enger geschützter Adress:
ping -M do -s 1472 10.20.5.7
ping -M do -s 1300 10.20.5.7
Eng Notzlaascht vun 1472 Byte plus 28 Byte Käpp ergëtt e Paket vun 1500 Byte. Wann d'grouss Sond mat engem Fragmentéierungsfehler schléit fehl an déi kleng duerchkënnt, hutt Dir d'Grenz fonnt; passt fir den Tunnel-Overhead un a widderhëlt, bis déi funktionéierend Gréisst stabil ass.
Bestätegt dann, datt de Spalt de Rapport selwer ass. Wann d'Sond stëll schléit fehl, ouni Fehler an ouni Äntwert, gëtt d'Noriicht wahrscheinlech verworf an net geliwwert, an d'Regel ass verdächteg.
Engt d'Regel an, a test dann d'Aufgab nach eng Kéier
D'Korrektur soll déi spezifesch Kontrollnoriichten erlaaben, net de ganze Protokoll. Op engem iptables-Host ass d'Form eng typespezifesch Erlaabnis; passt d'Syntax un dat un, wat d'Firewall op Ärer Plattform verwalt:
iptables -I INPUT -p icmp --icmp-type fragmentation-needed -j ACCEPT
ip6tables -I INPUT -p icmpv6 --icmpv6-type packet-too-big -j ACCEPT
Loosst Echo-Äntwerten blockéiert, wann dat d'lokal Politik ass, well de Wee brauch se net. Test dann den Transfer, deen ursprénglech fehlgeschloen ass, aus enger neier Verbindung nach eng Kéier, a bestätegt, datt d'Regelzähler weisen, datt d'Noriichten ukommen.
Wann den groussen Transfer nach ëmmer hänke bleift, nodeems d'Noriichte erlaabt sinn, ass déi reschtlech Grenz anzwousch anescht: eng ze héich agestallt Tunnel-MTU, e Proxy, deen Paketen ëmschreift, oder eng Mëttelkëscht, déi verwërft amplaz ze mellen. D'ICMP-Regel war néideg, net duergend.