ترجمه آدرس شبکه: اشتراک‌گذاری آدرس‌های IP عمومی

تأمین محدود آدرس‌های IPv4 عمومی باعث شد غیرممکن باشد هر دستگاه در سراسر جهان آدرس یکتای جهانی خودش را داشته باشد، و NAT این را با اجازه‌دادن به بسیاری دستگاه خصوصی برای اشتراک‌گذاری تعداد کمی آدرس عمومی حل کرد. این مقاله سه نوع اصلی NAT را توضیح می‌دهد، پیکربندی static NAT، dynamic NAT، و PAT روی یک روتر سیسکو را مرور می‌کند، و دستورات ضروری برای تأیید ترجمه‌های فعال را پوشش می‌دهد.

پیکربندی NATPATStatic NAT

~5 دقیقه مطالعه · آخرین به‌روزرسانی ۱۸ شهریور ۱۴۰۵

چرا NAT ضروری شد

IPv4 تقریباً ۴.۳ میلیارد آدرس ممکن فراهم می‌کند، عددی که دهه‌ها پیش عظیم به‌نظر می‌رسید اما وقتی اینترنت به میلیاردها دستگاه متصل رشد کرد بسیار کوچک ثابت شد. بازه‌های آدرس خصوصی که پیش‌تر در این مجموعه درباره آدرس‌دهی IPv4 بحث شد بخشی از این مسئله را با اجازه‌دادن به شبکه‌های داخلی برای استفاده‌مجدد از همان بازه‌های آدرس حل می‌کنند، اما یک دستگاه که از یک آدرس خصوصی استفاده می‌کند نمی‌تواند مستقیماً با اینترنت عمومی ارتباط برقرار کند، چون آدرس‌های خصوصی به‌طور جهانی مسیریابی‌پذیر نیستند. NAT (Network Address Translation) این قطعه نهایی را با ترجمه آدرس‌های خصوصی به عمومی هنگام عبور ترافیک از مرز بین یک شبکه داخلی و اینترنت حل می‌کند.

Static NAT: یک نگاشت یک-به-یک ثابت

Static NAT یک نگاشت دائمی و بدون‌تغییر بین یک آدرس خصوصی خاص و یک آدرس عمومی خاص ایجاد می‌کند — معمولاً برای سرورهای داخلی که نیاز دارند به‌طور پیوسته از اینترنت قابل‌دسترسی باشند، مانند یک سرور وب یا سرور ایمیل، استفاده می‌شود.

Router(config)# ip nat inside source static 192.168.1.10 203.0.113.10

Router(config)# interface gigabitethernet 0/1
Router(config-if)# ip nat inside
Router(config-if)# exit

Router(config)# interface gigabitethernet 0/0
Router(config-if)# ip nat outside

هر پیکربندی NAT نیازمند تعیین اینکه کدام اینترفیس‌ها inside (رو‌به‌سمت شبکه خصوصی) و کدام outside (رو‌به‌سمت اینترنت عمومی) هستند — بدون این تعیین، روتر هیچ راهی برای دانستن اینکه ترجمه باید به کدام جهت اعمال شود ندارد.

Dynamic NAT: نگاشت از یک استخر آدرس‌ها

Dynamic NAT آدرس‌های خصوصی را به آدرس‌های عمومی برداشته‌شده از یک استخر تعریف‌شده نگاشت می‌کند، که به‌صورت اول‌آمده-اول‌دریافت‌شده به‌جای یک رابطه ثابت یک‌به‌یک اختصاص می‌یابند.

Router(config)# ip nat pool PUBLIC-POOL 203.0.113.20 203.0.113.30 netmask 255.255.255.0

Router(config)# access-list 1 permit 192.168.1.0 0.0.0.255

Router(config)# ip nat inside source list 1 pool PUBLIC-POOL

-- لیست دسترسی مشخص می‌کند کدام آدرس‌های داخلی
-- واجد شرایط ترجمه هستند، که پیش‌تر در این مجموعه
-- درباره ACL های استاندارد بحث شد

Dynamic NAT همچنان به یک آدرس عمومی به‌ازای هر دستگاه داخلی فعال هم‌زمان نیاز دارد، چون همچنان اساساً یک نگاشت یک-به-یک است — فقط با جفت‌سازی خاصی که به‌طور پویا تعیین می‌شود به‌جای پیکربندی ایستا برای هر دستگاه. این آن را به یک میانه تبدیل می‌کند: مقیاس‌پذیرتر از static NAT برای دستگاه‌های زیاد، اما همچنان توسط اندازه استخر آدرس عمومی محدود است.

PAT: راه‌حلی که واقعاً مقیاس می‌یابد

PAT (Port Address Translation)، که NAT Overload نیز نامیده می‌شود، محدودیت مقیاس‌بندی هم static و هم dynamic NAT را با اجازه‌دادن به بسیاری دستگاه داخلی برای اشتراک‌گذاری یک آدرس IP عمومی واحد به‌طور هم‌زمان، و تشخیص آن‌ها با استفاده از شماره پورت‌های منبع متفاوت، حل می‌کند.

Router(config)# access-list 1 permit 192.168.1.0 0.0.0.255

Router(config)# ip nat inside source list 1 interface gigabitethernet 0/0 overload

-- "overload" کلیدواژه‌ای است که PAT را فعال می‌کند،
-- و از آدرس IP خود اینترفیس بیرونی به‌عنوان آدرس
-- عمومی مشترک برای همه دستگاه‌های داخلی
-- ترجمه‌شده استفاده می‌کند

این تا حد زیادی رایج‌ترین پیکربندی NAT در شبکه‌های دنیای واقعی است، شامل تقریباً هر روتر خانگی، چون اجازه می‌دهد یک کل شبکه با بالقوه صدها دستگاه یک آدرس IP عمومی واحد که معمولاً توسط یک ارائه‌دهنده خدمات اینترنتی اختصاص یافته را به اشتراک بگذارند.

PAT چگونه بین دستگاه‌های داخلی تشخیص می‌دهد:

دستگاه داخلی A: 192.168.1.11:52001 → 203.0.113.5:40001
دستگاه داخلی B: 192.168.1.12:52001 → 203.0.113.5:40002

هر دو دستگاه از همان شماره پورت خصوصی
به‌طور محلی استفاده می‌کنند، اما روتر به هرکدام
یک پورت ترجمه‌شده متفاوت روی آدرس عمومی مشترک
اختصاص می‌دهد، که اجازه می‌دهد ترافیک برگشتی به‌درستی
به دستگاه داخلی منبع مسیریابی شود

تأیید ترجمه‌های فعال NAT

Router# show ip nat translations

Pro  Inside global      Inside local       Outside local      Outside global
tcp  203.0.113.5:40001  192.168.1.11:52001 93.184.216.34:443  93.184.216.34:443
tcp  203.0.113.5:40002  192.168.1.12:52001 93.184.216.34:443  93.184.216.34:443

Router# show ip nat statistics
Total active translations: 2 (0 static, 2 dynamic; 2 extended)

خروجی چهار-ستونی show ip nat translations اصطلاحات خود NAT را منعکس می‌کند: Inside Local آدرس خصوصی اصلی است، Inside Global آدرس عمومی ترجمه‌شده است، و ستون‌های outside آدرس‌های متناظر برای مقصد خارجی را نشان می‌دهند — این جدول ابزار اصلی برای تأیید اینکه دقیقاً یک قطعه خاص از ترافیک ترجمه‌شده واقعاً متعلق به کدام دستگاه داخلی است.

یک الگوی رایج عیب‌یابی: تعیین inside/outside گم‌شده

-- علامت: قوانین NAT به‌درستی پیکربندی شده‌اند،
-- اما ترجمه صرفاً هرگز رخ نمی‌دهد

-- علت رایج: یک اینترفیس هرگز با
-- "ip nat inside" یا "ip nat outside" علامت‌گذاری نشده

Router# show ip interface gigabitethernet 0/1 | include NAT
  NAT: not enabled  ← این اینترفیس تعیینش گم شده

فراموش‌کردن اعمال ip nat inside یا ip nat outside روی اینترفیس‌های مرتبط یکی از رایج‌ترین پیکربندی‌های نادرست NAT است — خود قوانین ترجمه می‌توانند کاملاً درست باشند، اما هیچ اتفاقی نمی‌افتد چون روتر نمی‌داند کدام اینترفیس‌ها نمایانگر سمت‌های خصوصی و عمومی مرز ترجمه هستند.

چرا NAT با وجود IPv6 مرتبط باقی می‌ماند

حتی همان‌طور که اتخاذ IPv6، که بعداً در این مجموعه پوشش داده می‌شود، به‌تدریج فشاری که در ابتدا ایجاد NAT را انگیزه داد کاهش می‌دهد، NAT در شبکه‌های IPv4 به‌شدت رایج باقی می‌ماند و به هدف ثانویه‌ای فراتر از حفظ آدرس ادامه می‌دهد: از آنجا که آدرس‌های خصوصی داخلی هرگز مستقیماً در معرض اینترنت قرار نمی‌گیرند، NAT درجه‌ای از امنیت-از‌طریق-ابهام فراهم می‌کند، و ساختار شبکه داخلی را برای ناظران خارجی نامرئی می‌کند. درک هر سه نوع NAT، و توانایی شناسایی سریع یک تعیین inside/outside گم‌شده به‌عنوان یک علت رایج شکست ترجمه، یک مهارت عملی ضروری در تقریباً هر استقرار شبکه دنیای واقعی باقی می‌ماند.

نوشته و پژوهش‌شده توسط دکتر شاهین صیامی

مقالات مرتبط

لیست‌های کنترل دسترسی: فیلترکردن ترافیک روی روترهای سیسکو

