УДК 004.72

Построение программно-конфигурируемой сети на базе протокола OpenFlow

Аникин Александр Евгеньевич – аспирант Белгородского государственного национального исследовательского университета

Чашин Юрий Геннадиевич – кандидат технических наук, доцент Белгородского государственного национального исследовательского университета

Аннотация: В данной работе описывается построение тестового стенда с программно-конфигурируемой сетью на базе коммутатора Cisco WS-C3650-24PS-L и протокола OpenFlow. Проанализированы достоинства и недостатки программно-конфигурируемых сетей относительно классических методов построения сетей, а также рассмотрены тенденции развития технологии ПКС в России.

Ключевые слова: OpenFlow, Cisco, ПКС, программно-конфигурируемые сети, компьютерная сеть, виртуализация сети, контроллер сети.

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

Программно-конфигурируемые сети (или ПКС) – один из таких современных подходов, который исследуется мною в данный момент. Согласно классическому определению, ПКС – это подход к созданию сетей, который обеспечивает программное и динамическое управление сетью.

Архитектура ПКС обычно включает в себя три основных уровня: уровень приложений, уровень управления и уровень инфраструктуры.

Уровень приложений – это верхний уровень архитектуры ПКС, и он отвечает за определение желаемого поведения сети. Приложения на этом уровне могут включать инструменты проектирования трафика, политики безопасности или наложения виртуальной сети.

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

Уровень инфраструктуры – состоит из физических сетевых устройств, таких как коммутаторы и маршрутизаторы. Эти устройства отвечают за пересылку сетевого трафика по сети.

Северный и южный интерфейсы используются для облегчения связи между различными уровнями архитектуры. Наглядную схему архитектуры ПКС можно увидеть на рисунке 1.

image001

Рисунок 1. Архитектура ПКС.

В ПКС уровень управления и уровень инфраструктуры разделены. Именно уровень управления принимает решение о том, как трафик пересылается по сети, а уровень инфраструктуры отвечает за саму пересылку трафика между сетевыми устройствами.

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

Эти устройства в сети ПКС обычно “открыты”, это означает, что ими можно управлять и программировать с помощью внешнего программного обеспечения, а не жестко закодировать с помощью фиксированного набора правил для пересылки трафика. В результате контроллер может сконфигурировать сетевые устройства для передачи трафика желаемым образом.

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

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

Основу тестового стенда занимает коммутатор Cisco WS-C3650-24PS-S. Данный коммутатор предназначен для лёгкой и быстрой организации локальных сетей. А фирма Cisco уже много лет гарантирует качество и надежность своего оборудования. Характерный плюс данного коммутатора в том, что он поддерживает установку в стек, с шириной полосы пропускания до 160 гигабит в секунду. Для моей работы был выбран протокол под названием OpenFlow. В оборудовании Cisco официально включена поддержка данного протокола с возможностью скачивания ПО для устройства сетей ПКС с официального сайта cisco.com.

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

Первым шагом организации сети ПКС будет первичная конфигурация коммутатора. Так как в моей работе используется коммутатор от Cisco, то проще всего воспользоваться мануалом по настройке конкретного коммутатора с официального сайта cisco.

Рассмотрим базовые настройки. В первую очередь коммутатор через консольный порт RG-45 подключается к COM-порту на компьютере. В современных компьютерах данный порт обычно не предусмотрен, поэтому необходимо использовать переходник USB–Serial (DB9). Далее запускаем программу эмуляции терминала, в своем случае я использовал PuTTy. Перед запуском важно узнать номер порта через диспетчер устройств и указать его в программе. После этого необходимо соединить компьютер с помощью обычной витой пары к любому из портов FastEthernet коммутатора.

Теперь можно запустить питание коммутатора, устройство начнет выполнять Power-On-Self-Test (POST) — самотестирование, после чего начнется загрузка операционной системы Cisco IOS.   

Первичная настройка коммутатора начинается с перехода в «привилегированный режим», который позволяет конфигурировать работу коммутатора. Переход в привилегированный режим производится с помощью команды «enable» и ввода пароля «cisco» - стартовый пароль по умолчанию для всего оборудования Cisco.

Следующий шаг – это базовые настройки коммутатора. Первая такая настройка – присвоение имени коммутатору. Лучше всего выбирать имя исходя из специфики дальнейшей работы. После этого задается пароль для дальнейшего доступа к администрированию коммутатора.

