LFCA: למידת טיפים בסיסיים לאיתור תקלות ברשת – חלק 12

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

הבנה בסיסית של תיקון בעיות ברשת

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

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

A Recap of the TCP / IP Model

בנושא הקודם שלנו בסדרת LFCA, בחנו את מודל TCP/IP המושגי שמציג את העברת הנתונים במחשב ואת הפרוטוקולים הנמצאים בכל שכבה.

TCP/IP Layer Model

מודל מושגי חשוב נוסף הוא מודל ה- OSI (Interconnection of Open Systems) model. זהו מסגרת TCP/IP של 7 שכבות שמפרקת מערכת רשת, ותפקודי מחשוב כשכבה.

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

OSI Model

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

שכבה 1: השכבה הפיזית

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

  • כבל רשת/אתרנט שנותק
  • כבל רשת/אתרנט פגום
  • כרטיס רשת חסר או פגום

בשכבה זו, השאלות שעולות בדעת הן:

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

כדי לבדוק את מצב ממשקי הרשת שלך, הפעל את הפקודה ip:

$ ip link show
Check Network Interface Status

מהפלט לעיל, יש לנו 2 ממשקים. הממשק הראשון – lo – הוא כתובת הלולאה ובדרך כלל אינו בשימוש. הממשק הפעיל שמספק קישוריות לרשת ולאינטרנט הוא ממשק enp0s3. אנו יכולים לראות מהפלט שמצב הממשק הוא UP.

אם ממשק רשת אינו פעיל, תראה את הפלט מצב DOWN.

Network Interface Down

אם זה המצב, תוכל להפעיל את הממשק באמצעות הפקודה:

$ sudo ip link set enp0s3 up
Active Network Interface

בחלופין, תוכל להפעיל את הפקודה ifconfig המוצגת למטה.

$ sudo ifconfig enp0s3 up
$ ip link show
Enable Network Interface

רק כדי לאשר שהמחשב שלך בחר כתובת IP מהראוטר או שרת DHCP, הרץ את הפקודה ifconfig.

$ ifconfig
Check Server IP Address

כתובת ה־IPv4 מתחילה בפרמטר inet כפי שמוצג. לדוגמה, כתובת ה־IP של מערכת זו היא 192.168.2.104 עם תת־רשת או מסכה של 255.255.255.0.

$ ifconfig
Check Server IP Address

בנוסף, תוכל להריץ את הפקודה ip address כדי לבדוק את כתובת ה־IP של המערכת שלך.

$ ip address

כדי לבדוק את כתובת ה־IP של שער הברירת מחדל, הרץ את הפקודה:

$ ip route | grep default

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

Check Network Gateway

כדי לבדוק את שרתי ה־DNS שאתה משתמש בהם, הרץ את הפקודה הבאה במערכות systemd.

$ systemd-resolve --status
Check DNS Servers

A better way to check the DNS servers in use is to run the nmcli command shown

$ ( nmcli dev list || nmcli dev show ) 2>/dev/null | grep DNS
Check DNS Using nmcli Command

כפי שראית, רוב בעיות הרשת מתרחשות כאן.

שכבת 2: שכבת קישור נתונים

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

ARP אחראי לגילוי כתובות שכבת הקישור וביצוע מיפוי של כתובות IPv4 בשכבה 3 לכתובות MAC. כללית, כאשר מארח פונה לשער הברירת מחדל, קיימות סיכויים שהוא כבר מכיר את כתובת ה־IP של המארח, אך לא את כתובת ה־MAC.

הפרוטוקול ARP מחבר בין שכבת 3 ושכבת 2 על ידי תרגום של כתובות IPv4 בגודל 32 ביט לכתובות MAC בגודל 48 ביט בשכבת 2 ולהיפך.

כאשר מחשב אישי מצטרף לרשת LAN, הראוטר ( שער ברירת מחדל ) משייך לו כתובת IP לצורך זיהוי. כאשר מארח אחר שולח חבילת נתונים למחשב האישי לשער ברירת המחדל, הראוטר מבקש מ ARP לחפש את כתובת הMAC המתאימה לכתובת הIP.

לכל מערכת יש את טבלת ARP שלה. כדי לבדוק את טבלת הARP שלך, הריץ את הפקודה:

$ ip neighbor show
Check Network ARP Table

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

שכבת 3: שכבת הרשת / האינטרנט

זוהי השכבה שאיתה אתה עובד באופן בלעדי עם כתובות IPv4 שמוכרות למנהלי מערכות. היא מספקת מספר פרוטוקולים כגון ICMP ו ARP שכבר כיסינו ואחרים כגון RIP (פרוטוקול מידע לניתוב).

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

$ ifconfig
Check Server IP Address

כמו כן, ניתן להשתמש בפקודת פינג כדי לבדוק את קישוריות האינטרנט על ידי שליחת חבילת הד echo ICMP ל-DNS של גוגל. הדגל -c מציין את מספר החבילות שנשלחות.

$ ping 8.8.8.8 -c 4
Check Network Activity

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

$ traceroute google.com
Trace Network Activity

הכוכביות מציינות את הנקודה שבה החבילות נופלות או אבודות.

פקודת nslookup משמשת לשאילתת ה-DNS כדי לקבל את כתובת ה-IP המשויכת לדומיין או שם מארח. זה מתייחס כחיפוש DNS קדמי.

לדוגמה.

$ nslookup google.com

הפקודה חושפת את כתובות ה-IP המשויכות לדומיין google.com.

Server:		127.0.0.53
Address:	127.0.0.53#53

Non-authoritative answer:
Name:	google.com
Address: 142.250.192.14
Name:	google.com
Address: 2404:6800:4009:828::200e

פקודת dig היא פקודה נוספת המשמשת לשאילתת שרתי DNS הקשורים לשם דומיין. לדוגמה, כדי לשאול את שרתי ה-DNS רץ:

$ dig google.com

שכבה 4: שכבת התחבורה

שכבת התחבורה מטפלת בהעברת נתונים באמצעות TCP וUDP. רק לסיכום, TCP הוא פרוטוקול מונע חיבורים בעוד ש-UDP הוא ללא חיבור. יישומים רצים מאזינים לשקעים הכוללים פורטים וכתובות IP.

בעיות נפוצות שעשויות להתרחש כוללות חסימת פורטים של TCP שעשויים להיות נדרשים על ידי יישומים. אם יש לך שרת אינטרנט ואתה רוצה לבדוק את מצב הריצה שלו, השתמש בפקודת netstat או ss כדי לבדוק אם שירות האינטרנט מאזין לפורט 80

$ sudo netstat -pnltu | grep 80
OR
$ ss -pnltu | grep 80
Check Network Ports Status

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

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

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

שכבה 5: שכבת המושב

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

שכבה 6: שכבת ההצגה

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

שכבה 7: שכבת היישום

לבסוף, יש לנו את שכבת היישום שהיא הקרובה ביותר למשתמשים הקצה ומאפשרת להם להתקשר עם תוכנת היישום. שכבת היישום עשירה בפרוטוקולים כגון HTTP, HTTPS, POP3, IMAP, DNS, RDP, SSH, SNMP, ו-NTP כדי להזכיר רק כמה.

מסקנה

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

Source:
https://www.tecmint.com/basic-network-troubleshooting-tips/