Ping deluje, brskalnik naloži majhno stran, prenos datoteke pa se ustavi, vse prek IPv6 skozi isti tunel. Tak vzorec običajno pomeni, da se pošiljatelj nikoli ni naučil prave velikosti poti, ne da je tunel počasen. IPv6 pričakuje, da usmerjevalniki sporočijo težavo s sporočilom Packet Too Big, in enkapsulacija doda dodatne stroške, preden paket sploh doseže zunanje omrežje. Če je to sporočilo filtrirano, pošiljatelj ponavlja velikost, ki ne more skozi.

Majhne zahteve, velike ustavitve

Tunel ovije vsak paket v še eno glavo, zato je uporabna velikost znotraj manjša od velikosti zunaj. Paket, ki je bil pred enkapsulacijo prilagojen fizični povezavi, postane po njej prevelik. Usmerjevalniki IPv4 lahko fragmentirajo na poti, usmerjevalniki IPv6 pa tega ne počnejo v imenu pošiljatelja, zato se mora pošiljatelj prilagoditi sam. In ta prilagoditev je v celoti odvisna od prejema povratne informacije.

Eno izgubljeno sporočilo zadostuje za klasičen simptom: rokovanja in majhni odgovori uspejo, seznam mape ali nalaganje pa se vsakič ustavi na isti točki. Uporabniki to opisujejo kot počasen VPN, dnevniki pa ne kažejo ničesar napačnega pri preverjanju pristnosti. Obe opažanji sta točni in nobeno ne najde mesta okvare.

Packet Too Big je povratna informacija, ne promet

Sporočilo ICMPv6 Packet Too Big nosi velikost, ki jo lahko sprejme naslednji skok, in pošiljatelj ga uporabi za znižanje svoje ocene. Filtriranje je enako kot odstraniti prometni znak in nato kriviti voznike. Pravilo, ki zavrže ves ICMPv6, je videti strogo, a pokvari odkrivanje poti na vsaki povezavi, ki ga potrebuje. Sporočilo je nadzorna informacija o poti, ne uporabna obremenitev aplikacije.

Selektivno filtriranje je še vedno smiselno. Zahteve za odmev in odkrivanje sosedov imajo drugačno vlogo kot sporočila o napakah in politika lahko z njimi ravna drugače. Upoštevajte dokumentirana navodila platforme za filtriranje, namesto da bi sprejeli ali zavrgli celoten protokol, ker RFC 8201 določa, kako ta povratna informacija vodi odkrivanje.

Preizkusite oba naslovna družine ločeno

Preizkusite IPv6 ločeno, ker uspešen prenos prek IPv4 ne dokazuje ničesar o poti IPv6. Nato zajemite nadzorna sporočila, medtem ko se velik prenos ustavi. Oba zapisa skupaj bodisi kažeta, da povratna informacija odhaja, bodisi dokazujeta, da nikoli ni prispela.

ping -6 -M do -s 1400 host.internal
ip -6 route get 2001:db8:2::10
sudo tcpdump -ni any 'icmp6 and ip6[40] == 2'

Sonda pošlje paket z nastavljenim bitom do-not-fragment in sporoči velikost, pri kateri spodleti, to je število, ki ga mora tunel sprejeti. Poizvedba poti navede vmesnik, ki bi prenesel cilj, tako da veste, kateri MTU povezave velja. Zajem filtrira ICMPv6 vrste 2, sporočilo Packet Too Big, in pokaže, ali sploh doseže tega gostitelja. Če se sporočilo pojavi v zajemu in se prenos še vedno ustavi, ga pošiljatelj ignorira, kar prenese preiskavo v sklad, ne v omrežje.

Velikost tunela spremenite šele po dokazih

Znižanje MTU tunela lahko skrije filtrirano sporočilo in odpravi simptom, a za ceno večjih stroškov pri vsakem paketu. To je obhod, ne diagnoza, in moral bi slediti zajemu, ne pa ga nadomestiti. Poljubno nizka vrednost prav tako ne zlomi ničesar vidnega, zato v konfiguracijah preživi leta. Spreminjajte jo zavestno, zabeležite vrednost in navedite, katera meritev jo je upravičila.

Ko upravljate prehod, preglejte pravilo, ki sporočilo zavrže, namesto da izklopite požarni zid. Eno popravljeno pravilo je ožje od izjeme v politiki in ga je pozneje veliko lažje braniti. Enaka logika velja za časovne omejitve: ni vsaka ustavitev težava z velikostjo, in prav zajem loči obe.

Sorodni članki