Теперь можно настроить интерфейс для удаленного управления коммутатором. Для этого мы присваиваем ему IP-адрес, в дальнейшем коммутатор будет доступен по данному IP-адресу.

Также здесь же можно создать пользователей, задать пароль для каждого из них, а также указать уровень привилегий. В оборудовании Cisco данный уровень выбирается от 0 до 15, где 15 – это самый высокий уровень привилегий, что значит полный доступ к оборудованию.

Итак, необходимые нам базовые настройки коммутатора завершены. Можно переходить к установке и настройке OpenFlow.

Для начала необходимо скачать с официального сайта Cisco плагин OpenDaylight. В данный плагин вшито все необходимое, чтобы создать сеть ПКС, в том числе модуль OpenFlow. Данный плагин надо скопировать на любой USB флеш-накопитель. Предварительно его необходимо подготовить: отформатировать и выбрать файловую систему FAT32, если ранее была выбрана альтернативная. Далее флеш-накопитель можно подсоединить к коммутатору и скопировать плагин в его память. После копирования плагин легко устанавливается в системе коммутатора.

Следующим шагом будет настройка OpenFlow. Для начала важно активировать плагин командой «Activate». Далее необходимо включить «oneP» для того, чтобы коммутатор смог взаимодействовать с виртуальными машинами в его системе, в этом случае с протоколом OpenFlow. После данных манипуляций можно приступать к настройке OpenFlow.

В первую очередь необходимо задать ID логического коммутатора, а также указать, какие порты FastEthernet будут частью логического коммутатора OpenFlow. Если перенастраивать не все порты, то оставшиеся будут работать в прежнем режиме, а контролировать их будут стандартные настройки коммутатора. Далее нужно указать IP-адрес контроллера ПКС в формате IPv4, а также открыть порт для связи с OpenFlow. В следующем шаге можно настроить функцию «default-miss». Если коммутатор не знает, что делать с пакетом данных, он отправит его контроллеру ПКС. Контроллер определит, что делать с этим пакетом. Последней настройкой OpenFlow является идентификатор «Datapath id», с его помощью контроллер может различать разные экземпляры OpenFlow. Важно дать интерфейсу, который будет подключен к контроллеру, IP-адрес. Присвоение интерфейсу IP-адреса может оказаться полезным для проверки соединения и устранения неполадок.

Теперь необходимо установить контроллер OpenDaylight на компьютер. Для лучшей синхронизации и работы сети ПКС рекомендуется использовать компьютер на базе Unix системы. Перед выполнением данного шага рекомендуется проверить наличие обновлений для операционной системы. Когда все обновления будут установлены, необходимо установить или обновить JAVA 8, так как для установки OpenDaylight требуется среда выполнения JAVA JRE.  Наконец можно скачать и установить на компьютер OpenDaylight. Все последующие действия необходимо выполнять в терминале под управлением OpenDaylight.

Последним крупным шагом будет установка программы Cisco Openflow Manager, который позволит управлять нашей сетью ПКС просто и удобно прямо в браузере. Директория приложения доступна абсолютно бесплатно на Github. После установки приложения необходимо изменить в терминале «baseURL» на IP-адрес контроллера OpenDaylight, который был присвоен ранее.

Теперь чтобы подключиться к OpenDaylight на компьютере необходимо перейти в настройки сети компьютера, найти пункт IPv4 и переключить определение IP-адреса на ручной ввод и снова ввести IP-адрес контроллера OpenDaylight. После этого заново открыть OpenDaylight, и, если всё было настроено правильно, появится ссылка «localhost:9000» в терминале. Если нажать на нее откроется окно браузера с интерфейсом Cisco Openflow Manager.

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

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

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

Второе отличие ПКС – это программируемость. Они позволяют программно управлять поведением сети с помощью API или других средств программного обеспечения. Это упрощает автоматизацию сетевых задач и интеграцию сети с другими системами.

Абстракция – это третье большое отличие от классических методов. В архитектуре ПКС область управления отделена от области данных, которая пересылает трафик. Это помогает администраторам легко изменять работу сети, не затрагивая устройства пересылки трафика.

Еще одно отличие – это виртуализация сети. ПКС позволяют виртуализировать сетевые ресурсы, позволяя администраторам создавать виртуальные сети по требованию. Это может быть особенно полезно в средах облачных вычислений, где спрос на сетевые ресурсы может быть очень динамичным.

