SDN-дайджест – шість емуляторів з відкритим вихідним кодом

Минулого разу ми зробили добірку опенсорсних SDN-контролерів. Сьогодні на черзі відкриті емулятори SDN-мереж. Усіх, кому це цікаво, запрошуємо під кат.

SDN-дайджест – шість емуляторів з відкритим вихідним кодом/Flickr/ Денніс ван Цуйлеком / CC

Mininet

Інструмент дозволяє підняти програмне керовану мережу однією машині (віртуальної чи фізичної). Достатньо ввести команду: $ sudo mn. За словами розробників, Mininet добре підходить для розгортання тестових середовищ.

Наприклад, викладачі Стенфорда (де й розробили Mininet) використовують утиліту під час практичних занять в університеті. Вона допомагає прищепити учням навички роботи з мережами. Деякі із завдань та демок можна знайти у репозиторії на GitHub.

Mininet також підходить для тестування кастомних топологій SDN. Віртуальна мережа розгортається з усіма світильниками, контролерами та хостами, а потім її працездатність перевіряється за допомогою Python-скриптів. Потім параметри переносяться з Mininet в реальну мережу.

З недоліків розв'язання експерти виділяють відсутність підтримки Windows. Крім того, Mininet не підійде для роботи з масштабними мережами, оскільки емулятор запускається на одній машині - може вистачити апаратні ресурси.

Mininet випущений під ліцензією BSD Open Source та активно розвивається. Зробити свій внесок можуть усі охочі — про те, як це зробити, є інформація на офіційному сайті проекту и у репозиторії.

нс-3

Симулятор для дискретно-подійного моделювання мереж. Спочатку інструмент замислювався як освітня утиліта, проте сьогодні він використовується для тестування SDN-оточень. Посібники з ns-3 лежать на сайті з документацією проекту.

Серед переваг утиліти можна виділити підтримку сокетів та бібліотеки Pcap для роботи з іншими інструментами (на зразок Wireshark), а також чуйне комьюніті.

До недоліків можна віднести відносно слабку візуалізацію. За відображення топології викинуто NetAnim. Крім того, ns-3 підтримує не всі контролери SDN.

Читання на тему в нашому корпоративному блозі:

OpenNet

Цей SDN-емулятор будується з урахуванням двох попередніх інструментів — Mininet і ns-3. Він поєднує сильні сторони кожного з них. Щоб змусити рішення працювати разом, OpenNet використовує байндинг бібліотеку на Python.

Таким чином, Mininet в OpenNet відповідає за емуляцію OpenFlow-свитків, надання CLI та віртуалізацію. Що стосується ns-3, то він емулює ті моделі, яких немає в Mininet. Посібник з роботи можна знайти на GitHub.Там же є додаткові посилання на матеріали на тему.

SDN-дайджест – шість емуляторів з відкритим вихідним кодом
/ PxТут / PD

Containernet

Це форк Mininet для роботи з контейнерами додатків. Docker-контейнери виступають як хостів в емульованих мережах. Рішення створювалося, щоб дозволити розробникам експериментувати з хмарними, периферійними, туманними обчисленнями та NFV. Систему вже застосували автори SONATA NFV для створення системи оркестрування у віртуалізованих 5G-мережах. Containernet виступив ядром платформи емуляції NFV.

Встановити Containernet можна за допомогою гайда на GitHub.

Tinynet

Легковажна бібліотека, яка допомагає оперативно створювати прототипи SDN-мереж. API-інструмент, написаний на Go, дозволяє емулювати будь-яку мережну топологію Сама бібліотека «важить» мало, за рахунок чого встановлюється і працює швидше за аналоги. Також Tinynet можна інтегрувати із Docker-контейнерами.

Інструмент не підходить для емуляції масштабних мереж через обмежену функціональність. Але нагоді при роботі над невеликими особистими проектами або швидкого прототипування.

Приклади реалізації та команди для установки Tinynet доступні в GitHub-репозиторії.

MaxiNet

Цей інструмент дозволяє використовувати Mininet на декількох фізичних машинах і працювати з масштабними SDN-мережами. Кожна з машин Робітники — запускає Mininet та емулює свою частину спільної мережі. Світчі та хости зв'язуються один з одним за допомогою GRE-тунелів. Для керування компонентами такої мережі MaxiNet надає API.

MaxiNet допомагає швидко масштабувати мережі та оптимізувати розподіл ресурсів. Також у MaxiNet є функції моніторингу, вбудований CLI та можливість інтеграції з Docker. Однак інструмент не вміє емулювати роботу одного світильника для кількох машин.

Вихідний код проекту є на GitHub. Гайд по установці та керівництво для швидкого старту можна знайти на офіційній сторінці проекту.

Читання на тему в нашому корпоративному блозі:

Джерело: habr.com

Додати коментар або відгук