NAT چیست؟

نوشته شده توسط بهادر اکرمی در 12 اکتبر 2013

همزمان با انفجار اینترنت ( عمومیت یافتن) و افزایش شبکه های کامپیوتری ، تعداد IP موجود، پاسخگوی نیازها نبود. منطقی ترین روش، طراحی مجدد سیستم آدرس دهی IP است تا امکان استفاده از آدرس های IP بیشَتری فراهم گردد. موضوع فوق در حال پیاده سازی بوده و نسخه شماره شش IP ، راهکاری در این زمینه است . چندین سال طول خواهد کشید تا سیستم فوق پیاده سازی گردد، چراکه می بایست تمامی زیرساخت های اینترنت تغییر واصلاح گردند. NAT با هدف کمک به مشکل فوق طراحی شده است . NAT به یک دستگاه اجازه می دهد که بصورت یک روتر عمل نماید. در این حالت NAT بعنوان یک آژانس بین اینترنت ( شبکه عمومی ) و یک شبکه محلی ( شبکه خصوصی ) رفتار نماید. این بدان معنی است که صرفا” یک IP منحصر بفرد بمنظور نمایش مجموعه ای از کامپیوترها( یک گروه ) مورد نیاز خواهد بود.

کم بودن تعداد IP صرفا” یکی از دلایل استفاده از NAT است .در ادامه به بررسی علل استفاده از NATخواهیم پرداخت . قابلیت های NAT عملکرد NAT مشابه یک تلفتچی در یک اداره بزرگ است . فرض کنید شما به تلفنچی اداره خود اعلام نموده اید که تماس های تلفنی مربوط به شما را تا به وی اعلام ننموده اید ، وصل نکند . در ادامه با یکی ازمشتریان تماس گرفته و برای وی پیامی گذاشته اید که سریعا” با شما تماس بگیرد. شما به تلفتچی اداره می گوئید که منتظر تماس تلفن از طرف یکی از مشتریان هستم، در صورت تماس وی ، آن را به دفتر من وصل نمائید. در ادامه مشتری مورد نظر با اداره شما تماس گرفته و به تلفنچی اعلام می نماید که قصد گفتگو با شما را دارد ( چراکه شما منتظر تماس وی هستید ). تلفنچی جدول مورد نظر خود را بررسی تا نام شما را در آن پیدا نماید. تلفنچی متوجه می شود که شما تلفن فوق را درخواست نموده اید، بنابراین تماس مورد نظر به دفتر شما وصل خواهد شد. NAT توسط شرکت سیسکو و بمنظور استفاده در یک دستگاه ( فایروال ، روتر، کامپیوتر ) ارائه شده است .NAT بین یک شبکه داخلی و یک شبکه عمومی مستقر و شامل مدل ها ی متفاوتی است . – NAT ایستا . عملیات مربوط به ترجمه یک آدرس IP غیر ریجستر شده ( ثبت شده ) به یک آدرس IP ریجستر شده را انجام می دهد. ( تناظر یک به یک ) روش فوق زمانیکه قصد استفاده از یک دستگاه را از طریق خارج از شبکه داشته باشیم، مفید و قابل استفاده است . در مدل فوق همواره IP 192.168.32.10 به IP 213.18.123.110 ترجمه خواهد شد. – NAT پویا . یک آدرس IP غیر ریجستر شده را به یک IP ریجستر شده ترجمه می نماید. در ترجمه فوق از گروهی آدرس های IP ریجستر شده استفاده خواهد شد. – OverLoading . مدل فوق شکل خاصی از NAT پویا است . در این مدل چندین IP غیر ریجستر شده به یک IP ریجستر شده با استفاده از پورت های متعدد، ترجمه خواهند شد. به روش فوق PAT)Port Address Translation) نیز گفته می شود. – Overlapping . در روش فوق شبکه خصوصی از مجموعه ای IP ریجستر شده استفاده می کند که توسط شبکه دیگر استفاده می گردند. NAT می بایست آدرس های فوق را به آدرس های IP ریجستر شده منحصربفرد ترجمه نماید. NAT همواره آدرس های یک شبکه خصوصی را به آدرس های ریجستر شده منحصر بفرد ترجمه می نماید. NAT همچنین آدرس های ریجستر شده عمومی را به آدرس های منحصر بفرد در یک شبکه خصوصی ترجمه می نماید. ( در هر حالت خروجی NAT ، آدرس های IP منحصر بفرد خواهد بود. آدرس های فوق می تواند در شبکه های عمومی ریجستر شده جهانی باشند و در شبکه های خصوصی ریجستر شده محلی باشند ) شبکه اختصاصی ( خصوصی ) معمولا” بصورت یک شبکه LAN می باشند . به این نوع شبکه ها که از آدرس های IP داخلی استفاده می نمایند حوزه محلی می گویند. اغلب ترافیک شبکه در حوزه محلی بصورت داخلی بوده و بنابراین ضرورتی به ارسال اطلاعات خارج از شبکه را نخواهد داشت . یک حوزه محلی می تواند دارای آدرس های IP ریجستر شده و یا غیرریجستر شده باشد. هر کامپیوتری که از آدرس های IP غیرریجستر شده استفاده می کنند، می بایست از NAT بمنظور ارتباط با دنیای خارج از شبکه محلی استفاده نمایند. NAT می تواند با استفاده از روش های متفاوت پیکربندی گردد. در مثال زیر NAT بگونه ای پیکربندی شده است که بتواند آدرس های غیر ریجستر شده IP ( داخلی و محلی ) که بر روی شبکه خصوصی ( داخلی ) می باشند را به آدرس های IP ریجستر شده ترجمه نماید. – یک ISP ( مرکز ارائه دهنده خدمات اینترنت ) یک محدوده از آدرس های IP را برای شرکت شما در نظر می گیرد. آدرس های فوق ریجستر و منحصر بفرد خواهند بود . آدرس های فوق Inside global نامیده می شوند. آدرس های IP خصوصی و غیرریچستر شده به دو گروه عمده تقسیم می گردند : یک گروه کوچک که توسط NAT استفاده شده (Outside local address) و گروه بزرگتری که توسط حوزه محلی استفاده خواهند شد ( Inside local address) . آدرس های Outside local بمنظور ترجمه به آدرس های منحصربفرد IP استفاده می شوند.آدرس های منحصر بفرد فوق، outside global نامیده شده و اختصاص به دستگاههای موجود بر روی شبکه عمومی ( اینترنت) دارند. – اکثر کامپیوترهای موجود در حوزه داخلی با استفاده از آدرس های inside local با یکدیگر ارتباط برقرار می نمایند. – برخی از کامپیوترهای موجود در حوزه داخلی که نیازمند ارتباط دائم با خارج از شبکه باشند ،از آدرس های inside global استفاده و بدین ترتیب نیازی به ترجمه نخواهند داشت . – زمانیکه کامپیوتر موجود در حوزه محلی که دارای یک آدرس inside local است، قصد ارتباط با خارج شبکه را داشته باشد بسته های اطلاعاتی وی در اختیار NAT قرار خواهد گرفت . – NAT جدول روتینگ خود را بررسی تا به این اطمینان برسد که برای آدرس مقصد یک entry در اختیار دارد. در صورتیکه پاسخ مثبت باشد، NAT بسته اطلاعاتی مربوطه را ترجمه و یک entry برای آن ایجاد و آن را در جدول ترجمه آدرس (ATT) ثبت خواهد کرد. در صورتیکه پاسخ منفی باشد بسته اطلاعاتی دور انداخته خواهد شد. – با استفاده از یک آدرس inside global ، روتر بسته اطلاعاتی را به مقصد مورد نظر ارسال خواهد کرد. – کامپیوتر موجود در شبکه عمومی ( اینترنت )، یک بسته اطلاعاتی را برای شبکه خصوصی ارسال می دارد. آدرس مبداء بسته اطلاعاتی از نوع outside global است . آدرس مقصد یک آدرس inside global است . – NAT در جدول مربوطه به خود جستجو و آدرس مقصد را تشخیص و در ادامه آن را به کامپیوتر موجود در حوزه داخلی نسبت خواهد کرد. – NAT آدرس های inside global بسته اطلاعاتی را به آدرس های inside local ترجمه و آنها را برای کامپیوتر مقصد ارسال خواهد کرد. روش Overloading از یک ویژگی خاص پروتکل TCP/IP استفاده می نماید. ویژگی فوق این امکان را فراهم می آورد که یک کامپیوتر قادر به پشتیبانی از چندین اتصال همزمان با یک و یا چندین کامپیوتر با استفاده از پورت های متفاوت TCP و یا UDP باشد.. یک بسته اطلاعاتی IP دارای یک هدر(Header) با اطلاعات زیر است : آدرس مبداء . آدرس کامپیوتر ارسال کننده اطلاعات است . پورت مبداء. شماره پورت TCP و یا UDP بوده که توسط کامپیوتر مبداء به بسته اطلاعاتی نسبت داده شده است . آدرس مقصد : آدرس کامپیوتر دریافت کننده اطلاعات است . پورت مقصد. شماره پورتTCP و یا UDP بوده که کامپیوتر ارسال کننده برای باز نمودن بسته اطلاعاتی برای گیرنده مشخص کرده است . آدرس ها ، کامپیوترهای مبداء و مقصد را مشخص کرده ، در حالیکه شماره پورت این اطمینان را بوجود خواهد آورد که ارتباط بین دو کامپیوتر دارای یک مشخصه منحصر بفرد است . هر شماره پورت از شانزده بیت استفاده می نماید.