لیست‌های کنترل دسترسی به یک روتر یا سوئیچ اجازه می‌دهند به‌طور انتخابی ترافیک را بر اساس اطلاعات منبع، مقصد، و پروتکل مجاز یا مسدود کنند، و پایه امنیت پایه شبکه و فیلترینگ ترافیک را تشکیل می‌دهند. این مقاله توضیح می‌دهد ACL ها چگونه ترافیک را به‌ترتیب پردازش می‌کنند، تفاوت بین ACL های استاندارد و توسعه‌یافته را پوشش می‌دهد، محاسبه ماسک wildcard را مرور می‌کند، و قوانین حیاتی مکان‌گذاری که تعیین می‌کنند آیا یک ACL همان‌طور که مورد نظر بود کار می‌کند را توضیح می‌دهد.

ادامه

DHCP و DNS: آدرس‌دهی خودکار و تفکیک نام

پیکربندی دستی یک آدرس IP روی هر دستگاه مقیاس‌پذیر نیست، و به‌خاطرسپاری آدرس‌های IP عددی برای هر سرویس غیرعملی است، به همین دلیل DHCP و DNS به‌عنوان سرویس‌های پشتیبان ضروری در تقریباً هر شبکه‌ای وجود دارند. این مقاله توضیح می‌دهد DHCP چگونه به‌طور خودکار اطلاعات آدرس‌دهی IP را اختصاص می‌دهد، پیکربندی یک دستگاه سیسکو به‌عنوان یک سرور DHCP یا عامل رله را پوشش می‌دهد، و توضیح می‌دهد DNS چگونه نام‌های قابل‌فهم برای انسان را به آدرس‌های IP تبدیل می‌کند.

ادامه

مسیریابی بین-VLAN: اتصال VLAN ها با Router-on-a-Stick و SVI

VLAN ها دامنه‌های پخش را از یکدیگر در لایه ۲ ایزوله می‌کنند، اما اپلیکیشن‌های واقعی همچنان نیاز دارند دستگاه‌ها در VLAN های مختلف با یکدیگر ارتباط برقرار کنند، که نیازمند مسیریابی بین آن‌ها در لایه ۳ است. این مقاله رویکرد قدیمی router-on-a-stick با استفاده از زیراینترفیس‌ها، رویکرد مدرن‌تر و مقیاس‌پذیرتر Switch Virtual Interface روی سوئیچ‌های لایه ۳، و دستورات پیکربندی و تأیید ضروری برای هر دو را توضیح می‌دهد.

ادامه

EtherChannel: ترکیب چند لینک در یک اتصال منطقی واحد

به‌جای انتخاب بین افزونگی و پهنای باند، EtherChannel چند لینک فیزیکی را در یک اتصال منطقی واحد ترکیب می‌کند که هر دو را هم‌زمان فراهم می‌کند، بدون اینکه Spanning Tree هیچ‌کدام از لینک‌ها را مسدود کند. این مقاله توضیح می‌دهد EtherChannel چگونه پورت‌ها را با هم بسته‌بندی می‌کند، پروتکل‌های مذاکره PAgP و LACP مورد استفاده برای تشکیل امن یک بسته را مقایسه می‌کند، و دستورات پیکربندی و تأیید ضروری را پوشش می‌دهد.

ادامه

پروتکل Spanning Tree: جلوگیری از حلقه در شبکه‌های سوئیچ‌شده

لینک‌های فیزیکی افزونه بین سوئیچ‌ها تحمل‌پذیری خطا فراهم می‌کنند اما حلقه‌های لایه ۲ ایجاد می‌کنند که می‌توانند کل شبکه را در چند ثانیه از کار بیندازند. این مقاله توضیح می‌دهد چرا حلقه‌ها در شبکه‌های سوئیچ‌شده فاجعه‌بارند، پروتکل Spanning Tree چگونه یک root bridge انتخاب می‌کند و مسیرهای افزونه را برای جلوگیری از آن‌ها مسدود می‌کند، و دستورات ضروری برای تأیید عملیات STP روی یک سوئیچ سیسکو را پوشش می‌دهد.

ادامه

VLAN و ترانک: بخش‌بندی شبکه‌های سوئیچ‌شده

یک VLAN یک سوئیچ فیزیکی واحد را به چند دامنه پخش از نظر منطقی جداگانه تقسیم می‌کند، که ایزوله‌سازی ترافیک و انعطاف‌پذیری سازمانی را بدون سخت‌افزار اضافی امکان‌پذیر می‌کند. این مقاله توضیح می‌دهد یک VLAN واقعاً چیست، چگونه VLAN ها ساخته و پورت‌ها به آن‌ها اختصاص می‌یابند، لینک‌های ترانک چگونه ترافیک چند VLAN را روی یک اتصال فیزیکی واحد با استفاده از تگ‌گذاری 802.1Q حمل می‌کنند، و دستورات تأیید ضروری مورد استفاده برای تأیید پیکربندی درست را پوشش می‌دهد.

ادامه