PAT

PAT הינו ראשי התיבות של Port Address Translation. במצב זה אנחנו מתרגמים מספר כתובות לא חוקיות לכתובת חוקית אחת. במקומות אחדים PAT נקרא גם NAPT, Hide NAT או overload. בכל מקרה מדובר בשיטה שמתרגת מספר כתובות לא חוקיות לכתובת חוקית אחת (many to one).

להלן דוגמה לרשת ביתית שמשתמשת ב-PAT (לחצו על התמונה להגדלה)

נסביר את מה שאנחנו רואים….
לנתב שלנו יש בעצם שני כרטיסי רשת: אחד חיצוני שמדבר עם האינטרנט באמצעות כתובת ה-IP החוקית (88.104.87.4) וכרטיס רשת נוסף שמדבר עם הרשת הפנימית באמצעות כתובת לא חוקית (192.168.0.254).
המחשבים ברשת הפנימית שלנו רוצים לצאת לאינטרנט (לגלוש ב-ynet למשל) אך אין ברשותנו את התקציב לקנות כתובות IP לכל מחשב. כדי לפתור את הבעיה, ניתן להגיד לנתב שלנו שיבצע תרגום של כתובות. כיצד זה יתבצע?
ראשית, המחשב שלנו קיבל כתובת משרת ה-DHCP שנמצא בנתב (למשל 192.168.0.100). שרת ה-DHCP לימד את המחשב שלנו שכדי לצאת לאינטרנט הם צריכים ללכת לנתב שכתובתו הפנימית, בתוך הרשת שלנו בבית, היא 192.168.0.254. הגדרה זו נקראת גם default gateway ובעברית פשוטה אומרת "השער החוצה" . כעת, כשאנחנו מקלידים את הכתובת של ynet (וכדי לפשט את הבעיה נתעלם מהסיפור של ה-DNS), מערכת ההפעלה שלנו פותחת פורט רנדומלי (למשל 1255) ופונה לנתב כדי שיספק לה את ynet בפורט של גלישה (פורט 80). אם נציג זאת בצורה אחרת:

מבחינת המחשב
כתובת המקור היא 192.168.0.100
פורט המקור הוא 1255
כתובת היעד היא ynet.co.il
פורט היעד הוא 80
הפניה לynet מכילה את הבקשה "תן לי את הדף הראשי" (get)

המידע הזה מגיע לנתב. גם לנתב יש default gateway והוא האינטרנט (בפשטות). כיוון שאמרנו לנתב לבצע NAT, הוא יבצע תרגום של הכתובת הלא חוקית של המחשב (192.168.0.100) לכתובת החוקית שספקית האינטרנט נתנה לו (88.104.87.4). מה הכוונה בתרגום? הנתב יוציא לאינטרנט את הבקשה של המחשב שלנו, כאילו הוא בעצמו ביקש לצפות ב-ynet (ולא המחשב שלנו). כאשר הוא יפנה ל-ynet, הוא יחליף את כתובת המקור מ-192.168.0.100 לכתובת החוקית שהיא 88.104.87.4. כך למשל תיראה טבלת ה-NAT בנתב:

טבלאת ה-NAT בנתב
תתיחס לכתובת המקור בצורה הבאה:
192.168.0.100:1255 = 88.104.87.4:1255
כתובת היעד לא משתנה והיא עדיין ynet.co.il:80