Также необходимо отметить отдельно про безопасность в сетях ПКС.  Данные сети обеспечивают визуализацию всей сети и предоставляет более целостное представление об угрозах безопасности. Распространение интеллектуальных устройств с подключением к Интернету дает ПКС неоспоримое преимущество по сравнению с традиционными сетями. Разработчики могут создавать отдельные зоны для устройств, которым требуются разные уровни безопасности, или мгновенно изолировать взломанные устройства, чтобы не подвергать риску всю сеть. Однако конкретно для безопасности есть и свой большой минус. Поскольку ПКС полагаются на централизованное управление, если злоумышленник завладеет центральным контроллером, то это даст ему доступ ко всей сети, а также возможность любого негативного воздействия на сеть, например, DDoS-атака, прослушивание трафика или частичная и полная подмена отдельных пакетов данных.

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

Последним неочевидным недостатком ПКС может послужить ограниченная поддержка поставщиков оборудования и программного обеспечения. Технология ПКС все еще является относительно новой, и не все поставщики оборудования и программного обеспечения поддерживают ее.

Однако сейчас мировое сообщество уже признало, что за технологией ПКС будущее компьютерных сетей, и исследования активно развиваются в данном направлении. Многие крупнейшие ИТ-компании мира занимаются разработками в области ПКС.  Лидерами в этой гонке являются такие гиганты сферы ИТ, как Cisco, Google, Intel, Nicira, Vyatta. Последняя компания, кстати, активно финансировалась российскими инвесторами, а также имела в своем штате большую долю российских инженеров, которые в том числе участвовали в развитии ПКС на базе продуктов компании Vyatta.

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

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

Лидером в нашей стране в области ПКС является компания «Ростелеком». Начиная также с 2012 года они активно финансируют разработки в области ПКС, а также вкладывают деньги в построение облачной платформы с использованием протокола OpenFlow. Лидеры компании считают, что технология позволит сократить затраты на оборудование центров обработки данных, а также позволят более эффективно решать задачи «виртуализации сети» и разработки новых комплексных сервисов для клиентов.

Также начиная с 2013 года технологией ПКС интересуется министерство образования и науки РФ. Министерство организует конкурсы на проекты создания отечественной платформы с открытым программным кодом для управления программно-конфигурируемыми сетями. В данных конкурсах участвуют университеты и исследовательские лаборатории из Санкт-Петербурга, Нижнего Новгорода, Ярославля, Томска, Омска и Белгорода.

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

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

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

Список литературы

  1. Nadeau T., Gray K., SDN: Software Defined Networks. – Hoboken (New Jersey): Wiley, 2013. – 400 с.
  2. Корячко В.,Перепелкин Д., Программно-конфигурируемые сети. Учебник для вузов. – Москва: Горячая Линия – Телеком, 2023. – 288 с.
  3. Бахарева Н., Ушаков Ю., Ушакова М., Шухман А., Основы программно-конфигурируемых сетей. (Учебное пособие.) – Самара: ПГУТИ, 2015. – 111 с.
  4. Барсков А. SDN: кому и зачем это надо? Журнал сетевых решений/LAN, 2012, № 12. URL: https://www.osp.ru/lan/2012/12/13033012 (дата обращения 21.11.2023).
  5. Барсков А. SDN: от концепции к решениям. Журнал сетевых решений/LAN, 2015, № 9. URL: https://www.osp.ru/lan/2015/09/13046914/ (дата обращения 21.11.2023)
  6. Смелянский Р.Л. Технологии реализации программно-конфигурируемых сетей: Overlay vs OpenFlow. Журнал сетевых решений/LAN, 2014, № 4. URL: https://www.osp.ru/lan/2014/04/13040709/ (дата обращения 21.11.2023).
  7. Гуляев А. Камни преткновения и овраги на пути к SDN. URL: http://www.jetinfo.ru/stati/kamni-pretknoveniya-i-ovragi-na-puti-k-sdn (дата обращения 23.11.2023).
  8. SDN на сетях операторов связи. URL: https://shalaginov.com/2019/08/28/6319 (дата обращения 24.11.2023).
  9. «Ростелеком» успешно завершил опытную эксплуатацию сегмента региональной сети на основе решения Brain4Net. URL: https://brain4net.ru/brain4net-pilot-project-rostelecom (дата обращения 24.11.2023).

Интересная статья? Поделись ей с другими: