3. Что такое SDN/OpenFlow?
Основные принципы
• Физическое разделение уровня передачи данных от уровня
управления сетевых устройств.
• Логически централизованное управление.
• Программируемость.
• Открытый единый интерфейс управления.
Преимущества
• Упрощение управления
сетью (OPEX)
• Удешевление
оборудования (CAPEX)
• Разработка ранее
недоступных сервисов
Внедрения
...
“SDN means thinking differently about networking”
SDN = Software Defined Networking
4. Основы ПКС (SDN/OpenFlow)
A
B
• Неизвестный пакет отправляется на контроллер (OF_PACKET_IN).
• Контроллер вычисляет лучший маршрут через всю сеть (с наименьшей
стоимостью и удовлетворяющий политикам маршрутизации).
• Соответствующие правила OpenFlow устанавливаются на коммутаторы + сразу
и обратный маршрут (OF_PACKET_OUT/FLOW_MOD).
A
B
A -> B
OpenFlow
контроллер
хост/клиент
хост/клиент
коммутатор 1 коммутатор 2
коммутатор 3 коммутатор 4
5. Основы ПКС (SDN/OpenFlow)
A
B
• Неизвестный пакет отправляется на контроллер (OF_PACKET_IN).
• Контроллер вычисляет лучший маршрут через всю сеть (с наименьшей
стоимостью и удовлетворяющий политикам маршрутизации).
• Соответствующие правила OpenFlow устанавливаются на коммутаторы + сразу
и обратный маршрут (OF_PACKET_OUT/FLOW_MOD).
• Динамическая переконфигурация в случае ошибки сети.
A
B
OpenFlow
контроллер
хост/клиент
хост/клиент
коммутатор 1 коммутатор 2
коммутатор 3 коммутатор 4
7. Архитектура SDN/OpenFlow контроллера
С технической стороны:
• OpenFlow контроллер – это обычный TCP/IP сервер, слущающий сокет 6653,
к которому подключаются OpenFlow коммутаторы
• OpenFlow – протокол прикладного уровня, описывающий взаимодействие
контроллер/коммутатор.
• Т.е. контроллер – это ПО, устаналиваемое на компьютер с традиционной
ОС.
Общая
архитектура
Функциональность
Производительность
8. Список контроллеров
• OpenFlow контроллеров действительно
много
– Nox, Pox, MUL, Ruy, Beacon, OpenDaylight,
Floodlight, Maestro, McNettle, Flower, Runos
– Разные языки программирования от Python
до Haskell, Erlang
• Для обучения все используют Pox.
• В целом eсть два больших комьюнити:
– Floodlight (BigSwitch, Stanford)
– OpenDayLight (Cisco)
• В России наш Runos
– arccn.github.io/runos
9. Требования к контроллеру ПКС
• Производительность
– Пропускная способность
• events per second
– Задержка
• us
• Надежность и безопасность
– 24/7
• Программируемость
– Функциональность: приложения и сервисы
– Интерфейс программирования
• ЦОД требует обработку
>10M событий в секунду
• Реактивные
контроллеры более
“чувствительные”
10. Результаты сравнения (2013)
• Максимальная производительность 7 000 000 потоков в
секунду.
• Минимальное время задержки от 50 до 75 мкс.
• Недостатки:
– Надежность контроллеров вызывала вопросы
– Производительность была не достаточна (DC >10M fps)
11. Программируемость
• На языке контроллера [быстро]
• На любом языке через REST
интерфейс [медленно]
• Специальные языки
программирования с другой
абстракцией (например, Pyretic,
Maple)
13. Примеры проблем
Проблема запуска нескольких приложений, интеграция с
приложениями других разработчиков
– требуется статическая подстройка приложений под себя, порядок и
способ передачи информации между ними.
– нет механизма контроля и разрешения конфликтов между
приложениями (генерация пересекающихся правил).
Forwarding SPAN
OpenFlow
ip_dst:10.0.0.1
Rule 1
Rule 2
Flow table
Rule 1 (fwd): ip_src:10.0.0.1 -> output:1
Rule 2 (span): ip_src:10.0.0.1 -> output:5
New
packet
never used
14. Проблемы с OpenFlow коммутаторами
• Не дешевые
– И даже дороже - поддержка
• Не поддерживается весь OpenFlow
– Несколько таблиц, групповые таблицы, QoS
• Не быстрые
– Общение с контроллером (packet_in, packet_out),
– Загрузка новых правил (flow_mod)
– Перезапись полей заголовка
– Сравнение по факту только full tuple
• Почему так?
– Гибридные решения
– Теже Broadcom чипсеты, в планах вроде даже и нет.
• Выход?
– Сейчас сетевые процессоры
16. С чего начать изучение SDN?
Широкий набор обучающих инструментов:
– Mininet
– Pox, Floodlight, OpenDayLight
– FlowVisor
http://archive.openflow.org/wk/index.php/OpenFlow_Tutorial
19. Телеком
1. Интеллектуальный Traffic Engineering:
• Выбор оптимального пути
• Реакция на отказ канала
• Резервирование пропускной способности
20. Телеком
• Как применить все это на практике?
– Greenfield?
– Проблемы интеграции с традиционной сетью
• Нужно подыгрывать протоколам традиционной
сети, т.е. правильно отвечать на запросы.
• Чем меньше стыков с традиционной сетью, тем
лучше.
– Проблема интеграции с существующими
системами управления
21. Телеком
2. Переход на виртуальные сетевый
сервисы (NFV)
• Динамическое развертывание
• Связывание сервисов в цепочки
23. ЦОД/Облака
• Повышение утилизации оборудования и каналов
• Мониторинг и оптимизация потоков
• Виртуализация сети пользователей
• Балансировка нагрузки
• Обеспечение качества доступа
24. ЦОД/Облака
• Как правило есть два SDN
– Без OpenFlow и так есть в OpenStack
• ТОЛЬКО виртуальные каналы
• Туннели, таблицы, новые VM, политики
– С OpenFlow для управление физическими
устройствами
• Качество канала, определение узких мест
25. Корпоративная сеть
• Современные компания имеют сложную сетевую
инфраструктуру:
– Большое количество сетевых элементов
– Разветвленная топология
– Набор различных потилик маршрутизации и безопасности
26. Трудности администрирования
• Сетевые администраторы отвечают за поддержания
работы сетевой инфраструктуры:
– Сетевые инженеры руками переводят высокоуровневые политики
в низкоуровневые команды
– Ручная настройка всех сетевых устройств
– Ограниченный инструментарий по управлению сетевыми
устройствами
– Переучивание под каждого вендора
27. Возможности
1. Сделать сеть управляемой без
ручного доступа к оборудования.
2. Повысить уровень абстракции
управления сетью.
3. Более продвинутый zeroconf
28. Easyway
[4] A. Shalimov, D. Morkovnik, S. Nizovtsev, R. Smeliansky EasyWay: Simplifying and
automating enterprise network management with SDN/OpenFlow// 10th Central and
Eastern European Software Engineering Conference in Russia, CEE-SECR 2014б, ACM
SIGSOFT, Moscow, Russia.
29. Заключение
• Нет чистых стартапов по SDN и нет продуктов для
обычных людей.
• Применение только в больших компаниях.
• Продукты только от производителей сетевого
оборудования.
• Открытость? Программируемость? Пока нет.
• Нет чистых железных OpenFlow коммутаторов.
• Применение в основном на программных
коммутаторах совместно с другими технологиями
(NFV, OpenStack).
Editor's Notes
Проблемы традиционных сетей
Сложность управления большими сетями
Миллионы строк закрытого проприетарного кода
Дороговизна оборудования
Невозможноть внедрения новых идей
OSPF, VRRP, RSTP
Отметить, что это НЕ железное устройство, на системы на чипе, это программа, т.е. ПО. Возможно в будущем будет создана специальная ОС, где модули контроллера уже будут внутри.
Почему сейчас программируемость – производительность не так важна из-за проблем со свитчами.
Да и в целом разработка идет монолитно, если программы работают правильно отдельно, то не обязательно правильно вместе.
Я уже отмечал, что они не дешевые, не весь ОпенФлоу, не быстрые.
Тоже и White Switch и OpenNetworkLinux
Рассказать кратко про проблему распределенности.
Отказоустойчивость и масштабирование по нагрузке
Уменьшение задержек