אז ראינו איך ניגשים לפתרון בעיות תקשורת במערכות המידע. נתחיל לאסוף נתונים.
מה תכיפות התקלה? האם בזמנים קבועים?
- הייתה לי פעם תקלה שקוראת בשעות הבוקר, בצהריים ובסוף היום. מסתבר שבאותה חברה העבירו כבלים לא מסוככים בפיר של מעלית. בשעות הבוקר אנשים באים לעבודה, בצהריים הולכים לאכול ובסוף היום הולכים הביתה. בכל השעות האלו היה שימוש רב במעלית שעלתה וירדה, ויצרה הפרעות בכבלים…
- מתי התחילה הבעיה? האם נעשו שינויים כלשהם לפני שקרתה?
- כאן יש המון דוגמאות – הוספת מחשבים, הוספת שרתים, התקנת אפליקציות נוספות, שינויי תוכנה ועוד. בד"כ קשה לקבל כאן תשובות, אבל תתעקשו ולפעמים תצליחו לגלות מה קרה.
- האם נעשו שינויים כלשהם לפני שהבעיה קרתה?
- האם הותקנו תוכנות חדשות? מערכות חדשות? סניף חדש? משתמש(ים) חדש(ים)? גם דברים שלא נראים משמעותיים שווים בדיקה.
- האם ניתן לשחזר את הבעיה? אם תלכו למשתמשים ותבקשו מהם להראות לכם את הבעיה האם יצליחו? כאן יכולים לקרות מספר דברים.
- מקרה ראשון והכי פשוט: משתמש מראה לכם את התקלה, אתם מתקינים Wireshark אצלו בתחנה או ב- Port mirror לתחנה, ודיכוי גבוה שתאתרו את הבעיה.
- מקרה שני ויותר מורכב: משתמש יגיד לכם שהוא לא יכול להראות לכם מתי התקלה קוראת כי היא מופיעה באופן אקראי. כאן יהיה צריך להשקיע יותר מחשבה, להפעיל מערכת בקרה או כלי ניטור כלשהם (נדבר על זה בהמשך), ולבקש מהמשתמש לרשות את השעה המדויקת והיישום במדויק שבו קרתה הבעיה. עם קצת מזל נוכל לאתר מה קרה.
סוג התקלה:
שני סוגים של תקלות שניתקל בהן:
- תקלה משביתה שבה משאב כלשהו (שרת, גישה לאינטרנט, תוכנה וכד') בלתי זמינים לחלוטין.
- תקלת ביצועים ("רשת עובדת לאט"): משאב כלשהו הופך לאיטי באופן המקשה על העבודה איתו.
גישה לתקלות משביתות:
במקרה של תקלה משביתה, אפשר לבצע כמה פעולות פשוטות (הדוגמאות מתייחסות לשרטוט הבא):
- Ping לתחנה/שרת. אם יש תשובה, כנראה שהכול בסדר אבל:
- יכול להיות שיש לנו תקלה של כתובת כפולה (Duplicate Address) ואז חלק מה- Packets ילכו ליעד וחלק לבעל הכתובת הכפולה. לוודא שאת לא הבעיה ניתן Ping לכתובת ונבדוק ב- ARP (ברשת מקומית – ARP אצלנו במחשב, ברשת מרוחקת – ARP בנתב באותה הרשת) שאין לנו שתי כתובות MAC לאותה כתובת IP. אם למשל אנחנו במרכז (HQ), ועושים Ping למחשב מקומי אז ניתן ARP -a ב- PC שלנו. אם אנחנו עושים Ping למחשב מרוחק למשל ל- PC1 ברשת Office2, ניכנס לנתב ברשת זו (R2) ונכתוב show ip arp (במקרה של סיסקו)
- יכול גם להיות שהגענו לכתובת אבל יש מישהו עם אותה כתובת בדרך לכתובת האמתית. לא מזמן הייתה לי תקלה של נתב מרוחק שניסיתי להגיע לרכיבים מאחוריו. לא מזמן הייתה לי תקלה שהתקנו נתבים חדשים במשרדים, והטכנאי של בזק שהיה באחת התחנות שכח להעביר את הקופסא שלהם (לדוגמא B1) למצב Bridge, והקופסא נשארה עם הכתובת 192.168.10.254 – Ping לכתובת זו ענה אבל זה לא היה הנתב, זאת הייתה הקופסא שלפניו.
- במידה ואין Ping, נעשה Trace (ב- Windows – Tracert, ב- Linux – Traceroute) ונראה איפה אנחנו נופלים. כמה דברים לזכור:
- רוב הסיכויים שהבעיה היא בעיית ניתוב. חשוב לזכור שיכול להיות ניתוב חסר בדרך ליעד, או ניתוב חסר בדרך חזרה מהיעד אלינו. שימו לב שיכול להיות גם שאחד הנתבים בדרך לא עונה ל- ICMP, ויכול להיות שיש FW שחוסם בדרך.
- במידה וקיבלנו Ping, נעלה רמה אחת למעלה, ל- UDP/TCP ונפתח Wireshark על התחנה.
- אם נראה שלושה TCP SYN שיוצאים מאצלנו לשרת ולא מקבלים תשובה (SYN ACK): או שהשירות למעטה (service) או שהאפליקציה למעטה, או שיש FW שחוסם אותנו בדרך, או שיש חסימה בתחנה עצמה.
- אנחנו יכולים לבדוק גם בשרת ובתחנה אם ה- Service למעלה: ב- Ctrl-Alt-Del, או בפקודל netstat -a
- אם גם רמה 4 למעלה ועובדת, נעבור לרמת הפרוטוקול – למשל HTTP, SMTP וכד', ונחפש שם הודאות שגיאה. בד"כ ההודעות יהיו ברורות וקריאות, ועל זה אדבר בנפרד.
- תמיד תבדקו גם את נושא ה- DNS – האם השרת זמין והאם מקבלי תשובות – ניתן לבדוק את זה בקלות עם Wireshark.
והחלטתי להוסיף גם שאלות (שיהיה מאתגר):
- איך עובדת פקודת tracert? כאשר אתם כותבים trace ליעד מסויים מה מתבצע בפועל?
- כאשר אני נותן Ping מתחנה שכתובתה 168.1.10/255.255.255.0 לתחנה 192.168.2.20/255.255.255.0 שנמצאות על אותה רשת פיסית, ללא כל רכיב נוסף, נקבל תשובה?
אז בגלל שאמרו לי שלא לכתוב יותר מ- 600 מילים למאמר, את נושא הביצועים אשאיר לפרק הבא. בהמשך אדבר גם על כלי בדיקות, ויותר לעומק על Wireshark ואיך להשתמש בו לאיתור תקלות (חלק מהמאמרים כבר נמצאים בבלוג).
מאמר זה מבוסס על הספר Network Analysis Using Wireshark שהוצאתי לפני כמה שנים, אבל רוב הנושאים שם רלבנטיים להיום:
https://www.amazon.com/Network-Analysis-Using-Wireshark-Cookbook/dp/1849517649