Привет, хабр.
Данная статья посвящена контроллеру OpenFlow NOX, потому что я пока не нашел ни одного источника информации для работы с ним без гугления и танцев.
Вы можете прочитать об OpenFlow, протоколе, для которого был реализован NOX, подробнее читайте в этом habrahabr.ru/post/149126 или habrahabr.ru/post/148745 это статьи.
Что вам понадобится для выполнения следующих шагов? Дистрибутив Linux, для простоты мы будем использовать Ubuntu, Virtualbox и образ минисети, который вы можете найти по адресу адрес Mininet — это образ Ubuntu с уже установленными контроллером, сниффером и сетевым эмулятором.
Он понадобится нам для проверки работы контроллера.
Устанавливаем его на Virtualbox. После установки нам необходимо настроить интерфейсы на виртуальной машине, через которые мы сможем открывать ssh-сессии.
Для этого в VirtualBox выберите виртуальную машину с мининетом, затем перейдите в Вкладка «Настройки» — «Сеть» — «Адаптер 2».
и выбери Включить адаптер .
Поставьте галочку напротив сеть только для хоста .
Если вы еще не настроили хост-сеть, то зайдите в меню Файл – Настройки – Сеть и нажмите на кнопку Добавить сеть только для хоста .
Пришло время запустить виртуальную машину.
Логин и пароль – openflow Первым делом нужно убедиться, что интерфейсы получили IP-адреса.
Наберём в консоли:
Если адресов нет, то сделайтеifconfig -a
sudo dhclient ethN
где N — номер интерфейса.
Подробную инструкцию по работе с мининетом я прикреплю в конце статьи в списке источников.
Далее переходим непосредственно к контроллеру.
Инструкции по установке были протестированы на версиях Ubuntu 11.04, 11.10, 12.04. Контроллер должен быть установлен на местный ОПЕРАЦИОННЫЕ СИСТЕМЫ.
1. Сначала необходимо установить все зависимости для NOX и системы контроля версий Git. cd /etc/apt/sources.list.d
sudo wget http://openflowswitch.org/downloads/debian/nox.list
sudo apt-get update
sudo apt-get install nox-dependencies git libboost-thread-dev
2. Теперь вам нужно клонировать репозиторий NOX. git clone http://github.com/noxrepo/nox
3. А теперь третий шаг, самый волшебный.
Вам необходимо установить библиотеку tbb и boost версии 1.48. Идти cd
sudo apt-get install libtbb-dev
wget http://citylan.dl.sourceforge.net/project/boost/boost/1.48.0/boost_1_48_0.tar.bz2
tar --bzip2 -xf /<path_to_boost>/boost_1_48_0.tar.bz2
cd /<path to boost>/boost_1_48_0
.
/bootstrap.sh --prefix=/usr sudo .
/b2 install
3а.
Если вы используете Ubuntu 12.04, вы можете пропустить этот шаг.
Если нет, то вам необходимо установить autoconf 2.68. cd
wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.68.tar.bz2
tar --bzip2 -xf autoconf-2.68.tar.bz2
cd autoconf-2.68/
.
/configure
make
sudo make install
4. Теперь вы можете собирать NOX. Для этого мы используем команды cd ~/<nox_sources_dir>/nox
.
/boot.sh mkdir build && cd build .
/configure
make
Вы можете установить NOX, запустив sudo make install. В этом случае вам не придется каждый раз при запуске NOX указывать путь к nox_core.
5. Проверим, все ли работает. cd ~/<nox_sources_dir>/nox/build/src
.
/nox_core -v -i ptcp<:<IP address>>:<port> "<app_name>"
IP-адрес — IP-адрес интерфейса, который должен прослушивать NOX.
порт — порт, который NOX должен прослушивать.
По умолчанию — 6633.
app_name — Имя реализации переключателя обучения, которое должно находиться в ~/ Каталог /nox/build/src.
Вот пример рабочей команды .
/nox_core -v -i ptcp:192.168.56.1:6633 "switch"
192.168.56.1 IP-адрес интерфейса виртуальной машины
переключатель Стандартная реализация переключателя обучения L2 в NOX
Теперь давайте установим Wireshark с плагином диссектора openflow на локальном компьютере.
Сразу хочу предупредить, что плагин может работать только на старых версиях Wireshark. Судя по всему, его разработка прекращена.
1. Установите зависимости для Wireshark. sudo apt-get install libgtk2.0-dev byacc libpcap-dev
2. Загрузите и установите Wireshark 1.4.15. wget http://www.wireshark.org/download/src/wireshark-1.4.15.tar.bz2
tar --bzip2 -xf wireshark-1.4.15.tar.bz2
cd wireshark-1.4.15/
.
/configure
make
sudo make install
3. Установите плагин диссектора Wireshark. cd ~/
git clone http://github.com/noxrepo/openflow
cd openflow/utilities/wireshark_dissectors/openflow/
make
sudo cp packet-openflow.so /usr/lib/wireshark/libwireshark0/plugins/
4. Проверим, видит ли Wireshark плагин.
Для этого давайте запустим его, затем Помощь — О программе — Плагины и организуйте список.
package-openflow.so должен присутствовать в списке Ура, мы установили все необходимое и теперь пришло время проверить работу нашего контроллера! Вам нужно посмотреть на локальной машине, какой интерфейс соответствует виртуальной и узнать ее IP-адрес.
Давайте введем ifconfig в консоли.
У меня это 192.168.56.1
Запустим NOX, чтобы он прослушивал этот IP. ~/<nox_sources_dir>/nox/build/src/nox_core -v -i 192.168.56.1:6633 “switch”
В другом окне на локальной машине запустите Wireshark и присоедините его к 192.168.56.1, а в поле фильтра введите метку пакетов OpenFlow — of.
Теперь мининет. Перейдем к виртуальной машине.
Если вам нужно создать собственную топологию, то перейдите в каталог ~/mininet/custom/ и создайте скрипт на Python. В Mininet есть пример топологии в файле mytopo.py, который вы можете использовать.
Чтобы запустить мининет, введите sudo mn --custom ~/mininet/custom/mytopo.py --topo=mytopo --mac --controller remote --ip=192.168.56.1
--topo сообщает, что будет использоваться пользовательская топология.
--controller указывает тип контроллера — локальный или удаленный.
--ip адрес контроллера В открывшейся оболочке минисети введите команду pingall Все! NOX должен начать двигаться, мы увидим его сообщения в консоли, а Wireshark должен начать ловить пакеты OpenFlow. Источники: www.openflow.org/wk/index.php/OpenFlow_Tutorial github.com/noxrepo github.com/noxrepo/nox-classic/wiki www.openflow.org/wk/index.php/OpenFlow_Wireshark_Dissector Теги: #Сетевые технологии #openflow #nox
-
Взломать Или Продать Свой Домен?
19 Oct, 24 -
Общий Горячий Резерв Для Mdadm
19 Oct, 24 -
Ibm И Дикие Выходные
19 Oct, 24