Как Работать С Контроллером Openflow Nox

Привет, хабр.

Данная статья посвящена контроллеру OpenFlow NOX, потому что я пока не нашел ни одного источника информации для работы с ним без гугления и танцев.

Вы можете прочитать об OpenFlow, протоколе, для которого был реализован NOX, подробнее читайте в этом habrahabr.ru/post/149126 или habrahabr.ru/post/148745 это статьи.

Что вам понадобится для выполнения следующих шагов? Дистрибутив Linux, для простоты мы будем использовать Ubuntu, Virtualbox и образ минисети, который вы можете найти по адресу адрес Mininet — это образ Ubuntu с уже установленными контроллером, сниффером и сетевым эмулятором.

Он понадобится нам для проверки работы контроллера.

Устанавливаем его на Virtualbox. После установки нам необходимо настроить интерфейсы на виртуальной машине, через которые мы сможем открывать ssh-сессии.

Для этого в VirtualBox выберите виртуальную машину с мининетом, затем перейдите в Вкладка «Настройки» — «Сеть» — «Адаптер 2».

и выбери Включить адаптер .

Поставьте галочку напротив сеть только для хоста .



Как работать с контроллером Openflow NOX

Если вы еще не настроили хост-сеть, то зайдите в меню Файл – Настройки – Сеть и нажмите на кнопку Добавить сеть только для хоста .



Как работать с контроллером Openflow NOX

Пришло время запустить виртуальную машину.

Логин и пароль – 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

Вместе с данным постом часто просматривают: