עודכן לפני חודש
כל מכשיר בביתך — מחשב נייד, טלפון, טלוויזיה חכמה, קונסולת משחקים — מופיע בעולם החיצון כמכונה אחת. זה שקר שהנתב שלך מספר בשמך. NAT הוא הדרך שבה הוא מצליח לעשות זאת.
בעיה שלא יכלה לחכות
IPv4 נתן לנו 4.3 מיליארד כתובות לכל האינטרנט. בתחילת שנות ה-90, היה ברור שזה לא יספיק. IPv6 הבטיח פתרון — 340 אנדצילון כתובות, מספיק לכך שכל אטום עלי אדמות יהיה לו מיליארד כתובות IP — אך הפריסה תימשך עשורים.
NAT צמח כגשר. לא תיקון, אלא עקיפה. במקום לקצוב כתובות או לכפות פרוטוקול חדש, NAT אפשר לאלפי מכשירים להסתתר מאחורי כל כתובת IP ציבורית. האינטרנט המשיך לגדול. IPv6 המשיך לחכות.
שלושה עשורים לאחר מכן, אנחנו עדיין מחכים. NAT קנה לנו זמן. בילינו אותו בבניית תשתיות סביב העקיפה.
תרגום כלהטוט עיניים
המחשב הנייד שלך, בכתובת 192.168.1.100, מבקש דף אינטרנט. החבילה מגיעה לנתב שלך, שמבצע החלפה: הוא מחליף את הכתובת הפרטית שלך בכתובת הציבורית שלו (נניח, 203.0.113.5), מציין את ההחלפה בטבלת התרגום, ומעביר את החבילה.
כשהשרת עונה ל-203.0.113.5, הנתב מתייעץ עם הטבלה שלו: "התשובה הזו שייכת ל-192.168.1.100." הוא הופך את התרגום ומעביר את החבילה למחשב הנייד שלך.
מנקודת מבטו של השרת, הוא מעולם לא שוחח עם המחשב הנייד שלך. הוא שוחח עם 203.0.113.5. המחשב הנייד שלך מאמין שהוא התחבר ישירות לאינטרנט. המתווך נשאר בלתי נראה.
הטבלה שזוכרת הכל
טבלת ה-NAT היא רישום מתמשך של מי ביקש מה. כל רשומה ממפה כתובת פנימית ופורט לכתובת חיצונית ופורט:
ללא טבלה זו, תעבורה חוזרת היא דו-משמעית. חבילה מגיעה ל-203.0.113.5 — האם היא שייכת למחשב הנייד שלך, לטלפון שלך, או לטלוויזיה שלך? כולם חולקים את אותה כתובת ציבורית.
הטבלה עוקבת רק אחר הפעלות פעילות. כאשר חיבור נסגר או פוקע, הרשומה נעלמת. ניהול המצב הזה הוא עוצמתו של NAT וגם חולשתו: הוא מאפשר שיתוף כתובות, אך מחייב את הנתב לזכור כל שיחה שעוברת דרכו.
שלושה סוגי תרגום
NAT סטטי יוצר מיפויים קבועים של אחד-לאחד. שרת פנימי 192.168.1.50 תמיד מתורגם לכתובת IP ציבורית 203.0.113.10. שימושי לשרתים הזקוקים לכתובות יציבות, אך מסכל את מטרת שימור הכתובות — כל מכשיר עדיין זקוק לכתובת IP ציבורית משלו.
NAT דינמי מתחזק מאגר של כתובות IP ציבוריות. כאשר מכשיר יוזם חיבור, הוא מקבל כתובת מהמאגר. כשהחיבור מסתיים, הכתובת חוזרת. עדיף על NAT סטטי, אך עדיין מוגבל בגודל המאגר.
PAT (תרגום כתובות פורט) הוא מה שפועל בפועל בנתב הביתי שלך. הוא מתרגם הן כתובות והן פורטים. המחשב הנייד שלך מתחבר בפורט 54321. הטלפון שלך משתמש באותו פורט. הנתב מקצה פורטים חיצוניים שונים — 62000 למחשב הנייד, 62001 לטלפון — ועוקב אחר מי מי.
מכיוון שכל IP תומך ב-65,535 פורטים, PAT יכול לנהל עשרות אלפי חיבורים דרך כתובת ציבורית אחת. כך משק הבית שלך חולק IP אחד.
המחיר של NAT
NAT שמר על כתובות. הוא גם שבר את ההבטחה המייסדת של האינטרנט: כל מכשיר יכול לדבר עם כל מכשיר אחר.
מכשירים מאחורי NAT אינם יכולים לקבל חיבורים נכנסים לא מבוקשים. אתה יכול להתקשר החוצה. לא ניתן להתקשר אליך. מודל שרת-לקוח עובד מצוין. עמית-לעמית לא עובד.
פרוטוקולים שמטמיעים כתובות IP במטענם — FTP, SIP, VPNים מסוימים — מתקלקלים בעת מעבר דרך NAT. שערי שכבת יישום מנסים לתקן זאת על ידי כתיבה מחדש של תוכן החבילות, אך הם שבירים וספציפיים לפרוטוקול.
נתבי NAT חייבים לזכור כל חיבור פעיל. בניגוד לנתבים חסרי-מצב שפשוט מעבירים חבילות, מכשירי NAT פגיעים להתקפות הצפה: מציפים אותם בבקשות חיבור, ממלאים את טבלת המצבים, והנתב קורס.
בעיית העמית-לעמית
שני מכשירים שניהם מאחורי NAT עומדים בפני דילמה: אף אחד מהם אינו יכול לקבל חיבורים נכנסים. כיצד הם מתקשרים?
הם לא יכולים. לא ישירות.
STUN מאפשר למכשיר לגלות את כתובת ה-IP הציבורית שלו ואת הפורט שלו על ידי פנייה לשרת חיצוני. אם שני העמיתים חולקים את הכתובות שגילו, לפעמים הם יכולים לבצע ניקוב NAT — לנצל את אופן פעולתו כדי לחמוק מחומת האש.
TURN מודה בכישלון. שרת ממסר מעביר תעבורה בין שני המכשירים. זה עובד בצורה אמינה, אך מנתב הכל דרך צד שלישי.
ICE מנסה גישות מרובות ברצף — חיבור ישיר, STUN, TURN — ומשתמש במה שעובד.
טכניקות אלה עובדות רוב הזמן. אבל "רוב" אינו "כל". NAT סימטרי (נפוץ ברשתות ארגוניות) ו-NAT ברמת הספק (שבו ספקי האינטרנט מוסיפים שכבת תרגום נוספת) שוברים לחלוטין את ניקוב ה-NAT. כאשר STUN נכשל, יישומים נסוגים לשרתי ממסר.
העקיפה נדרשה לעקיפות משלה.
העקיפה לנצח
פריסת IPv6 הגיעה סוף סוף לקנה מידה אמיתי — כ-45% מהתעבורה ל-Google משתמשת כיום ב-IPv6, ומדינות כמו צרפת, גרמניה והודו חורגות מ-70%. אך IPv4 ו-NAT נותרים מושרשים עמוק. ארכיטקטורות שלמות בנויות על ההנחה שיש NAT: אפליקציות מובייל מצפות להתחבר לשרתים, לא למכשירי עמית. שירותי ענן מרכזים תעבורה דרך מרכזי נתונים במקום לאפשר תקשורת ישירה.
NAT היה אמור להיות זמני. הוא הפך לתשתית. הוא לא רק האריך את חיי IPv4 — הוא שינה את תפיסתנו לגבי מה האינטרנט נועד לו. המעבר ממנו דורש לא רק אימוץ IPv6, אלא חשיבה מחדש על תכנון יישומים.
NAT הוא המתרגם הבלתי נראה שהופך את הבית הרב-מכשירי שלך לאפשרי. טלאי שעבד כל כך טוב שהספקנו לשכוח שהיה טלאי. נמשיך להשתמש בו עד שמשהו יחליף סוף סוף את הדבר שלא נועד להחליף מעולם.
שאלות נפוצות על NAT
האם NAT מספק אבטחה?
לא ממש. NAT מסתיר כתובות פנימיות מהתצוגה החיצונית, מה שמקשה על התקפות ישירות — אך זו תופעת לוואי, לא תכונת אבטחה. NAT אינו בודק תעבורה, אינו חוסם תוכנות זדוניות, ואינו מאמת חיבורים. הוא פשוט מסתיר את המכשירים שלך מאחורי כתובת אחת. חומת אש מתאימה היא שעושה את עבודת האבטחה בפועל.
מדוע אני לא יכול לארח שרת משחקים או להפעיל שירות מהבית?
NAT חוסם חיבורים נכנסים לא מבוקשים. כאשר מישהו מנסה להתחבר לכתובת ה-IP הציבורית שלך, הנתב אינו יודע לאיזה מכשיר פנימי לשלוח את הבקשה — אין רשומה מתאימה בטבלת התרגום. העברת פורטים פותרת זאת על ידי יצירת מיפוי קבוע: "שלח כל מה שמגיע בפורט 25565 ל-192.168.1.50." זוהי תצורה ידנית לדבר שקישוריות ישירה הייתה מטפלת בו אוטומטית.
האם IPv6 יבטל את NAT?
תיאורטית, כן. IPv6 מספק מספיק כתובות כך שלכל מכשיר תהיה כתובת IP ציבורית משלו, ומשחזר בכך קישוריות מקצה לקצה. בפועל, NAT כל כך מושרש בתכנון רשתות ובהנחות האבטחה שארגונים רבים ממשיכים להשתמש בו גם ברשתות IPv6. הצורך הטכני נעלם; ההרגל המוסדי נמשך.
מהו NAT ברמת ספק?
ספק האינטרנט שלך עשוי להפעיל NAT ברשת שלו עוד לפני שהתעבורה מגיעה לנתב שלך. זה מציב אותך מאחורי שתי שכבות של תרגום: ה-NAT של הנתב שלך וה-NAT של ספק האינטרנט. NAT ברמת ספק הופך את אירוח שירותים מהבית לכמעט בלתי אפשרי — גם אם הגדרת העברת פורטים בנתב שלך, ה-NAT של הספק חוסם אותה. זהו הקיצון הלוגי של NAT, וסימן לכמה מלאי כתובות IPv4 אזל.
מקורות
האם דף זה היה מועיל?