- PVSM.RU - https://www.pvsm.ru -
В прошлый раз мы сделали подборку опенсорсных SDN-контроллеров [1]. Сегодня на очереди отрытые эмуляторы SDN-сетей. Всех, кому это интересно, приглашаем под кат.
[2]/ Flickr / Dennis van Zuijlekom [3] / CC [4]
Инструмент позволяет поднять программное управляемую сеть на одной машине (виртуальной или физической). Достаточно ввести команду: $ sudo mn. По словам разработчиков, Mininet хорошо подходит для развертки тестовых сред.
К примеру, преподаватели Стэнфорда (где и разработали Mininet) используют утилиту во время практических занятий в университете. Она помогает привить учащимся навыки работы с сетями. Некоторые из заданий и демок можно найти в репозитории [6] на GitHub.
Mininet также подходит для тестирования кастомных SDN-топологий. Виртуальная сеть разворачивается со всеми свитчами, контроллерами и хостами, а затем её работоспособность проверяется с помощью Python-скриптов. Затем настройки переносятся из Mininet в реальную сеть.
Из недостатков решения эксперты выделяют [7] отсутствие поддержки Windows. Кроме того, Mininet не подойдет для работы с масштабными сетями, так как эмулятор запускается на одной машине — может не хватить аппаратных ресурсов.
Mininet выпущен под лицензией BSD Open Source и активно развивается. Внести свой вклад могут все желающие — о том, как это сделать, есть информация на официальном сайте проекта [8] и в репозитории [9].
Симулятор для дискретно-событийного моделирования [11] сетей. Изначально инструмент задумывался как образовательная утилита, однако сегодня он используется для тестирования SDN-окружений. Руководства о работе с ns-3 лежат на сайте с документацией проекта [12].
Среди преимуществ утилиты можно выделить поддержку сокетов и библиотеки Pcap [13] для работы с другими инструментами (вроде Wireshark), а также отзывчивое комьюнити.
К недостаткам можно причислить относительно слабую визуализацию. За отображение топологии отвечает [14] NetAnim [15]. Кроме того, ns-3 поддерживает не все SDN-контроллеры.
Чтение по теме в нашем корпоративном блоге:
Этот SDN-эмулятор строится на базе двух предыдущих инструментов — Mininet и ns-3. Он объединяет сильные стороны каждого из них. Чтобы заставить решения работать вместе, OpenNet использует байндинг-библиотеку на Python.
Таким образом, Mininet в OpenNet отвечает за эмуляцию OpenFlow-свитчей, предоставление CLI и виртуализацию. Что касается ns-3, то он эмулирует те модели, которых нет в Mininet. Руководство по работе можно найти на GitHub [20].Там же есть дополнительные ссылки [19] на материалы по теме.

