Технология SDN
OpenFlow контроллер, проблемы,
применение
Александр Шалимов
ЦПИКС, МГУ
http://arccn.ru/
ashalimov@arccn.ru
@alex_shali
@arccnnews
Часть I:
Что такое SDN?
Что такое SDN/OpenFlow?
Основные принципы
• Физическое разделение уровня передачи данных от уровня
управления сетевых устройств.
• Логически централизованное управление.
• Программируемость.
• Открытый единый интерфейс управления.
Преимущества
• Упрощение управления
сетью (OPEX)
• Удешевление
оборудования (CAPEX)
• Разработка ранее
недоступных сервисов
Внедрения
...
“SDN means thinking differently about networking”
SDN = Software Defined Networking
Основы ПКС (SDN/OpenFlow)
A
B
• Неизвестный пакет отправляется на контроллер (OF_PACKET_IN).
• Контроллер вычисляет лучший маршрут через всю сеть (с наименьшей
стоимостью и удовлетворяющий политикам маршрутизации).
• Соответствующие правила OpenFlow устанавливаются на коммутаторы + сразу
и обратный маршрут (OF_PACKET_OUT/FLOW_MOD).
A
B
A -> B
OpenFlow
контроллер
хост/клиент
хост/клиент
коммутатор 1 коммутатор 2
коммутатор 3 коммутатор 4
Основы ПКС (SDN/OpenFlow)
A
B
• Неизвестный пакет отправляется на контроллер (OF_PACKET_IN).
• Контроллер вычисляет лучший маршрут через всю сеть (с наименьшей
стоимостью и удовлетворяющий политикам маршрутизации).
• Соответствующие правила OpenFlow устанавливаются на коммутаторы + сразу
и обратный маршрут (OF_PACKET_OUT/FLOW_MOD).
• Динамическая переконфигурация в случае ошибки сети.
A
B
OpenFlow
контроллер
хост/клиент
хост/клиент
коммутатор 1 коммутатор 2
коммутатор 3 коммутатор 4
Часть II:
SDN/OpenFlow контроллер
Архитектура SDN/OpenFlow контроллера
С технической стороны:
• OpenFlow контроллер – это обычный TCP/IP сервер, слущающий сокет 6653,
к которому подключаются OpenFlow коммутаторы
• OpenFlow – протокол прикладного уровня, описывающий взаимодействие
контроллер/коммутатор.
• Т.е. контроллер – это ПО, устаналиваемое на компьютер с традиционной
ОС.
Общая
архитектура
Функциональность
Производительность
Список контроллеров
• 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
Требования к контроллеру ПКС
• Производительность
– Пропускная способность
• events per second
– Задержка
• us
• Надежность и безопасность
– 24/7
• Программируемость
– Функциональность: приложения и сервисы
– Интерфейс программирования
• ЦОД требует обработку
>10M событий в секунду
• Реактивные
контроллеры более
“чувствительные”
Результаты сравнения (2013)
• Максимальная производительность 7 000 000 потоков в
секунду.
• Минимальное время задержки от 50 до 75 мкс.
• Недостатки:
– Надежность контроллеров вызывала вопросы
– Производительность была не достаточна (DC >10M fps)
Программируемость
• На языке контроллера [быстро]
• На любом языке через REST
интерфейс [медленно]
• Специальные языки
программирования с другой
абстракцией (например, Pyretic,
Maple)
Пример программы (L2 learning)
Примеры проблем
Проблема запуска нескольких приложений, интеграция с
приложениями других разработчиков
– требуется статическая подстройка приложений под себя, порядок и
способ передачи информации между ними.
– нет механизма контроля и разрешения конфликтов между
приложениями (генерация пересекающихся правил).
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
Проблемы с OpenFlow коммутаторами
• Не дешевые
– И даже дороже - поддержка
• Не поддерживается весь OpenFlow
– Несколько таблиц, групповые таблицы, QoS
• Не быстрые
– Общение с контроллером (packet_in, packet_out),
– Загрузка новых правил (flow_mod)
– Перезапись полей заголовка
– Сравнение по факту только full tuple
• Почему так?
– Гибридные решения
– Теже Broadcom чипсеты, в планах вроде даже и нет.
• Выход?
– Сейчас сетевые процессоры
Distributed OpenFlow
С чего начать изучение SDN?
Широкий набор обучающих инструментов:
– Mininet
– Pox, Floodlight, OpenDayLight
– FlowVisor
http://archive.openflow.org/wk/index.php/OpenFlow_Tutorial
Часть III:
Применение
Области применения
1. Телеком операторы и сервис
провайдеры
2. ЦОД и облака
3. Компании
Телеком
1. Интеллектуальный Traffic Engineering:
• Выбор оптимального пути
• Реакция на отказ канала
• Резервирование пропускной способности
Телеком
• Как применить все это на практике?
– Greenfield?
– Проблемы интеграции с традиционной сетью
• Нужно подыгрывать протоколам традиционной
сети, т.е. правильно отвечать на запросы.
• Чем меньше стыков с традиционной сетью, тем
лучше.
– Проблема интеграции с существующими
системами управления
Телеком
2. Переход на виртуальные сетевый
сервисы (NFV)
• Динамическое развертывание
• Связывание сервисов в цепочки
Пример
Перераспределение сервисов между серверами в зависимости от нагрузки
ЦОД/Облака
• Повышение утилизации оборудования и каналов
• Мониторинг и оптимизация потоков
• Виртуализация сети пользователей
• Балансировка нагрузки
• Обеспечение качества доступа
ЦОД/Облака
• Как правило есть два SDN
– Без OpenFlow и так есть в OpenStack
• ТОЛЬКО виртуальные каналы
• Туннели, таблицы, новые VM, политики
– С OpenFlow для управление физическими
устройствами
• Качество канала, определение узких мест
Корпоративная сеть
• Современные компания имеют сложную сетевую
инфраструктуру:
– Большое количество сетевых элементов
– Разветвленная топология
– Набор различных потилик маршрутизации и безопасности
Трудности администрирования
• Сетевые администраторы отвечают за поддержания
работы сетевой инфраструктуры:
– Сетевые инженеры руками переводят высокоуровневые политики
в низкоуровневые команды
– Ручная настройка всех сетевых устройств
– Ограниченный инструментарий по управлению сетевыми
устройствами
– Переучивание под каждого вендора
Возможности
1. Сделать сеть управляемой без
ручного доступа к оборудования.
2. Повысить уровень абстракции
управления сетью.
3. Более продвинутый zeroconf
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.
Заключение
• Нет чистых стартапов по SDN и нет продуктов для
обычных людей.
• Применение только в больших компаниях.
• Продукты только от производителей сетевого
оборудования.
• Открытость? Программируемость? Пока нет.
• Нет чистых железных OpenFlow коммутаторов.
• Применение в основном на программных
коммутаторах совместно с другими технологиями
(NFV, OpenStack).
SDN технологии

