אז ככה, נתחיל,
אתה קצת בילבלת פה בין שני מושגים.
כאשר אתה ניגש מרשת חיצונית, אל רשת פנימית בפורט מסויים ומופנה אל המחשב שאליו ביצעת את ההתקשרות (באמצעות הפניית פורטים בראוטר), זה למעשה נקרא Port Forwarding ואין שום קשר ל NAT.התפקיד של NAT הוא למעשה כמו שאמרו מעליי, לקבץ טווח כתובות IP (הכתובת הפנימיות שלך) לכתובת IP אחת (הכתובת החיצונית שלך).
איך זה נעשה אתה בטח שואל את עצמך? יופי, התשובה היא:
כאשר אתה שולח פאקט של מידע, הפאקט מחולק למס' חלקים,
SOURCE_IP | DESTINATION_IP | PORT | DATA
---(בטוח יש עוד מידע אבל נכון לרגע זה הוא אינו רלוונטי)---
כאשר אתה פותח דפדפן ויוצר תקשורת מול אתר אינטרנט לצורך העניין, הפרטים הללו מתמלאים:
SOURCE_IP: כתובת הIP הפנימית שלך
DESTINATION_IP: כתובת ה IP של אתר האינטרנט אליו אתה פונה
PORT: הפורט בו אתה מעוניין ליצור את התקשורת
DATA: רשום שם קוד של "אני מבקש לצפות באתר X עם כל התוכן........."
הפאקט הזה יוצא מהמחשב שלך אל הראוטר שלך, בראוטר שלך מופעל NAT? יופי!
הראוטר משנה את הפאקט לנתונים הבאים:
SOURCE_IP: כתובת ה IP -החיצונית- שלך
DESTINATION_IP: כתובת ה IP של אתר האינטרנט אליו אתה פונה (נשאר ללא שינוי)
PORT: הפורט בו אתה מעוניין ליצור את התקשורת (נשאר ללא שינוי)
DATA: רשום שם קוד של "אני מבקש לצפות באתר X עם כל התוכן........." (נשאר ללא שינוי)
והפאקט נשלח אל אתר האינטרנט..
תפקיד ה NAT הוא לבצע את השינוי הזה בכל הפאקטים שאתה שולח, זה למעשה ה"תירגום" שהוא מבצע.
במידה ותבטל את ה NAT בראוטר שלך, הפאקטים יצאו פשוט מאד עם SOURCE_IP פנימי.
ספקיות מסויימות, אתרי אינטרנט מסויים ובכלל, שרתים מסויימים, עלולים שלא לענות על בקשות שמגיעות מכתובות כאלה (הגיוני, אחרת כולם ידברו ככה ולא יידעו לאיזו בקשה לענות..).
תפקיד נוסף שיש ל NAT, הוא לבצע רישום של כל הפאקטים האלה..
מחשב א' ברשת ביקש את גוגל? ה NAT מוסיף את המידע הזה לטבלה שאומרת:
"מחשב א' פנה אליי וכתובת ה IP שלו היא ***, הוא ביקש ליצור תקשורת מול גוגל (כתובת IP של גוגל) בפורט ***" ושולח את הבקשה לגודל.
כאשר גוגל מחזיר תשובה, ה NAT בודק את הפאקט שהתקבל מגוגל, מבין למי הוא צריך להחזיר אותו בקורולציה עם הטבלה שלו, ומחזיר את התשובה למחשב א', את אתר גוגל.
בצורה הזו, אתה יכול לגלוש מ-4 מחשבים, ל4 אתרים שונים בו זמנית ולא לקבל בטעות תשובה שהייתה מיועדת למחשב אחר..
כמובן שאפשר לעשות Drill Down הרבה יותר רציני.. אבל זה מצריך הרבה יותר ידע (שלא נראה לי שיש לי) והרבה יותר זמן (שבטוח אין לי) ושיחה בע"פ ולא ע"ג הרשת כי זה מאמר שלם שצריך לכתוב..
מקווה שהצלחתי להסביר את עצמי מספיק טוב :-)