כיצד להשתמש בפקודה traceroute בלינוקס

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

איך עובד מסלול

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

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

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

tracerouteמשתמש בחבילת הפרוטוקולים TCP / IP ושולח מנות פרוטוקול Datagram של המשתמש. הכותרת מכילה את שדה הזמן לחיות (TTL), המכיל ערך שלם של שמונה סיביות. למרות מה שהשם מרמז, הוא מייצג ספירה ולא משך זמן.

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

הנתב שולח הודעת זמן פרק פרוטוקול בקרת הודעות באינטרנט (ICMP) בחזרה למקור החבילה בכדי להודיע ​​לו שהזמן הקצוב לחבילה. ההודעה שעבר זמן עבר מכילה את הכותרת המקורית ואת 64 הביטים הראשונים של נתוני החבילה המקורית. זה מוגדר בעמוד שש בבקשה לתגובות 792.

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

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

חלק מהנתבים לא משחקים יפה

בחלק מהנתבים יש באגים. הם מנסים להעביר חבילות עם TTL של אפס במקום להשליך אותן ולהעלות את המסר שעבר על זמן ה- ICMP.

על פי סיסקו, חלק מספקי שירותי האינטרנט (ISP) מגבילים את מספר ההודעות ICMP שהנתבים שלהם ממסרים.

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

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

התקנת מסלול מסלול

tracerouteהותקן כבר ב- Fedora 31 אך יש להתקין אותו ב- Manjaro 18.1 וב- Ubuntu 18.04. כדי להתקין tracerouteב- Manjaro השתמש בפקודה הבאה:

סודו פקמן-טרייסר סיי

להתקנה tracerouteבאובונטו, השתמש בפקודה הבאה:

sudo apt-get install traceroute

שימוש ב traceroute

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

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

אנו מקלידים את הפקודה הבאה:

traceroute www.blarneycastle.ie

השורה הראשונה נותנת לנו את המידע הבא:

  • היעד וכתובת ה- IP שלו.
  • מספר הכשות traceroute ינסה לפני שהוא מוותר.
  • גודל חבילות ה- UDP שאנו שולחים.

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

הפורמט של כל קו הופ הוא כדלקמן:

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

בואו נסקור את מה שיש לנו להלן:

  • הופ 1: נמל השיחה הראשון (ללא משחק מילים) הוא נתב Vigor DrayTek ברשת המקומית. כך חבילות ה- UDP שלנו עוזבות את הרשת המקומית ועוברות לאינטרנט.
  • הופ 2: המכשיר הזה לא הגיב. אולי זה הוגדר לעולם לא לשלוח מנות ICMP. או, אולי זה אכן הגיב אבל היה איטי מדי, אז  tracerouteהתוזמן.
  • הופ 3: מכשיר הגיב, אך לא קיבלנו את שמו, רק את כתובת ה- IP. שים לב שיש בשורה זו כוכבית, מה שאומר שלא קיבלנו מענה לכל שלוש הבקשות. זה יכול להצביע על אובדן מנות.
  • כשות 4 ו -5: כשות אנונימית יותר.
  • הופ 6: יש כאן הרבה טקסט מכיוון שמכשיר מרוחק אחר טיפל בכל אחת משלוש בקשות ה- UDP שלנו. השמות (הארוכים למדי) וכתובות ה- IP של כל מכשיר הודפסו. זה יכול לקרות כאשר אתה נתקל ברשת "מאוכלסת עשירה" בה יש חומרה רבה לטיפול בכמויות גדולות של תנועה. הופ זה נמצא באחד מספקי האינטרנט הגדולים בבריטניה. אז זה יהיה נס קטן אם אותה פיסת חומרה מרוחקת תטפל בשלוש בקשות החיבור שלנו.
  • הופ 7: זהו הקופץ שיצרו חבילות ה- UDP שלנו כשעזבו את רשת ספקי האינטרנט.
  • הופ 8: שוב, אנו מקבלים כתובת IP אך לא את שם המכשיר. כל שלושת המבחנים חזרו בהצלחה.
  • כשות 9 ו -10: שני כשות אנונימיות נוספות.
  • הופ 11: הגענו לאתר טירת בלרני. הטירה נמצאת בקורק, אירלנד, אך על פי המיקום הגיאוגרפי של כתובת ה- IP, האתר נמצא בלונדון.

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

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

הסתרת שמות מכשירים

כפי שראינו, לפעמים כולל שמות מכשירים מוביל לתצוגה עמוסה. כדי להקל על ראיית הנתונים, תוכל להשתמש באפשרות -n(ללא מיפוי).

לשם כך, אנו מקלידים את הדברים הבאים:

traceroute -n blarneycastle.ie

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

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

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

הגדרת ערך הזמן הקצוב לטראקוט

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

אנו מקלידים את הפקודה הבאה:

traceroute -w 7.0 blarneycastle.ie

זה לא עשה הרבה הבדל, אז התגובות כנראה מתארכות. סביר להניח שהכשות האנונימיות מסתירות בכוונה תחילה.

קביעת מספר הבדיקות

כברירת מחדל, tracerouteשולח שלוש חבילות UDP לכל הופ. אנו יכולים להשתמש באפשרות -q(מספר שאילתות) בכדי להתאים זאת למעלה או למטה.

כדי להאיץ את tracerouteהבדיקה, אנו מקלידים את הדברים הבאים כדי לצמצם את מספר מנות ה- UDP שאנו שולחים לאחת:

traceroute -q 1 blarneycastle.ie

זה שולח בדיקה אחת לכל הופ.

הגדרת ערך TTL ראשוני

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

מכיוון שאנחנו יודעים שהאתר של טירת בלארני נמצא במרחק 11 כשות מהמחשב הזה, אנו מקלידים את הדברים הבאים כדי לעבור היישר ל- Hop 11:

traceroute -f 11 blarneycastle.ie

זה נותן לנו דוח נחמד ומרוכז על מצב הקשר ליעד.

היו מתחשבים

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

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

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