Сегодня предлагается несколько подходов к ее реализации и ведется множество дискуссий о том, какой из них является более перспективным.

 

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

Достаточно успешно научившись виртуализировать вычислительные ресурсы, ИТ-отрасль потратила немало времени на поиск адекватного подхода для виртуализации сетей, сетевых сервисов и распределенных систем хранения данных (СХД). Традиционный стек протоколов не предлагал нужного решения ни для гибкого управления распределением сетевых ресурсов и качеством сетевых сервисов, ни для динамического перераспределения хранимых данных в разнесенных СХД. Прорыв наметился с появлением концепции программно конфигурируемых сетей (ПКС; Software Defined Network, SDN; в компьютерной литературе широкое распространение получил перевод этого термина как «программно определяемые сети». — Прим. ред.). Сегодня предлагается несколько подходов к ее реализации и ведется множество дискуссий о том, какой из них является более перспективным.

Первый подход предполагает выделение так называемой плоскости управления (контроллера) программными средствами — виртуальными программными коммутаторами (см. статью автора «Программно конфигурируемые сети» в журнале «Открытые системы» № 9, 2012). Именно этот подход считается наиболее перспективным, хотя его практическое воплощение и порождает множество вопросов.

Второй подход предусматривает создание специальных аппаратных программируемых коммутаторов. Он позволяет автоматизировать управление физической сетью с помощью приложений для контроллера плоскости управления, а также существенно упростить и сократить как капитальную составляющую затрат на создание сети, так и операционные расходы на ее эксплуатацию. При этом унаследованная часть системы передачи данных может остаться без изменений.

Теперь рассмотрим оба подхода подробнее. Первый можно условно разделить на два: один предполагает реализацию наложенной сети (оverlay) с помощью программных коммутаторов и протоколов туннелирования, другой — использование серверов агрегации трафика и специального аппаратного обеспечения.

Overlay. Реализация SDN в виде наложенной сети на базе виртуальных коммутаторов и туннелирования (протоколы VXLAN, NVGRE и пр.). Основная идея состоит в том, что на тех серверах, где «крутятся» виртуальные машины, настраиваются коммутация между виртуальными портами и отображение виртуальных портов на физические, а уже физические порты связываются между собой туннелями. Сам виртуальный коммутатор программируется с помощью специально выделенного ресурса, который называется «программно конфигурируемый контроллер». По существу, это операционная система, которая управляет, распределяет, контролирует и осуществляет мониторинг ресурсов сети. Схема сети при выборе этого способа реализации SDN приведена на Рисунке 1.

Технологии реализации программно конфигурируемых сетей: Overlay vs OpenFlow
Рисунок 1. Реализация SDN на базе виртуальных коммутаторов по технологии Overlay.

 

SDN на базе серверов агрегации трафика. Другой вид программной реализации концепции SDN предполагает выделение специального сервера, на который с помощью туннелирования заводятся каналы передачи данных. Затем с этого сервера данные передаются дальше под управлением SDN-контроллера с привлечением механизма туннелирования. Эта схема реализации приведена на Рисунке 2.

Технологии реализации программно конфигурируемых сетей: Overlay vs OpenFlow
Рисунок 2. SDN на базе серверов агрегации трафика.

 

Следует отметить, что оба описываемых подхода — это программные способы разделения управления передачей данных и собственно передачи данных, поэтому им присущи все достоинства и недостатки программной реализации. Основным недостатком, конечно, являются более высокие задержки при передаче данных по сравнению с аппаратной реализацией.

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

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

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

Реализация SDN на базе специальных аппаратных коммутаторов (с поддержкой протоколов Openflow, XMPP и пр.). Сеть SDN состоит из коммутаторов SDN, взаимодействующих с контроллерами по протоколу OpenFlow. Коммутатор SDN реализует только функции коммутации (forwarding) данных. Поэтому он представляет собой очень простое программируемое устройство, умеющее выполнять несколько несложных команд. Как следствие, он оказывается значительно дешевле существующих коммутаторов и маршрутизаторов. Работа коммутатора SDN состоит в том, чтобы выделить из поступающего пакета данных заголовок. Если коммутатор «знает», как обрабатывать пакеты с такими заголовками, то действует по заранее загруженной в него программе. В противном случае по защищенному каналу OpenFlow он отправляет запрос на контроллер, а тот в ответ по тому же каналу загружает программу для обработки пакетов с соответствующими заголовками.

Контроллер представляет собой сервер, работой которого управляет сетевая операционная система (СОС). Подобно традиционной операционной системе, СОС управляет всеми ресурсами сети. В терминологии SDN контроллером принято называть СОС. На контроллере работают приложения, программно реализующие сетевые сервисы по управлению потоками данных, такие как маршрутизация, балансировка нагрузки, разнообразные протоколы, шлюзы, сетевые экраны (Firewall), шифрование, DPI, NAT и т. п. Приложение на основании информации о сети, получаемой им от контроллера, управляющего данной сетью, формирует наборы правил, которые контроллер загружает в надлежащие коммутаторы.

