Skip to content

Instantly share code, notes, and snippets.

@fatitagh
Last active June 8, 2025 13:56
Show Gist options
  • Save fatitagh/c06c4d07896fe2d46c160774751753f7 to your computer and use it in GitHub Desktop.
Save fatitagh/c06c4d07896fe2d46c160774751753f7 to your computer and use it in GitHub Desktop.

برای نصب Mininet روی Docker و پیاده‌سازی یک شبکه O-RAN با استفاده از ایمیج iwaseyusuke/mininet، مراحل زیر را به ترتیب دنبال کنید. فرض می‌کنم که Docker روی سیستم شما نصب شده و ایمیج موردنظر (iwaseyusuke/mininet) با موفقیت از Docker Hub دریافت (pull) شده است. در ادامه، فرآیند راه‌اندازی Mininet و پیاده‌سازی شبکه O-RAN توضیح داده شده است.


مرحله ۱: بررسی ایمیج و اجرای کانتینر Mininet

  1. بررسی ایمیج دانلود شده: اطمینان حاصل کنید که ایمیج iwaseyusuke/mininet به درستی دانلود شده است. در ترمینال دستور زیر را اجرا کنید:

    docker images

    باید خروجی مشابه زیر ببینید:

    REPOSITORY             TAG       IMAGE ID       CREATED       SIZE
    iwaseyusuke/mininet    latest    xxxxxxxxxxxx   ...           ...
    
  2. اجرای کانتینر Mininet: برای اجرای Mininet در یک کانتینر Docker، از دستور زیر استفاده کنید:

    docker run -it --privileged --name mininet -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=$DISPLAY iwaseyusuke/mininet

    توضیحات:

    • -it: برای تعامل با ترمینال کانتینر.
    • --privileged: برای دسترسی به قابلیت‌های شبکه‌ای و مجازی‌سازی مورد نیاز Mininet.
    • -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=$DISPLAY: برای فعال‌سازی رابط گرافیکی (در صورت نیاز به ابزارهای بصری مانند Wireshark یا Xterm).
    • iwaseyusuke/mininet: نام ایمیج.

    بعد از اجرای این دستور، وارد محیط Mininet می‌شوید و می‌توانید دستورات Mininet را اجرا کنید.

  3. تست اولیه Mininet: برای اطمینان از عملکرد صحیح Mininet، یک توپولوژی ساده ایجاد کنید:

    sudo mn --topo single,2

    این دستور یک شبکه ساده با یک سوئیچ و دو میزبان ایجاد می‌کند. سپس دستور pingall را اجرا کنید:

    mininet> pingall

    اگر همه چیز درست باشد، باید پینگ بین تمام میزبان‌ها موفقیت‌آمیز باشد.


مرحله ۲: آماده‌سازی برای پیاده‌سازی شبکه O-RAN