NAT ( Network Address Translation

در اختصار به معنی ترجمه آدرسها وپورتهای شبکه داخلی و مخفی نمودن آنها در قالب یک آدرس و پورت شبکه خارجی که میتونه سرور یا روتر باشه.
مثلا” ما یه شبکه داریم که متشکل از دو لپ تاب و دو پی سی و یک سرور Windows 2003 هست . در اینجا لپ تاپها و پی سی ها در حکم آدرسهای داخلی و سرور در حکم آدرس خارجی عمل میکنه. به عنوان مثال وقتی کامپیتری از شبکه داخلی میخواد درخواستی رو به سروری در خارج از شبکه مثلا” اینترنت بفرسته ، اول به سرور ۲۰۰۳ میفرسته و سرور با توجه به جداولی که به ip translation tables معروفند ip header خودش رو جایگزین کامپیوتر درخواست کننده کرده و دوباره به بیرون از شبکه میفرسته . در این صورت سروری که قراره به این درخواست جواب بده سرور ۲۰۰۳رو به عنوان در خواست کننده میشناسه و بهش جواب میده .و همچنین هویت درخواست کننده واقعی مخفی خواهد ماند. Nat server در بسیاری از جهات شبیه Proxy server هست . از این تکنولوژی بیشتر در زمانهایی که Public IP Address به مقدار کافی موجود نباشه استفاده میشه و تمامی ترافیک شبکه داخلی به یک آدرس و پورت منحصر به فرد ترجمه شده و به بیرون فرستاده میشه .
قضیه استاتیک نت بیشتر در این مورد صاد قه !

انواع NAT :
۱- Full cone NAT
۲- (Address) Restricted cone NAT
۳- Port-Restricted cone NAT
۴- Symmetric NAT

NAT Table در نوع های مختلف NAT متفاوت کار می کند. NAT Table بزرگتر به معنی اشغال حافظه بیشتر است و می تواند ارتباطات زیادتری را ردیابی کند، به این معنی که دستگاهی که NAT روی آن فعال است ، جدول بزرگتری دارد و می تواند ارتباطات بیشتری را نسبت به دستگاهی که NAT Table آن کوچکتر است ثبت و کنترل نماید. شکل زیر ساختار یک NAT Table را نشان می دهد:

شکل فوق نمایانگر دو درخواست از داخل و از ایستگاههای کاری ۱۹۲٫۱۶۸٫۰٫۵ و ۱۹۲٫۱۶۸٫۰٫۲۱ به دستگاهی که NAT روی آن فعال است ، می باشد. این بسته های اطلاعاتی به صورت موقتی روی یک قسمت خاصی از مسیریاب ذخیره شده تا تغییرات اندکی روی آن انجام شود. در این مثال مسیریاب آدرس مبداء هر بسته اطلاعاتی را که همان آدرس محلی ایستگاه های کاری می باشد با آدرس اینترنتی خود که آدرس ۲۰۳٫۳۱٫۲۲٫۱۳۴ است تعویض می کند و سپس بسته اطلاعاتی از طریق کارت شبکه اینترنتی مسیریاب و یا دستگاهی که NAT روی آن فعال است به اینترنت میفرستد . یعنی قبل از اینکه بسته های اطلاعاتی مسیریاب را ترک کنند یک رکورد برای هر بسته داخل جدول NAT ثبت می شود این رکورد مسیریاب را قادر می سازد تا تصمیم گیری مناسبی را برای بسته هایی که از اینترنت برمی گردند انجام دهد.

وقتی که جواب یک درخواست از اینترنت برمی گردد چه اتفاقی می افتد؟

در واقع همان اتفاقی که در مورد بسته های خروجی می افتد روی بسته های ورودی نیز انجام می شود.

وقتی جواب درخواستی از اینترنت به مسیریاب می رسد ، مسیریاب از جدول NAT خود کمک گرفته و رکورد مشخص مربوط به این درخواست را پیدا می کند و یک تغییر کوچک دیگر روی بسته اطلاعاتی انجام می دهد و این تغییر، تعویض IP مقصد از ۲۰۳٫۳۱٫۲۲۰٫۱۳۴ به ۱۹۲٫۱۶۸٫۰٫۵ برای بسته اطلاعاتی اول و ۱۹۲٫۱۶۸٫۰٫۲۱ برای بسته اطلاعاتی دوم می باشد. سپس این بسته های جدید به مقصدشان فرستاده می شوند و مسیریاب رکورد مربوط به این دو را از جدول NAT خود حذف می کند.

روی اکثر دستگاه هایی که NAT را پشتیبانی می کنند، ارتباطات NAT محدود به حافظه موجود روی آن دستگاه می باشد. هر ترجمه NAT (تعویضIP) حدود ۱۶۰ بایت از حافظه را اشغال می کند. نتیجه اینکه اگر۱۰۰۰ ترجمه اتفاق بیفتد حدود ۱٫۶ مگابایت از حافظه اشغال می شود. بنابراین Platform ی برای استفاده از NAT مناسب است که دارای حافظه کافی برای کنترل ارتباطات و عملکرد NAT را نیز داشته باشد.

دیدگاه‌تان را ارسال کنید ...

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


طراحی قالب توسط: بهادر اکرمی