SDN-дайджэст – шэсць эмулятараў з адкрытым зыходным кодам

Мінулы раз мы зрабілі падборку апенсорсных SDN-кантролераў. Сёння на чарзе адкапаныя эмулятары SDN-сетак. Усіх, каму гэта цікава, запрашаем пад кат.

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

Міністэрства

Інструмент дазваляе падняць праграмнае кіраваную сетку на адной машыне (віртуальнай або фізічнай). Дастаткова ўвесці каманду: $ 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

Дадаць каментар