شبکه O-RAN (Open Radio Access Network) یک معماری باز و نرم‌افزارمحور برای شبکه‌های دسترسی رادیویی است که از فناوری‌هایی مانند SDN (شبکه نرم‌افزارمحور) و NFV (مجازی‌سازی توابع شبکه) استفاده می‌کند. برای پیاده‌سازی O-RAN در Mininet، باید اجزای مختلف شبکه (مانند واحدهای رادیویی، واحدهای توزیع‌شده، و کنترلرها) را شبیه‌سازی کنید. ایمیج iwaseyusuke/mininet ابزارهای اولیه برای شبیه‌سازی SDN را فراهم می‌کند، اما ممکن است نیاز به نصب ابزارهای اضافی داشته باشید.

  1. نصب ابزارهای مورد نیاز در کانتینر: ایمیج iwaseyusuke/mininet معمولاً شامل Mininet و ابزارهای اولیه مانند Open vSwitch است. با این حال، برای پیاده‌سازی O-RAN ممکن است به ابزارهای اضافی مانند OpenDaylight، ONOS، یا srsRAN نیاز داشته باشید. برای نصب این ابزارها:

    • در داخل کانتینر، بسته‌های مورد نیاز را نصب کنید. به عنوان مثال:
      apt-get update
      apt-get install -y python3-pip git
    • اگر به کنترلرهای SDN مانند OpenDaylight یا ONOS نیاز دارید، آنها را در کانتینر نصب کنید یا از یک کانتینر جداگانه برای کنترلر استفاده کنید.
  2. دانلود و نصب اجزای O-RAN: برای شبیه‌سازی O-RAN، می‌توانید از پروژه‌های متن‌باز مانند srsRAN (برای شبیه‌سازی اجزای رادیویی) یا O-RAN SC (Software Community) استفاده کنید. مراحل زیر را دنبال کنید:

    • srsRAN:
      • مخزن srsRAN را کلون کنید:
        git clone https://github.com/srsran/srsRAN.git
        cd srsRAN
      • دستورالعمل‌های نصب را از مستندات srsRAN دنبال کنید (معمولاً شامل نصب وابستگی‌ها و کامپایل پروژه است).
    • O-RAN SC:
      • پروژه O-RAN Software Community شامل ابزارهای شبیه‌سازی O-RAN است. مستندات رسمی (https://docs.o-ran-sc.org) را بررسی کنید و اجزای مورد نیاز (مانند RIC یا E2 nodes) را نصب کنید.
      • برای نصب، ممکن است نیاز به دانلود ایمیج‌های داکر اضافی یا استفاده از مخازن GitHub باشد:
        git clone https://gerrit.o-ran-sc.org/r/sim
      • دستورات نصب را طبق مستندات اجرا کنید.
  3. پیکربندی کنترلر SDN: برای مدیریت شبکه O-RAN، به یک کنترلر SDN (مانند ONOS یا OpenDaylight) نیاز دارید. می‌توانید کنترلر را در یک کانتینر جداگانه اجرا کنید:

    • ایمیج ONOS را از Docker Hub دانلود کنید:
      docker pull onosproject/onos
    • کانتینر ONOS را اجرا کنید:
      docker run -it -d --name onos -p 8181:8181 -p 6653:6653 onosproject/onos
      • پورت 6653 برای پروتکل OpenFlow و پورت 8181 برای رابط وب ONOS استفاده می‌شود.
    • Mininet را به کنترلر متصل کنید:
      sudo mn --controller=remote,ip=<IP_ONOS>,port=6653 --topo=linear,4
      <IP_ONOS> را با آدرس IP کانتینر ONOS جایگزین کنید (با docker inspect onos آدرس IP را پیدا کنید).

مرحله ۳: پیاده‌سازی توپولوژی شبکه O-RAN

  1. طراحی توپولوژی: شبکه O-R26AN شامل اجزای زیر است:

    • RU (Radio Unit): شبیه‌سازی واحدهای رادیویی با میزبان‌های Mininet.
    • DU/CU (Distributed Unit/Centralized Unit): شبیه‌سازی با سوئیچ‌ها و میزبان‌های اضافی.
    • RIC (RAN Intelligent Controller): شبیه‌سازی با کنترلر SDN (مانند ONOS). برای مثال، یک توپولوژی خطی با 4 سوئیچ و 8 میزبان می‌تواند به این صورت باشد:
    sudo mn --topo linear,4 --controller=remote,ip=<IP_ONOS>,port=6653
  2. پیکربندی اجزای O-RAN:

    • RU: میزبان‌های Mininet را به‌عنوان واحدهای رادیویی پیکربندی کنید و ترافیک داده‌های رادیویی را شبیه‌سازی کنید (مثلاً با ابزارهای srsRAN).
    • DU/CU: از سوئیچ‌های Open vSwitch برای مدیریت جریان داده‌ها بین RU و CU استفاده کنید.
    • E2 Interface: اگر از O-RAN SC استفاده می‌کنید، پروتکل E2 را برای ارتباط بین RIC و اجزای دیگر پیکربندی کنید (مستندات O-RAN SC را ببینید).
    • F1 Interface: برای ارتباط بین DU و CU، از پروتکل‌های شبیه‌سازی‌شده در srsRAN استفاده کنید.
  3. مانیتورینگ و تست:

    • از Wireshark برای مانیتورینگ ترافیک شبکه استفاده کنید:
      wireshark &
    • دستور pingall یا ابزارهای تست O-RAN (مانند تست‌های srsRAN) را برای بررسی عملکرد شبکه اجرا کنید.

مرحله ۴: نکات اضافی و رفع مشکلات

  1. **

  2. ذخیره‌سازی تغییرات: اگر تغییراتی (مانند نصب ابزارهای جدید) در کانتینر ایجاد کردید، برای ذخیره‌سازی ایمیج جدید:

    docker commit mininet my-mininet-oran
  3. منابع آموزشی:


مرحله ۵: اجرای سناریوهای O-RAN

  • یک سناریوی ساده O-RAN را با استفاده از srsRAN و ONOS اجرا کنید. برای مثال، یک RU را با srsRAN شبیه‌سازی کنید و با ONOS جریان‌های داده را مدیریت کنید.
  • از ابزارهای بصری‌سازی مانند Mininet-WiFi (برای شبیه‌سازی شبکه‌های بی‌سیم) یا ابزارهای آنلاین برای ترسیم توپولوژی استفاده کنید.

اگر سوال یا مشکلی در هر مرحله دارید، جزئیات را بگویید تا راهنمایی دقیق‌تری ارائه کنم!

Comments are disabled for this gist.