همانطور که میدانید ip هایی که درون شبکه خود استفاده میکنیم، invalid میباشند و برای ارتباط با دنیای اینترنت باید تبدیل به یک ip valid شوند، ip valid توسط سازمان IANNA رجیستر و تعریف میشود و در دنیای اینترنت اعتبار دارد.
NAT(Network Address Translation) روشی برای ترجمهی ip Invalid یا درون شبکه به ip valid یا اینترنت است. Nat شبکه را به دو صورت در نظر میگیرد.
- Inside Network : به شبکههایی گفته میشود که از ip invalid استفاده میکنند، مانند شبکهی داخلی یک اتاق. Inside Interface هم وجود دارد که به اینترفیسی گفته میشود که در شبکهی Inside Network قرار داشته باشد.
- Outside Network : منظور آدرسهای valid است که میتوان به اینترنت اشاره کرد. Outside interface هم وجود دارد که اینترفیسی است که پورت آن داخل شبکهیOutside قرار داشته باشد.
انواع Nat:
- Static Nat
- Dynamic Nat
- Dynamic Nat With Overload
Static Nat:
این روش به صورت دستی انجام میشود، یعنی به صورت دستی به روتر میگوییم که ip invalid داخل شبکه را به ip Valid تبدیل کن.
Dynamic Nat:
در این حالت، لیستی از ip invalid آماده و لیست دیگر از ip Valid آماده میشود و روتر به صورت خودکار این دو لیست را در موقع ترجمه در کنار هم قرار میدهد و تبدیل میکند.
Dynamic Nat With Overload(PAT):
این روش یکی از بهترین روشها در حال حاضر است، به دلیل اینکه شما احتیاج به یک ip valid دارید و تمام ip invalid داخل شبکهی شما از طریق یک ip valid ترجمه میشود، اما با استفاده از پورت، یعنی اینکه وقتیip invalid میخواهد به اینترنت راه پیدا کند از طریق همان ip valid و به همراه یک پورت به اینترنت راه پیدا میکند. در ادامه به صورت کامل با این موضوعات کار میکنیم.
مثالی از Static Nat
در این مثال Pc1 میخواهد به اینترنت متصل شود و به خاطر invalid بودن ip آن باید ترجمه آدرس به ip valid انجام شود. وارد روتر شوید و دستورات زیر را وارد کنید:
Router(config)# ip nat inside source static 192.168.1.2 172.16.1.2
این دستور میگوید که Ip Nat را روی شبکه داخلی و روی مبدأ فعال کن و به صورت دستی (Static) ip به شماره ۱۹۲.۱۶۸.۱.۲ را به ip valid ، ۱۷۲.۱۶.۱.۲تبدیل کن.
بعد وارد اینترفیس Fa0/0 که به سمت شبکه داخلی است میشویم و دستور زیر را وارد میکنیم:
Router(config-if)#ip nat inside
با این دستور Nat روی این اینترفیس فعال میشود، در اینترفیس دیگرFa0/1 که به سمت شبکه Outside است دستور زیر را وارد میکنیم:
Router(config-if)#ip nat Outside
بعد از اتمام کار ip مربوط به pc1 برای رفتن به شبکه اینترنت تبدیل میشود، میتوانید با دستور زیر Nat فعالشده روی این روتر را مشاهده کنید:
Router#show ip nat translations
Pro Inside global Inside local Outside local Outside global
— ۱۷۲.۱۶.۱.۲ ۱۹۲.۱۶۸.۱.۲ — —
با دستور زیر اطلاعات کامل از Nat روی روتر به دست خواهید آورد:
Router# show ip nat statistics
Total translations: 1 (1 static, 0 dynamic, 0 extended)
Outside Interfaces: FastEthernet0/1
Inside Interfaces: FastEthernet0/0
Hits: 0 Misses: 14
Expired translations: 0
Dynamic mappings:
مثالی از dynamic Nat:
بهدقت به این مثال توجه کنید تا به خوبی به مطالب آن واقف شوید.
برای استفاده از Dynamic Nat، اول از همه دو چیز تعریف میکنیم، یکی ip pool که مجموعهip های Valid که در این مثال ۵ تا است را در خود نگه میدارد و بعد باید یک access List برای ip های invalid داخل شبکه خود تعریف کنیم و در آخر این دو را باهم ترکیب کنیم.
وارد روتر شوید و دستور زیر را وارد کنید:
این دستور را به این صورت بخوانید: ip nat pool ایجاد کن با نام OIPکه میتوانید هر نام دیگری هم قرار دهید و بعد از آن بایدip های Vlaid را وارد کنید که در قسمت اول، شروع ip و در قسمت بعدی، پایان ip را مشخص کنید، مانند دستور بالا و در قسمت آخر هم Netmask آن را وارد کنید که همانWild Card mask است. تا این قسمت،ip nat pool را تعریف کردیم و برای ادامه باید access-list را برای شبکهی داخلی تعریف کنیم:
Router(config)#access-list 10 permit 192.168.1.0 0.0.0.255
Ip های داخلی شبکه را در یک access-list قرار میدهیم و اجازهی دسترسی به شبکه را به آنها دادهایم.
حالا نوبت این است که این دو را به هم ارتباط دهیم:
Router(config)#ip nat inside source list 10 pool oip
با این دستور accss-list 10 با pool oip ارتباط برقرار میکند و در زمان خروج ip های تعریفشده در access-list به ip تعریفشده در pool oip تبدیل میشوند.
بعد از این کار وارد اینترفیس میشویم و دستورات زیر را وارد میکنیم:
Router(config)#int f0/0
Router(config-if)#ip nat inside
Router(config-if)#int f0/1
Router(config-if)#ip nat outside
مثالی از PAT(Port Address Translation):
در این قسمت نیاز به یک IP Valid است و از طریق پورت، IP ها را از هم جدا میکند. به شکل زیر توجه کنید:
در این شکل، دو شبکهی داخلی داریم که باید برای هرکدام یک access-list بنویسیم.
access-list 1 permit 192.168.1.0 0.0.0.255
access-list 1 permit 192.168.2.0 0.0.0.255
با دستور بالا، access-list شمارهی یک ایجاد شده است که ip های invalid شبکههای داخلی را در خود قرار داده است.
وارد روتر میشویم و دستور زیر را وارد میکنیم:
ip nat inside source list 1 interface Serial0 overload
با تعریف دستور بالا، access-list با شمارهی ۱ که ایجاد کردهایم، انتخاب و روی اینترفیس Serial0 که به طرف شبکهی خارجی است، فعال میکنیم و در آخر دستور از overload استفاده میکنیم که در زمان خروج، ip را به همراه یک پورت به بیرون ارسال میکند.
بعد از آن وارد اینترفیسهای روتر میشویم و nat را فعال میکنیم:
ip nat inside
نحوهی پاک کردن آدرسهای موجود در جدولNat :
Router#clear ip nat translation *
با این دستور، کل آدرسهای موجود در جدول Nat حذف خواهد شد.
Router#clear ip nat translations inside a.b.c.d outside e.f.g.h
با این دستور یکی از رکوردهای ایجادشده از جدول Nat حذف خواهد شد.