طریقه استفاده از LINC در Mininet

سوئیچ LINC

طریقه استفاده از LINC در Mininet

Mininet، ابزاری برای تسهیل درایجاد شبکه های مجازی واقع گرایانه می­باشد. جهت کسب اطلاعات بیشتر درباره Mininet به  وبسایت رسمی Mininet مراجعه کنید.

زمانی که LINK-Switch با Mininet یکپارچه باشد، می­‌تواند به عنوان بخشی از شبکه مجازی اش اجرا گردد. هدف این یکپارچگی، فراهم کردن محیط راه اندازی آسان برای تست سناریوهای مختلف با LINC-Switch در نقش اصلی و راهنما می­باشد. Mininet منحصرا اجازه ایجاد توپولوژی ها با استفاده از API پایتون را می­دهد که برای استفاده از اسکریپت های پایتون به منظور تبادل توپولوژی ها و سناریوها بسیار مناسب است. علاوه براین، Mininet یک خط فرمان ) (CLI قوی برای اجرای سریع برخی از test case های ساده دارد.

طریقه نصب

Mininet دارای یک اسکریپت نصب Ubuntu و Debian می­باشد. برای نصب Mininet با LINC-Switch ، وارد دایرکتوری Mininet شوید و دستور زیر را اجرا کنید:

util/install.sh -3nfxL

 

درصورت تمایل می­توانید با دستور زیر عملیات اصلاح و بررسی را انجام دهید:

 LINC_SWITCH_REV="issue129" util/install.sh -3nfxL

این دستور Mininet core ، NOX 1.3 ControllerOpenFlow 1.3 Software Switch و وابستگی های مورد نیاز ازجمله موارد زیررا نصب می­کند:

  • Tunctl (from uml-utilies package)
  • Brctl (from bridge-utils package)
  • Erlang
  • Git-cor

نجوه استفاده و اجرا ping

برای شروع کار با Mininet باید سعی کنید یک مثال ping ساده با LINC-Switch متصل به شبکه Mininet و تحت کنترل کنترلر ساده را اجرا کنید. بدین منظور، مراحل زیررا دنبال کنید:

  1. شروع Mininet با LYNC-Switch، دو host و remote controller:
sudo bin/mn --controller=remote --switch=linc
  1. درکنسول دیگر به کنسول LYNC-Switch متصل شوید تا ببینید واقعا درست کار می­کند:
sudo linc <SWITCH_NAME>

نام اولین سوئیچی که به Mininet متصل می‌شود معمولا s1 می‌باشد.

  1. در کنسول دیگر کنترلر را اجراکنید:
sudo linc_controller -p 6633 -d -s table_miss

کنترلر به سوئیچ متصل می شود و یک پیام اصلاح جریان به آن ارسال می کند و سوئیچ همه بسته های unmatch را به کنترلر می فرستد.

  1. از خط فرمان Mininet یک ping از یک host به دیگری ارسال کنید:
h1 ping -c 3 h2

درصوت تمایل می­توانید وایرشارک را با  OpenFlow 1.3 dissector نصب کرده و پیام های پروتکل Open Flow را مشاهده نمایید.

 

سایر کنترلرها

شما می­توانید از سایر کنترلرها برای ارزیابی LINC در Mininet استفاده کنید. برای اتصال LINC به یک کنترلر remote از دستور زیر استفاده کنید:

sudo bin/mn --controller=remote,ip=<CONTROLLER IP>,port=<CONTROLLER PORT> --switch=linc

 

برای مثال می توانید از NOX 1.3 controller استفاده کنید. برای شروع، ابتدا NOX را به همراه سوئیچ اجراکنید. برای دسترسی به تنظیمات اجرای کنترلر NOX(به طور پیشفرض NOX در دایرکتوری Mininet نصب شده است) به دستورزیر رجوع کنید:

cd nox13oflib/build/src && sudo ./nox_core -i ptcp:6655 switch

 

فرض کنید یک نمونه کنترلر NOX در حال اجرا روی ماشین ۱۰٫۰٫۰٫۲۳ می­باشد. حال شما باید Mininet را با LINC به صورت زیر اجراکنید:

sudo bin/mn --controller=remote,ip=10.0.0.23,port=6655 --switch=remote

 

اکنون بین دو host، دستور ping را اجرا کنید.

به طور پیش­فرض یک سوئیچ در Mininet سعی می­کند به کنترلر روی ۱۲۷٫۰٫۰٫۱:۶۶۳۳ متصل شود.

 

سایر توپولوژی های پیشرفته

Mininet اجازه ایجاد توپولوژی های پیچیده تری را از طریق API پایتون می­دهد. شما می­توانید یک توپولوژی با دو LINC Switvh که مستقیما متصل اند و یک host برای هر سوئیچ ایجادکنید.

host --- switch --- switch --- host

این توپولوژی در Mininet repository در  topo-2sw-2host.py تعریف شده است.  برای شروع طبق دستورات زیر پیش بروید:

  1. Mininet را با LINC-Switch و توپولوژی custom اجرا کنید:
sudo bin/mn --controller=remote --switch=linc --custom custom/topo-2sw-2host.py --topo mytopo
  1. در کنسول دیگر کنترلر را با یک سناریو از پیش تعریف شده اجراکنید:
sudo linc_controller -p 6633 -d -s mininet_mytopo
  1. Host ها را از خط فرمان Mininet ، ping کنید:
Pingall
  1. درصورت تمایل می­توانید به کنسول های سوئیچ متصل شوید (دستورات زیر باید در ترمینال های جدا اجراشوند):
sudo linc s3 attach  sudo linc s4 attach

 

استفاده از dpctl

ابزار dpctl کنترل اساسی یک سوئیچ Open Flow را فراهم می­کندکه دارای یک پورت شنونده غیرفعال (passive) می­باشد. به طور پیش فرض، Mininet این پورت را روی ۶۶۳۴ تنظیم می­کند. هم­­­چنین می­توان با دستور زیر تنظیمات پورت را انجام داد:

--listenport=<PORT>

این ابزار به دو روش از خط فرمان Mininet قابل استفاده می­باشد:

  1. می­تواند برای هرسوئیچ در توپولوژی استفاده شود:
mininet> dpctl <COMMAND> [<ARG>...]

برای مثال:

mininet> dpctl get-config
  1. می­تواند در هرسوئیچ اجراشود. سپس دستور dpctl از shell مربوط به سوئیچ فراخوانی شود:
[<OPTIONS>] <SWITCH> <COMMAND> [<ARG>...]

برای مثال:

mininet> s1 dpctl tcp:127.0.0.1:6634 features

برای توضیحات بیشتر درباره dpctl به خروجی دستور dpctl –help توجه کنید.

 

ترجمه: هدی احمدی

 

منبع:

github.com

پاسخ دهید

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