tcpdump zobrazuje pakety 64 KB: offload a miesto zachytenia
Obrovský paket v zachytení na hostiteľovi môže byť pred segmentáciou alebo po agregácii. Určte miesto pozorovania, skôr než uzavriete, že tunel ignoroval svoju MTU.
Zachytávanie na hostiteľovi môže ukázať paket s veľkosťou 64 KB na rozhraní s MTU 1420, a zrejmý záver je, že tunel ignoroval svoj limit veľkosti. Tento záver je zvyčajne nesprávny. Miesta zachytenia na hostiteľovi ležia vnútri cesty spracovania, kde segmentácia, agregácia a práca s kontrolným súčtom ešte nemuseli prebehnúť. Prečítajte si polohu pozorovateľa skôr, než prečítate veľkosť paketu.
Kde zachytávate, mení to, čo vidíte
Vysielací offload umožňuje zásobníku odovzdať veľkú jednotku sieťovému zariadeniu, ktoré ju neskôr rozreže na kusy veľkosti drôtu. Agregácia pri príjme robí opak na vstupe a spája segmenty skôr, než ich pozorovateľ na strane hostiteľa uvidí. Zachytenie preto zaznamenáva vnútorný pohľad hostiteľa v danom mieste, nie nevyhnutne rámce na linke. Oba mechanizmy závisia od zariadenia a od cesty.
ethtool -k eth0 | grep -E 'tso|gso|gro'
Zachytávajte v druhom mieste, ideálne na nezávislom prijímači alebo zrkadle, skôr než veľkosť označíte za poruchu. Ak sa veľká jednotka objavuje len na odosielajúcom hostiteľovi, drôt ju možno nikdy neprenášal. Dve pozorovacie miesta sú silnejšie než jeden súbor, najmä keď je otázkou, čo skutočne opustilo stroj.
Oddeľte vnútorné a vonkajšie rozhranie
Tunel pridáva vlastné rozhranie a vonkajší a vnútorný pohľad sa líšia v zapuzdrení a v spracovaní. Zachytenie na zariadení tunela ukazuje vnútorný paket; zachytenie na fyzickom adaptéri ukazuje vonkajší. Veľkosť, adresy a stav kontrolného súčtu sa medzi nimi môžu líšiť z dôvodov, ktoré nemajú nič spoločné s poruchou.
Zaznamenajte, ktoré rozhranie vytvorilo každý súbor. Veľkosť videná na zariadení tunela opisuje vnútorný paket, nie rámec, ktorý adaptér napokon odoslal. Miešať ich v jednej analýze je spôsob, akým sa bežný rozdiel v zapuzdrení stane záhadou.
Varovanie kontrolného súčtu je tiež pozičné
Zachytenie na strane vysielania môže ukázať pole kontrolného súčtu skôr, než ho hardvér vyplní, čo vytvorí varovanie, ktoré by žiadny prijímač nikdy nevidel. To je iný dôkaz než odmietnutie poškodeného paketu vzdialeným hostiteľom. Smer a miesto zachytenia rozhodujú, ktorý z dvoch máte.
Keď skutočný prenos zlyhá, porovnajte pozorovania na prijímači alebo v inom mieste cesty. Uchovajte smer, rozhranie a vrstvu zapuzdrenia spolu so záznamom, pretože snímku obrazovky bez nich nemožno neskôr vyložiť.
Vypínajte offload len ako riadený test
Vypnutie offloadu mení výkon a spracovanie paketov, takže to nie je prvá reakcia na zvláštne zobrazenie veľkosti. Ak to testujete, zmeňte jedno nastavenie a najprv zaznamenajte východiskový stav. Beh, ktorý mení aj MTU, pravidlá firewallu a profil klienta, nemôže výsledok pripísať offloadu. Potom nastavenie obnovte.
ethtool -K eth0 tso off gro off
ping -M do -s 1400 example.com
Skutočné zaseknutie veľkého prenosu je samostatná otázka o MTU cesty a o spätnej väzbe, ktorú aplikácia dostáva. Agregovaná jednotka hostiteľa ani nepreukazuje, ani nevyvracia limit veľkosti ďalej po ceste, a nízke percento CPU neoznačí offload za príčinu.
Užitočným výsledkom je vysvetlené miesto zachytenia a reprodukovateľné pozorovanie aplikácie. Keď sú oddelené, zmena MTU môže mieriť na skutočné obmedzenie namiesto tvaru vnútorného buffera.