- PVSM.RU - https://www.pvsm.ru -

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

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

SDN-дайджест — шесть эмуляторов с открытым исходным кодом - 1 [2]/ Flickr / Dennis van Zuijlekom [3] / CC [4]


Mininet [5]

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

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

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

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

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


ns-3 [10]

Симулятор для дискретно-событийного моделирования [11] сетей. Изначально инструмент задумывался как образовательная утилита, однако сегодня он используется для тестирования SDN-окружений. Руководства о работе с ns-3 лежат на сайте с документацией проекта [12].

Среди преимуществ утилиты можно выделить поддержку сокетов и библиотеки Pcap [13] для работы с другими инструментами (вроде Wireshark), а также отзывчивое комьюнити.

К недостаткам можно причислить относительно слабую визуализацию. За отображение топологии отвечает [14] NetAnim [15]. Кроме того, ns-3 поддерживает не все SDN-контроллеры.


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


OpenNet [19]

Этот SDN-эмулятор строится на базе двух предыдущих инструментов — Mininet и ns-3. Он объединяет сильные стороны каждого из них. Чтобы заставить решения работать вместе, OpenNet использует байндинг-библиотеку на Python.

Таким образом, Mininet в OpenNet отвечает за эмуляцию OpenFlow-свитчей, предоставление CLI и виртуализацию. Что касается ns-3, то он эмулирует те модели, которых нет в Mininet. Руководство по работе можно найти на GitHub [20].Там же есть дополнительные ссылки [19] на материалы по теме.


SDN-дайджест — шесть эмуляторов с открытым исходным кодом - 2
/ PxHere [21] / PD


Containernet [22]

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

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


Tinynet [25]

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

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

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


MaxiNet [27]

Этот инструмент дает возможность использовать 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