NAT چیه و چند جور داره
جواب کوتاه
NAT کاریه که روتر موقع رد کردن بستهها انجام میده: آدرس خصوصی دستگاههای توی شبکه رو با آدرس عمومی خودش عوض میکنه، و توی یه جدول مینویسه هر گفتوگو مال کدوم دستگاهه تا جوابها رو به همون دستگاه برسونه. اینجوری همهی دستگاههای یه خونه با یه IP عمومی میرن توی اینترنت. رایجترین نوعش PAT هست، که برای هر گفتوگو یه شمارهی پورت جدا میذاره.
سه تا کلمه
- NATکوتاهشدهی Network Address Translation، یعنی «ترجمهی آدرس شبکه»: روتر موقع رد کردن بستهها، آدرسشون رو عوض میکنه.
- آدرس عمومی و خصوصیآدرس عمومی توی کل اینترنت یکیه و تکراری نداره؛ آدرس خصوصی، مثلا 192.168.1.10، فقط توی یه شبکه معنی داره.
- جدول NATدفترچهای که روتر توش مینویسه هر گفتوگو با بیرون، مال کدوم دستگاه توی خونهست.
دفتر نامههای شرکت
مثلا فرض کنید توی شرکتی کار میکنید که هر کارمند یه میز شمارهدار داره. شمارهی میز شما توی شرکت معنی داره، ولی بیرون از شرکت کسی نمیشناسدش؛ بیرون فقط آدرس شرکت رو میشناسن. پس همهی نامههایی که میره بیرون، از دفتر نامههای شرکت رد میشه.
شبکهی خونهی شما همین شرکته. هر دستگاه یه آدرس خصوصی داره، مثلا 192.168.1.10، که فقط توی خونه معنی داره (درس مودم و روتر). روتر یه آدرس عمومی داره که شرکت اینترنت بهش داده. NAT همون دفتر نامههاست: روتر آدرس هر بستهای رو که میره بیرون، با آدرس عمومی خودش عوض میکنه. چون آدرسهای IPv4 تموم شده (درس IPv6)، همین کار باعث میشه همهی دستگاههای یه خونه با یه آدرس عمومی برن توی اینترنت.
رفت و برگشت، قدمبهقدم
هر آدرس توی این تصویرها دو تیکه داره: IP، و بعد از دونقطه یه شماره به اسم پورت، که میگه پیام مال کدوم برنامهست و درس خودش رو داره. توی دفتر نامهها، پورت همون شمارهی پیگیری روی پاکته. آدرسها فقط مثالن:
دفترچهی دفتر نامهها
اگه سه تا کامپیوتر توی خونه همزمان یه سایت باز کنن، روتر برای هر گفتوگو یه خط توی جدول NAT مینویسه. شمارهی پورت بیرونی برای هر کدوم جداست، تا جوابها با هم قاطی نشن:
| توی خونه | بیرون (توی اینترنت) | مقصد |
|---|---|---|
| 192.168.1.10:51000 | 198.51.100.7:62001 | 203.0.113.80:443 |
| 192.168.1.11:49152 | 198.51.100.7:62002 | 203.0.113.80:443 |
| 192.168.1.12:50500 | 198.51.100.7:62003 | 203.0.113.9:443 |
موقع رفتن، آدرس فرستنده عوض میشه؛ موقع برگشت، آدرس گیرنده. روتر هر گفتوگو رو دنبال میکنه و وقتی یه جواب میرسه، با همین جدول میفهمه مال کیه. خطهایی که دیگه به کار نمیان، بعد از یه مدت پاک میشن.
سه جور NAT
اونی که توی خونهها کار میکنه، جور سومه. اسم استانداردش NAPT هست و اسمهای دیگهش PAT، NAT overload و «چند به یک». اونقدر رایجه که امروز وقتی کسی میگه NAT، معمولا منظورش همینه. اولین بار سال ۱۹۹۴ دربارهی NAT نوشتن که یه «راه کوتاهمدت» برای کم اومدن آدرسهاست؛ PAT سال ۱۹۹۶ اومد، و تا ۲۰۰۴ NAT همهجا رو گرفت.
نامهای که از بیرون میاد
اگه یه نامه از بیرون برسه که هیچ سابقهای توی دفترچه نداره، دفتر نامهها نمیدونه مال کدوم میزه. NAT هم همینه: گفتوگو فقط وقتی رد میشه که از داخل شروع شده باشه. مرورگر شما سایتهای بیرون رو باز میکنه، ولی اگه روی کامپیوتر خونه یه سایت ساخته باشید، بقیه از بیرون نمیتونن بازش کنن.
راهحلش یه دستور ثابت توی دفترچهست: «هر نامهای با فلان شماره اومد، بده به میز ۲۰». به این کار میگن پورت فورواردینگ ، و توی تنظیمات خیلی از مودمها هست.
NAT پشت NAT
گاهی خود شرکت اینترنت هم آدرس عمومی به اندازهی کافی نداره و یه NAT بزرگ برای همهی مشتریهاش میذاره. اونوقت بسته از دو تا دفتر نامه رد میشه: یکی توی خونهی شما و یکی توی شرکت اینترنت. بهش میگن CGNAT (یعنی NAT به اندازهی شرکت اینترنت):
برای آدرسِ وسطِ مودم شما و NAT شرکت اینترنت، یه بازهی جدا کنار گذاشتن: 100.64.0.0/10. اگه توی صفحهی مودمتون دیدید آدرس بیرونی مودم با 100.64 تا 100.127 شروع میشه، یعنی پشت همچین NATی هستید، و پورت فورواردینگ توی مودم خودتون بهتنهایی بس نیست.
هزینهی NAT، و IPv6
اینترنت از اول اینجوری ساخته شد که هر دستگاه بتونه مستقیم با هر دستگاه دیگهای حرف بزنه. NAT اینو میشکنه: دستگاههایی که پشت NAT هستن رو نمیشه از بیرون صدا زد، و کارهایی که به این نیاز دارن، بی کمک روتر خراب میشن. NAT به درد میخوره، ولی هزینه هم داره.
NAT برای این اومد که آدرسهای IPv4 کم اومده بود. توی IPv6 آدرس اونقدر زیاده که هر دستگاه آدرس عمومی خودش رو داره و NAT لازم نیست.
سه تا اشتباه رایج
- «سایتی که باز میکنم، IP خصوصی کامپیوترم رو میبینه.»نه. سایت فقط آدرس عمومی روتر رو میبینه؛ آدرس خصوصی هیچوقت از خونه بیرون نمیره.
- «هر کسی از اینترنت میتونه به کامپیوتری که پشت NAT هست وصل بشه.»نه. NAT فقط گفتوگوهایی رو راه میده که از داخل شروع شدن. برای اینکه از بیرون بشه وصل شد، پورت فورواردینگ لازمه.
- «NAT یعنی امنیت؛ با NAT فایروال لازم نیست.»نه. کار NAT عوض کردن آدرسه، نه نگهبانی. امنیت درسهای خودش رو داره.
جمعبندی. آنچه از این درس با خودتان میبرید.
- NAT موقع رفتن، آدرس خصوصی رو با آدرس عمومی روتر عوض میکنه، و موقع برگشت برعکس.
- جدول NAT میگه هر شمارهی پورت بیرونی مال کدوم دستگاه و کدوم پورت داخلیه.
- سه جور: ایستا (یکی به یکی، ثابت)، پویا (از یه گروه آدرس)، PAT (همه روی یه آدرس، با پورتهای جدا).
- گفتوگو فقط از داخل شروع میشه؛ برای راه دادن از بیرون، پورت فورواردینگ لازمه.
- CGNAT یعنی شرکت اینترنت هم یه NAT گذاشته؛ آدرس وسطی از 100.64.0.0/10 هست.
- NAT راه موقتِ کم اومدن آدرسهای IPv4 هست؛ توی IPv6 لازم نیست.
خودتان را بسنجید
۱۵ پرسش، هر بار تازه از میان ۳۰ پرسش این درس. آخر آزمون فقط کارنامه را میبینید: چند درست، چند نادرست.