NAT مخفف Network Address Translation به معنی ترجمه آدرس شبکه می باشد و دو نوع SourceNAT و DestinationNAT داریم که در این مقاله به معرفی پروتکل NAT می پردازیم و آموزش کانفیگ و تنظیم NAT در میکروتیک را بررسی می کنیم.
Firewall: فایروال در لغت به معنی دیواره آتش می باشد که در کاربرد نیز همین مفهوم را دارد. زمانی که دو شبکه را به یکدیگر متصل می کنیم احتیاج به حافظت از هر یک نسبت به دیگری داریم که اکثر فایروال های امروزی برای حفاظت از یک شبکه در مقابل اینترنت استفاده میشوند. میکروتیک را می توان به عنوان یک فایروال قوی استفاده کرد. از قابلیت های فایروال میکروتیک ایجاد NATو Filtering میتوان نام برد.
در شبکه معمولا فایروال را بر روی Gateway نصب می کنند که کار حفاظتی شبکه داخلی را از حملات خارجی را به عهده دارد. فایروال ها ممکن است استراتژی های مختلفی داشته باشند که بسته به نوع شبکه و سطوح امنیت آنها دارد. در این فصل ما قابلیت NAT در میکروتیک را بررسی میکنیم و در فصل های بعد به بررسی Filtering و Mangle که از قابلیت های فایروال میکروتیک می باشد خواهیم پرداخت.
NAT: مخفف Network Address Translation می باشد فرایند تغییر در هدرهای یک بسته اطلاعاتی است و این تغییرات انواع مختلفی از Nat را ایجاد می کند. ما برای شبکه ای داخلی از IP های Private استفاده می کنیم این IP ها در شبکه های محلی استفاده می شود و در دنیای (Wan) اینترنت قابل مسیریابی نیستند به همین خاطر یک سرویس به نام NATبه وجود آمد که آن را روی روتر راه اندازی می کنیم و با تنظیم این سرویس کامپیوترهای Private می توانند با کمک این سرویس IP آدرس Private را به IP آدرس Public ترجمه کنند و با کمک این IP به دنیای اینترنت ارتباط برقرار کنند.
انواع NAT:
بطور کلی دو روش برای اجرای NAT در میکروتیک وجود دارد:
Source Nat یا Src Nat: در این روش آدرس IP مبدا تغییر می کند (Nat می شود)
Destination Nat یا Dst Nat: در این روش آدرس IP مقصد تغییر می کند ( Nat می شود)
قاعده کلی برای تمام روش های NAT بصورت زیر می باشد:
هر بسته ای که روی کارت شبکه محلی روتر دریافت می شود عملیات جایگزینی (NAT) آدرس مبدا با آدرس اینترنتی (Public IP) روترانجام می شود سپس بسته به مقصد ارسال می شود (SourceNat) بعد از آن پاسخ این بسته از سمت سیستم گیرنده به روتر فرستاده می شود. روتر آدرس مقصد که آدرس اینترنتی روتر است را به آدرس محلی سیستم فرستنده تغییر می دهد و در نهایت روتر بسته را به سیستم اصلی تحویل می دهد (DestinationNat)
تظیمات Source Nat در روتر:
ip firewall nat add chain=[srcnat/dstnat] out-interface=etherX src-address=[source ip address] dst-address=[destination ip address] action=[masquerade/src-nat] to address=[ip range]
1 – chain: برای مشخص کردن نوع NATاستفاده می شود.
2 – out-interface: اسم کارت شبکه روتر که می خواهیم بسته ها از آن خارج شوند را مشخص می کنیم.
3 – src-address: از این پارامتر برای مشخص کردن محدوده ی شبکه مبدا استفاده می شود.
مثال هایی برای Src-Address:
3-1 – اعمال عملیات NAT بر روی یک سیستم خاص:
Src-address = 192.168.10.2
3-2 – اعمال عملیات NAT بر روی تمامی کلاینت های یک شبکه:
Src-address = 192.168.10.0/24
3-3 – اعمال عملیات NAT بر روی تعدادی از سیستم های یک شبکه: در ادامه بصورت عملی این عملیات را پیاده سازی خواهیم کرد.
نکته: چنانچه بخواهیم تمامی کلاینت ها موجود در شبکه مبدا بتوانند بسته های خود را به سمت روتر ارسال کنند در src-address چیزی نمی نویسیم.
4 – dst-address: برای اعمال عملیات NATبر روی سیستم هایی که مقصد آنها سیستم مشخصی است استفاده می شود.
نکته: چنانچه بخواهیم تمام بسته هایی که از روتر خارج می شوند بدون توجه به مقصد، آنها را NAT کنیم پارامتر Dst-address را خالی می گذاریم. بنابراین تمامی بسته ها از روتر عبور می کنند.
5 – Action: عملیاتی که بر روی بسته ها انجام می شود توسط این پارامتر انجام می شود.
5-1 – Masquerade: در این روش IP روتر جایگزین فیلد Source IP در بسته ارسالی از سمت کلاینت می شود. در این حالت ارتباط به سمت شبکه خارجی توسط خود روتر برقرار می شود. چرا که آدرس IP روتر در فیلد Source IP جایگزین آدرس IP کلاینت می شود.
5-2 – Src-nat: در این روش یک یا چند IP خاص جایگزین Source IP در بسته ارسالی می شود بنابراین امنیت و کنترل بیشتری روی شبکه های محلی خود خواهید داشت.
6 – To Address: در این پارامتر تعدادی IP در نظر گرفته می شود و عملیات NAT برای هر سیستم با استفاده از یکی از این IP ها صورت میگیرد. در حقیقت برای انتساب آدرس IP به کلاینت ها Pooling تعریف می شود. منطق Pooling به این صورت می باشد که هر Request که به سمت Nat Router فرستاده می شود یک IP انتساب داده می شود. زمانی که تمامی IP ها مورد استفاده قرار گرفت Request بعدی نمی تواند ارتباط برقرار کند و به حالت Wating وارد می شود تا زمانی که یکی از Request های قبلی ارتباط را قطع کند.
حالت های مختلف Pooling:
6-1 – در پارامتر To Address می توان برای اعمال Natبر روی بسته ها تنها یک IP را مشخص کرد. در مثال زیر مشخص کردیم تمامی سیستم هایی که می خواهند از روتر عبور کنند به آدرس 192.168.10.1 Nat شوند.
To Address : 192.168.10.1
6-2 – در پارامتر To Address می توان برای اعمال Nat بر روی بسته ها یک محدوده کامل از IP ها را مشخص کرد.
To Address : 192.168.10.0/24
6-3 – تعیین کردن یک محدوده ی مشخص از IP ها:
To Address : 192.168.10.1-192.168.10.25
آموزش تصویری NAT در میکروتیک:
برای ایجاد یک دستور Natدر میکروتیک از طریق winbox ابتدا از منو سمت چپ ip و سپس firewall را انتخاب می کنیم در پنجره باز شده به تب Natمی رویم.
در این پنجره برای اضافه کردن یک دستور Natروی علامت add کلیک کرده با پنجره ای مانند شکل زیر مواجه می شویم.
در تب general قسمت chain دو انتخاب وجود دارد SRCNAT به معنای SourceNat و dstNat به معنای destination Nat می باشد البته امکان تعریف chain جدید نیز وجود دارد که این مبحث در دوره های میکروتیک پیشرفته تر ارائه خواهد شد.
SourceNat آدرس مبدا را تغییر می دهد و distanationNat آدرس مقصد را تغییر میدهد.
فیلد های دیگر در واقع شرایط را برای عملیات Nat تعریف می کنند به عنوان مثال درصورتی که با اضافه کردن آدرس مبدا عملیات Nat فقط روی پکت هایی با آن آدرس مبدا انجام خواهد شد.
توجه داشته باشید که دستورات Natبه صورت سلسله مراتبی انجام می شوند بدان معنا که یک پکت در واقع از بالای لیست وارد و وابسته به دستور های نت در هر ردیف تغییراتی روی آن انجام میشد. در winbox از طریق Drag and Drop می توانید اولویت دستورات را تغییر دهید.
بعد از تنظیمات مناسب در این بخش به تب action می رویم در این تب باید نوع عملیات Nat را مشخص کنیم.
انواع action ها در Nat: دقت داشته باشید که action های مختلف در هر chain عملکرد خاصی دارند وحتی ممکن است یک action در یک chain عملاً کاری انجام ندهد این عملکرد های متفاوت در این مجموعه آموزش میکروتیک بررسی نخواهد شد و در دوره های پیشرفته تر به آن پرداخته می شوند. برای درک بهتر chain ها می توانید با جستجوی Mikrotik Packet Flow در گوگل به مطالبی در این مورد دست پیدا کنید.
Accept: در واقع این Action هیچ کاری انجام نمیدهد فقط در صورتی که پکتی با شرایط رول Natکه Action آن Accept باشد مواجه شود عملیات Nat روی آن پکت متوقف و دیگر به رول بعدی تحویل داده نمی شود.
add-dst-to-address-list: آدرس مقصد پکت به یک Address list اضافه می شود.
add-src-to-address-list: آدرس مبدا را به یک Address list اضافه می کند.
dst-nat: تغییر آدرس و پورت مقصد با آدرس و پورت مورد نظر این action در dstnat chain استفاده می شود.
jump: پرش به chain دیگر (این قسمت مربوط به chain هایی می باشد که خودمان تعریف می کنیم)
log: اضافه کردن پیامی به log سیستم این برای اشکال زدایی استفده می شود.
Masquerade: جایگزین کردن آدرس مبدا براساس جدول روت این action معمولا برای دسترسی به اینترنت استفاده می شود برای اینکار باید در srcnat chain استفاده شود.
netmap: ساخت Natثابت به صورت یک به یک این action بیشتر برای publish کردن سرویس های شبکه داخلی در اینترنت با IP های مجزا کاربرد دارد.
passthrough: این رول در نظر گرفته نمیشود و از روی آن عبور می شود (برای مشاهده مقادیر عبوری استفاده می شود).
redirect: برای تغییر پورت مقصد به پورت و آدرس مقصد خود روتر.
return: برای بازگشت به chain های پیشفرض بعد از استفاده از عملکرد jump
src-nat: تغییر آدرس مبدا به ادرس تعیین شده.
منبع: datisnetwork