NAT

اينترنت با سرعتی باورنکردنی همجنان در حال گسترش است . تعداد کامپيوترهای ارائه دهنده اطلاعات ( خدمات ) و کاربران اينترنت روزانه تغيير و رشد می يابد. با اينکه نمی توان دقيقا" اندازه اينترنت را مشخص کرد ولی تقريبا" يکصد ميليون کامپيوتر ميزبان (Host) و 350 ميليون کاربر از اينترنت استفاده می نمايند. رشد اينترنت چه نوع ارتباطی باNetwork Address Translation) NAT ) دارد؟ هر کامپيوتر به منظور ارتباط با ساير کامپيوترها و سرويس دهندگان وب بر روی اينترنت، می بايست دارای يک آدرس IP باشد. IP يک عدد منحصر بفرد 32 بيتی بوده که کامپيوتر موجود در يک شبکه را مشخص می کند.
اولين مرتبه ای که مسئله آدرس دهی توسط IP مطرح گرديد، کمتر کسی به اين فکر می افتاد که ممکن است خواسته ای مطرح شود که نتوان به آن يک آدرس را نسبت داد. با استفاده از سيستم آدرس دهی IP می توان 4.294.976.296 (232) آدرس را توليد کرد. ( بصورت تئوری ). تعداد واقعی آدرس های قابل استفاده کمتر از مقدار ( بين 3.2 ميليارد و 3.3 ميليارد ) فوق است . علت اين امر، تفکيک آدرس ها به کلاس ها و رزو بودن برخی آدرس ها برای multicasting ، تست و موارد خاص ديگر است .
همزمان با انفجار اينترنت ( عموميت يافتن) و افزايش شبکه های کامپيوتری ، تعداد IP موجود، پاسخگوی نيازها نبود. منطقی ترين روش، طراحی مجدد سيستم آدرس دهی IP است تا امکان استفاده از آدرس های IP بيشَتری فراهم گردد. موضوع فوق در حال پياده سازی بوده و نسخه شماره شش IP ، راهکاری در اين زمينه است . چندين سال طول خواهد کشيد تا سيستم فوق پياده سازی گردد، چراکه می بايست تمامی زيرساخت های اينترنت تغيير واصلاح گردند. NAT با هدف کمک به مشکل فوق طراحی شده است . NAT به يک دستگاه اجازه می دهد که بصورت يک روتر عمل نمايد. در اين حالت NAT به عنوان يک آژانس بين اينترنت ( شبکه عمومی ) و يک شبکه محلی ( شبکه خصوصی ) رفتار نمايد. اين بدان معنی است که صرفا" يک IP منحصر بفرد به منظور نمايش مجموعه ای از کامپيوترها( يک گروه ) مورد نياز خواهد بود.

کم بودن تعداد IP صرفا" يکی از دلايل استفاده از 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 بوده که کامپيوتر ارسال کننده برای باز نمودن بسته اطلاعاتی برای گيرنده مشخص کرده است .
آدرس ها ، کامپيوترهای مبداء و مقصد را مشخص کرده ، در حاليکه شماره پورت اين اطمينان را بوجود خواهد آورد که ارتباط بين دو کامپيوتر دارای يک مشخصه منحصر بفرد است . هر شماره پورت از شانزده بيت استفاده می نمايد.( تعداد پورت های ممکن 65536 ( 16 2 ) خواهد بود ) . عملا" از تمام محدوده پورت های فوق استفاده نشده و 4000 پورت بصورت واقعی استفاده خواهند شد.

