[Articles/NAT/includes/inc_head.htm]

NetCHEIF Articles

  דף הבית | פורום | בלוג | צור קשר | חיפוש | אודות

 

עקרון הפעולה של נתב (ראוטר, router) בייתי

המידע במדריך זה מבוסס בחלקו על מידע המופיע בשרשורים של shed ו-rokey33 בפורום רשתות ופס רחב בתפוז.

 

נתב -- הגדרה

נתב (המילה המקבילה באנגלית היא ראוטר -- router) בייתי הוא התקן חומרה המאפשר לשתף חיבור אינטרנט אחד בין המחשבים ברשת התקשורת.  הנתב כולל בתוכו גם מתג (SWITCH) שבאמצעותו ניתן לחבר מספר מחשבים האחד לשני, לצורך בנית רשת מקומית ושיתוף משאבים בין כל המחשבים. 

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

מבנה סכמטי של רשת המבוססת על נתב ניתן לראות בשרטוט הבא.

 

מנגנון ה-NAT

המנגנון הבסיסי המאפשר לנתב לשתף חיבור אינטרנט בודד בין כל המחשבים ברשת נקרא NAT -- ראשי תיבות של Network Address Translation.

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

 

ערוץ תקשורת (PORT)

פורט (PORT) הוא מספר בין 0 ל- 65,535 המזהה את ערוץ התקשורת הנפתח על ידי אפליקציה אחת המחברת בין שני מחשבים.  כלומר, כל התקשורת של האפליקציה מתבצעת תוך שימוש בפורט הייעודי ומספרו נרשם בכל אחת מהכותרות (headers) של חבילת המידע (packet) העוברת בין שני המחשבים בהקשר של אותה אפליקציה.

רשימה לדוגמא של פורטים סטנדרטיים מופיעה להלן:

פורט

יישום

שימוש

21

FTP

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

23

Telnet

תוכנה לניהול ושליטה על התקני רשת

25

SMTP

שליחת דואר אלקטרוני

80

HTTP

גלישה בדפי אינטרנט

110

POP3

קבלת דואר אלקטרוני

139

NETBIOS

ברשתות מבוססות Windows, משמש להעברת קבצים בין המחשבים

443

HTTPS

גלישה מאובטחת ברשת האינטרנט

 

 

 

 

 

 

 

 

 

 

 

דוגמאות

על מנת להבין כיצד פועל מנגנון ה-NAT וכיצד מעורבים בתהליך זה ערוצי התקשורת (PORT), נביא 3 דוגמאות.  לצורך כל הדוגמאות נניח רשת שבה יש שני מחשבים (א' ו-ב') ונתב וניבחן מה קורה בכל אחד מהמקרים הבאים:

1.  מחשב א' רוצה לגלוש לאתר של yahoo.

2. מחשב א' ומחשב ב' רוצים לגלוש ל-yahoo בו זמנית.

3.  מחשב א' מפעיל תוכנת שרת  (או במילים אחרות: מה עושים עם חבילות מידע שאיננו מצפים להן -- unsolicited traffic).

 

דוגמא 1

מחשב א' מעוניין לגלוש לאתר של yahoo.  מאפייני הכותרת (header) של חבילת המידע (packet) יהיו:

  • SRC MAC -- כתובת החומרה (MAC address) של כרטיס הרשת  במחשב א'.

  • DST MAC -- כתובת החומרה (MAC address) של הנתב.

  • SRC IP - כתובת ה-IP של מחשב א'.

  • DST IP - כתובת ה-IP של האתר של yahoo.

חבילת המידע (packet) הנ"ל מגיעה אל הנתב.  לפני שידור החבילה (packet) אל רשת האינטרנט, הנתב מחליף את השדות הבאים:

  • SRC IP -- משתנה לכתובת ה-IP החיצונית של הנתב.

  • SRC MAC -- משתנה לכתובת החומרה (MAC Address) של הנתב (הרגל החיצונית המחוברת אל רשת האינטרנט).

  • DST MAC -- משתנה לכתובת החומרה (MAC Address) של הראוטר שיושב אצל ה-ISP.

אין שינוי בשאר השדות.

בנוסף, הראוטר רושם בטבלת הניתוב המאוכסנת בזיכרון שלו כי מחשב א' פנה מכתובת X (הכתובת הפנימית של המחשב), דרך פורט Y, לכתובת של האתר של yahoo.

כאשר תחזור התשובה מהאתר של yahoo, היא תגיע לראוטר עם הנתונים הבאים:

  • SRC MAC -- כתובת החומרה (MAC Address) של הראוטר של ה-ISP.

  • DST MAC -- כתובת החומרה (MAC Address) של הנתב.

  • SRC IP -- כתובת השרת של yahoo.

  • DST IP -- הכתובת החיצונית של הנתב.

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

SRC MAC -- כתובת החומרה (MAC Address) של הנתב.

DST MAC -- כתובת החומרה (MAC Address) של מחשב א'.

SRC IP --  הכתובת של האתר של yahoo.

DST IP -- הכתובת הפנימית של מחשב א' (כתובת X).

כך למעשה נראית פעולת הניתוב (שינוי כתובות החומרה -- MAC) והתרגום המתבצע על ידי מנגנון ה-NAT.

 

דוגמא 2

במקרה זה, שני מחשבים (א' ו-ב') פונים ביחד לאתר של yahoo.

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

לפי הפורט שהאתר של yahoo עונה אליו -- הנתב ידע לאיזה מחשב להפנות את התשובה.

לפעולה הזו קוראים PAT - Port Address Translation.

 

דוגמא 3

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

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

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

לפעולה הזו קוראים "פתיחת פורטים" ובאנגלית Port Forwarding.

 

הערות נוספות

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

הערה 2 -- כדי לדעת מה הכתובת של האתר של yahoo המחשב בודק קודם כל לוקאלית האם הוא מכיר את yahoo (למשל בקובץ host).  במידה ולא -- הוא שולח בקשת DNS לשרת מוגדר מראש.  לצורך העניין תעבורת ה-DNS תיראה בדיוק אותו דבר, למעט העובדה שהכותרת (header) של חבילת המידע (packet) שיוציא המחשב יהיה עם DST IP של שרת ה-DNS.

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