
הטקסט המלא של הדקות הראשונות בהרצאה «פרוטוקול ARP למתקדמים» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכם היום נדבר קצת על פרוטוקול ARP על ה-address resolution protocol בהרצאה הזאת נדון בשימוש של פרוטוקול ARP למה בכלל צריך אותו ונדבר על איך פרוטוקול ARP עובד. אז בואו נתחיל קודם כל אני רוצה להזכיר לכם שבמהלך ההרצאות הקודמות דיברנו על מודל OSI הנה שבע השכבות שלנו 7654321 והתמקדנו בשכבה 2 אם אתם זוכרים בוודאי עם פרוטוקול ethernet וגם דיברנו באחת ההרצאות
על שכבה 3 ופה התמקדנו בפרוטוקול IP. ואתם בוודאי זוכרים שלמחשבים ברשת שלנו יש גם כתובת ethernet שנקראת גם כתובת Mac, זו הכתובת הפיזית שצרובה לכרטיס הרשת של המחשבים ובנוסף הם מקבלים כתובת IP. אותו כרטיס רשת שעליו יש את כתובת המאק מקבל כתובת IP בין אם מי שנתן את הכתובת זה האדמיניסטרטור
שבא והקליד את הכתובת, או שהכתובת חולקה באמצעות שרת DHCP שמחלק כתובות IP באופן אוטומטי. הנושא שאנחנו מדברים עליו היום, ARP, כל הגודל הזה, נכנס איפשהו בין שתי השכבות האלה.
הוא נכנס כאן בין שכבה 2 לשכבה 3. איך זה עובד? בואו נראה בדיוק. אז לצורך העניין יש לנו כאן טופולוגיה. אני רוצה להסביר רגע אחד שהטופולוגיה הזאת מבוצעת באמצעות תוכנה שנקראת GNS3 והיא סימולטור של התקני רשת.
גם פאקט רייסר הוא סימולטור של התקני רשת, הפעם בחרתי להשתמש ב-GNS3. זו תוכנה חינמית, ניתן להוריד אותה ואולי פעם גם נסביר איך בדיוק משתמשים בה.
ובטופולוגיה הזאת ממומשים לי שבעה מחשבי PC שנקראים VPC1 עד VPC7, יש לי שני סוויצ'ים וראוטר אחד. כל התקנים האלה כרגע עובדים חי מבחינתי, זאת אומרת שאני יכול לקפוץ לכאן, וכאן אתם רואים את ה-VPC שלי, וכיוון שמופיע פה מספר 4, מדובר ב-VPC מספר 4, ואם אני רוצה לעבור ל-VPC אחר,
אז הנה אני עושה 1, ועכשיו אני ב-VPC 1. בנוסף לאלה, יש לי קשר עם הסוויצ'ים שלי, זה סוויץ' 2, ועם הראוטר שלי אם אני לא טועה, ראוטר אחד כל ההתקנים האלה חיים ברשת אז הטופולוגיה שאתם רואים כאן היא טופולוגיה חיה ואנחנו נשתמש בה ונבצע קצת קפצ'רים זאת אומרת אנחנו נפעיל
ווייר שארק ונראה איך בדיוק המידע נוסע ברשת נוכל לראות ארפים וכאלה אז בואו נתמקד רגע בשימוש של פרוטוקול ארפ כפי שאמרתי קודם פרוטוקול ארפ נכנס בין שכבה בין שכבה 3 לשכבה 2 של OSI פה בדרך באמצע יש לנו את פרוטוקול ויש ויכוח האם הוא שייך לשכבה 3 או שכבה 2, אפשר לסגור שהוא שייך לשכבה 2.5. ומה שפרוטוקול
ARP עושה, מאוד מאוד בפשטות, הוא עושה דבר כזה. בואו נתמקד שנייה בווירצ'ואל PC מספר 1, במחשב מספר 1 שלנו כאן, ונגיד שאנחנו פה ברשת שלו והוא רוצה לשלוח הודעה לחבר שלו שנמצא ברשת, נגיד VPC מספר 2 לצורך העניין, מספר 2.
VPC1 רוצה לדבר עם VPC2. אנחנו נשתמש בהודעות פינג כדי לדמות תעבורה ברשת. אז מה VPC1 יודע על VPC2? הוא יודע של-VPC2 יש כתובת IP, והכתובת IP של VPC2 היא 10.0.2. ו-VPC1 בשביל לשלוח הודעה ל-VPC2 צריך לפנות לכתובת הזאת.
אז עכשיו VPC2 נגיד פותח את השורת פקודה שלו, הנה היא כאן יפה, והוא כותב פינג 10.0.0.2 ולוחץ Enter ובאותו רגע ל-VPC1 יש בעיה.
הוא יודע שהוא צריך להוציא משהו פה לרשת, הוא יודע שהוא מחפש את מחשב 10.0.0.2 אבל אין לו מושג מי מבין המחשבים שיושבים איתו ברשת ובכלל זה כוללים גם את הראוטר קיבל את כתובת ה-IP 10.0.0.2, VPC1 לא יודע את זה.
הוא בכלל לא יודע אם יש פה מישהו שנקרא 10.0.0.2, הוא לא יודע מי עוד חבר איתו ברשת. ההודעה הזאת שצריכה לצאת החוצה עם כתובת ה-IP הזאת היא אולי תצא לרשת אבל איך היא תנותב, איך היא תגיע למחשב הנכון, איך היא תדע להגיע ל-VPC 2 ולא ל-VPC 4 או ל-VPC 3 או לראוטר.
אז אתם אומרים, כן בטח באמצעות כתובת ה-IP, הרי הכתובת ה-IP הזאת מחוברת ל-VPC 2. אז אם נזכר שנייה לגבי כתובות IP, כתובות IP מוצמדות לכרטיס רשת, ובמקרה הזה, כרטיס Ethernet, נכון?
כל המחשבים האלה יושבים ברשת האתרנט. וכרטיסי האתרנט, יש להם עוד כתובת אחת, ואני מזכיר לכם, הלוא היא כתובת ה-MAC. לכל אחד מהמחשבים כאן, כל אחד מהמחשבים כאן, כולל הראוטר, יש, בנוסף לכתובת ה-IP שמוקצה לו, בנוסף לכתובת ה-IP האלה, גם כתובות Mac שצרובות לכרטיס הרשת שלנו.
והן צרובות, והן ייחודיות, והן לא משתנות, והן אלה שתעזורנה לנו להעביר או תעזור לא לנו תעזור ל-VPC 1 להעביר את הפינג שלו ל-VPC 2.
איך? ובכן ככה: VPC 1 צריך ללמוד מ-VPC 2 מה כתובת המאק שלו. כרגע הוא לא יודע אותה, הוא יודע את כתובת ה-IP.
אנחנו רואים בסרטוט שלנו, אנחנו יודעים של-VPC 2 קוראים 10.0.0.2, אבל אין לנו מושג, לא רק לנו, גם למחשב, אין מושג מהי כתובת המאק של VPC 2. ולכן מה שהוא צריך לעשות זה לברר את העניין הזה.
ופה בדיוק נכנס לתמונה פרוטוקול ARP או Address Resolution Protocol. באמצעות פרוטוקול ARP המערכת שהולכת לשלוח את הפינג הזה מוציאה לתוך הרשת משהו שנקרא ARP Request או בקשת ARP.
וזו בקשה שהיא Broadcast. Broadcast. אם אתם זוכרים מה זה Broadcast, Broadcast זה הודעה שכל המשתתפים ברשת שומעים אותה.
וכאילו שהמחשב הזה הולך לצעוק החוצה לרשת את השאלה הבאה, או יגיד ככה, היי, יש פה מישהו עם IP 10.0.0.2, האם קיים פה מישהו כזה?
אם כן, תעשה ג'סטה, שלח לי בבקשה את כתובת המאק שלך. אני רוצה להעביר לך מידע ואני צריך את הכתובת הזאת כדי להגיע אליך.
וההודעה הזאת תצא מהמחשב הזה ותגיע לכאן ותגיע לכאן ותגיע לכאן ותגיע גם לראוטר, וכשהראוטר יקבל אותה, הוא יחסום אותם מלעבור לרשת השנייה שהרי ראוטרים חוסמים ברודקאסטים אם אתם זוכרים מסרטונים קודמים וכל אחד מהמחשבים האלה כולל הראוטר יפתח את ההודעה הזאת וישאל את עצמו את מי מחפש הבחור הוא מחפש את 10.0.0.2 האם זה
אני לא האם זה אני לא והמחשב vpc2 שקיבל את הכתובת 10.0.0.2 יפתח את ההודעה הזאת ויגיד אה מישהו רוצה את המאק שלי אין שום בעיה אני אשלח לו בוא נגיד שזה 0 0 0 0 E1 2 7 9 1 F3 נגיד שזה כתובת המאקס זוכרים 12 ספרות טקסט דצימליות יש פה 1 2 3 4 5 6 7 8 9 10 11 12 כן זה כתובת המאקס שלי אלה 48 הביטים שמזהים אותי באופן חד ואני אשלח אותם חזרה למחשב שביקש לדעת את המידע הזה.
ועכשיו כשהוא ינסה לשלוח את הפינג, הרי הפינג אם אתם זוכרים יוצא בשכבה 3 של ה-OSI, כדי שיוכל לבנות פריים בשכבה 2 של ה-OSI ה-PC VPC 1 ייקח את הפאקט שלנו עם הפינג וירכיב עליה את כתובת המאק ככה, נשים את זה פה, יוסיף לזה את כתובת המאק שהוא קיבל בתשובה לבקשה שלו ואז ישלח את כל העניין הזה לרשת.
בואו ננקה כאן שנייה. עכשיו, ההודעה תצא אם הכתובת Mac היא תגיע לסוויץ'. הסוויץ' משתמש בכתובות ה-Mac כדי להגיע למחשב הנכון ברשת, הוא יסתכל ויראה האם הוא מכיר את הכתובת Mac של VPC 2, ויסתכל בטבלת ה-Mac שלו, אם אתם זוכרים, איך עובד סוויץ', ובמידה והוא יאתר את
כתובת ה-Mac בטבלת ה-Mac שלו, הוא יעביר את ההודעה באמצעות כתובת ה-Mac ל-VPC 2. וכך, מחשב VPC 1 יכול להעביר מידע ל-VPC 2 באמצעות כתובת ה-IP שלו ולחקור באמצעות פרוטוקול ARP מה היא כתובת המאק שלו.
עכשיו בואו נראה איך זה עובד. אז כדי לראות איך שזה עובד אני אעבור לטופולוגיה חיה ואצא מהשקופית, זה בעצם אותה טופולוגיה, אנחנו בתוך GNS עכשיו ואנחנו ננסה להעביר מידע מ-VPC1 ל-VPC2.
אנחנו נעשה את זה בזמן שאנחנו נעשה לכידה של התעבורה ברשת, נעשה קאפצ'ר באמצעות ווייר שארק לכל המידע שרץ ברשת, אנחנו נראה את זה עובר בזמן אמת כאן בצד וממש תוכלו לראות גם את בקשת ה-ARP וגם את התשובה של ה-ARP וגם את הפינגים.
אז בואו נראה את זה קורה. אני הולך עכשיו לפה, אני פה ב-VPC 1, נכון? בואו נסתכל שנייה על ה-IP שלו, אנחנו נגיד לו show IP, הנה, VPC 1 קיבל את ה-IP 10.0.0.1 עם מס של 24 ביט, כלומר 2.5.5, 2.5.5, 2.5.5.0.
זה הגייטווי שלו, שער היציאה מהרשת, וכאן אנחנו רואים את כתובת המאק שלו. הפקודה הזאת שקולה ב-show IP לפקודה IP config במחשב Windows, כיוון ש-VPC הוא לא מחשב אמיתי, הוא מחשב וירטואלי, הפקודות שלו טיפה שונות, אבל מי שרוצה לברר את כתובת ה-IP שלו יעשה IP config, מחשב הווינדוס שלו ויוכל לראות את ה-IP אדרס
שלו ואת ה-Sublet Mask שלו, שבעצם זה המקבילה למה שאנחנו רואים כאן. בנוסף, אני יכול להגיד ל-VPC1 שיעשה show ARP, שיראה לי, סליחה, אני יכול להגיד לו גם סתם ARP, שיראה לי את טבלת ה-ARP שלו, כלומר, הטבלה שבה הוא שומר את הרשומות של כתובות
ה-MAC מול כתובות ה-IP של המחשבים ברשת. אם היינו עושים את זה במחשב Windows, הייתי אומר לו ARP-A הייתי רואה שלמחשב שלי יש טבלת ARP ובטבלה מופיעים מחשבים עם כתובות IP וכתובות המאק שלהם בהצמדה זאת אומרת המחשב שלי כנראה ניהל איזושהי שיחה עם הראוטר שלי וזה כתובת המאק של הראוטר שלי וניהל איזושהי שיחה עם המדפסת שלי וזה כתובת המאק של המדפסת שלי וכאן
יש את כתובת המאק של הברודקאסט של הרשת וכתובות מאק של מולטי קאסטים אנחנו יכולים לראות את כל זה כאן. ראינו שב-VPC שלנו, כיוון שזה הרבה יותר פשוט מאשר מחשב אמיתי, אנחנו מקבלים ב-ARP טייבל שלנו מעט מאוד מידע, וכרגע ה-ARP טייבל שלנו ריק.
וה-CAPTURE שלנו עובד. אז מה שאנחנו הולכים לעשות עכשיו, אני אזיז את זה טיפה לפה, אני אשלח פינג ל-1002. כרגע ה-VPC שלי לא יודע מה כתובת ה-MAC של VPC 002. אם הוא היה יודע, היא הייתה מופיעה כאן.
בטבלת הארפ שלו והיא לא מופיעה וכיוון שכך הוא יצטרך לבצע שאילתת ארפ, ארפ ריקווסט ואנחנו נראה את הריקווסט הזה נתפס פה בקפצ'ר של הווייל שארק אז אני עושה אנטר והנה זה קורה פינגים עוברים הסתיימו אוקיי vpc1 שלח חמישה פינגים אני רק אעצור את הקפצ'ר שנייה נעצור אותו ונחזור לכאן אז בואו נסתכל רגע על הדבר הזה ונבין מה אנחנו רואים כאן
קודם כל ההודעה הראשונה שיצאה לרשת ההודעה הראשונה שיצאה מ-VPC 1 היא הודעת ברודקאסט. פה אנחנו רואים את הכתובת Mac שלנו. אם נסתכל רגע פה ואנחנו נראה שה-Mac שלנו הוא 66-68-00, אנחנו רואים את זה פה 66-68, החלק הראשון הלך לעניין הזה של הפרייבט פה.
ואנחנו רואים שזו הודעת ברודקאסט, פרוטוקול שלנו הוא ARP, ומה שהוא מבקש זה לדעת למי יש את 10.0.0.2 למי יש את המאק של 10.0.0.2 תודיע בבקשה ל-10.0.0.1.
ממש בקשת ארפ קלאסית. אנחנו יכולים באמצעות ווארשרק להיכנס לעומק לתוך ההודעה הזאת ולראות בדיוק מה מרכיב אותה. אז קודם כל יש לנו כאן פריים אתרנט. הגודל שלו הוא 64 בייטים, זה אומר שיש לנו 64, סליחה בואו נחזור רגע לכאן, 64 קבוצות כאלה של 8 ביטים, בייט אחד זה שמונה ביטים כאן יש אחד שתיים שלוש ארבע חמש שש שבע
שמונה וכאן יש אחד שתיים שלוש ארבע חמש שש שבע שמונה כלומר שמונה כפול שמונה שישים וארבע בייטים על הכבל מה שאומר חמש מאות ושתים עשרה ביטים זה מה שנשלח בבקשת הארבע הזאת זה כל המידע שנשלח אם אנחנו נסתכל על הפריים אתרנט עצמו אנחנו נראה שלפריים אתרנט יש שני חלקים פה בעניין הזה זה החלק
הקדמי שלו ההדר שבו מופיעות כתובות המאק שלנו אם ניכנס כאן בפנים אנחנו ממש ממש נוכל לראות את הכתובת Broadcast, זה ה-Destination שלנו, וזה ה-Source שלנו.
הנה 48 הביטים שאומרים Broadcast, וכפי שאתם זוכרים, Broadcast באתרנט זה אומר כל הביטים דולקים, ממש אפשר לראות את זה כאן.