Сетевые технологии SDN – Software Defined Networking

03.03.15

Источник: habrahabr.ru

В современном мире, бизнес в сфере информационных технологий предъявляет все большие требования к гибкости и масштабируемости компьютерных сетей. Так, старожилу IT рынка компании AOL для привлечения одного миллиона клиентов понадобилось 9 лет, Facebook понадобилось 9 месяцев, а онлайн сервису DrawSomething понадобилось всего 9 дней.

При всем этом, можно наблюдать, что основными трендами развития корпоративных сетей и сетей центров обработки данных являются:

  • стремительный рост объемов трафика и изменение его структуры в сторону передачи видео и унифицированных коммуникаций (UC-C);
  • необходимость поддержки мобильных пользователей (BYOD) и социальных сетей;
  • высокопроизводительные кластеры для обработки Больших Данных (BIG DATA);
  • виртуализация для предоставления облачных сервисов (Cloud Bursting).

При этом сеть в классическом ее виде (управление через командную строку и конфигурационные файлы) становиться ограничивающим фактором развития вычислительной инфраструктуры. Классические подходы к решению проблем, к примеру, на основе виртуализации сетей (VLAN, VRF), не соответствует уровню развития виртуализации серверов и систем хранения данных. Традиционные сети прежде всего статичны и не соответствуют быстрой динамике развития современного IT бизнеса. Возможности масштабирования традиционных сетей не соответствуют требованиям крупного бизнеса и сервис провайдеров (Deutsche Telekom, Facebook, Google, Microsoft, Verizon и Yahoo), а распределенное управление устройствами традиционных сетей слишком сложное и не эффективное. Привязка же к выбранному сетевому производителю не гарантирует поддержку будущих приложений и сервисов, так, по слухам, очередной апгрейд сетевого оборудования компании Amazon имел ценник с девятью нулями. Как результат наблюдается картина, что традиционные архитектуры/дизайны сетей становятся неэффективны в динамических средах.

Необходима новая технология или подход к построению информационных сетей позволяющая решить перечисленные выше проблемы. Такая технология есть и носит название — Software Defined Networking или сокращенно SDN.

Что такое SDN?

По определению от Wikipedia: Программно-конфигурируемая сеть (SDN от англ. Software-defined Networking, также программно-определяемая сеть) — сеть передачи данных, в которой уровень управления сетью отделён от устройств передачи данных и реализуется программно, одна из форм виртуализации вычислительных ресурсов.

Давайте расшифруем это определение. Если рассмотреть современное сетевое устройство (роутер или коммутатор, не принципиально), то оно, как пирог, логически состоит из трех компонентов.

  1. Уровень управления – это CLI, встроенный веб-сервер или API и протоколы управления. Задача этого уровня обеспечить управляемость устройством.
  2. Уровень управления трафиком – это различные алгоритмы и функционал задачей которого является автоматическая реакция на изменения трафика т. е. интеллект устройства.
  3. Передача трафика – функционал обеспечивающий физическую передачу данных, уровень микросхем и сетевых пакетов.




Рисунок 1. Типичное сетевое устройство

Что если:

  • централизовать управление трафиком, отделив управление от устройств?
  • централизовать управление устройствами?

В результате «новый» роутер или коммутатор обслуживает только поток данных (уровень передачи трафика DATAPLANE), становиться более простым соответственно более дешевым. Конечно же лишить полностью интеллекта сетевое устройство не получиться, но его достаточно заменить простой таблицей переадресации (forwarding table).

Весь интеллект (MANAGEMENT PLANE и CONTROL PLANE) переносится в отдельное центральное устройство называемое контроллером SDN.




Рисунок 2. Логическая модель сетевых устройств SDN

