Добавил:
СПбГУТ * ИКСС * Программная инженерия Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
22
Добавлен:
25.03.2022
Размер:
280.04 Кб
Скачать

Лабораторные работы СПО(домашний/удалённый режим работы)

#4.ПО дляпрограммно-конфигурируемыхсетей (SDN).

Цель: на практикепознакомиться с концепцией программно-определяемыхсетей (SDN,software-defined networks). Развернуть в виртуальной среденесколькосетевыхузлов, настроить ихсвязность и управление с помощью контроллера SDN. Проверить прохождениесетевоготрафика между узлами при разных конфигурациях таблиц потоков.

Задача: с помощью эмулятора сетевыхэлементов (Mininet) и контроллера SDN (Floodlight) развернуть структуру из несколькихэлементов, рассмотреть участие контроллера в связности элементов сети, познакомиться с таблицами потоков для сетевых узлов.

Отчёт должен быть представлен (на email или в ЛК) в видеэлектронного документа (.docx, .odt).

Впояснительной части отчёта должно содержаться:

краткое описание хода работы

схема SDN-сети,построенной на основе виртуальныхузлов

результаты выполненных проверок прохождения соединения между узлами сети

примерконфигурации таблицы потоков (FlowTable) некоторыхузлов

Вспомогательные материалы

https://habr.com/ru/company/muk/blog/251959/ – краткие общие сведения о концепции SDN https://shalaginov.com/2018/01/16/руководство-по-sdn-и-nfv-1/

http://iks.sut.ru/rubricator/programmno-konfiguriruemye-seti-sdn-protokol-openflow/ – учебное пособие по технологическим основам реализации SDN (изд-во СПбГУТ, есть версия в .pdf)

https://www.osp.ru/lan/2012/12/13033012 https://habr.com/ru/post/307356/ https://habr.com/ru/company/etegro/blog/245037/

https://asvk.cs.msu.ru/~bahmurov/asvk/v2kurs-SDN_v2.pdf – различные отраслевые статьи, отражающие изменение концепций SDN и NFV в период2011-2018

http://sdn.ifmo.ru/Members/shkrebets/sdn_4115/sdn_papers – подборка международных открытых публикаций о SDN http://sdn.ifmo.ru/Members/shkrebets/sdn_4115/sdn_practice – курс практических занятий по SDN (ИТМО)

https://habr.com/ru/company/vasexperts/blog/446058/ – краткий обзор открытых инструментов для создания SDN

Используемые инструменты

http://mininet.org/walkthrough/ – эмулятор сетевых узлов Mininet

https://floodlight.atlassian.net/wiki/spaces/floodlightcontroller/overview – контроллер FloodLight

Образ виртуального диска с установленным набором ПО может быть скачана с сайта проекта FloodLight: https://floodlight.atlassian.net/wiki/spaces/floodlightcontroller/pages/8650780/Floodlight+VM

https://github.com/ARCCN/runos – российский SDN/OpenFlow-контроллер RunOS

https://ryu-sdn.org/

https://book.ryu-sdn.org/en/Ryubook.pdf – каркас (framework) для создания собственных классов оборудования и контроллеров SDN

Ход выполнения работы

0.Развёртываем виртуальную машину, содержащую UbuntuLinux, Mininet,Floodlight

Образ диска для виртуальной машины Floodlight(формат VMWare .vmdk) доступен для свободного скачивания здесь: https://floodlight.atlassian.net/wiki/spaces/floodlightcontroller/pages/8650780/Floodlight+VM http://opennetlinux.org/binaries/floodlight-vm.zip

Для инсталляции виртуальной машины необходимоналичие среды виртуализации VMWare (https://www.vmware.com/ru/products/workstation-player.html)или OracleVirtualBox (https://www.virtualbox.org/wiki/Downloads).

В среде виртуализации необходимо создать новую виртуальную машину на основе Linux 64-bit, примонтировать образ диска (.vmdk)и запустить её. Логин и пароль по умолчанию –«floodlight». Далеев графической оболочке открыть консоль терминала, например так:

1.Запускаемэмулятор Mininet.

floodlight@floodlight:~$ sudo mn

***Creating network

***Adding controller

***Adding hosts:

h1 h2

***Adding switches:

s1

***Adding links: (h1, s1) (h2, s1)

***Configuring hosts h1 h2

***Starting controller

c0

***Starting 1 switches s1 ...

***Starting CLI: mininet>

Вэтом случае (запуск mnбез каких-либо параметров) будет автоматически создана простейшая топология, состоящая из двух хостов, коммутатора и контроллера, и запущена консоль управления Mininet.

2.Проверяем работу виртуальной сети.

Чтобы проверить связь между хостами созданной сети,выполните команду pingall.В результате выполнения команды каждый хост выполнит ping совсеми остальными хостами. В нашемслучаеэтобудет выглядеть следующим образом:

mininet> pingall

***Ping: testing ping reachability h1 -> h2

h2 -> h1

***Results: 0% dropped (2/2 received)

3.Завершаем работу эмулятора.

Для завершения работы Mininetвыполните команду exit:

mininet> exit

***Stopping 1 controllers

c0

***Stopping 2 links

..

***Stopping 1 switches

s1

***Stopping 2 hosts

h1 h2

*** Done

completed in 180.283 seconds

4.Создаёмтопологию сети.

Mininetпозволяет создавать топологии сетей с помощью различных шаблонов. Например, шаблон tree позволяет создавать древовидную топологию,а linear – линейную, где каждый коммутатор последовательно соединён с каждым:

floodlight@floodlight:~$ sudo mn --topo linear,4 --switch ovsk --ipbase=10.0.0.0/8

***Creating network

***Adding controller

***Adding hosts:

h1 h2 h3 h4

***Adding switches: s1 s2 s3 s4

***Adding links:

(h1, s1) (h2, s2) (h3, s3) (h4, s4) (s2, s1) (s3, s2) (s4, s3)

***Configuring hosts h1 h2 h3 h4

***Starting controller

c0

***Starting 4 switches s1 s2 s3 s4 ...

***Starting CLI: mininet>

Обратитевнимание: ключ ovsk подразумевает созданиесетевых узлов (коммутаторов) типа Open vSwitch, поддерживающихпротокол OpenFlow и предназначенных для работы совместно с контроллером SDN.

5.Запускаемсетевые команды на хостах.

Mininetпозволяет запускать на узлах простые сетевые приложения Linux. Выполните команду ping с первого хоста на третий, для этоговведите следующую команду:

mininet> h1 ping h3

PING 10.0.0.3 (10.0.0.3) 56(84) bytes of data.

64 bytes from 10.0.0.3: icmp_seq=1 ttl=64 time=8.94 ms 64 bytes from 10.0.0.3: icmp_seq=2 ttl=64 time=0.277 ms ^C

--- 10.0.0.3 ping statistics ---

2 packets transmitted, 2 received, 0% packet loss, time 1002ms rtt min/avg/max/mdev = 0.277/4.610/8.944/4.334 ms

6.Запускаем контроллер FloodLight.

Контроллер может быть запущен с помощью следующей команды:

java -jar target/floodlight.jar &

Примечание. Если при запуске возниклаошибки из-за отсутствияфайла target/floodlight.jar, необходимо выполнитьсборку Floodlight. Для этоговыполнить команды:

floodlight@floodlight:~$ cd floodlight floodlight@floodlight:~/floodlight$ ant

По окончании сборки будет выведено сообщение

BUILD SUCCESSFUL

Total time: 24 seconds

Затем можно повторить попыткузапуска.

После того какконтроллер был запущен, можно получить доступ к графическому веб-интерфейсу управления контроллером. Чтобы подключиться к веб-интерфейсу контроллера, введитев адресной строке веб-браузера следующий адрес:

http://<ip-адрес>:8080/ui/index.html

(здесь ip-адрес –адрес контроллера FloodLight)

7.Подключаемвиртуальную сеть к контроллеру.

Для подключения коммутаторов виртуальной сети Mininet к контроллеру необходимов параметрах запуска указать --controller=remote. Выполните следующую команду:

sudo mn --topo linear,4 --switch ovsk --ipbase=10.0.0.0/8 \ --controller=remote,ip=<ip-адрес>,port=6653

(здесь ip-адрес –адрес контроллера FloodLight; 6653 – порт, используемый по умолчанию для протокола

OpenFlow)

Перейдитена страницу «Topology» и убедитесь,что к контроллеру была подключена виртуальная сеть из четырёх коммутаторов с четырьмя подключенными оконечными хостами, например, как показано на рисунке:

8.Проводим простые эксперименты сосвязностью узлов.

Попробуйте выполнить и проанализировать результаты команд:

pingall

h1 ping h3

link s2 s3 down h1 ping h3

Посмотрите статусы портов и содержимое Flow-таблиц коммутаторахна закладкеSwitches после выполнения разных команд.

Остановите SDN-контроллери послеэтого повторно выполните команду pingall.