SDN технологии

  • 1.
    Технология SDN OpenFlow контроллер,проблемы, применение Александр Шалимов ЦПИКС, МГУ http://arccn.ru/ ashalimov@arccn.ru @alex_shali @arccnnews
  • 2.
  • 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
  • 6.
  • 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)
  • 12.
  • 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 чипсеты, в планах вроде даже и нет. • Выход? – Сейчас сетевые процессоры
  • 15.
  • 16.
    С чего начатьизучение SDN? Широкий набор обучающих инструментов: – Mininet – Pox, Floodlight, OpenDayLight – FlowVisor http://archive.openflow.org/wk/index.php/OpenFlow_Tutorial
  • 17.
  • 18.
    Области применения 1. Телекомоператоры и сервис провайдеры 2. ЦОД и облака 3. Компании
  • 19.
    Телеком 1. Интеллектуальный TrafficEngineering: • Выбор оптимального пути • Реакция на отказ канала • Резервирование пропускной способности
  • 20.
    Телеком • Как применитьвсе это на практике? – Greenfield? – Проблемы интеграции с традиционной сетью • Нужно подыгрывать протоколам традиционной сети, т.е. правильно отвечать на запросы. • Чем меньше стыков с традиционной сетью, тем лучше. – Проблема интеграции с существующими системами управления
  • 21.
    Телеком 2. Переход навиртуальные сетевый сервисы (NFV) • Динамическое развертывание • Связывание сервисов в цепочки
  • 22.
    Пример Перераспределение сервисов междусерверами в зависимости от нагрузки
  • 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

  • #4 Проблемы традиционных сетей Сложность управления большими сетями Миллионы строк закрытого проприетарного кода Дороговизна оборудования Невозможноть внедрения новых идей
  • #5 OSPF, VRRP, RSTP
  • #8 Отметить, что это НЕ железное устройство, на системы на чипе, это программа, т.е. ПО. Возможно в будущем будет создана специальная ОС, где модули контроллера уже будут внутри.
  • #10 Почему сейчас программируемость – производительность не так важна из-за проблем со свитчами. Да и в целом разработка идет монолитно, если программы работают правильно отдельно, то не обязательно правильно вместе.
  • #15 Я уже отмечал, что они не дешевые, не весь ОпенФлоу, не быстрые. Тоже и White Switch и OpenNetworkLinux
  • #16 Рассказать кратко про проблему распределенности. Отказоустойчивость и масштабирование по нагрузке Уменьшение задержек
  • #19 Говорить с конца