суббота, 15 ноября 2014 г.

Запуск и установка Mininet в ArchLinux

Для начала нужно его поставить из аура:

$ yaourt -Ss mininet

Если при установке были ошибки с git-ом, то скорее всего его нужно доставить
$ pacman -S git

Если при установке ругается на setuptools, то не хватает пакета в систему python2-setuptools
Ну, и когда оно все поставилось, нужно пару сервисов доставить, а именно ovsdb-server и ovs-vswitchd . Они доступны в пакете openvswitch

$ yaourt -S openvswitch 

Вот теперь нужно все помаленечку запускать

$ sudo systemctl start ovsdb-server
$ sudo systemctl start ovs-vswitchd

И на десерт стартуем Mininet

$ sudo mn

ну и там сосолька выскочит с приглашением чет-там делать

Хочешь пингануть от имени h1 другой хост, например h2? Ага, я тоже хотел, пока не увидел, что пинги не идут. Из выхлопа ясно, что нет маршрута по которому бы следовали пакеты. И так вопрос, как его сделать? Ответ мне пришлось выуживать из гугла. Все не так просто, чтобы был маршрут для пакетов, нужен девайс третьего уровня, ну и понятно дело виртуальный. Такой девайс может быть контроллером, например Openflow. Он опенсоурсный и адаптирован под пердоликс. Так-то оно так, а вот как поставить его в RachPerdolix? Можно собрать из сорцов, а можно из аура. Например такой командой:

$ yaourt -S floodlight

И он еще попросит jre8-openjdk, вот его тоже поставить надо. После установки запустить в новой сосоле командой

$ floodlight

И смоттреть чо как ведет себя контроллер.

А вот тут самое интересное, чтобы к контроллеру подцеплялся Mininet, его нужно запускать с такими флагами и ключами:

$ sudo mn --topo single,3 --mac --switch ovsk --controller remote

И вот только после этого пинги от h1 пойдут до h2