سوالات متداول کاربران

در ابتدا شما باید مفهوم و اساس کار این نوع شبکه ها رو خوب درک کنید از طریق مطالعه مقالات مرتبط مروری که موجود هست و بعد با بستر پیاده سازی mininet و کنترلرهای محیط نرم افزار محور آشنا شین. برای شروع بد نیست به این لینک سر بزنید.

موارد پیش‌نیاز

نگران کلمه پیش‌نیاز نباشید. دقت کنید می‌توانید بصورت هم‌نیاز 🙂 و در کنار یادگیری SDN به یادگیری موارد زیر نیز بپردازید (توجه: لیست زیر به ترتیب اولیت یادگیری می‌باشد):

  1. مجازی‌سازی: بد نیست برای شروع با یکی از پلتفرم‌های مجازی‌سازی از جمله vmware workstation یا virtual box نیز آشنا شوید. این برنامه‌ها برای نصب سیستم عامل لینوکس بر روی ویندوز استفاده می‌شود و توصیه ما هم نصب لینوکس بصورت مجازی است؛ ینی بر روی ویندوز فعلی خود اقدام به نصب ماشین مجازی لینوکس کنید. (برای شروع هرگز لینوکس رو بطور مستقیم (stand-alone ) بر روی رایانه خود نصب نکنید)
  2. لینوکس: آشنایی با لینوکس و مخصوصا  اوبونتو بسیار حائز اهمیت است چراکه بسیاری از برنامه‌های مرتبط با SDN فقط در لینوکس قابلیت نصب و اجرا دارند پس حتما به این نکته توجه کنید.
  3. شبکه: آشنایی با مفاهیم شبکه در حد درس شبکه ۱  کارشناسی و یا network+ حداقل نیازمندی می‌باشد. مفاهیمی مثل لایه‌های شبکه در مدل TCP/IP و اینکه مثلا IP چیست؟ آدرس MAC چیست؟ پورت‌های TCP و UDP چیست؟ درک کلی از مفاهیم مسیریابی در شبکه و اینکه اجزای تشکیل دهنده شبکه از جمله سوئیچ، روتر، لینک، پورت و غیره چیست؟
  4. برنامه‌نویسی: مورد آخر برای حرفه‌ای شدن!  این مورد در نهایت باید مورد توجه قرار گیرد چرا که شما با در دست داشتن ابزارها و برنامه‌های متن‌باز SDN می‌توانید بسیاری از سناریوهای مدنظرتان را اجرا کنید ولی در بسیاری از موارد دیگر نیاز به شخصی‌سازی کنترلرتان داشته باشید و شاید بخواهید پروتکل مسیریابی خاصی را به اسم خودتان ثبت کنید! مثلا پروتکل مسیریابی جعفر! خب شروع کنید و پایتون یا جاوا را یاد بگیرید. اینکه پایتون یا جاوا را انتخاب کنید کاملا وابسته به کنترلری است که انتخاب کردید. با استفاده از این لینک شاید راحت‌تر بتوانید کنترلرتان را انتخاب کنید.

برای openflow بهتره که openflow specification را برای هر ورژن مطالعه کنید. به عنوان مثال برای ورژن openflow 1.3، مستند openflow specification1.3 رو مطالعه بفرمایید که نوع پیام ها و خصوصیات اوپن فلو و جداول سوئیچ رو کاملا توضیح میده.

خطای نصب نبودن git

خطای نصب نبودن git

پکیج git در سیستم عامل شما نصب نشده است. با دستور زیر نصب کنید:

sudo apt-get update
sudo apt-get install git
خطای openflow در هنگام نصب mininet

خطای openflow در هنگام نصب mininet

توی دایرکتوری Home پوشه openflow رو حذف کنید و دوباره install.sh رو اجرا کنید.

دستور kill کردن کنترلر پیش‌فرض مینی نت:

Killall controller
sudo killall controller
خطای openvswitch-testcontroller در هنگام نصب miniet

خطای openvswitch-testcontroller در هنگام نصب miniet

sudo apt remove openvswitch-controller
sudo apt remove openvswitch-testcontroller

اگر همه این کارها را انجام دادید و درست نشد این دستور رو بزنید و سپس مجددا mininet رو نصب کنید.


sudo apt remove openvswitch 
خطای اجرای mininet

خطای اجرای mininet

مینی نت رو با دستور زیر اجرا کنید:

sudo mn --controller remote

سپس در یک ترمینال دیگه کنترلر رو اجرا کنید مشکل حل می‌شود.

خطای Exception: Please shut down the controller

خطای Exception: Please shut down the controller

با دستور sudo netstat -tnlp ابتدا PID کنترلر در حال حاضر بر روی آن در حال اجرا است را پیدا کنید

sudo apt-get install iperf

سپس با دستور زیر برنامه کنترلر را kill کنید یا اگر ترمینال کنترلر در دسترس است آن را ببندید:

sudo kill [pid] 

مثلا:

sudo kill 464

