дата: 8.8.2018 г.
Floodlight е контролер с отворен код, който съдържа съвкупност от
независими модули, написани на Java. Архитектурата му се основава на
контролера Becon, създаден от David Erickson от Станфордския университет през 2010 година. Floodlight контролерът може да управлява физически и виртуални комутатори, маршрутизатори, точки на достъпи др.
Floodlight взаимодейства с мрежовите устройства през Southbound API слоя, като използва протокола OpenFlow.
Floodlight контролерът открива и поддържа топологията на мрежата, управлява движението на потоците, изчислява най-кратките пътища между
възлите в мрежата, добавя нови правила за управлението в комутаторите, поддържа статистическата информация за състоянието на мрежата.
Модулната му архитектура улеснява добавянето на нови модули и
промени във вече съществуващите модули. Разпространява се под Apache
лиценз.
Фиг. 1. Базова архитектура
Инсталиране и тестване на Floodlight контролер
Floodlight може да се изтегли от Github и да се създаде чрез Ant - java базиран инструмент за изграждане на java проекти.
В първият терминален прозорец пишем:
git clone git://github.com/floodlight/floodlight.git
cd floodlight
git submodule init
git submodule update
ant
sudo mkdir /var/lib/floodlight
sudo chmod 777 /var/lib/floodlight
./floodlight.sh
Би трябвало при успешно инсталиране да ни изпише:
BUILD SUCCESSFUL
Total time: 37 seconds
Приемаме, че вече имаме инсталиран Floodlight контролер и желаем да го тестваме:
Влизаме в директорията в която е инсталиран:
cd floodlight
Стартираме контролера:
java -jar ./target/floodlight.jar
Във втори терминален прозорец стартиране на OpenvSwitch !!!
sudo ovsdb-server -v --remote=punix:/usr/local/var/run/openvswitch/db.sock --remote=db:Open_vSwitch,Open_vSwitch,manager_options --pidfile --detach --log-file
ovs-vsctl --no-wait init
ovs-vswitchd --pidfile --detach
/etc/init.d/openvswitch-switch start
Стартираме топология в mininet от два хоста (h1, h2) и един суич (s1), управлявани от отдалечен контролер (c0) с IP адрес: 127.0.0.1 (т.е. на локален хост). Поддържа комутатор Open vSwitch (ovsk).
sudo mn --arp --topo single,3 --mac --switch ovsk --controller=remote,ip=127.0.0.1,port=6653
Проверява за връзка с командата ping:
mininet> h1 ping h2
Командите:
nodes– показва възловите точки;
net показва съществуващите връзки;
dump – дава подробна информация за съществуващите връзки;
exit – изход;
mininet> nodes
mininet> pingall
mininet> exit
Добавяме потоци в mininet:
sh ovs-ofctl add-flow s1 in_port=2,actions=output:1
sh ovs-ofctl add-flow s1 in_port=1,actions=output:2
sh ovs-ofctl add-flow s1 priority=1111,in_port=1,actions=output:3
sh ovs-ofctl dump-flows s1 – показва таблицата на потоците на суич s1;
sh ovs-ofctl show s1 – разширено представяне на таблицата;
sh ovs-ofctl del-flows s1 – изтрива потоци;
Floodlight контролерът предоставя удобен графичен интерфейс (GUI), който ни дава информация за състоянието на контролера, топологията на мрежата, съдържанието на таблиците с потоците и др.
Графичният интерфейс е достъпен, след като напишем в браузър следния URL адрес:
За локален хост трябва да изпишем:
http://localhost:8080/ui/index.html
или
http://127.0.0.1:8080/ui/index.html
Потока с приоритет 1111 (от горните редове) можем да видим на адрес:
http://127.0.0.1:8080/ui/pages/switchDetail.html?macAddress=00:00:00:00:00:00:00:01
. . . . . . . . . . ......................
Инсталиране на Cbench - програма за тестване и сравняване на OpenFlow контролери
Ето няколко сайта, който показват как се инсталира:
- Сайтът на Floodlight показва инсталиране на Cbench (New) 14.01.2019 г.
- Building Cbench on Ubuntu - 14.04 LTS 14.01.2019 г.
- От сайта на SDN Security. Тема: Cbench
Но аз го инсталирах по този начин: 13.01.2018 г. Ubuntu 17.10
sudo apt-get install autoconf automake libtool libsnmp-dev libpcap-dev
git clone git://gitosis.stanford.edu/oflops.git
cd oflops; git submodule init && git submodule update
git clone git://gitosis.stanford.edu/openflow.git
cd openflow; git checkout -b release/1.0.0 remotes/origin/release/1.0.0
wget http://www.hyperrealm.com/packages/libconfig-1.4.10.tar.gz
tar -xvzf libconfig-1.4.10.tar.gz
cd libconfig-1.4.10
./configure
sudo make && sudo make install
cd ../../netfpga-packet-generator-c-library/
sudo ./autogen.sh && sudo ./configure && sudo make
cd ..
cd openflow
sh boot.sh
Можем да видим къде е абсолютния път до openflow
pwd
/root/openflow/oflops/openflow
./configure –with-openflow-src-dir=
/root/openflow/oflops/openflow
sudo make install
cd cbench
make
Тестваме:
./cbench -c 127.0.0.1 -p 6653 -m 10000 -l 10 -s 16 -M 1000 -t
Примерен изход на стартиран
Floodlight контролер на локален хост (127.0.0.1):
. . . . . . . . . . ......................
All my research related to the floodlight controller, as well as an extended explanation of the publication:
- "MANAGEMENT OF SOFTWARE DEFINED NETWORKS WITH FLOODLIGHT CONTROLLER” in journal "MATHEMATICS AND INFORMATICS" Number 6, 2018 bulgarian language.
-
VIRTUALIZATION BASED ON VIRTUAL SWITCH OPEN VSWITCH
23.06.2017 - bulgarian language.
You can find here.
Все мои исследования, связанные с floodlight controller, подробное описание публикации:
- "MANAGEMENT OF SOFTWARE DEFINED NETWORKS WITH FLOODLIGHT CONTROLLER” in journal "MATHEMATICS AND INFORMATICS" Number 6, 2018.
-
Виртуализация на базата на виртуален комутатор Open vSwitch
от 23.06.2017 г. бълг. език.
Вы можете найти здесь.
Differents tutorials can be found on the
Floodlight's main site.