Skip to main content

כיצד להשתמש בפקודה 'traceroute' ב- Linux

How does traceroute work? (יוני 2025)

How does traceroute work? (יוני 2025)
Anonim

הפקודה traceroute נמצאת בשימוש ב- Linux כדי למפות את המסע שחבילת מידע מתחייבת ממקורו ליעודו. שימוש אחד עבור Traceroute הוא לאתר כאשר אובדן נתונים מתרחשת ברחבי הרשת, אשר יכול לסמן צומת זה למטה.

מאחר שכל הופעה ברשומה משקפת שרת או נתב חדש בין המחשב המקורי לבין היעד המיועד, בדיקת תוצאות סריקת ה- traceroute מאפשרת גם לזהות נקודות איטיות העלולות להשפיע לרעה על תנועת הרשת שלך.

איך זה עובד

הערכת המסלול הספציפי שתעבורת הרשת עוקבת אחריו (או מציאת השער המפריד שמשליך את החבילות) מציג מספר אתגרים לפתרון בעיות. Traceroute משתמש בפרוטוקול IP זמן לחיות כדי לבקש תגובת ICMP TIME_EXCEEDED מכל שער, לאורך הנתיב אל מארח היעד.

הפרמטר היחיד שיש לכלול בעת ביצוע הפקודה traceroute הוא שם המארח או כתובת ה- IP של היעד.

תחביר ומתג

טראסרוט -DFInrvx -f first_ttl -g שער -אני iface -M max_ttl -p נמל -q nqueries - s src_addr -t אל -W זמן המתנה -z פאוזמס מארח packetlen

בעוד האמור לעיל היא איך את הפקודה traceroute צריך להיות כתוב החוצה כדי לעבוד בשורת הפקודה, הביצועים או הפלט של הפקודה ניתן לשנות על ידי ציון אחד או יותר בוררים אופציונליים.

  • -od הגדרת הראשונית זמן לחיות בשימוש מנות בדיקה יוצאת הראשונה.
  • -F הגדר את "לא קטע" קצת.
  • -od אפשר איתור באגים ברמת השקע.
  • -g ציין שער נתיב מקור רופף (8 מרבי).
  • -אני: ציין ממשק רשת כדי לקבל את כתובת ה- IP של המקור עבור מנות בדיקה יוצאות. זה בדרך כלל שימושי רק על המארח רב homed. (ראה- s דגל עבור דרך אחרת לעשות זאת.)
  • -אני: השתמש ב- ICMP ECHO במקום בתצורות UDP.
  • -M: הגדר את הזמן המקסימלי להפעלה (מספר מרבי של כשות) המשמש בחבילות בדיקה יוצאות. ברירת המחדל היא 30 כשות (ברירת המחדל המשמשת לחיבורי TCP).
  • -n הדפס כתובות הופ באופן מספרי ולא באופן סמלי ומספרי (שומר בדיקת שמות של שמות לפי שם עבור כל שער שנמצא בנתיב).
  • -od הגדר את מספר היציאה UDP הבסיסי המשמש בבדיקות (ברירת המחדל היא 33434). Traceroute מקווה ששום דבר לא מקשיב על יציאות UDP בסיס ל בסיס + nhops - 1 ב מארח היעד (כך הודעה ICMP PORT_UNREACHABLE יוחזר לסיים את המסלול מעקב). אם משהו מקשיב ליציאה בטווח ברירת המחדל, אפשרות זו יכולה לשמש לבחירת טווח יציאות שלא נעשה בו שימוש.
  • -r עקוף את טבלאות הניתוב הרגילות ושלח ישירות למארח ברשת מצורפת. אם המארח אינו מחובר ישירות לרשת, שגיאה מוחזרת. ניתן להשתמש באפשרות זו כדי לאותת על מארח מקומי באמצעות ממשק שאין לו נתיב דרכו (למשל, לאחר שהמשתמש בוטל על ידי מנותב (8C)).
  • -you השתמש בכתובת ה- IP הבאה (שבדרך כלל ניתנת כמספר IP, לא כמארח) ככתובת המקור בחבילות בדיקה יוצאות. על המארחים רב homed (עם יותר מכתובת IP אחת), אפשרות זו ניתן להשתמש כדי לאלץ את כתובת המקור להיות משהו אחר מאשר כתובת ה- IP של הממשק מנות בדיקה נשלחת ב. אם כתובת ה- IP אינה אחת ממאפייני הממשק של ההתקן, שגיאה מוחזרת ושום דבר לא נשלח. (ראה-אני דגל עבור דרך אחרת לעשות זאת.)
  • -od הגדר את סוג שירות בחבילות בדיקה לערך הבא (ברירת מחדל אפס). הערך חייב להיות מספר שלם עשרוני בטווח 0 עד 255. אפשרות זו יכולה לשמש כדי לראות אם סוגי שירות שונים גורמים לנתיבים שונים. (אם אתה לא פועל 4.4bd, זה עשוי להיות אקדמי, שכן שירותי הרשת הרגילים כמו Telnet ו FTP לא מאפשרים לך לשלוט TOS.) לא כל הערכים של TOS הם משפטיים או משמעותיים - לראות את מפרט ה- IP להגדרות. ערכים שימושיים הם כנראה '-t 16 (עיכוב נמוך) ו- `-t 8 (תפוקה גבוהה).
  • אשר you פלט verbose. ניתן לקבל מנות ICMP שהתקבלו מלבד TIME_EXCEEDED ו- UNREACHABLE.
  • -W הגדר את הזמן (בשניות) להמתין לתגובה על בדיקה (ברירת המחדל היא 5 שניות).
  • -איקס: החלף את בדיקת ה- IP. בדרך כלל, זה מונע traceroute מחשוב בדיקות IP. במקרים מסוימים, מערכת ההפעלה יכולה להחליף חלקים מהחבילה היוצאת, אך לא לחשב מחדש את המחסום; ולכן, במקרים מסוימים ברירת המחדל היא לא לחשב checksums ושימוש-איקס גורם להם לחשב. שים לב כי בדיקות נדרשים בדרך כלל עבור הופ האחרון בעת ​​שימוש בחיישנים ICMP ECHO (-אני), ולכן הם מחושבים תמיד בעת שימוש ב- ICMP.
  • -od הגדר את הזמן (במילי שניות) כדי להשהות בין בדיקות (ברירת מחדל 0). כמה מערכות כגון Solaris ונתבים של סיסקו, קצב להגביל הודעות ICMP. ערך טוב לשימוש עם זה הוא 500 (למשל, 1/2 שנייה).