Это — форк Mininet для работы с контейнерами приложений. Docker-контейнеры выступают в качестве хостов в эмулированных сетях. Решение создавалось, чтобы позволить разработчикам экспериментировать с облачными, периферийными, туманными вычислениями и NFV. Систему уже применили авторы SONATA NFV для создания системы оркестровки в виртуализированных 5G-сетях. Containernet выступил [23] ядром платформы эмуляции NFV.
Установить Containernet можно с помощью гайда на GitHub [24].
Легковесная библиотека, которая помогает оперативно создавать прототипы SDN-сетей. API-инструмент [26], написанный на Go, позволяет эмулировать любую сетевую топологию. Сама библиотека «весит» мало, за счет чего устанавливается и работает быстрее аналогов. Также Tinynet можно интегрировать с Docker-контейнерами.
Инструмент не подходит для эмуляции масштабных сетей из-за ограниченной функциональности. Но пригодится при работе над небольшими личными проектами или быстрого прототипирования.
Примеры реализаций и команды для установки Tinynet доступны в GitHub-репозитории [25].
Этот инструмент дает возможность использовать Mininet на нескольких физических машинах и работать с масштабными SDN-сетями. Каждая из машин — Workers [28] — запускает Mininet и эмулирует свою часть общей сети. Свитчи и хосты связываются друг с другом при помощи GRE [29]-туннелей. Для управления компонентами такой сети MaxiNet предоставляет API.
MaxiNet помогает быстро масштабировать сети и оптимизировать распределение ресурсов. Также в MaxiNet есть функции мониторинга, встроенный CLI и возможность интеграции с Docker. Однако инструмент не умеет эмулировать работу одного свитча для нескольких машин.
Исходный код проекта есть на GitHub [30]. Гайд по установке и руководство для быстрого старта можно найти на официальной странице проекта [27].
Чтение по теме в нашем корпоративном блоге:
Автор: VAS Experts
Источник [33]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/open-source/313625
Ссылки в тексте:
[1] подборку опенсорсных SDN-контроллеров: https://habr.com/ru/company/vasexperts/blog/446058/
[2] Image: https://habrahabr.ru/company/vasexperts/blog/330996/
[3] Dennis van Zuijlekom: https://www.flickr.com/photos/dvanzuijlekom/8522009353/
[4] CC: https://creativecommons.org/licenses/by-sa/2.0/
[5] Mininet: http://mininet.org/
[6] в репозитории: https://github.com/mininet/mininet/wiki/Teaching-and-Learning-with-Mininet
[7] эксперты выделяют: https://www.researchgate.net/publication/269292945_Using_Mininet_for_emulation_and_prototyping_Software-Defined_Networks
[8] официальном сайте проекта: http://mininet.org/contribute/
[9] в репозитории: https://github.com/mininet/mininet
[10] ns-3: https://www.nsnam.org/
[11] дискретно-событийного моделирования: https://ru.wikipedia.org/wiki/%D0%94%D0%B8%D1%81%D0%BA%D1%80%D0%B5%D1%82%D0%BD%D0%BE-%D1%81%D0%BE%D0%B1%D1%8B%D1%82%D0%B8%D0%B9%D0%BD%D0%BE%D0%B5_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5
[12] сайте с документацией проекта: https://www.nsnam.org/documentation/
[13] Pcap: https://ru.wikipedia.org/wiki/Pcap
[14] отвечает: https://www.projectguideline.com/visualizing-ns-3-simulation-using-netanim/
[15] NetAnim: https://www.nsnam.org/wiki/NetAnim
[16] Ботнет «спамит» через роутеры: что нужно знать: https://vasexperts.ru/blog/bezopasnost/botnet-spamit-cherez-routery/
[17] DDOS и 5G: толще «труба» — больше проблем: https://vasexperts.ru/blog/bezopasnost/ddos-i-5g-tolshhe-truba-bolshe-problem/
[18] Корпоративная безопасность: DPI в системах DLP: https://vasexperts.ru/blog/seti/vnedrenie-ipv6-faq-dlya-internet-provajderov/
[19] OpenNet: https://github.com/dlinknctu/OpenNet
[20] на GitHub: https://github.com/dlinknctu/OpenNet/blob/master/doc/TUTORIAL.md
[21] PxHere: https://pxhere.com/en/photo/1554875
[22] Containernet: https://containernet.github.io/
[23] выступил: https://github.com/sonata-nfv/son-emu
[24] гайда на GitHub: https://github.com/containernet/containernet
[25] Tinynet: https://github.com/John-Lin/tinynet
[26] API-инструмент: https://godoc.org/github.com/John-Lin/tinynet
[27] MaxiNet: http://maxinet.github.io/
[28] Workers: https://rawgit.com/MaxiNet/MaxiNet/v1.0/doc/maxinet.html#Worker
[29] GRE: https://ru.wikipedia.org/wiki/GRE_(%D0%BF%D1%80%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%BB)
[30] на GitHub: https://github.com/MaxiNet
[31] Протокол IPv6 – от теории к практике: https://vasexperts.ru/blog/telekom/protokol-ipv6-ot-teorii-k-praktike/
[32] IPv6 — технология настоящего или будущего: https://vasexperts.ru/blog/bezopasnost/ipv6-texnologiya-nastoyashhego-ili-budushhego/
[33] Источник: https://habr.com/ru/post/446634/?utm_source=habrahabr&utm_medium=rss&utm_campaign=446634
Нажмите здесь для печати.