דיבוג בעיות תקשורת ברשתות

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

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

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

בראש ובראשונה בשביל לראות מה קורה ברשת שלכם, יש צורך "להסניף" את התקשורת. וזה נעשה עם תוכנה שעושה sniffing. אישית אני ממליץ בחום על wireshark, אשר מספקת המון יכולות ניתור וניתוח תקשורת מעבר לסתם הסנפה (או אולי ריחרוח אם אתם חושבים שרשת מחשבים היא לא סמים🙂 ). המסניף הזה משתמש בספרייה בשם libpcap על מנת לבצע את ההסנפה עצמה, אבל לא בזה נגמרים היכולות של המסניף.

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

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

פקודה נוספת שיכולה לעזור לכם בעיקר לגלות מסלול תעבורה היא כמובן traceroute ו/או tcptraceroute . הפקודה מראה בעיקר באמצעות השימוש ב ICMP (אבל לא מחייב, יש העושים זאת גם עבור TCP ו UDP) את התעבורה מהנקודה שבה מוציאים בקשה ועד לנחשב שרוצים, או במידה וזה קיים, נחסם באמצע.

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

עוד פקודה שאני רוצה להזכיר היא netcat. הפקודה netcat היא סוג של אולר שווצרי בכל מה שקשור לבדיקת פרוטוקולים. מה הכוונה ? ובכן בראש ובראשונה הוא יכול לשמש כלקוח של telnet הישן והטוב. אבל הוא מסוגל לספק הרבה מעבר. למשל הוא מסוגל להיות שרת בפרוטוקולים של TCP או UDP בהם אנחנו מספקים את התוכן וכך אפשר לבדוק למשל לקוחות שאנחנו כותבים לפרוטוקול מסויים רק בשביל לראות התנהגות זו או אחרת. אפשר להעתיק דרכו קבצים ב BZIP או GZIP בתעבורה בעוד שב2 הצדדים המידע יחזור להיות פתוח. אפשר גם לבדוק בכלי הזה עבודה עם IPv6, ובעצם כמעט כל העולה על רוחכם שקשור ל TCP או UDP אם זה ב IPv4 או IPv6.

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

2 מחשבות על “דיבוג בעיות תקשורת ברשתות

  1. ozzyboy

    אכן כלים שימושיים. עוד שני כלים שלדעתי צריכים להיות לכל מנהל רשת בארסנל:

    tcpdump – מאפשר לנו לנטר ולהקליט תעבורה שעוברת מעל TCP. גם כאן ניתן להגדיר פילטרים, למשל:
    tcpdump 'tcp port 80'
    שיקליט לנו את כל התעבורה על פורט 80 (HTTP)

    עוד כלי חביב: nmap – מעיין סורק פורטים חביב שיודע להגיד עבור host מסויים אילו פורטים פתוחים עליו, כמה "קפיצות" רשת ממך הוא נמצא (בדומה ל traceroute) ואפילו איזו מערכת הפעלה מריץ ההוסט (לא תמיד עובד).

    עוז

  2. רותם שמחה

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

כתיבת תגובה

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

הלוגו של WordPress.com

אתה מגיב באמצעות חשבון WordPress.com שלך. לצאת מהמערכת / לשנות )

תמונת Twitter

אתה מגיב באמצעות חשבון Twitter שלך. לצאת מהמערכת / לשנות )

תמונת Facebook

אתה מגיב באמצעות חשבון Facebook שלך. לצאת מהמערכת / לשנות )

תמונת גוגל פלוס

אתה מגיב באמצעות חשבון Google+ שלך. לצאת מהמערכת / לשנות )

מתחבר ל-%s