פירוש התוצאות

Traceroute מתאר את הנתיב מנות IP הבאים מארח האינטרנט על ידי השקת מנות בדיקה UDP עם TTL קטן (זמן לחיות) ולאחר מכן האזנה ICMP "זמן חרג" תשובה משער. אנו מתחילים את הבדיקות שלנו עם TTL של אחד ולהגדיל על ידי אחד עד שאנחנו מקבלים "ICMP" נמל נגיש "(כלומר החבילה הגיעה ליעדה) או להכות ערך מקסימלי של ניסיונות, אשר ברירת המחדל ל 30 כשות וניתן לשנות עם ה-M דגל.

כאשר בוצע טרסרוט, הוא שולח שלוש בדיקות בכל הגדרה TTL ולאחר מכן מדפיס קו אל המסוף המציג את TTL, את כתובת השער ואת זמן הנסיעה הלוך ושוב של כל בדיקה. אם תשובות הבדיקה מגיעות משערים שונים, הכתובת של כל מערכת תגובה מדפיסה. אם אין תגובה בתוך מרווח זמן קצוב של חמש שניות (השתנה עם-W דגל), כוכבית מודפסת בדיקה זו.

כדי למנוע את המארח היעד מלהיות overwhelmed ידי UDP probe עיבוד מנות, יציאת היעד מוגדר ערך סביר לשימוש על ידי המכשיר. אם רשת או שירות ביעד משתמשים ביציאה זו, שנה את הערך באמצעות-p דגל.

שימוש לדוגמה ופלט יחזירו תוצאות הדומות לדוגמה זו:

yak 71% traceroute nis.nsf.net. traceroute ל nis.nsf.net (35.1.1.48), 30 כובעים מקסימום, 38 בתים מנות 1 helios.ee.lbl.gov (128.3.112.1) 19 ms 19 ms 0 ms 2 lilac-dmc.Berkeley.EDU (128.32. 216.1) 39 ms 39 ms 19 ms 3 lilac-dmc.Berkeley.EDU (128.32.216.1) 39 ms 39 39 ms 19 ms 4 ccngw-ner-cc.Berkeley.EDU (128.32.136.23) 39 ms 40 ms 39 ms 5 ccn (128.32.168.22) 39 ms ms 39 ms 39 ms 6 128.32.197.4 (128.32.197.4) 40 ms 59 ms 59 ms 7 131.119.2.5 (131.119.2.5) 59 ms 59 ms 59 ms 8 129.140. (129.140.70.13) 99 ms 99 ms 80 ms 80 129.140.71.6 (129.140.71.6) 139 ms 239 ms 319 ms 10 129.140.81.7 (129.140.81.7) 220 ms 199 ms 199 ms 11 nic.merit.edu (35.1 0.188) 239 ms 239 ms 239 ms

שים לב כי הקווים השני והשלישי זהים. תוצאה זו קשורה לגרעין באגי על מערכת הופ השני - lbl-csam.arpa - זה מעביר מנות עם אפס TTL (באג בגירסה מבוזרת של 4.3 BSD). אתה חייב לנחש איזה נתיב מנות מנותקים מעבר לארץ מאז NSFNet (129.140) אינו מספק תרגום אל השם עבור NSSes שלה.

דוגמה מעניינת יותר היא:

