NAT یا Network Address Translation پروتکل و سرویسی است که در شبکه به ما کمک میکند تا IP های داخلی خود را ترجمه کنیم. یعنی زمانیکه خواستیم بسته ای را از داخل شبکه داخلی به بیرون بفرستیم با آدرس IP شناخته شده برای شبکه مقصد ارسال کنیم و بالعکس.
خب این وسط چه اتفاقی می افتد؟ قرار شد یه دستگاه (روتر، مودم، فایروال و ...) که یک سمت اون به شبکه داخلی و سمت دیگه به بیرون یا اینترنت وصله و IP اون Public و شناخته شده برای شبکه های مقابله، وقتی بسته ها را دریافت کرد بیاد و آدرس IP ها را تغییر داده و به اصطلاح ترجمه کنه، به شکلی که قابل شناسایی برای شبکه مقصد باشد. (یعنی ip شناخته شده خود که همان public است را روی بسته قرار دهد)
حالا اگر بسته ای از سمت یک دستگاه شبکه داخلی قصد داشته باشه به سمت بیرون بره این روتر یا ...، IP مبدا که دستگاه درخواست کننده هست رو برداشته و IP خودش رو به جای مبدا قرار داده و ارسال میکنه که به این نوع src-nat میگیم چرا؟ چون IP مبدا داره تغییر میکنه.
تصویر 1
حالا ما اگه سرویسی داخل شبکه داشته باشیم (وب سرور یا ...) یا اینکه بخواهیم به یه سیستم توی شبکه داخلی از طریق اینترنت ریموت بزنیم چیکار باید بکنیم؟
بله دقیقاً!! باید زمانیکه درخواست به دستگاه روتر رسید آدرس مقصد که خود دستگاه است برداشته شده و آدرس IP آن سیستم قرار داده می شود که به آن dst-nat می گویند. (از زوی پورت مقصد میفهمه که مال کدوم سیستمه و IP اون رو قرار میده )
آموزش و سناریو عملی
خب حالا فرض کنید که ما در شبکه داخلی یک سرور داریم که سرویس یا خدماتی را ارائه می دهد (مثلا یک وبسایت اجرا شده، یک VPN سرور برای اتصال پرسنل دورکار راه اندازی شده یا ...) و دستگاه میکروتیک در این سناریو به عنوان ورودی و خروجی شبکه (edge یا لبه شبکه) در نظر گرفته شده است (در عمل هیچ تفاوتی بین دستگاه ها و برندهای مختلف وجود نداره و مفهوم و نحوه پیاده سازی یکسان هستش اما چون در بیشتر شرکت های تا سطح متوسط در ایران معمولا روترهای میکروتیک به عنوان ورودی و خروجی شبکه استفاده می شن در این سناریو از اون استفاده می کنیم) و مشتریان و کلاینت ها و کسانی که از اینترنت قرار است این وبسایت را ببینند یا به vpnسرور وصل شوند، در سمت دیگر قرار دارند (مطابق تصویر 3)
توجه کنید که سمت کاربران و اینترنت بطور مستقیم نمی تونن سرور ما را ببینند و به اون دسترسی داشته باشن و این دسترسی تنها از طریق روتر امکان پذیر است. چون IP به اصطلاح Public داره!!.
حالا برای پیاده سازی این سناریو نیاز به نرم افزار مجازی ساز یا دستگاه های فیزیکی واقعی داریم. با توجه به هزینه بر بودن تجهیزات و البته بحث آموزشی، از نرم افزار مجازی ساز VMWare Workstation استفاده می کنیم که بایستی آموزش های آن را فراگرفته و نحوه ساخت ماشین های مجازی مختلف را بلد باشید.
همونطور که روی تصویر شماره 4 میبینید، من یک ماشین مجازی (kali linux) برای وب سرور (در اینجا مهم نیست که وب سرور شما از چه سیستم عاملی باشه و می تونه ویندوز، اوبونتو و ... هم باشه فقط سرویس وب باید روی آن فعال باشد و من به این دلیل از kali linux استفاده کردم چون اون رو آماده روی مجازی سازم داشتم) و یک ماشین مجازی به عنوان روتر میکروتیک و همچنین هاست اصلی را به عنوان کلاینت در نظر گرفته ام. (دقت کنید که نرم افزار VMWare Workstation رو بعد از نصب باید رجیستر کنید و همچنین فایل های iso سیستم عامل هارو از سایت اصلی خود اونها دانلود کنید تا به درستی کار کنن)
حالا به ماشین میکروتیک 2 کارت شبکه اضافه کرده (گفتیم که چون یه سمت به شبکه داخلی و یه سمت به شبکه بیرون هستش باید 2 کارت شبکه داشته باشه) و یکی را در حالت bridge (در آموزش vmware می خونید که ماشین مجازی توی این حالت مستقیما از dhcp server که هاست اصلی از اون IP گرفته، IP می گیره) قرار می دهم تا کاربران از بیرون شبکه بتوانند آن را ببینند و یکی را در حالت lan segment 1 (در این حالت انگار که یک شبکه مجزا ساخته ایم و باید بصورت استاتیک و دستی به آن IP دهیم) میگذارم تا بتوانم با وب سرورم در یک شبکه قرار دهم.
برای وب سرور هم یک کارت شبکه در نظر میگیرم و در حالت lan segment 1 گذاشته و IP دهی میکنم به نحوی که میکروتیک و وب سرور ارتباط داشته، میکروتیک و هاست اصلی نیز ارتباط دارند اما ارتباطی تا اینجا بین هاست اصلی و وب سرور نیست.
حالا برای پیکربندی روتر میکروتیک یا می توانید از خط فرمان استفاده کنید یا اینکه روی هاست اصلی با نرم افزار winbox (نرم افزار گرافیکی مختص به پیکربندی میکروتیک)، به آن وصل شده و پیکربندی کنید.(تصویر شماره 5)
حالا برای اطمینان از فعال بودن وب سرور، داخل مرورگر خودش (kali linux)، IP loopback را می زنیم و خواهیم دید که وب سرور فعال است. (تصویر شماره 6). اما زمانیکه در مرورگر هاست اصلی IP آن وب سرور را (در اینجا 10.10.1.2) بزنیم خواهیم دید که در دسترس نبوده و خطا می دهد.
همچنین اگر IP میکروتیک(در اینجا 192.168.194.146 در سمت کارت شبکه bridge و 10.10.1.1 در سمت کارت شبکه segment1 است) را در مرورگر هاست اصلی وارد کنیم وارد صفحه تنظیمات میکروتیک می شویم و خبری از وب سرور نیست.!(تصویر شماره 7)
حالا اگر من سناریو را پیاده سازی کنم و میکروتیک را پیکر بندی کنم خواهیم دید که NAT به درستی عمل کرده و ما میتوانیم از طریق هاست اصلی و زدن IP میکروتیک وب سرور در دسترس خواهد بود(دقیقا مانند دسترسی به گول یعنی ما وقتی وبسایت گوگل را جستجو میکنیم یا 8.8.8.8 را این IP روی روتر یا دستگاه ورودی شبکه آن سرور ست شده نه مستقیم روی سرور گوگل و با این NAT این ترجمه اتفاق می افتد) اما این پیکربندی چه خواهد بود؟؟
ابتدا در میکروتیک به مسیر زیر رفته و سرویس وب خود روتر را خاموش میکنیم(چون وب خود میکروتیک هم بر روی پورت 80 کار میکند تداخل ایجاد می شود پس بهتر است که آن را غیر فعال کنیم) (تصویر شماره 8)
ip---> services
حالا برای اجرای dst-nat در میکروتیک کافیه که به مسیر زیر رفته و در تب NAT دکمه + رو بزنید تا صفحه جدید باز شود(تصویر شماره 9):
ip-->firewall-->NAT
در صفحه جدید باز شده بایستی قدم های زیر را انجام دهیم( مطابق تصویر 10):
1- روی chain کلیک کرده و dst-nat را انتخاب میکنیم.
2- بخش protocol را روی tcp می گذاریم.
3- بخش any port را مقدار 80 (پورت وب سرور) قرار می دهم.
4- در تب Action خود action را روی dst-nat می گذاریم.
5- در قسمت to address مقدار IP وب سرور را می زنیم (در اینجا 10.10.1.2).
6- در قسمت to port نیز 80 را وارد می کنیم چون وب سرور را می خواهیم.
حالا کافیه از طریق هاست اصلی همان IP میکروتیک را در مرورگر وارد کنید میبینید که وب سرور برای شما در دسترس خواهد بود (تصویر شماره 11):
نظرات کاربران (0)