نحوه کار NAT پويا بصورت زير است :
• يک شبکه داخلی ( حوزه محلی) با استفاده از مجموعه ای از آدرس های IP که توسط IANA)Internet Assigned Numbers Authority) به شرکت و يا موسسه ای اختصاص داده نمی شوند پيکربندی می گردد. ( سازمان فوق مسئول اختصاص آدرس های IP در سطح جهان می باشد) آدرس های فوق بدليل اينکه منحصربفرد می باشند، غير قابل روتينگ ناميده می شوند.
• موسسه مربوطه يک روتر با استفاده از قابليت های NAT را پيکربندی می نمايد. روتر دارای يک محدوده از آدرس های IP منحصر بفرد بوده که توسط IANA د ر اختيار موسسه و يا شرکت مربوطه گذاشته شده است .
• يک کامپيوتر موجود بر روی حوزه محلی سعی درايجاد ارتباط با کامپيوتری خارج از شبکه ( مثلا" يک سرويس دهنده وب) را دارد.
• روتر بسته اطلاعاتی را از کامپيوتر موجود در حوزه محلی دريافت می نمايد.
• روتر آدرس IP غيرقابل روت را در جدول ترجمه آدرس ها ذخيره می نمايد. روتر آدرس IP غير قابل روت را با يک آدرس از مجموعه آدرس های منحصر بفرد جايگزين می نمايد. بدين ترتيب جدول ترجمه، دارای يک رابطه ( معادله ) بين آدرس IP غيرقابل روت با يک آدرس IP منحصر بفرد خواهد بود.
• زمانيکه يک بسته اطلاعاتی از کامپيوتر مقصد مراچعت می نمايد، روتر آدرس مقصد بسته اطلاعاتی را بررسی خواهد کرد.بدين منظور روتر در جدول آدرسهای ترجمه شده جستجو تا از کامپيوتر موجود در حوزه محلی که بسته اطلاعاتی به آن تعلق دارد، آگاهی پيدا نمايد.روتر آدرس مقصد بسته اطلاعاتی را تغيير ( از مقادير ذخيره شده قبلی استفاده می کند ) و آن را برای کامپيوتر مورد نظر ارسال خواهد کرد. در صورتی که نتيجه جستجو در جدول، موفقيت آميز نباشد، بسته اطلاعاتی دور انداخته خواهد شد.
• کامپيوتر موجود در حوزه ، بسته اطلاعاتی را دريافت می کند. فرآيند فوق ماداميکه کامپيوتر با سيستم خارج از شبکه ارتباط دارد، تکرار خواهد شد.

• يک شبکه داخلی ( حوزه محلی) با استفاده از مجموعه ای از آدرس های IP که توسط IANA)Internet Assigned Numbers Authority) به شرکت و يا موسسه ای اختصاص داده نمی شوند پيکربندی می گردد. آدرس های فوق بدليل اينکه منحصربفرد می باشند غير قابل روتينگ ناميده می شوند.
• موسسه مربوطه يک روتر را با استفاده از قابليت های NAT ، پيکربندی می نمايد. روتر دارای يک محدوده از آدرس های IP منحصر بفرد بوده که توسط IANA د ر اختيار موسسه و يا شرکت مربوطه گذاشته شده است .
• يک کامپيوتر موجود بر روی حوزه داخلی ، سعی درايجاد ارتباط با کامپيوتری خارج از شبکه( مثلا" يک سرويس دهنده وب) را دارد.
• روتر بسته اطلاعاتی را از کامپيوتر موجود در حوزه داخلی دريافت می نمايد.
• روتر آدرس IP غيرقابل روت و شماره پورت را در جدول ترجمه آدرس ها ذخيره می نمايد. روتر آدرس IP غير قابل روت را با يک آدرس منحصر بفرد جايگزين می نمايد. روتر شماره پورت کامپيوتر ارسال کننده را با شماره پورت اختصاصی خود جايگزين و آن را در محلی ذخيره تا با آدرس کامپيوتر ارسال کننده اطلاعات ، مطابقت نمايد.
• زمانيکه يک بسته اطلاعاتی از کامپيوتر مقصد مراچعت می نمايد ، روتر پورت مقصد بسته اطلاعاتی را بررسی خواهد کرد.بدين منظور روتر در جدول آدرس های ترجمه شده جستجو تا از کامپيوتر موجود در حوزه داخلی که بسته اطلاعاتی به آن تعلق دارد آگاهی پيدا نمايد.روتر آدرس مقصد بسته اطلاعاتی و شماره پورت را تغيير ( از مقادير ذخيره شده قبلی استفاده می کند ) و آن را برای کامپيوتر مورد نظر ارسال خواهد کرد. در صورتی که نتيجه جستجو در جدول ، موفقيت آميز نباشد بسته اطلاعاتی دور انداخته خواهد شد.
• کامپيوتر موجود در حوزه داخلی ، بسته اطلاعاتی را دريافت می کند. فرآيند فوق ماداميکه کامپيوتر با سيستم خارج از شبکه ارتباط دارد، تکرار خواهد شد.
• با توجه به اينکه NAT آدرس کامپيوتر مبداء و پورت مربوطه آن را در جدول ترجمه آدرس ها ذخيره شده دارد، ماداميکه ارتباط فوق برقرار باشد از شماره پورت ذخيره شده ( اختصاص داده شده به بسته اطلاعاتی ارسالی) استفاده خواهد کرد. روتر دارای يک Timer بوده وهر بار که يک آدرس از طريق آن استفاده می گردد reset می گردد.در صورتی که در مدت زمان مربوطه ( Timer صفر گردد ) به اطلاعات ذخيره شده در NAT مراجعه ای نشود، اطلاعات فوق ( يک سطر از اطلاعات ) از داخل جدول حذف خواهند شد.

Source
Computer

Source
Computer's
IP Address

Source
Computer's
Port

NAT Router's
IP Address

NAT Router's
Assigned
Port Number

A

192.168.32.10

400

215.37.32.203

1

B

192.168.32.13

50

215.37.32.203

2

C

192.168.32.15

3750

215.37.32.203

3

D

192.168.32.18

206

215.37.32.203

4

در صورتی که برخی ازکامپيوترهای موجود در شبکه خصوصی از آدرس های IP اختصاصی خود استفاده می نمايند ، می توان يک ليست دستيابی از آدرس های IP را ايجاد تا به روتر اعلام نمايد که کداميک از کامپيوترهای موجود در شبکه به NAT نياز دارند.
تعداد ترجمه های همزمانی که يک روتر می تواند انجام دهد، ارتباط مستقيم با حافظه اصلی سيستم دارد. با توجه به اينکه در جدول ترجمه آدرس هر entry صرفا" 160 بايت را اشغال خواهد کرد، يک روتر با 4 مگابايت حافظه قادر به پردازش 26.214 ترجمه همزمان است. مقدار فوق برای اغلب موارد کافی بنظر می آيد.
IANA محدوده ای از آدرس های IP را که غيرفابل روت بوده و شامل آدرس های داخلی شبکه هستند مشخص نموده است .آدرس های فوق غيرريجستر شده می باشند.. هيچ شرکت و يا آژانسی نمی تواند ادعای مالکيت آدرس های فوق را داشته باشد و يا آنها را در شبکه های عمومی ( اينترنت ) استفاده نمايد. روترها بگونه ای طراحی شده اند که آدرس های فوق را عبور (Forward) نخواهند کرد.

  • Range 1: Class A - 10.0.0.0       through 10.255.255.255
  • Range 2: Class B - 172.16.0.0    through 172.31.255.255
  • Range 3: Class C - 192.168.0.0  through 192.168.255.255

همزمان با پياده سازی يک NAT پويا، يک فايروال بصورت خودکار بين شبکه داخلی و شبکه های خارجی ايجاد می گردد. NAT صرفا" امکان ارتباط به کامپيوترهائی را که در حوزه داخلی می باشند را خواهد داد. اين بدان معنی است که يک کامپيوتر موجود در خارج از شبکه داخلی ، قادر به ارتباط مستقيم با يک کامپيوتر موجود در حوزه داخلی نبوده ، مگر اينکه ارتباط فوق توسط کامپيوتر شما مقدار دهی اوليه ( هماهنگی های اوليه از بعد مقداردهی آدرس های مربوطه ) گردد. شما براحتی قادر به استفاده از اينترنت دريافت فايل و ... خواهيد بود ولی افراد خارج از شبکه نمی توانند با استفاده از آدرس IP شما، به کامپيوتر شما متصل گردند. NAT ايستا ، امکان برقراری ارتباط با يکی از کامپيوترهای موجود در حوزه داخلی توسط دستگاههای موجود در خارج از شبکه را ، فراهم می نمايند.
برخی از روترهای مبتنی بر NAT امکان فيلترينگ و ثبت ترافيک را ارائه می دهند. با استفاده از فيلترينگ می توان سايت هائی را که پرسنل يک سازمان از آنها استفاده می نمايند را کنترل کرد.با ثبت ترافيک يک سايت می توان از سايت های ملاقات شده توسط کاربران آگاهی و گزارشات متعددی را بر اساس اطلاعات ثبت شده ايجاد کرد.
NAT دربرخی موارد با سرويس دهندگان Proxy ، اشتباه در نظر گرفته می شود. NAT و Proxy دارای تفاوت های زيادی می باشند. NAT بی واسطه بين کامپيوترهای مبداء و مقصد قرار می گيرد. Proxy بصورت بی واسطه نبوده و پس از استقرار بين کامپيوترهای مبداء و مقصد تصور هر يک از کامپيوترهای فوق را تغيير خواهد داد. کامپيوتر مبداء می داند که درخواستی را از Proxy داشته و می بايست به منظور انجام عمليات فوق ( درخواست ) پيکربندی گردد. کامپيوتر مقصد فکر می کند که سرويس دهنده Proxy به عنوان کامپيوتر مبداء می باشد. Proxy در لايه چهارم (Transport) و يا بالاتر مدل OSI ايفای وظيفه می نمايد در صورتی که NAT در لايه سوم (Network) فعاليت می نمايد. Proxy ، بدليل فعاليت در لايه بالاتر در اغلب موارد از NAT کندتر است .