و سپس با دستور زیر پروسس مینی‌نت را تمیز کنید:

sudo mn -c

اگر در شروع کارتون هستید توصیه میکنم اول openflow specification رو مطالعه کنید تا بخش زیادی از ابهاماتتون برطرف بشه.
در مرحله بعدی می‌تونید ببینید که به کدامیک از ویژگی های OpenFlow نیاز دارید و چک کنید که آیا کنترلرلتون پشتیانی میکنه ازش یا خیر. کنترلرهای ODL ، floodlight و ryu به طول کامل از openflow پشتیبانی می‌کنند و از این جهت تفاوتی ندارن. تفاوت اصلی اونها نوع برنامه نویسی، مستندات و انجمن هست که بنظر من فلادلایت برای شروع بهتر هست.

علاوه بر openflow، هر کنترلر دارای یکسری ویژگی‌ها هست از جمله:

  • architecture
  • nourthbound API
  • Consistency
  • programming language

با توجه به این ویژگی ها و اینکه چه کاری را قرار هست انجام بدید مشخص خواهد شد که کدام کنترلر میتواند نیاز شما را تامین کند. اگر همچنان نیز نتوانستید کنترلر خود را انتخاب کنید این لینک را مطالعه کنید.

خطای Address already in use

خطای Address already in use

یک اپلیکیشن دیگری برروی پورت 6633 باز است، اول باید آن را kill کنید. چون Ryu به صورت دیفالت روی این پورت listen می‌کند. می‌توانید از دستور زیر استفاده کنید تا متوجه بشین چه اپلیکیشنی بالاست:

netstat -nltp | grep 6633

سپس کنترلر را مجددا اجرا کنید.

خطای نصب نبودن git

خطای نصب نبودن git

پکیج git در سیستم عامل شما نصب نشده است. با دستور زیر نصب کنید:

sudo apt-get update
sudo apt-get install git

نسخه https://github.com/wallnerryan/floodlight-qos را دانلود کنید

ابتدا پکیج خودتون رو از حالت زیپ شده خارج کنید، برای این مورد، اول با دستور cd وارد دایرکتوری بشین که این فایل زیپ شده اونجا قرار داره.

و بعد اگر با پسوند .zip هست با دستور زیر از حالت زیپ خارج کنید:

unzip filename.zip

و اگر با پسوند .tar هست:

tar -xzf filename.tar.gz

درادامه با دستور زیر نصب کنید:

sudo dpkg -i filename

و مراحل ساخت دایرکتوری و permision دادن و ant رو طبق مراحل نصب نسخه اصلی floodlight   این بار با نام فایل جدیدی که مربوط به qos  دارید انجام بدید.

یک ترمینال جدید باز کنید و از دستور زیر استفاده کنید:

sudo ovs-ofctl dump-flows s1
خطا در هنگام اجرای وایرشارک

خطا در هنگام اجرای وایرشارک

شما اگر وایرشارک رو جدا نصب کرده باشید در مراحل نصب و کانفیگ یک سوال ازشما پرسیده می‌شود تحت عنوان
? should none-superusers be able to capture packets
واگر yes بزنید (شکل زیر) می‌توانید بدون این که کاربر root باشید هم پکت ها رو capture و هم کپچر کنید.

کپچر در وایرشارک توسط یوزرهای non-superuser در لینوکس

اما در غیر اینصورت شما مجوز super user یا root رو ندارید. احتمالا تو تنظیمات فعلی شما این قابلیت disable هست. دستور زیر را در ترمینال وارد کنید:

gedit /usr/share/wireshark/init.lua

با این دستور یه کد باز می‌شود که شامل تنظیمات وایرشارک است.
خط مربوط به set disable _lua را اگر true هست به false تغییرش بدهید و تنظیمات جدیدتون رو save کنید.

خطای اجرای mininet

خطای اجرای mininet

با دستور زیر در یک ترمینال جدید (با فشردن alt+ctrl+t) می‌توانید iperf را نصب کنید:

sudo apt-get install iperf

مولدهای ترافیک زیادی وجود داره مثل iperf, D-ITG و… که توضیحات مربوط به آن ها در سایت و کانال موجود است. و بسته به نوع ترافیک و معیارهای ارزیابی خودتون و نتایج تحلیلی که هر کدوم از این ابزارها ارائه میدن ، ترافیک خودتون رو تولید کنید.

نرم افزار Iperf  ابزاری برای تولید جریان ترافیکی و اندازه‌گیری پهنای باند و کیفیت ارتباط شبکه است. این نرم افزار برای تولید جریان و آنالیز پهنای باند بین دو گره شبکه استفاده می شود، یکی از گره‌ها تولید جریان کرده و گره دوم جریان را دریافت می کند. جریان ها می توانند UDP و یا TCP باشند.

در سمت کلاینت:

iperf - c <serverip> -p <serverport>

در سمت سرور:

< iperf -s -p <serverport

مطالعه بیشتر:

 https://iperf.fr/iperf-doc.php

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *