כאשר מערכות נתקלות בבעיות, כמו שזה לעיתים קרות, עליך לדעת איך לטפל בבעיה ולשחזר אותן למצב רגיל ותפקודי. במקטע זה, אנו מתמקדים ביכולות בסיסיות של פיתרון בעיות ברשת שכל מנהל מערכות Linux צריך להיות לו.
הבנה בסיסית של תיקון בעיות ברשת
ברוב המקרים, יש פער רחב בין מנהלי הרשת ומנהלי המערכות. מנהלי המערכות החסרי ראיית רשת יאשימו בדרך כלל את מנהלי הרשת על הפסקות וזמני האי-פעילות, בעוד שמנהלי הרשת עם ידע לא מספיק בנושא השרת יפנו לעיתים קרובות את האשמה של מנהלי המערכות על כשל במכשירי קצה. עם זאת, משחק האשמות לא עוזר לפתור בעיות ובסביבת עבודה, זה יכול לגרום ליחסים מתוחים בין עמיתים.
כמנהל מערכות, הבנה בסיסית של תיקון בעיות ברשת יסייע לפתור בעיות במהירות יותר ויסייע לקדם סביבת עבודה אחידה. זה הסיבה שבגללה אנו כותבים קטע זה כדי להדגיש כמה מהטיפים לפתרון בעיות ברשת הבסיסיים שיהיו מועילים בעת אבחון בעיות הקשורות לרשת.
A Recap of the TCP / IP Model
בנושא הקודם שלנו בסדרת LFCA, בחנו את מודל TCP/IP המושגי שמציג את העברת הנתונים במחשב ואת הפרוטוקולים הנמצאים בכל שכבה.

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

אי אפשר לדבר על פתרון בעיות ברשת בלי להזכיר את מודל ה- OSI. מסיבה זו, נדריך אתכם דרך כל שכבה ונגלה את פרוטוקולי הרשת השונים המשמשים ואיך לפתור בעיות הקשורות לכל שכבה.
שכבה 1: השכבה הפיזית
זו כנראה אחת השכבות המוזנחות ביותר, ועם זאת היא אחת השכבות החיוניות ביותר הנדרשות לכל תקשורת. השכבה הפיזית כוללת את רכיבי הרשת הפיזיים של מחשב אישי כגון כרטיסי רשת, כבלי אתרנט, סיבים אופטיים וכו'. רוב הבעיות מתחילות כאן ונגרמות בעיקר על ידי:
- כבל רשת/אתרנט שנותק
- כבל רשת/אתרנט פגום
- כרטיס רשת חסר או פגום
בשכבה זו, השאלות שעולות בדעת הן:
- "האם הכבל רשת מחובר?"
- "האם קישור הרשת הפיזי פעיל?"
- "האם יש לך כתובת IP?"
- "האם אתה יכול לבצע פינג לכתובת השער המוגדרת שלך?"
- "האם אתה יכול לבצע פינג לשרת ה-DNS שלך?"
כדי לבדוק את מצב ממשקי הרשת שלך, הפעל את הפקודה ip:
$ ip link show

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

אם זה המצב, תוכל להפעיל את הממשק באמצעות הפקודה:
$ sudo ip link set enp0s3 up

בחלופין, תוכל להפעיל את הפקודה ifconfig המוצגת למטה.
$ sudo ifconfig enp0s3 up $ ip link show

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

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

בנוסף, תוכל להריץ את הפקודה ip address כדי לבדוק את כתובת ה־IP של המערכת שלך.
$ ip address
כדי לבדוק את כתובת ה־IP של שער הברירת מחדל, הרץ את הפקודה:
$ ip route | grep default
כתובת ה־IP של שער הברירת מחדל, שברוב המקרים היא שרת DHCP או ראוטר, מסומנת כפי שמוצג למטה. ברשת IP, עליך להיות מסוגל לבצע ping לשער הברירת מחדל.

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

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

כפי שראית, רוב בעיות הרשת מתרחשות כאן.
שכבת 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

כפי שניתן לראות, כתובת הMAC של הראוטר מומלאת. אם יש בעיה בפתרון, הפקודה אינה מחזירה פלט.
שכבת 3: שכבת הרשת / האינטרנט
זוהי השכבה שאיתה אתה עובד באופן בלעדי עם כתובות IPv4 שמוכרות למנהלי מערכות. היא מספקת מספר פרוטוקולים כגון ICMP ו ARP שכבר כיסינו ואחרים כגון RIP (פרוטוקול מידע לניתוב).
חלק מהבעיות הנפוצות כוללות תקלות בהגדרת המכשיר או בבעיות במכשירי רשת כגון ראוטרים וסוויצים. מקום טוב להתחיל בבדיקת תקלות הוא לוודא אם המערכת שלך בחרה בכתובת IP כך:
$ ifconfig

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

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

הכוכביות מציינות את הנקודה שבה החבילות נופלות או אבודות.
פקודת 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

לפעמים פורט עשוי להיות בשימוש על ידי שירות רץ במערכת. אם אתה רוצה ששירות אחר ישתמש בפורט הזה, ייתכן שתיאלץ להגדיר אותו להשתמש בפורט אחר.
אם עדיין יש לך בעיות, בדוק את הפיירוול וודא שהפורט שמעניין אותך לא חסום.
רוב הפתרון של בעיות יתרחש לאורך ארבע שכבות אלו. מעט מאוד פתרון בעיות מתבצע בשכבות המושב, ההצגה והיישום. זה מכיוון שהן משחקות תפקיד פחות פעיל בתפקוד של רשת. עם זאת, בואו נעבור בקצרה על מה שקורה בשכבות אלו.
שכבה 5: שכבת המושב
שכבת המושב פותחת ערוצי תקשורת המכונים מושבים ומבטיחה שהם נשארים פתוחים במהלך העברת הנתונים. היא גם סוגרת אותם לאחר שהתקשורת מסתיימת.
שכבה 6: שכבת ההצגה
ידועה גם כשכבת התחביר, שכבת ההצגה מסנתזת נתונים לשימוש של שכבת היישום. היא מגדירה איך התקנים צריכים להצפין, לקודד ולדחוס נתונים עם המטרה להבטיח שהם יתקבלו כראוי בקצה השני.
שכבה 7: שכבת היישום
לבסוף, יש לנו את שכבת היישום שהיא הקרובה ביותר למשתמשים הקצה ומאפשרת להם להתקשר עם תוכנת היישום. שכבת היישום עשירה בפרוטוקולים כגון HTTP, HTTPS, POP3, IMAP, DNS, RDP, SSH, SNMP, ו-NTP כדי להזכיר רק כמה.
מסקנה
כאשר מפענחים בעיה במערכת לינוקס, השיטה המשולבת באמצעות דגם OSI מומלצת ביותר, החל מהשכבה התחתונה. זה נותן לך הבנה לגבי מה לא עובד כראוי ועוזר לך להתמקד בבעיה.
Source:
https://www.tecmint.com/basic-network-troubleshooting-tips/