تکنولوژی NAT یا Network Address Translation به منظور صرفه جویی در تعداد آدرس IP های Public و کاهش هزینه ها می باشد.
این تکنولوژی به دلایل زیر ایجاد شد.
- محدودیت در تعداد آدرس IP های Public
- هزینه بر بودن تهیه آدرس های Public برای استفاده در اینترنت
نحوه فرآیند تکنولوژی NAT :
NAT در واقع تکنولوژی تغییر آدرس IP مربوط به فرستنده پیام می باشد. بدین معنا که زمانی که این تکنولوژی برای یک شبکه Private پیاده سازی می شود، یک سمت این شبکه متصل به یک Public IP شده و سمت دیگر درون شبکه Private قرار می گیرد و NAT حائل بین این دو سمت می شود. هر درخواستی که از شبکه Private برای شبکه Public ارسال می شود، توسط این تکنولوژی دریافت و با تغییر آدرس IP منبع ارسال کننده به آدرس خود که یک آدرس Public می باشد، درخواست را به سمت اینترنت ارسال می کند. این تغییرات درون جدولی که NAT Table گفته می شود ذخیره می شود و زمانیکه پاسخ آن درخواست توسط اینترنت به سمت این Public IP برگشت داده می شود، با توجه به اطلاعات موجود در NAT Table به دست درخواست کننده اصلی در شبکه Private می رسد.
فرهنگ واژگان تکنولوژی NAT :
انواع مختلف NAT :
- Static NAT
- Dynamic NAT
- PAT (NAT Overload)
آشنایی با Static NAT :
این نوع از NAT باید به صورت دستی پیاده سازی شود. نحوه پیاده سازی این نوع به این صورت است که شما باید آدرس های Private خود را به صورت دستی و براساس تعداد آدرس های Public که در اختیار دارید نگاشت کنید. به طور مثال شما بر روی روتر خود 2 آدرس Public قرار داده اید و در شبکه Private خود 100 آدرس IP ایجاد کرده اید، حال می بایست 50 عدد از این آدرس ها را به صورت دستی به یکی از Public IP ها نگاشت کنید و 50 عدد دیگر را به Public IP دیگر روتر نگاشت نمایید.
نکته: تا زمانیکه یک Private IP به یک Public IP متصل باشد، Private IP دیگر نمی تواند به اینترنت دسترسی داشته باشد. یعنی عمل نگاشت در NAT به صورت یک به یک است.
پیکربندی Static NAT :
در بحث پیکربندی NAT بخشی از دستورات برای تمام انواع NAT ها ثابت می باشد و آن بخش مشخص کردن بخش داخل و خارج شبکه خودتان می باشد. دستورات زیر به این منظور به کار برده می شوند (در سطح اینترفیس):
Conf-if# ip nat {inside or outside}
نکته: این دستورات باید بر روی تمام Interface ها و Sub Interface ها (مباحث Inter VLAN) مربوط به بخش Inside و Outside زده شوند.
دستورات مربوط به NAT Table به شرح زیر می باشند:
Conf# ip nat inside source static ‘Inside Local IP’ ‘inside global IP’
Router# show ip nat translation
Router# clear ip nat translation
دستور مربوط به Clear به منظور قطع ارتباط کاربران از شبکه به منظور حذف تکنولوژی NAT می باشد.
نکته: در بخش Inside Local IP می بایست آدرس کلاینتی را بدهید که قرار است دسترسی به اینترنت داشته باشد و Inside Global IP مربوط به آدرس Public می باشد که قرار است توسط آن NAT انجام شود.
آشنایی با Dynamic NAT :
در این نوع NAT یک NAT Pool وجود دارد که شامل چند Public IP می باشد. توسط این ساختار آدرس های Private مشخص شده می توانند به صورت یک به یک و هر کدام به یکی از این Public IP ها NAT شوند.
نکته: پیاده سازی Dynamic NAT توسط Access List انجام می شود.
پیاده سازی Dynamic NAT :
بخش اول پیاده سازی مانند Static NAT می باشد. در بخش دستورات Dynamic NAT داریم:
Conf# Access-list ‘ACL#’ permit ‘Network’ ‘Wild Mask’
به منظور ایجاد Access List از دستور بالا استفاده می کنیم و در ادامه:
Conf# ip nat pool ‘Pool-Name’ ‘First IP’ ‘Last IP’ netmask ‘Subnet-Mask’
نکته: مقدار Net Mask مورد نیاز در دستور بالا مقداری است که در بردارنده تعداد آدرس های Public مشخص شده در First تا Last می باشد. یعنی باید Subnet Mask را استفاده کنیم که این محدوده آدرس دهی را شامل شود.
Conf# ip nat inside source list ‘ACL#’ pool ‘Pool-Name’
OR
Conf# ip nat inside source list ‘ACL#’ interface ‘Slot/Port’
Conf# ip nat translation time-out ‘Seconds’
نکته: دستور آخر مربوط به پاک شدن آدرس Private ای می باشد که به صورت Idle درآمده و این مدت زمان برای پاک شدن بر حسب ثانیه و برای آزاد شدن آدرس Public و استفاده سایر آدرس ها از آن آدرس Public می باشد.
آشنایی با PAT :
در ساختار Static و Dynamic مشکل محدودیت تعداد Public IP ها و در نتیجه دسترسی تصادفی سیستم ها به اینترنت وجود داشت. نوع PAT که Port Address Translation نام دارد این مشکل را رفع کرده است.
در این نوع نگاشت پیاده سازی با استفاده از Port Number ها صورت می پذیرد. یعنی علاوه بر تغییر آدرس IP منبع ارسال کننده، اقدام به تغییر شماره پورت منبع ارسال کننده نیز می کند. یعنی اگر کاربری یک درخواست روی پورت 80 برای اینترنت ارسال کرد، این درخواست قطعا با یک شماره پورت توسط کاربر ارسال شده است که مثلا می تواند 1200 باشد. زمانیکه این درخواست به سرویس NAT می رسد علاوه بر تغییر آدرس IP مربوط به کلایت، شماره پورت 1200 را به 1201 تغییر می دهد و به سمت بیرون هدایت می کند. این امر به این دلیل است که هیچ تضمینی وجود ندارد که 2 کامپیوتر از یک شماره پورت برای ارسال درخواست خود استفاده نکنند و ممکن است این شماره پورت برای دو کامپیوتر یکسان انتخاب شود، بنابراین این تغییر شماره پورت در سرویس NAT به دلیل رفع مشکل تداخل درخواست ها می باشد.
با این فرآیند تنها با استفاده از یک Public IP می توان برای تمام آدرس های Private دسترسی به بیرون را ایجاد کرد.
پیاده سازی PAT :
پیاده سازی PAT عینا مانند ساختار Dynamic می باشد. یعنی همان مراحل مربوط به Dynamic را برای PAT باید انجام داد و تنها تفاوت در 2 مورد می باشد:
- نگاشت به یک اینترفیس
- استفاده از کلیدواژه overload در انتهای دستور
بنابراین دستور پیاده سازی به شکل زیر تغییر می کند:
Conf# ip nat source list ‘ACL#’ interface <slot/port> overload
در پایان این مبحث به این نکته توجه داشته باشید که عملیات NAT صرفا برای برقراری دسترسی به اینترنت نیست بلکه تکنولوژی تغییر آدرس IP می باشد. بنابراین این مبحث را به عنوان تغییر دهنده آدرس IP به خاطر بسپارید.