כאשר ynet יקבלו את הבקשה, הם לא יידעו על התרגום. בעצם, הם לא יידעו שמאחורי הכתובת 88.104.87.4 יש רשת בייתית והם לא יידעו שעומד מולם נתב. מבחינת ynet הם יחשבו שיש מחשב בודד, בכתובת 88.104.87.4, אשר רוצה לגלוש לאתר שלהם [לכן למשל צ'קפוינט קוראים ל-PAT בשם Hide NAT – כיוון שהוא מסתיר את הרשת].

כעת, נסתכל מה קורה מהכיוון הנגדי.

ynet מקבלים אליהם בפורט 80 בקשה. הבקשה הגיע מ-84.104.87.4 בפורט 1255. ynet מחליטים לשלוח את עמוד החדשות לנתב שלנו.

מבחינת ynet
כתובת המקור היא ynet.co.il
פורט המקור הוא פורט 80 (גלישה)
כתובת היעד היא 88.104.87.4
פורט היעד הוא 1255

דף האינטרנט נשלח והוא מגיע לנתב. איך הנתב יודע להעביר את דף האינטרנט למחשב שלנו? כאשר ביקשנו את דף האינטרנט נוצרה טבלת ה-NAT. בטבלה רשום לנתב כי הכתובת 88.104.87.4 בפורט 1255 שווה לכתובת 192.168.0.100 בפורט 1255. כלומר, כל תעבורה שמגיעה לנתב מהאינטרנט בפורט 1255, יש להפנות אותה למחשב שלנו (192.168.0.100) בפורט 1255.

מה יקרה אם שני המחשבים ברשת (192.168.0.100 וגם 192.168.0.200) יירצו להגיע ל-ynet בפורט מקור 1255? כיצד הנתב שלנו יידע להבדיל בין המחשבים? הנתב בעצם יבנה את הטבלה הבאה:

192.168.0.100:1255 = 88.104.87.4:1255
192.168.0.200:1255 = 88.104.87.4:3030

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

ניקח דוגמה נוספת ונסתכל על טבלת NAT הלקוחה מתוך נתב סיסקו (לחץ להגדיל):
nat table
כדי לקרוא אותה בצורה ברורה יותר, ראשית יש להסתכל על העמודה prot (מייצגת פרוטוקול TCP או UDP), לאחר מכן נסתכל על העמודה Inside local (מייצגת את המחשבים ברשת הלא חוקית שלנו), אח"כ Inside Global (מייצג את הכתובת החוקית-החיצונית של הנתב).

אח"כ ניתן להסתכל גם על עמודות outside. בעיקרון ניתן גם לתרגם את היעד אולם כדי לפשט את העניינים אנחנו פשוט נתעלם מההבדלים בין העמודות הימניות. כדי להבין את התרגום ש-PAT מבצע, נתמקד ונשווה בין עמודה Inside local ל-inside global.

ואכן, רק מהטבלה הזו ניתן ללמוד המון על הרשת של הנתב. מה אפשר ללמוד? ראשית, ניתן ללמוד שיש שני מחשבים בכתובות לא חוקיות (10.1.1.1 ו-10.1.1.2). הכתובת החיצונית של הנתב באינטרנט היא 88.104.86.17. שנית, ניתן לראות כי שני המחשבים שלנו פונים לשרת הדואר של בזק בינלאומי (192.115.106.28).
שימו לב כי המחשבים ברשת שלנו יוצאים מ"פורט מקור" רנדומלי (3212, 3213 ו-38913) ופונים ל"פורט היעד" 110. פורט 110 הוא פורט שמשמש לקבלה של דואר אלקטרוני. הנתב שלנו מתרגם את פורט המקור אחד-לאחד ומייחס את התעבורה כאילו היא יצאה ממנו, מהנתב עצמו, כאילו הנתב שלנו בודק דואר ולא המחשבים שהנתב מייצג. בשורה התחתונה, מהטבלה ניתן ללמוד גם כי שני המחשבים שלנו בודקים דואר ברגעים אלו ממש 🙂

ל-PAT יש יתרונות רבים אך גם חסרונות. port forward נותן מענה לאחד החסרונות הללו.

הנושא הבא הוא Dynamic NAT ו-Static NAT. אפשרויות אלה אינם נפוצות ברשת ביתית והפרק בנושא הוא למתקדמים. ניתן לדלג עליו וללכת ישירות ל-Port forward.

<<לעמוד הקודם              ראשי פרקים            Dynamic NAT ו-Static NAT>>

אל תסבך אותי, דלג ישירות ל-Port forward>>

11 תגובות to “PAT”

  1. משתמש אנונימי (לא מזוהה) Says:

    תודה..

  2. mymodemsux2 Says:

    אהה… בבקשה?

  3. יונתן Says:

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

    יישר כח -כל הכבוד

  4. mario Says:

    אז מה ההבדל בעצם בן NAT ל PAT ?

  5. mymodemsux2 Says:

    static NAT, dynamic NAT ו-PAT הם סוגים שונים של NAT.

    NAT הוא השם הכללי של הטכנולוגיה. PAT הוא יישום ספציפי של NAT בדיוק כמו ש-static NAT ו-Dynamic NAT הם יישומים ספציפים של אותה טכנולוגיה ממש.

    NAT הוא "תרגום כתובות" – איך בדיוק עושים את זה? תלוי בצורך. עבור כל צורך שונה יש יישום שונה של NAT.

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

    אני מציע לך לדפדף אחורה ולקרוא מה ההבדלים בין PAT לשאר היישומים.

  6. ירון Says:

    אני מצטרף ליונתן. מאמרים מצויינים!

  7. נטלי Says:

    אתה צריך להיות מורה..
    אתה מסביר ממש טוב.

  8. משתמש אנונימי (לא מזוהה) Says:

    תודה רבה .

  9. משתמש אנונימי (לא מזוהה) Says:

    אחינו אתה אלוף…. תודה על המאמרים המדהימים בפשטותם וברמה הגבוהה..

    תודה.

  10. משתמש אנונימי (לא מזוהה) Says:

    תודה רבה על מאמרים מעולים. אתה יודע אולי את הפקודה ב Linux שמציגה את טבלת NAT?

להשאיר תגובה

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

הלוגו של WordPress.com

אתה מגיב באמצעות חשבון WordPress.com שלך. לצאת מהמערכת / לשנות )

תמונת Twitter

אתה מגיב באמצעות חשבון Twitter שלך. לצאת מהמערכת / לשנות )

תמונת Facebook

אתה מגיב באמצעות חשבון Facebook שלך. לצאת מהמערכת / לשנות )

תמונת גוגל פלוס

אתה מגיב באמצעות חשבון Google+ שלך. לצאת מהמערכת / לשנות )

מתחבר ל-%s


%d בלוגרים אהבו את זה: