نمایش نتایج: از شماره 1 تا 1 , از مجموع 1

موضوع: آموزش nat در سیسکو

  1. #1
    عضو انجمن ourweb آواتار ها
    تاریخ عضویت
    Apr 2012
    محل سکونت
    Ahvaz , IR
    نوشته ها
    797
    تشکر تشکر کرده 
    1,327
    تشکر تشکر شده 
    2,889
    تشکر شده در
    1,999 پست

    پیش فرض آموزش nat در سیسکو


    Network Address Translation

    NAT یکی از ابزارهای قدرتمند دنیای IT است که دقیقا همان کاری را انجام می دهد که از اسم آن بر می آید,به وسیله NAT میتوانیم آدرسهای یک شبکه را به یک شبکه دیگر ترجمه کنیم.
    NAT تقریبا در تمامی سیستم عاملها و روتر ها قابل انجام است که هر کدام شیوه و روش خود را دارند.
    برای همه متخصصین واضح است که قوی ترین روتر های دنیا Cisco هستند و تقریبا 80 درصد از بستر اینترنت بر روی دستگا های Cisco بنا شده اند. از آنجا که NAT یکی از بحثهای مهم RRAS است بر آن شدم تا آموزشی در این باره برای پارسی زبانان فراهم کنم. امیدوارم اساتید بزرگوارم مرا در مورد کاستی های این مقاله ببخشند.


    از کاربردهای NAT می توان به موارد زیر اشاره کرد:

    • ترجمه IP های Private به Public یا بلعکس
    • تغییر مرکز سرویس دهنده اینترنت بدون نیاز به تغییر IP ها داخلی
    • حفاظت از یک شبکه حساس در مقابل برخی حملات خارجی
    • تغییر پورت مقصد پکتها برای کاربران داخلی به صورت transparent



    تعریف برخی اصطلاحات:

    • Inside Local : به آدرسی (هایی) اطلاق میشود که بر روی کلاینتهای شبکه داخلی تنظیم شده اند.
    • Inside Global : به آدرسی اطلاق میشود که به اینترفیس داخلی روتر که به شبکه داخلی متصل است داده شده است.
    • Outside Local : به آدرسهایی که درون اینترنت یا شبکه Public ما قرار دارد گفته می شود.
    • Outside Global : به آدرسی (هایی) که بر روی اینترفیس خارجی روتر که به شبکه Public متصل است گفته می شود.


    با یک مثال تصویری با اصطلاحات فوق بیشتر آشنا خواهیم شد.



    Static NAT

    این نوع NAT به صورت یک به یک عمل میکند. بدین معنی که یک عدد inside-localرا به یک outside-global ترجمه می کند. کاربرد این نوع NAT وقتی است که میخواهیم یک private ip را به یک public ip تبدیل کنیم.
    با مثالی عملی این بیشتر توضیح می دهیم.



    در مثال فوق یک روتر سیسکو داریم که 2 عدد اینترفیس دارد. یکی سریال که به اینترنت متصل و دومی اترنت که به شبکه داخلی ما وصل شده است.
    ما میخواهیم آدرس 10.1.1.1را به 11.11.11.254ترجمه کنیم.
    بر روی روتر سیسکو چنین عمل میکنیم:

    وارد محیط کانفیگ میشویم
    کد PHP:
              config terminal 
    با این دستور یک NAT استاتیک انجام میدهیم
    کد PHP:
              ip nat inside source static 10.1.1.1 11.11.11.254 
    وارد اینترفیس سریال میشویم
    کد PHP:
              interface serial0 
    این اینترفیس را به عنوان خروجی NAT مشخص میکنیم
    کد PHP:
              ip nat outside 
    از اینترفیس خارج می شویم
    کد PHP:
         exit 
    وارد اینترفیس اترنت میشویم
    کد PHP:
              interface Ethernet0 
    اینترفیس را به عنوان ورودی NAT مشخص میکنیم
    کد PHP:
              ip nat inside 
    از اینترفیس و مد کانفیگ خارج میشویم



    هم اکنون با ست کردن آدرس 10.1.1.1و گیت وی 10.10.10.10روی کلاینت میتوانیم به اینترنت دسترسی داشته باشیم.



    Dynamic NAT

    Dynamic NAT نیز همانند Static NAT است اما با این تفاوت که در NAT به صورت Dynamic میتوانیم یک یا چندین IP با به چندین IP ترجمه کنیم.

    اما چرا چندین IP به چندین IP؟

    فرض کنید شما Admin یک ISP هستید و به دلیل کمبود IP نیاز به NAT دارید. بر فرض مثال شما دارای 10 Valid IP و 100 Invalid IP که باید به آنها ترجمه کنید. ممکن است تا کنون برای شما پیش آمده باشد که یوزری تماس گرفته و اعلام نا رضایتی کند از اینکه مدتهای طولانی برای دانلود یک فایل از سایت Rapidshare.com باید انتظار بکشد. این به دلیل این است که سایت Rapidshare.com تمامی یوزرهای شما را به چشم یک کاربر میبیند. برای رفع این مشکل میتوانیم 10 آدرس معتبر را به 100 آدرس غیر معتبر ترجمه کنیم که تا حدود زیادی مشکل را حل خواهد کرد.
    در Dynamic NAT معمولا آدرسهای معتبر را به وسیله IP nat pool مشخص و آدرسهای غیر معتبر را توسط یک access-list مشخص میکنیم. دلیل استفاده از access-list ایجاد امنیت بیشتر است.

    حال با یک مثال به نحوه ایجاد یک Dynamic NAT واقف می شویم:

    یک روتر سیسکو داریم که از یک سو توسط اینترفیس سریال به اینترنت متصل گردیده که دارای رنج IP 217.219.109.128/25 و از سوی دیگر توسط اینترفیس اترنت به شبکه داخلی با رنج 172.16.0.0/24 متصل شده است.

    آدرس اینترفیس سریال را 217.219.109.129 و آدرس اینترفیس اترنت را 172.16.0.1 قرار میدهیم.
    کد PHP:
              config terminal 
    ابتدا برای آدرسهای Valid خود یک Pool تهیه می کنیم
    کد PHP:
              ip nat pool pool1 217.219.109.130 217.219.109.254 prefix-length 25 
    Prefix-length در مثال بالا همان subnet mask آدرسهای ما می باشد
    حال access-list مربوط به آدرسهای داخلی را می نویسیم
    کد PHP:
              access-list 8 permit 172.16.0.0   0.0.0.255 
    دستور اصلی NAT را می نویسیم
    کد PHP:
              ip nat inside source list 8 pool pool1 
    که در دستور فوق عدد 8 بیانگر آدرسهای داخلی و pool1 مشخص کننده آدرسهای خارجیست
    کد PHP:
              interface serial0 
    اینترفیس را به عنوان خروجی NAT مشخص میکنیم
    کد PHP:
              ip nat outside 
    از اینترفیس خارج می شویم
    کد PHP:
              exit 
    وارد اینترفیس اترنت میشویم
    کد PHP:
              interface ethernet0 
    اینترفیس را به عنوان ورودی NAT معرفی میکنیم
    کد PHP:
              ip nat inside 
    Dynamic NAT به صورت Overload


    ممکن است ما به شرایطی بر بخوریم که تنها 1 عدد آدرس Valid در اختیار داریم و اجبار به NAT کردن آدرس مذکور به چندین آدرس را داریم. در چنین شرایطی باید از قابلیت Overload استفاده کنیم.
    در این حالت روتر برای ورود و خروج هر آدرس Invalid یک پورت مجزا در نظر می گیرد که تمامی آنها را در جدولی که درون خود تشکیل می دهد به ثبت می رساند. به این ترتیب هر پکت که از روتر به مقصد اینترنت خارج می شود دقیقا در هنگام بازگشت به همان آدرس Invalid که صادر کننده آن است باز میگردد. هر یک خط در جدول مذکور یک کانکشن به حساب می آید. اگر دقت کنید بر روی کاتالوگ بعضی سخت افزارها محدودیتی برای تعداد این کانکشن ها قائل می شوند.

    در مثال زیر نحوه تنظیم یک روتر به صورت Overload را توضیح می دهیم :

    دیاگرام خود را مقداری تغییر می دهیم. در این مثال ما روتر خود را که دارای 3 اینترفیس است به 3 شبکه متصل میکنیم. پورت سریال که به اینترنت متصل و دارای آدرس 80.191.120.8/26 است . اینترفیس ethernet0 به شبکه داخلی اول ما متصل و دارای آدرس 172.16.100.1/24 میباشد و در آخر اینترفیس ethernet1 را داریم که دارای آدرس 192.168.30.1/24 است.
    میخواهیم آدرس 80.191.120.8 را به دو سابنت داخلی NAT کنیم:

    وارد مد کانفیگ می شویم
    کد PHP:
              config terminal 
    یک pool برای آدرس Valid تهیه میکنیم که تنها 1 آدرس در آن وجود دارد
    کد PHP:
              ip nat pool ovrld 80.191.120.8    80.191.120.8 netmask 255.255.255.192 
    با access-list زیر آدرسهای 2 رنج داخلی خود را به access-list شماره 3 نسبت می دهیم
    کد PHP:
              access-list 3 permit 172.16.100.0    0.0.0.255
        access
    -list 3 permit 192.168.30.0    0.0.0.255 
    دستور اصلی NAT را می نویسیم که کلمه Overload میبایست در آخر آن اضافه شود
    کد PHP:
              ip nat inside source list 3 pool ovrld overload 
    اینترفیس خروجی NAT را مشخص میکنیم
    کد PHP:
              interface serial0
        ip nat outside
        
    exit 
    این اینترفیس را به عنوان ورودی NAT مشخص میکنیم
    کد PHP:
              interface ethernet0
        ip nat inside
        
    exit 
    این اینترفیس را به عنوان ورودی NAT مشخص میکنیم
    کد PHP:
              interface ethernet1
        ip nat inside
        
    exit 
    هم اکنون آدرس 80.191.120.8 عمل NAT را برای هر دو سابنت ما انجام می دهد.



    Destination NAT



    dstNAT یا outside source address translation بدین معنی است که ما عمل NAT را برای شبکه Public خود انجام دهیم. با یک مثال قضیه را روشن میکنم:
    فرض کنید آدرس IP یکی از مشترکین شما NAT شده است. یعنی مشترک به صورت دستی آدرس را در کامپیوتر خود وارد کرده و default gateway را آدرس اینترفیس داخلی روتر شما قرار داره است. شما قبلا عمل NAT را برای وی انجام داده اید و او را به اینترنت متصل نموده اید. حال مشترک نیاز دارد که کاربری در اینترنت به کامپیوترش وصل شود یا اینکه قصد هاست کردن یک وبسایت بر روی کامپیوتر حود را دارد. با شرایط فعلی این امر امکان پذیر نیست زیرا که آدرس معتبری یر روی آن تنظیم نشده و از اینترنت قابل رویت نیست.
    ما برای رفع مشکل این یوزر می بایست عمل dstNAT را انجام دهیم. یعنی به روتر خود بگوئیم هر گاه پکتی با درخواست اتصال به آدرس X را داشت آن را به کامپیوتری در شبکه داخلی با آدرس Y بفرست. بدین ترتیب با داشتن آن آدرس valid میتوانیم به هاست لوکال خود دسترسی پیدا کنیم. این امر نیز به دو صورت static و dynamic قابل اجراست که در مثالهای زیر توضیح داده شده است.




    Static dstNAT

    ابتدا همانند قبل یک static nat میان 2 آدرس 10.1.1.1 و 11.11.11.254 ایجاد میکنیم

    سپس این خط را به تنظیمات خود اضافه میکنیم
    کد PHP:
              ip nat outside source static 11.11.11.254   10.1.1.1 
    Dynamic dstNAT


    در این مثال نیز ابتدا تمامی تنظیمات Dynamic NAT را که قبلا گفته شده انجام میدهیم سپس این خط را به آخر آن اضافه میکنیم
    کد PHP:
              ip nat outside source list   8   pool   pool1 
    بدین ترتیب عمل reverse را نیز برای NAT خود انجام میدهیم.




    Redirect in NAT


    در بعضی مواقع نیاز داریم که یک پورت یا IP را به صورت transparent برای یوزرهای خود عوض کنیم. به عنوان مثال ما در شبکه خود یک وب سرور داریم. این سرور قبلا بر روی پورت 80 کار کرده است اما اکنون به دلایلی مجبور به تعویض پورت آن به 8080 شده ایم. ممکن است آگاه سازی یوزرهای ما برایمان مشکل ساز باشد و بخواهیم بدون هیچ تغییری برای آنها این پورت را عوض کنیم. در چنین مواقعی Redirect به کمک ما می شتابد.
    در مثال زیر با چگونگی تنظیمات این نوع NAT آشنا می شویم:

    در این مثال ما یک روتر سیسکو داریم که 2 اینترفیس سریال و اترنت دارد. که آدرس سریال را 100.100.100.5 و آدرس اترنت را 10.20.30.1 قرار داده ایم.
    آدرس وب سرور ما 10.20.30.55 می باشد که در شبکه داخلی ما قرار دارد.
    برای Redirect کردن پورت 80 به 8080 بدین صورت عمل میکنیم:
    کد PHP:
              config terminal
        ip nat inside source 
    static tcp 10.20.30.55  8080  10.20.30.55  80 
    اینترفیس خروجی NAT را مشخص میکنیم
    کد PHP:
              interface serial0
        ip nat outside
        
    exit 
    این اینترفیس را به عنوان ورودی NAT مشخص میکنیم
    کد PHP:
              interface ethernet0
        ip nat inside
        
    exit 
    حال یک سولوشن دیگر پیاده میکنیم.

    در شبکه ما یک روتر وجود دارد که دارای 3 اینترفیس است. اینترفیس سریال که آدرس 200.200.200.43 و اینترفیس ethernet0 که آدرس 172.16.10.1 و اینترفیس ethernet1 که آدرس 192.168.0.1 را داراست.
    ما در شبکه ای که به اینترفیس ethernet1 متصل شده یک سرور داریم که آدرس آن 192.168.0.6 است. به دلایلی مجبور به تعویض آدرس آن به 192.168.0.12 شده ایم. به دلیل اینکه این سرور مربوط به اتوماسیون اداری ما بوده بسیار کار دشواریست که بر روی 176 کلاینت خود که با این سرور کار میکنند و در شبکه ای که به اینترفیس ethernet0 وصل است آدرس سرور را عوض کنیم.
    برای همین به سراغ روتر قدرتمند خود می آئیم و تمامی درخواستهایی را که به مقصد 192.168.0.6 می روند را به 192.168.0.12 هدایت میکنیم.
    در زیر نحوه انجام این کار توضیح داده شده است.
    کد PHP:
              config terminal
        ip nat inside source 
    static 192.168.0.12   192.168.0.6 
    اینترفیس خروجی NAT را مشخص میکنیم
    کد PHP:
              interface serial0
        ip nat outside
        
    exit 
    این اینترفیس را به عنوان ورودی NAT مشخص میکنیم
    کد PHP:
              interface ethernet0
        ip nat inside
        
    exit 
    این اینترفیس را به عنوان ورودی NAT مشخص میکنیم
    کد PHP:
              interface ethernet1
        ip nat inside
        
    exit 
    Change Translation Timeouts


    وقتی که ما از Dynamic NAT استفاده می کنیم یک IP به یک IP دیگر نسبت داده می شود. فرضا اگر کلاینت ما 1 ساعت از این IP استفاده کند تا یک مدت بعد این IP خارجی برای وی به صورت رزرو می ماند. اگر بعد از یک پریود زمانی کلاینت ما از آن استفاده نکند به کلاینت دیگری اختصاص داده می شود.
    زمان این تاخیر را میتوانیم مشخص کنیم که در حالت Dynamic NAT بدون Overload این زمان به صورت پیش فرض 24 ساعت است.

    با دستور زیر این امر محقق می شود:
    کد PHP:
              config terminal
        ip nat translation timeout 21600 
    عدد فوق بر اساس ثانیه بوده که در مثال بالا ما این زمان تاخیر را بر روی 6 ساعت تنظیم کرده ایم.

    همانطور که گفتیم مثال بالا برای حالت Dynamic NAT بدون Overload هست. در حالت Overload چون برای هر یوزر یه آدرس خارجی نداریم مقدار این زمان اصلا مشخص نیست.
    در حالت Overload تنها میتوانیم زمان برای پروتکلهای خاص مشخص کنیم:

    در مثال زیر پروتکلها آورده شده اند:
    کد PHP:
              config terminal
        ip nat translation udp
    -timeout 120
        ip nat translation dns
    -timeout 100
        ip nat translation tcp
    -timeout 480
        
    exit 
    مانیتور کردن NAT درون Router
    کد PHP:
              show ip nat translations
        show ip nat statistics 
    امیدوارم آموزش فوق توانسته باشد مفید واقع شود. برای افزایش هر چه بیشتر کیفیت این گونه مقالات منتظر دریافت نظرات و انتقادات شما هستم.
    امین کثیریان
    milade_m@yahoo.com
    وب سایت : www.irhosting24.com
    تلگرام : OURWEB@ - تلفن تماس : موبایل : 09999978820

  2. تعداد تشکر ها از ourweb به دلیل پست مفید


  3. # ADS




     

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. فیلم های اموزشی سیسکو
    توسط vpservers در انجمن مباحث دیگر
    پاسخ ها: 3
    آخرين نوشته: October 10th, 2013, 01:48
  2. دریافت آموزش های سیسکو کامل حرفه ای
    توسط tak~vps در انجمن سیسکو Cisco
    پاسخ ها: 3
    آخرين نوشته: July 25th, 2013, 14:56
  3. آموزش nat در سیسکو
    توسط hadi-110 در انجمن سیسکو Cisco
    پاسخ ها: 0
    آخرين نوشته: December 8th, 2012, 15:57
  4. آموزش nat در سیسکو
    توسط rsjpay در انجمن سیسکو Cisco
    پاسخ ها: 0
    آخرين نوشته: October 25th, 2011, 17:34
  5. آموزش nat در سیسکو
    توسط royalserver.ir در انجمن سیسکو Cisco
    پاسخ ها: 0
    آخرين نوشته: February 12th, 2011, 00:54

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •