قسمت سوم آموزش مینی نت – آموزش اسکریپت نویسی

برای ایجاد توپولوژی در مینی نت (Mininet) دو گزینه پیش رو دارید. اول اینکه می‌توانید از توپولوژی‌های موجود آن استفاده نمایید که این توپولوژی‌ها با استفاده از کامند sudo mn --help   قابل مشاهده می‌باشند. به طور مثال چندین توپولوژی از قبیل tree، minimal، single، linear و … را می‌توان با فراخوانی فرمان زیر ایجاد نمود.

 sudo mn --topo <toponame>

توجه: بجای <toponame> باید نام توپولوژی را قرار دهیم. به مثال‌های زیر توجه کنید.

بطور مثال می‌توان با کامند sudo mn –topo single,3 می‌توان توپولوژی زیر را  اجرا کرد:

توپولوژی single,3 در مینی نت

یا اگر بدون هیچ آرگومانی کامند sudo mn  را اجرا کنیم توپولوژی minimal ایجاد می‌شود:

توپولوژی minimal در مینی نت

توپولوژی minimal در مینی نت

چه زمانی باید در مینی نت کدنویسی کنیم؟

اما برای ایجاد توپولوژی دلخواه در بستر مینی نت می‌بایست از کتابخانه‌های موجود در آن استفاده نماییم و به زبان پایتون برنامه‌نویسی کنیم. به طور مثال توپولوژی زیر را در نظر بگیرید:

leftHost — leftSwitch — rightSwitch — rightHost

این توپولوژی شامل دو هاست می‌باشد (leftHost و rightHost) که هرکدام از آن‌ها به یک سوئیچ متصل شده است و سوئیچ‌ها نیز به یکدیگر وصل می‌باشند. چنین توپولوژی را نمی‌توان با استفاده از آرگومان –topo در زمان اجرای فرمان mn اجرا نمود.

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

from mininet.topo import Topo



class MyTopo( Topo ):

    "Simple topology example."

    def __init__( self ):

        "Create custom topo."

        # Initialize topology

        Topo.__init__( self )

        # Add hosts and switches

        leftHost = self.addHost( 'h1' )

        rightHost = self.addHost( 'h2' )

        leftSwitch = self.addSwitch( 's3' )

        rightSwitch = self.addSwitch( 's4' )

        # Add links

        self.addLink( leftHost, leftSwitch )

        self.addLink( leftSwitch, rightSwitch )

        self.addLink( rightSwitch, rightHost )

topos = { 'mytopo': ( lambda: MyTopo() ) }

برای سادگی می‌توان این کد پایتون را در Desktop و در یک فایل تحت عنوان topo-2sw-2host.py ذخیره نمود و سپس با استفاده از دستور زیر در ترمینال اوبونتو می‌توانیم این توپولوژی را اجرا نماییم:

$ sudo mn --custom ~/Desktop/topo-2sw-2host.py --topo mytopo --test pingall

امیدواریم این آموزش برایتان مفید واقع شده باشد، منتظر نظرات شما هستیم…

 

 

منابع مرتبط:

http://mininet.org/walkthrough/

قسمت سوم آموزش مینی نت – آموزش اسکریپت نویسی
میانگین 5 امتیاز از 2 رای

(10) دیدگاه

  • رسول پاسخ

    سلام ممنون از مطلب خوبتون
    این کد باید به چه شکل ذخیره شود ؟ (در چه ابزاری نوشته شود؟)
    در ماشین مجازی mininet در virtualbox تفاوتی در نحوه کد نویسی وجود دارد؟

    ۷ آبان ۱۳۹۴ در ۱:۵۰ ب.ظ
    • سید حسام قاسمی
      سید حسام قاسمی پاسخ

      سلام. خواهش میکنم
      ۱.این کد باید با پسوند py در اوبونتو ذخیره بشه. و با دستور زیر اجرا بشه:

      $sudo mn --custom ~/Desktop/topo-2sw-2host.py --topo mytopo --test pingall


      ۲. ارتباطی به virtual box نداره. این نوع اسکریپت نویسی مربوط به مینی‌نت میشه و فرقی نداره اوبونتو رو به چه روشی نصب کنید

      ۷ آبان ۱۳۹۴ در ۲:۱۷ ب.ظ
  • رسول پاسخ

    سلام کدی را که قبلأ ذخیره کرده ایم برای ویرایش به چه شکلی آن را باز کنم؟
    آن را در آدرس
    ~/mininet/examples/name-proje.py
    ذخیره کرده ام.

    ۲ بهمن ۱۳۹۴ در ۱۰:۰۹ ق.ظ
    • سید حسام قاسمی
      سید حسام قاسمی پاسخ

      ۱) cd ~/mininet/examples
      ۲) sudo nano name-proje.py
      و یا sudo gedit name-proje.py

      لطفا حتما سوالات بعدی را در sdncentral.ir/forum مطرح بفرمایید…

      ۲ بهمن ۱۳۹۴ در ۱۲:۴۸ ب.ظ
  • حسین مزداب پاسخ

    سلام
    من از kali linux استفاده میکنم
    بر روس این سیستم عامل هم نصب میشه؟

    ۳ اسفند ۱۳۹۴ در ۵:۰۵ ب.ظ
  • امیر پاسخ

    سلام ممنون از مطالب مفیدتون
    من از شبیه ساز mininet در VirtualBox استفاده میکنم. اما دایرکتوری desktop تعریف شده نیست. چجوری میشه از یه فایل تو این شبیه ساز استفاده کرد؟

    ۱۷ آبان ۱۳۹۵ در ۸:۳۱ ب.ظ
    • سید حسام قاسمی
      سید حسام قاسمی پاسخ

      سلام
      در هر دایرکتوری که مایل باشید ذخیره کنید و از آن استفاده کنید

      ۲۰ آبان ۱۳۹۵ در ۵:۳۸ ب.ظ
  • میترا پاسخ

    سلام
    چطور میتوتم توی کدی که دارم ، مثلا همین کدی ه شما زحمت کشیدین گداشتین، برای کنترلر فلودلایت با نسخه qos ، این ماژول qos رو فعال کنم
    ایا داخل قطعه کد باید کلاسی رو اضافه کنم یا از طریق ادرس 127.0.0.1:8080 بعد از اجرای کد میشه این کار رو کرد؟
    ممنون میشم راهنمایی بفرمایید که چطور ماژول رو اضافه کنم

    ۲۷ تیر ۱۳۹۶ در ۱:۵۰ ق.ظ
    • سید حسام قاسمی
      سید حسام قاسمی پاسخ

      با سلام
      کد کنترلر مجزای از کد توپولوژی هست
      شما کنترلر رو که ماژول QoS بر روی اون اجرا شده است در یک ترمینال باز می‌کنید و در ترمینال دیگه هم توپولوژی رو …

      ۲۹ تیر ۱۳۹۶ در ۱۰:۱۲ ب.ظ

دیدگاهتان را بنویسید

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