SDN-дайджест — шесть эмуляторов с открытым исходным кодом

    В прошлый раз мы сделали подборку опенсорсных SDN-контроллеров. Сегодня на очереди отрытые эмуляторы SDN-сетей. Всех, кому это интересно, приглашаем под кат.

    / Flickr / Dennis van Zuijlekom / CC



    Mininet


    Инструмент позволяет поднять программное управляемую сеть на одной машине (виртуальной или физической). Достаточно ввести команду: $ sudo mn. По словам разработчиков, Mininet хорошо подходит для развертки тестовых сред.

    К примеру, преподаватели Стэнфорда (где и разработали Mininet) используют утилиту во время практических занятий в университете. Она помогает привить учащимся навыки работы с сетями. Некоторые из заданий и демок можно найти в репозитории на GitHub.

    Mininet также подходит для тестирования кастомных SDN-топологий. Виртуальная сеть разворачивается со всеми свитчами, контроллерами и хостами, а затем её работоспособность проверяется с помощью Python-скриптов. Затем настройки переносятся из Mininet в реальную сеть.

    Из недостатков решения эксперты выделяют отсутствие поддержки Windows. Кроме того, Mininet не подойдет для работы с масштабными сетями, так как эмулятор запускается на одной машине — может не хватить аппаратных ресурсов.

    Mininet выпущен под лицензией BSD Open Source и активно развивается. Внести свой вклад могут все желающие — о том, как это сделать, есть информация на официальном сайте проекта и в репозитории.



    ns-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.Там же есть дополнительные ссылки на материалы по теме.




    / PxHere / PD



    Containernet


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

    Установить Containernet можно с помощью гайда на GitHub.



    Tinynet


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

    Инструмент не подходит для эмуляции масштабных сетей из-за ограниченной функциональности. Но пригодится при работе над небольшими личными проектами или быстрого прототипирования.

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



    MaxiNet


    Этот инструмент дает возможность использовать Mininet на нескольких физических машинах и работать с масштабными SDN-сетями. Каждая из машин — Workers — запускает Mininet и эмулирует свою часть общей сети. Свитчи и хосты связываются друг с другом при помощи GRE-туннелей. Для управления компонентами такой сети MaxiNet предоставляет API.

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

    Исходный код проекта есть на GitHub. Гайд по установке и руководство для быстрого старта можно найти на официальной странице проекта.



    Чтение по теме в нашем корпоративном блоге:

    VAS Experts
    126,00
    Российский разработчик DPI-системы СКАТ
    Поделиться публикацией

    Комментарии 0

    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

    Самое читаемое