انواع NAT و کاربرد آن در MikroTik
سرفصل: میکروتیک

NAT (Network Address Translation) یعنی عوض کردن آدرس مبدأ یا مقصد بسته‌ها وقتی از روتر عبور می‌کنند. شبکه‌های داخلی آدرس خصوصی دارند (مثل 192.168.10.0/24) که در اینترنت قابل مسیریابی نیست. NAT هم اجازه می‌دهد کاربران داخلی به اینترنت بروند و هم اجازه می‌دهد یک سرویس داخلی از بیرون در دسترس باشد.

در میکروتیک، NAT در IP → Firewall → NAT تنظیم می‌شود و دو زنجیره (chain) اصلی دارد:

  • srcnat: آدرس مبدأ را عوض می‌کند؛ برای ترافیکی که از شبکه خارج می‌شود.
  • dstnat: آدرس مقصد را عوض می‌کند؛ برای ترافیکی که از بیرون وارد می‌شود.

در مثال‌ها فرض کرده‌ایم اینترنت روی لیست اینترفیس WAN و شبکهٔ داخلی 192.168.10.0/24 است.

۱. masquerade: اینترنت برای کاربران داخلی

رایج‌ترین NAT. آدرس همهٔ کاربران داخلی به آدرس اینترفیس اینترنت روتر تبدیل می‌شود:

/ip firewall nat add chain=srcnat src-address=192.168.10.0/24 out-interface-list=WAN action=masquerade

masquerade برای اینترنتی مناسب است که آدرسش تغییر می‌کند؛ مثل PPPoE یا DHCP. روتر خودش آدرس فعلی اینترفیس را استفاده می‌کند.

۲. src-nat: وقتی IP ثابت دارید

اگر IP عمومی ثابت دارید، src-nat کمی کارآمدتر است و اجازه می‌دهد آدرس خروجی را دقیق تعیین کنید:

/ip firewall nat add chain=srcnat src-address=192.168.10.0/24 out-interface=ether1 action=src-nat to-addresses=203.0.113.10

کاربرد رایج دیگر: اگر چند IP عمومی دارید، می‌توانید یک بخش شبکه، مثلاً سرور ایمیل، را با یک IP مشخص به اینترنت بفرستید تا آدرسش در لیست‌های ضداسپم ثابت بماند.

۳. dstnat یا Port Forwarding: دسترسی از بیرون به سرویس داخلی

فرض کنید دستگاه ضبط دوربین (NVR) با آدرس 192.168.10.50 روی پورت 8000 کار می‌کند و می‌خواهید از بیرون به آن دسترسی داشته باشید:

/ip firewall nat add chain=dstnat in-interface-list=WAN protocol=tcp dst-port=8000 action=dst-nat to-addresses=192.168.10.50 to-ports=8000 comment="NVR"

یک مثال دیگر: دسترسی به Remote Desktop یک کامپیوتر با پورت بیرونی متفاوت:

/ip firewall nat add chain=dstnat in-interface-list=WAN protocol=tcp dst-port=33890 action=dst-nat to-addresses=192.168.10.30 to-ports=3389

هشدار امنیتی: هر پورتی که باز می‌کنید، از همهٔ اینترنت قابل دسترسی است. Remote Desktop، پنل دوربین‌ها و پنل مدیریت دستگاه‌ها مدام هدف حمله‌اند. تا جایی که ممکن است به جای Port Forwarding از VPN استفاده کنید یا دسترسی را به آدرس‌های مشخص محدود کنید (src-address-list). مقالهٔ دسترسی به دستگاه‌ها از خارج شبکه را ببینید.

۴. Hairpin NAT: دسترسی به سرویس با آدرس عمومی از داخل شبکه

مشکل رایج: Port Forwarding از بیرون کار می‌کند، اما وقتی از داخل شبکه با آدرس عمومی یا نام دامنه به سرویس وصل می‌شوید، کار نمی‌کند. دلیلش این است که سرویس داخلی مستقیم به کاربر داخلی جواب می‌دهد و ارتباط به‌هم می‌ریزد.

راه‌حل Hairpin NAT است. اول قانون dstnat را طوری بنویسید که به آدرس عمومی حساس باشد، نه فقط به اینترفیس WAN:

/ip firewall nat add chain=dstnat dst-address=203.0.113.10 protocol=tcp dst-port=8000 action=dst-nat to-addresses=192.168.10.50 to-ports=8000

بعد یک masquerade برای ترافیک داخلی به همان سرور اضافه کنید:

/ip firewall nat add chain=srcnat src-address=192.168.10.0/24 dst-address=192.168.10.50 protocol=tcp dst-port=8000 out-interface=bridge-lan action=masquerade comment="Hairpin NAT"

اگر IP شما ثابت نیست، راه ساده‌تر این است که در DNS داخلی (IP → DNS → Static) نام دامنه را به آدرس داخلی سرور اشاره دهید.

۵. netmap: NAT یک‌به‌یک برای یک شبکهٔ کامل

netmap یک بازهٔ آدرس را به بازهٔ دیگری با همان اندازه نگاشت می‌کند. کاربرد رایج آن اتصال دو شعبه‌ای است که شبکهٔ داخلی یکسانی دارند:

/ip firewall nat add chain=srcnat src-address=192.168.10.0/24 dst-address=10.20.0.0/24 action=netmap to-addresses=10.10.10.0/24

ترتیب قانون‌ها مهم است

میکروتیک قانون‌های NAT را از بالا به پایین بررسی می‌کند و اولین قانونی که مطابقت داشته باشد اعمال می‌شود. قانون‌های خاص (مثل Hairpin یا NAT با IP مشخص) را بالاتر از masquerade کلی بگذارید.

بررسی و عیب‌یابی

/ip firewall nat print stats

ستون bytes و packets نشان می‌دهد کدام قانون استفاده می‌شود. اگر Port Forwarding کار نمی‌کند:

  • مطمئن شوید IP عمومی مستقیم روی میکروتیک است. اگر یک مودم جلوی میکروتیک است، باید روی مودم هم Port Forward بزنید.
  • بعضی سرویس‌دهنده‌ها به مشترکان خانگی آدرس خصوصی (CGNAT) می‌دهند؛ در این حالت Port Forwarding ممکن نیست و راه‌حل VPN است.
  • فایروال (chain=forward) اجازهٔ ترافیک dstnat را می‌دهد؟ در فایروال پیش‌فرض، قانون connection-nat-state=!dstnat همین را کنترل می‌کند.
  • Gateway دستگاه داخلی باید آدرس میکروتیک باشد.

جمع‌بندی

srcnat برای خروج (masquerade برای IP متغیر، src-nat برای IP ثابت)، dstnat برای ورود از بیرون، Hairpin برای دسترسی داخلی با آدرس عمومی و netmap برای نگاشت یک شبکهٔ کامل. هر پورتی که باز می‌کنید یک خطر امنیتی است؛ کمتر باز کنید و بیشتر از VPN استفاده کنید. مقالهٔ بعد: Route نویسی در میکروتیک.

  • MikroTik
  • NAT
  • Masquerade
  • Port Forwarding
  • Hairpin NAT