יאק 72% traceroute allspice.lcs.mit.edu. (18.3.0.115), 30 hops מקסימום 1 helios.ee.lbl.gov (128.3.112.1) 0 ms 0 ms 0 ms 2 lilac-dmc.Berkeley.EDU (128.32.216.1) 19 ms ms 19 ms 3 lilac-dmc.Berkeley.EDU (128.32.216.1) 39 ms 19 19 ms 19 ms 4 ccngw-ner-cc.Berkeley.EDU (128.32.136.23) 19 ms 39 ms 39 ms 5 ccn-nerif22 (128.32.168.22) 20 ms 39 ms 39 ms 39 128 ms2.197.4 (128.32.197.4) 59 ms 119 ms 39 ms 7 131.119.2.5 (131.119.2.5) 59 ms 59 ms 39 ms 8 129.140.70.13 ( 129.140.70.13) 80 ms 79 ms 99 ms 9 129.140.71.6 (129.140.71.6) 139 ms 139 ms 159 ms 10 129.140.81.7 (129.140.81.7) 199 ms 180 ms 300 ms 11 129.140.72.17 (129.140.72.17) 300 MS 239 ms 239 ms 12 * * * 13 128.121.54.72 (128.121.54.72) 259 ms 499 ms 279 ms 14 * * * 15 * * * 16 * * * 17 * * * 18 ALLSPICE.LCS.MIT.EDU (18.26 .0.115) 339 ms 279 ms 279 ms

שים לב כי השערים ב 12, 14, 15, 16, ו 17 דילוגים או לא לשלוח ICMP "זמן חרג" הודעות או לשלוח אותם עם TTL קטן מדי כדי להגיע אלינו. שורות 14 עד 17 מריצות את קוד MIT C Gateway שאינו שולח הודעות "זמן חריגה".

השער השקט 12 בדוגמה לעיל עשוי להיות תוצאה של באג ב 4. 23 קוד רשת BSD ו נגזרות שלה: מכונות פועל קוד 4.3 ו קודם לכן לשלוח הודעה בלתי מושגת באמצעות מה TTL נשאר בדאטגרמה המקורית. מאז, עבור השערים, TTL הנותר הוא אפס, "זמן ICMP" חרגה זמן לא מובטח לעשות את זה בחזרה אלינו. ההתנהגות של הבאג הזה קצת יותר מעניינת כאשר הוא מופיע במערכת היעד:

1 helios.ee.lbl.gov (128.3.112.1) 0 ms 0 ms 0 ms 2 lilac-dmc.Berkeley.EDU (128.32.216.1) 39 ms 19 ms 39 ms 3 lilac-dmc.Berkeley.EDU (128.32.216.1 ) 19 ms 39 ms 19 ms 4 ccngw-ner-cc.Berkeley.EDU (128.32.136.23) 39 ms 40 ms ms 19 ms 5 ccn-nerif35.Berkeley.EDU (128.32.168.35) 39 ms 39 ms 39 ms 6 csgw. Berkeley.EDU (128.32.133.254) 39 ms 59 ms 39 ms 39 * * * 8 * * * 9 * * * 10 * * * 11 * * * 12 * * * 13 rip.Berkeley.EDU (128.32.131.22) 59 גברת ! 39 ms! 39 ms!

שימו לב כי ישנם 12 "שערי" (13 הוא היעד הסופי), ואת המחצית האחרונה של אותם חסרים. מה שקורה באמת הוא שהשרת בשם ז"ל (מערכת ההפעלה Sun-3 של Sun 3.5) משתמשת ב- TTL מה- Datagram המופיע שלנו כ- TTL בתשובת ICMP. לכן, התשובה תהיה פסק זמן על נתיב החזרה (ללא הודעה שנשלחו לאף אחד מאז ICMPs לא נשלחים עבור ICMPs) עד שנבדוק עם TTL זה לפחות פעמיים אורך הנתיב - במילים אחרות, לקרוע הוא באמת רק שבעה מקפץ.

תשובה שחוזרת עם TTL של 1 היא רמז לבעיה זו. Traceroute מדפיס "!" לאחר שה- TTL הוא פחות או שווה ל -1. מאחר שהספקים שולחים הרבה תוכנות מיושנות (תוכנת Ultrix, Sun 3.x) או לא סטנדרטית (HPUX), מצפים לראות את הבעיה לעתים קרובות ולטפל בבחירת היעד של בדיקות שלך.

הערות אפשריות אחרות לאחר הזמן! ח, !, אוP (מארח, רשת או פרוטוקול בלתי נגיש),S (נתיב המקור נכשל),F- (נדרשת פיצול - ערך גילוי ה- MTU של RFC1191 נתיב מוצג),!איקס (תקשורת אסור),! אשר (הפרת קדימות מארח),ג (ניתוק קדימות בתוקף), או! (קוד ICMP בלתי נגיש). קודים אלה מוגדרים על ידי RFC1812, המחליף את RFC1716. אם כמעט כל בדיקות לגרום לאיזה מארח לא נגיש, traceroute יוותרו ויוצאים.

תוכנית זו מיועדת לשימוש בבדיקות רשת, מדידה וניהול. יש להשתמש בו בעיקר לבדיקת תקלות ידנית. בגלל עומס זה יכול להטיל על הרשת, זה לא חכם להשתמש traceroute במהלך פעולות רגילות או סקריפטים אוטומטיים.