Самое главное, что в контроллере централизованы все сведения об актуальном текущем состоянии сети. Он всегда имеет актуальную информацию о структуре и топологии сети коммутаторов, которой управляет (программирует), и распределении потоков трафика. Это позволяет оптимизировать продвижение пакетов данных, динамично управлять потоками данных, а не отдельными пакетами, балансировать нагрузку, оперативно контролировать выполнение требований информационной безопасности в сети.

Такая организация управления сетью решает, кроме прочего, проблему зависимости от сетевого оборудования конкретного поставщика, поскольку SDN использует общие абстракции на программном уровне для пересылки пакетов, при помощи которых сетевая операционная система осуществляет управление сетевыми коммутаторами. Схема реализации этого подхода приведена на Рисунке 3.

Технологии реализации программно конфигурируемых сетей: Overlay vs OpenFlow
Рисунок 3. Реализация SDN на базе специальных коммутаторов.

 

У каждого из перечисленных подходов есть свои достоинства и недостатки. К преимуществам реализации SDN в виде наложенной сети относятся простота виртуализации адресов и топологии и независимость от организации физической сети (любая сеть IP). Но при этом возникают дополнительные накладные расходы на выполнение инкапсуляции и, как следствие, проявляется целый ряд недостатков: более низкая — по сравнению с третьим подходом — производительность, невозможность управлять качеством транспорта, высокая сложность контроля и отладки инкапсулированного трафика, а также значительные ограничения конфигурации сети.

Преимущества реализации SDN на базе OpenFlow:

  • высокая производительность благодаря отсутствию накладных расходов на инкапсуляцию и работу программных коммутаторов;
  • управление качеством транспорта;
  • гибкое управление трафиком;
  • автоматизация диагностики и устранения неполадок (troubleshooting);
  • виртуализация и абстракция;
  • достаточно простое сетевое оборудование.

Но эта реализация предполагает внедрение специального сетевого оборудования.

Следует отметить, что уже сегодня все традиционные лидеры рынка, такие как Cisco, Extreme Networks, Juniper, Brocade, IBM, NEC, Huawei и некоторые другие, предлагают для своих клиентов третий путь, предусматривающий использование достаточно дорогого специального аппаратного обеспечения. Изготовление качественных и быстрых коммутаторов традиционно является одной из самых сильных сторон этих компаний, и свои доли рынка в этом сегменте они терять не намерены.

Нестандартные и недорогие решения для реализации концепции SDN предлагают начинающие компании, которым важно на данном этапе привлечь к себе клиентов и отвоевать долю рынка у традиционных лидеров. К таковым можно отнести компанию Arista, образованную только в 2008 году, которая предлагает не только коммутаторы, работающие исключительно с сетями SDN, но и собственную операционную систему Extensible Operating System (EOS). С ее помощью инженеры могут программировать сети и создавать полностью изолированные сетевые сегменты для приложений.

Известная компания-стартап Plumgrid, основанная в 2011 году, заявила о том, что протокол OpenFlow все еще вызывает слишком много вопросов и не готов к эксплуатации в реальных сетях, поэтому наибольшую устойчивость при реализации обеспечивает сохранение максимально простой системы коммутации сети и перемещение всех необходимых функций на уровень наложенной сети. В конце июня 2013 года Plumgrid объявила о запуске собственной платформы в виде ПО для стандартных серверов. Оно способно работать с любой физической сетью, будь то Ethernet, IP или даже InfiniBand.

И естественно, говоря о технике реализации SDN как наложенной сети, нельзя не упомянуть компанию Nicira, которая уже давно является частью VMware и предлагает наиболее проработанные на сегодняшний день решения в данной сфере, к сожалению слишком дорогостоящие.

Дуглас Мюррей, исполнительный директор известного SDN-стартапа Big Switch Networks, полагает, что если компания имеет серьезные намерение стать успешной на этом рынке, то она должна поддерживать обе стратегии. Практически все крупные вендоры предлагают свои платформы для реализации SDN в виде наложенных сетей — это, например, платформы Cisco ONE и Juniper Contrail. Что касается Big Switch, то этот производитель, помимо различных инструментов SDN, которые можно использовать на выпускаемых им коммутаторах, предлагает менее сложные и не очень дорогие системы для создания инфраструктуры SDN.

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

Руслан Смелянский — директор по науке и образованию Центра прикладных исследований компьютерных сетей, чл.-корр. РАН, д.ф.-м.н., профессор МГУ им. М. В. Ломоносова. С ним можно связаться по адресу: rsmeliansky@arccn.ru.