بدون شک “شبکههای کامپیوتری”، یکی از محبوبترین و داغترین گرایشهای فناوری اطلاعات است که هر روز شاهد نیاز به آن در مدارس، دانشگاهها، شرکتها و سازمانهای بزرگ هستیم. پیادهسازی و تست شبکهها در هر مقیاسی (کوچک یا بزرگ)، با چالشها و سختیهایی روبهرو است؛ از جمله اینکه در محیطهای آموزشی در خیلی از مواقع خریداری تجهیزات واقعی و گرانقیمت شاید امکان پذیر یا بصرفه نباشد؛ همچنین شاید بخواهیم یک آزمایشگاه شبکه شخصی در لپ تاپ خودمان داشته باشیم. معمولا یکی از سادهترین و در عین حال مهمترین توصیه به فعالان این حوزه، استفاده از شبیهسازها و مقلدها است.
بکارگیری شبیهسازها و مقلدها، مهندسان شبکه را با مدلسازی شبکه، تست شبکه و رفع مشکلات احتمالی به هنگام پیادهسازی شبکه، آشنا خواهد کرد و امکان فراگیری مفاهیم پایهای و حتی مفاهیم سطح بالای شبکه های کامپیوتری را فراهم میکند. در ادامه به معرفی و نصب یکی از امولاتورهای قدرتمند شبکه میپردازیم که اخیرا قابلیت جدیدی نیز به آن اضافه شده (داکر!) که میتوانیم با استفاده از این امکان، با سخت افزار نسبتا متوسط سناریوهای جالب و سنگینی اجرا کنیم. با ما همراه باشید.
امولاتور (Emulator) چیست؟ تفاوت امولاتور با شبیه ساز (Simulator) چیست؟
امولاتور یک برنامه یا نرم افزار است که امکان پیادهسازی، طراحی و تست شبکه، در یک محیط کاملا مجازی را میدهد تا بتوانیم با خیال راحت تستها و سناریوها را اجرا نموده و پس از دستیابی به نتایج مناسب آن را در محیط واقعی اجرا کنیم.
شاید این سوال مطرح شود که چنین سناریوی مجازی را چگونه میتوان وارد دنیای واقعی نمود؟ پاسخ این است که امولاتورها پیادهسازیهای نرمافزاری تجهیزات شبکه هستند که رفتاری مشابه با تجهیزات واقعی دارند و به ما خیلی امکانات شگفت انگیزی ارائه میکنند و در واقع تفاوت امولاتورها با شبیه سازها (Simulator) این است که در شبیهسازها رفتار تجهیزات، واقعی نمیباشد.
خیلی ساده بیان کنم، شما نمیتوانید یک روتر شبیهسازی شده را به دنیای واقعی متصل کنید ولی یک روتر امولاتوری را این قابلیت را دارد که به دنیای واقعی متصل شود، از تجهیزات واقعی ping بگیرد یا هر رفتاری که یک روتر واقعی دارد را برای ما اجرا کند.
نرم افزار GNS3 چیست؟
GNS3 یک امولاتور متنباز است که به ما امکان اجرای سناریوهای مختلف شبکه را میدهد. GNS3 در حوزههای مختلفی کاربرد دارد و میتوان با استفاده از آن به یادگیری مباحث جدیدی پرداخت. بنابراین اگر قصد شرکت در آزمونهای (داخلی یا خارجی) شبکه را دارید و یا اگر قصد پیادهسازی شبکه خود در مقیاس بالا را دارید، میتوانید از آن استفاده کنید. در واقع GNS3 یک راه آسان برای طراحی و ایجاد شبکه با هر اندازه، بدون نیاز به سختافزار میباشد. به منظور ارائه شبیهسازیهای کامل و دقیق، GNS3 از امولاتورهای زیر برای اجرای دستگاههای مشابه دستگاههای واقعی، استفاده میکند:
Dynamips: شبیهساز GNS3 با استفاده از Dynamips، امکان استفاده از ایمیجهای واقعی سیسکو را فراهم میکند.
VirtualBox: اجرای سیستمعاملهای مختلف بصورت ماشین مجازی (VM) از جمله “Juniper Junos OS”، “Fortigate FortiOS”، “MikroTik RouterOS” و سایر موارد
VMware Workstation: مشابه VirtualBox امکان اضافه نمودن ماشینهای مجازی را فراهم میکند. برای استفاده از ماشینهای مجازی VMware Workstation در GNS3 کافی است که یک ماشین مجازی (VM) در نرم افزار VMware Workstation نصب کنید تا GNS3 بطور خودکار آن را شناسایی کند و با یک کلیک آن را به محیط GNS3 اضافه نمایید.
Qemu: به منظور اجرای Cisco ASA، PIX و IPS در GNS3
توجه: در این آموزش از ubuntu 18.04 LTS استفاده شده است.
توصیه: شما میتوانید در یک vmware workstation اقدام به نصب ابونتو نموده و در آن GNS3 را نصب نمایید. نصب GNS3 و داکر به طور مستقیم در ویندوز توصیه نمیشود (اگرچه ویندوز از هردو پشتیبانی میکند اما عملکرد هر دو نرم افزار در لینوکس بهتر میباشد).
پشتیبانی از داکر توسط GNS3
GNS3 از نسخه ۱٫۵ قابلیت استفاده از کانتینرهای داکر را به بستر خود اضافه نموده است و از این پس میتوان علاوه بر ماشینهای مجازی (Virtual Box و VMware Workstation) از کانتینرهای داکر(Docker Containers) نیز استفاده نمود. کانتینرها در مقایسه با ماشینهای مجازی سرعت اجرای بالاتری دارند و فضای کمتر و قدرت پردازشی کمتری از نظر سخت افزاری لازم دارند که با اضافه شدن پشتیبانی از داکر میتوان امیدوار بود که سناریوهای پیچیدهتر و سنگینتری را با استفاده از این کانتیرها در محیط GNS3 بتوان اجرا نمود. مثلا با استفاده از کانتینرها میتوان سوئیچهای OVS و کنترلرهای SDN از جمله کنترلر ONOS را اضافه نمود و خیلی از سناریوهای SDN یا Software Defined Networking را با امکانات پایین سخت افزاری اجرا نمود.
برای آشنایی با نسل جدید شبکههای کامپیوتری – شبکههای نرم افزار محور (SDN) – به وبسایت SDNCentral.ir و یا کانال https://t.me/SDNCentral مراجعه نمایید.
نصب GNS3 بر روی اوبونتو (Ubuntu)
دو روش برای نصب آخرین نسخه از GNS3 بر روی اوبونتو وجود دارد که عبارتند از:
نصب از ریپازیتوری apt
نصب از source
در این بخش قصد داریم تا مراحل نصب GNS3 از طریق ریپازیتوری apt اوبونتو آموزش دهیم. علت انتخاب این روش، بروزرسانی آسان بستههای GNS3 به آخرین ورژن است. آخرین نسخه پایدار (Stable) بستههای GNS3 در مخزن gns3/ppa موجود هستند.
گام اول: درابتدا، مخزن را با اجرای دستورهای زیر اضافه کنید:
گام سوم: نصب داکر (اختیاری):
به طور پیشفرض، GNS3 این امکان را به شما میدهد که در هنگام انجام تستهای شبکه از کانتینرهای docker استفاده کنید. اما در ابتدا شما نیاز دارید تا داکر را بر روی اوبونتوی خود نصب و اجرا کنید. برای نصب داکر (Docker) گامهای زیر را طی کنید (منبع: وبسایت SDNCentral.ir). برای کسب اطلاعات بیشتر در مورد کانتینرها و مقایسه آن ها با ماشین های مجازی به این لینک مراجعه کنید.
بروزرسانی لیست پکیجها در اوبونتو:
$ sudo apt update
سپس اقدام به نصب بستههای پیش نیاز، قبل از نصب داکر میکنیم:
اگر تا به اینجا موفق به اجرای درست دستورات شده اید، آخرین نسخهی داکر بر روی ubuntu شما نصب شده است. به منظور مشاهدهی وضعیت داکر نصب شده، دستور زیر را در محیط اوبونتو خود وارد کنید:
$ sudo systemctl status docker
گام چهارم: افزودن کاربر فعلی به گروههای زیر برای جلوگیری از خطاهای مربوط به دسترسی (permission):
$ sudo usermod -a -G docker $USER (در صورت نصب داکر)
حال بر روی لانچر دسکتاپتان (همان دکمه پایین سمت چپ در صفحه اصلی اوبونتو)، کلمه GNS3 را جستجو کنید و تنظیمات اولیه را آغاز کنید. در صفحه اول (مشابه شکل زیر)، گزینه “Run the topologies on my computer” را انتخاب کنید:
تنظیمات اولیه gns3
در صفحه دوم ، محل پیکربندی سرور محلی را (مطابق شکل زیر)، تایید کنید:
اتصال به سرور محلی gns3
پس از انتخاب “Next”، در صفحه سوم پیغام اتصال موفق به سرور را مشاهده میکنیم.
برای اضافه کردن ماشینهای مجازی، VPSها، کانتینر docker یا ایمیجهای دستگاههای خود، میتوانیم یکی از گزینههای زیر را انتخاب کنیم :
اضافه کردن ماشینهای مجازی و یا داکر به gns3
بعد از اتمام این مراحل، شما یک GNS3 نصب شده بر روی اوبونتو خواهید داشتم.
امیدواریم که از مراحل نصب و راهاندازی GNS3 لذت برده باشید و اگر از این ابزار برای آمادگی در امتحانات خود استفاده میکنید، یادگیری توام با موفقیت را برایتان آرزومندیم. اگر آموزش خاصی مدنظرتان است در بخش نظرات حتما مطرح کنید.