منبع اصلی نوشتار زیر در این لینک قرار دارد

تنظیم ماشین لینوکسی به عنوان NAT

NAT مخفف Network Address Translate برای دسترسی آدرس های خصوصی درون شبکه LAN به اینترنت است. به طور معمول هر کارت شبکه LAN باید دارای یک آدرس عمومی یا آدرس Valid باشد تا بتواند به اینترنت دسترسی داشته باشد. اما می توان از NAT و یک آدرس عمومی برای همه ماشین ها برای دسترسی آنها به اینترنت استفاده کرد. در این حالت یک ماشین (لینوکس، ویندوز یا غیره) به عنوان Router وظیفه NAT را به عهده می گیرد.ماشینی که نقش NAT را دارد دارای دو آدرس (دو کارت شبکه) با آدرس های خصوصی و عمومی است. ماشین های درون شبکه محلی درخواست های مربوط به اینترنت را از طریق آدرس Gateway خود به ماشین NAT ارسال و ماشین NAT آدرس خود را جایگزین آدرس مبدا (آدرس ماشین درخواست کننده از شبکه محلی) کرده و پس از دریافت پاسخ از اینترنت، آدرس ماشین مبدا محلی را جایگزین آدرس خود کرده و پاسخ را تحویل ماشین مبدا می دهد. در مطلب “آشنایی و پیکربندی NAT در لینوکس – بخش نخست” می توانید با انواع NAT ها و عملکرد آنها آشنا شوید. آنچه که گفته شد را Source NAT یا SNAT گویند. در SNAT باید آدرس عمومی را داشته باشیم و آنرا بر روی کارت شبکه تنظیم کنیم.

پیاده سازی NAT توسط iptables انجام می شود. همچنین از جدول nat مربوط به iptables به همراه زنجیره یا chains های آن استفاده می کنیم. در مطلب “فایروال در توزیع های لینوکسی – بخش دوم” می توانید بیشتر درباره مفاهیم iptables بخوانید. IP Masquerade که آنرا IPMASQ نیز می نامند به ماشین های درون LAN اجازه می هد تا بدون اختصاص آدرس عمومی به تک تک آنها درخواست های خود را به ماشین NAT ارسال کنند. IPMASQ server نقش یک Gateway را بازی می کند که دارای دو کارت شبکه، یکی متصل به اینترنت و دیگری متصل به شبکه محلی است. تمامی سیستم های درون شبکه محلی برای دسترسی به اینترنت در پشت IPMASQ server قرار دارند.

IPMASQ1

تفاوت SNAT و IPMASQ در این است که در تنظیم IPMASQ ما از آدرس مودم یا دیوایسی که به اینترنت (شبکه عمومی) متصل است استفاده می کنیم. در واقع در SNAT باید یک آدرس عمومی را داشته باشیم (خریداری کنیم) و آنرا بر روی کارت شبکه ماشین NAT تنظیم کنیم. اما در IPMASQ از آدرس دیوایس متصل به اینترنت یا outgoing device مانند مودم استفاده می کنیم. (از آدرسی که ISP اختصاص داده است استفاده می کنیم.)

در این پست چگونگی تنظیم SNAT و IPMASQ نوسط دستور iptables گفته خواهد شد. برای پیاده سازی NAT باید از جدول nat از iptables استفاده کنیم (مشخص شده با t nat-) و همچنین از زنجیره POSTROUTING از جدول nat استفاده می کنیم. توجه کنید زنجیره POSTROUTING برای SNAT و IPMASQ استفاده می شود. در واقع Role های اختصاص داده شده به POSTROUTING پس از تصمیم های مسیر یابی و پیش از ترک بسته از شبکه، انجام خواهند شد.

پیش از تنظیم NAT توسط iptables لازم که ویژگی ip_forward را فعال کنیم. از مطلب “فعال کردن ip_forward در لینوکس” می توانید درباره ip forward بخوانید.

echo “1″ > /proc/sys/net/ipv4/ip_forward

برای تنظیم IPMASQ توسط iptables از دستور زیر استفاده کنید

iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -o eth0 -j MASQUERADE

در دستور بالا nat نام جدول است. سوییچ t- برای تعیین جدول به کار می رود. A POSTROUTING- یک Role را برای زنجیره POSTROUTING اضافه می کنید. (Append). سوییچ s- مشخص کننده آدرس های مبدا (همان آدرس های خصوصی شبکه محلی) و سوییچ o- برای مشخص کردن دیوایس خروجی که آدرس عمومی بر روی آن تنظیم شده است. یا می توایند از دستور زیر بدون تعیین آدرس های مبدا استفاده کنید

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

همچنین برای تنظیم SNAT از دستور زیر استفاده کنید. در SNAT باید آدرس های عمومی به طور دستی در دستور iptables مشخص شوند.

iptables -t nat-A POSTROUTING-s 192.168.0.0/24-o eth0-j SNAT–to 4.4.3.27-4.4.3.45

همانطور که می بینید دو آدرس عمومی استفاده شده است پس تنظیم SNAT به صورت Dynamic SNAT است. می توانستید از یک آدرس عمومی استفاده کنید که در آن صورت Static SNAT تنظیم می شد.



برچسب ها : , , , , , , , ,