tcpdump-ը ցույց է տալիս 64 KB փաթեթներ՝ offload և որսման կետ
Հոսթի վրա կատարված որսման մեջ հսկա փաթեթը կարող է լինել մասնատումից առաջ կամ ագրեգացումից հետո։ Որոշեք դիտարկման կետը նախքան եզրակացնելը, որ թունելը անտեսել է իր MTU-ն։
Հոսթի վրա որսումը կարող է ցույց տալ 64 KB փաթեթ 1420 MTU ունեցող ինտերֆեյսի վրա, և ակնհայտ եզրակացությունն այն է, որ թունելը անտեսել է իր չափի սահմանը։ Այդ եզրակացությունը սովորաբար սխալ է։ Հոսթի որսման կետերը գտնվում են մշակման ուղու ներսում, որտեղ մասնատումը, ագրեգացումը և ստուգիչ գումարի աշխատանքը գուցե դեռ չեն կատարվել։ Կարդացեք դիտորդի դիրքը նախքան փաթեթի չափը կարդալը։
Որտեղ որսում եք, փոխում է այն, ինչ տեսնում եք
Ուղարկման offload-ը թույլ է տալիս կույտին մեծ միավոր հանձնել ցանցային սարքին, որը հետագայում այն կտրում է մետաղալարի չափի կտորների։ Ընդունման ագրեգացումը ներս մտնելիս հակառակն է անում՝ միացնելով հատվածները նախքան հոսթի կողմի դիտորդը կտեսնի դրանք։ Ուստի որսումը գրանցում է հոսթի ներքին պատկերը տվյալ կետում, ոչ պարտադիր կապի շրջանակները։ Երկու մեխանիզմներն էլ կախված են սարքից և ուղուց։
ethtool -k eth0 | grep -E 'tso|gso|gro'
Որսացեք երկրորդ կետում, իդեալական՝ անկախ ընդունիչում կամ հայելու մեջ, նախքան չափը խափանում համարելը։ Եթե մեծ միավորը հայտնվում է միայն ուղարկող հոսթի վրա, գուցե մետաղալարը երբեք չի կրել այն։ Երկու դիտարկման կետերը ավելի ուժեղ են, քան մեկ ֆայլը, հատկապես երբ հարցը այն է, թե ինչն է իրականում լքել մեքենան։
Առանձնացրեք ներքին և արտաքին ինտերֆեյսները
Թունելը ավելացնում է իր սեփական ինտերֆեյսը, և արտաքին ու ներքին պատկերները տարբերվում են ինկապսուլյացիայով և մշակմամբ։ Թունելի սարքի վրա որսումը ցույց է տալիս ներքին փաթեթը, իսկ ֆիզիկական ադապտերի վրա որսումը՝ արտաքինը։ Չափը, հասցեները և ստուգիչ գումարի վիճակը կարող են տարբերվել նրանց միջև պատճառներով, որոնք որևէ կապ չունեն խափանման հետ։
Գրանցեք, թե որ ինտերֆեյսն է ստեղծել յուրաքանչյուր ֆայլ։ Թունելի սարքի վրա տեսած չափը նկարագրում է ներքին փաթեթը, ոչ այն շրջանակը, որը ադապտերը ի վերջո ուղարկել է։ Դրանք մեկ վերլուծության մեջ խառնելը հենց այն է, ինչ սովորական ինկապսուլյացիայի տարբերությունը դարձնում է առեղծված։
Ստուգիչ գումարի զգուշացումը նույնպես դիրքային է
Ուղարկող կողմի որսումը կարող է ցույց տալ ստուգիչ գումարի դաշտը նախքան ապարատը կլցնի այն, ինչը ստեղծում է զգուշացում, որը ոչ մի ընդունիչ երբեք չէր տեսնի։ Սա տարբեր ապացույց է, քան հեռավոր հոսթի կողմից վնասված փաթեթի մերժումը։ Ուղղությունը և որսման կետը որոշում են, թե այդ երկուսից որն ունեք։
Երբ իրական փոխանցումը ձախողվում է, համեմատեք դիտարկումները ընդունիչում կամ ուղու մեկ այլ կետում։ Պահեք ուղղությունը, ինտերֆեյսը և ինկապսուլյացիայի շերտը գրառման հետ, քանի որ առանց դրանց էկրանի պատկերը հետագայում հնարավոր չէ մեկնաբանել։
Անջատեք offload-ը միայն որպես վերահսկվող փորձարկում
Offload-ի անջատումը փոխում է աշխատանքը և փաթեթների մշակումը, ուստի այն տարօրինակ չափի ցուցադրման առաջին արձագանքը չէ։ Եթե փորձարկում եք, փոխեք մեկ կարգավորում և նախ գրանցեք ելակետային վիճակը։ Աշխատանքը, որը փոխում է նաև MTU-ն, հրապարակարգի կանոնները և հաճախորդի պրոֆիլը, չի կարող արդյունքը վերագրել offload-ին։ Հետո վերականգնեք կարգավորումը։
ethtool -K eth0 tso off gro off
ping -M do -s 1400 example.com
Մեծ փոխանցման իրական կանգառը առանձին հարց է ուղու MTU-ի և հավելվածի ստացած հետադարձ կապի մասին։ Հոսթի ագրեգացված միավորը ոչ ապացուցում է ներքևի չափի սահմանը, ոչ էլ հերքում, և ցածր CPU տոկոսը offload-ը որպես պատճառ չի նշում։
Օգտակար արդյունքը բացատրված որսման կետն է՝ զուգորդված հավելվածի կրկնելի դիտարկմամբ։ Երբ դրանք բաժանված են, MTU-ի փոփոխությունը կարող է թիրախավորել իրական սահմանափակումը՝ ներքին բուֆերի ձևի փոխարեն։