Итак, мы получаем:

  • Разделение функций передачи трафика от функций управления (включая контроль как самого трафика, так и осуществляющих его передачу устройств)
  • Единый, стандартный, открытый интерфейс между устройствами управления и передачи (получивший название OpenFlow)
  • Централизованное управление сетью (Контроллер SDN)
  • Виртуализация физических ресурсов сети
  • Возможности программирования как оборудования (OpenFlow), так и приложений (API — Контроллер SDN)
  • Быстрее реагировать на изменения в сети
  • Оптимизировать передачу трафика (L2/3) через большее количество резервных путей
  • Легче и быстрее настраивать сети
  • Существенно сократить время развертывания приложений
  • Упростить управление сетевыми устройствами
  • Сократить затраты на управление сетями
  • Централизованное применение политик, увеличение производительности, уменьшение задержек приводит к более эффективному взаимодействию пользователей и приложений как в корпоративных сетях, так и в сетях датацентров
  • Простота управления. Управление целыми сетями, а не сетевыми устройствами
  • Открытые, основанные на стандартах протоколы позволят взаимодействовать различным производителям сетевого оборудования между собой, одновременно увеличивая выбор заказчику и конкуренцию между вендорами при снижении затрат, ускоряя инновации как в области программного обеспечения, так и аппаратных средств.
  • Контроллер SDN поддерживает открытый интерфейс программирования (API), который позволяет программировать его извне, создавая среду для автоматизации и контроля, а также масштабировать функционал для будущих приложений.
  • Приложение может запрашивать напрямую определенные требования к сети
  • Видимость всего трафика сети контроллером




Рисунок 3. Общая архитектура SDN

Как видно из архитектуры, кроме классического управления сетью прямыми командами системного администратора к контроллеру, SDN контроллер поддерживает запуск на себе приложений управления сетью. Что из себя представляют эти приложения?

Каждое SDN приложение, по сути, являет собой интерфейс оптимизации сети под конкретное бизнес приложение (к примеру Microsoft Lynk) и его основная роль — изменение сети в реальном времени под текщие нужды обслуживаемой программы. В случае Microsoft Lynk это может быть, к примеру, изменение QoS сети между двумя телефонными абонентами для предачи HD видеозвонка в реальном времени без задержек или создание VPN тоннеля между двумя абонентами.




Рисунок 4. SDN приложение для MS Lynk

Если рассмотреть более подробно информационные потоки в архитектуре SDN, можно заметить два основных направления обмена информацией: первый – между SDN приложениями и второй для управления физическими сетевыми устройствами.




Рисунок 5. Структура и компоненты SDN

Первый поток получил название «северный мост», а второй «южный мост». В качестве «северного моста» выступает протокол на основе RESТ API, а в качестве «южного моста» прижился протокол OpenFlow.




Рисунок 6. Управляющие информационные потоки контроллера SDN

Что же такое OpenFlow?

Openflow — стандартный протокол, является основным элементом концепции SDN который обеспечивает взаимодействие контроллера с сетевыми устройствами. Контроллер используется для управления таблицами потоков коммутаторов, на основании которых принимается решение о передаче принятого пакета на конкретный порт коммутатора. Таким образом, в сети формируются прямые сетевые соединения с минимальными задержками передачи данных и необходимыми параметрами.

Соответственно коммутатор OpenFlow состоит, как минимум, из двух компонент:

  • таблицы потоков (flow table);
  • безопасного канала (secure channel)




Рисунок 7. Пример таблицы потоков OpenFlow

Коммутаторы с поддержкой OpenFlow уже доступны на рынке, так в портфолио лидера в разработки концепции SDN – компании Hewlett-Packard, уже более 40 моделей коммутаторов поддерживают OpenFlow версии 1.3, соответственно готовы выступать «кирпичиками» построения реальной сети SDN.

Кроме коммутаторов Hewlett-Packard предлагает несколько моделей готовых контроллеров SDN и бесплатно предоставляет несколько готовых приложений SDN для конкретных бизнес программ, к примеру, Microsoft Lync. Компания HP также поддерживает активное сообщество разработчиков SDN (sdndevcenter.hp.com), где пользователи могут делиться своими идеями, а также онлайн-магазин приложений SDN App Store, откуда пользователи могут скачивать различные приложения на контроллер HP VAN SDN всего в несколько кликов.

Такой интерес Hewlett-Packard к технологии SDN не случаен. Считается, что SDN изменит сети так же, как это сделала в свое время виртуализация на рынке корпоративных серверных систем. Соответственно SDN для компании Hewlett-Packard это стратегическое направление, ведь успех в этом направлении может предоставить лидерство на рынке, пример тому, успех таких крупных игроков на рынке сетевых сервисов как Amazon и Google активно использующих SDN в своей работе.

Hewlett-Packard также считает, что SDN должна строиться на базе открытых стандартах, чтобы каждый желающий мог в этом поучаствовать. Такая открытая экосистема возобновит процесс внедрения инноваций в области сетевых технологий, который приостановился за последние два десятилетия.