tcpdump מציג חבילות של 64 KB: offload ונקודת לכידה
חבילה ענקית בלכידה על המארח עשויה להיות לפני פילוח או אחרי צבירה. קבעו את נקודת התצפית לפני שאתם מסיקים שהמנהרה התעלמה מה-MTU שלה.
לכידה על מארח יכולה להראות חבילה של 64 KB בממשק שה-MTU שלו הוא 1420, והמסקנה המתבקשת היא שהמנהרה התעלמה ממגבלת הגודל שלה. מסקנה זו בדרך כלל שגויה. נקודות לכידה על המארח נמצאות בתוך מסלול העיבוד, שם ייתכן שפילוח, צבירה ועבודת סכום ביקורת טרם התרחשו. קראו את מיקום הצופה לפני קריאת גודל החבילה.
מקום הלכידה משנה את מה שאתם רואים
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 יכול לכוון לאילוץ אמיתי במקום לצורתו של חוצץ פנימי.