Zachycení na hostiteli může ukázat paket o velikosti 64 KB na rozhraní s MTU 1420 a zřejmý závěr je, že tunel ignoroval svůj limit velikosti. Tento závěr je obvykle nesprávný. Místa zachycení na hostiteli leží uvnitř cesty zpracování, kde segmentace, agregace a práce s kontrolním součtem možná ještě neproběhly. Přečtěte si pozici pozorovatele dřív než velikost paketu.

Kde zachycujete, mění co vidíte

Vysílací offload umožňuje zásobníku předat velkou jednotku síťovému zařízení, které ji později rozřeže na kusy o velikosti drátu. Agregace při příjmu dělá opak na vstupu a spojuje segmenty dřív, než je pozorovatel na straně hostitele uvidí. Zachycení proto zaznamenává vnitřní pohled hostitele v daném místě, ne nutně rámce na lince. Oba mechanismy závisí na zařízení a na cestě.

ethtool -k eth0 | grep -E 'tso|gso|gro'

Zachyťte v druhém místě, ideálně na nezávislém přijímači nebo zrcadle, než velikost označíte za závadu. Pokud se velká jednotka objevuje jen na odesílajícím hostiteli, drát ji možná nikdy nepřenášel. Dva pozorovací body jsou silnější než jeden soubor, zvlášť když je otázkou, co skutečně opustilo stroj.

Oddělte vnitřní a vnější rozhraní

Tunel přidává vlastní rozhraní a vnější a vnitřní pohled se liší v zapouzdření a ve zpracování. Zachycení na zařízení tunelu ukazuje vnitřní paket; zachycení na fyzickém adaptéru ukazuje vnější. Velikost, adresy a stav kontrolního součtu se mezi nimi mohou lišit z důvodů, které se závadou nemají nic společného.

Zaznamenejte, které rozhraní vytvořilo každý soubor. Velikost viděná na zařízení tunelu popisuje vnitřní paket, ne rámec, který adaptér nakonec odeslal. Míchat je v jedné analýze je způsob, jak se z běžného rozdílu v zapouzdření stane záhada.

Varování kontrolního součtu je také poziční

Zachycení na vysílací straně může ukázat pole kontrolního součtu dřív, než ho hardware vyplní, což vytvoří varování, které by žádný přijímač nikdy neviděl. To je jiný důkaz než odmítnutí poškozeného paketu vzdáleným hostitelem. Směr a místo zachycení rozhodují, které z toho dvou máte.

Když skutečný přenos selže, porovnejte pozorování u přijímače nebo v jiném místě cesty. Uchovávejte směr, rozhraní a vrstvu zapouzdření spolu se záznamem, protože snímek obrazovky bez nich nelze později vyložit.

Vypínejte offload jen jako řízený test

Vypnutí offloadu mění výkon a zpracování paketů, takže to není první reakce na podivné zobrazení velikosti. Pokud to testujete, změňte jedno nastavení a nejprve zaznamenejte výchozí stav. Běh, který mění také MTU, pravidla firewallu a profil klienta, nemůže výsledek připsat offloadu. Poté nastavení obnovte.

ethtool -K eth0 tso off gro off
ping -M do -s 1400 example.com

Skutečné zaseknutí velkého přenosu je samostatná otázka o MTU cesty a o zpětné vazbě, kterou aplikace dostává. Agregovaná jednotka hostitele ani neprokazuje, ani nevyvrací limit velikosti dál po cestě, a nízké procento CPU neoznačí offload za příčinu.

Užitečným výsledkem je vysvětlené místo zachycení a reprodukovatelné pozorování aplikace. Když je oddělíte, změna MTU může mířit na skutečné omezení místo na tvar vnitřního bufferu.

Související články