Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Основы программно-конфигурируемых сетей. Учебное пособие
.pdf
N
t
t
DD
3
N
возможность настраивать классы трафика, динамическую приоритезацию
потоков.
3.6 Алгоритм сбора статистикиOpenFlow
Любой коммутатор с поддержкой OpenFlow обеспечивает работу как SNMP
протокола, так и OpenFlowOF_STAT таблиц со статистикой потоков. Кроме того,
большинство коммутаторов поддерживают работу локального контроллера,
отвечающего на запросы сетевого контроллера.
Стандартные средства локального контроллера позволяют получать
следующие сведения:
а) полную таблицу потоков;
б) список всех таблиц;
в) список портов;
г) статистику портов;
д) состояние портов;
е) скорость портов.
Средства SNMP позволяют получать сведения обо всех компонентах
аппаратного и программного обеспечения коммутатора. Основные сведения,
которые необходимы для точной маршрутизации и управления сетью следующие:
а) количество пакетов,прошедших через порт;
б) количество байтов, переданных через порт;
в) средняя скорость в пакетах/с;
г) средняя скорость в байтах/с;
д) загрузка процессора и памяти коммутатора;
е) длины очередей портов.
Имея данные о среднем количестве пакетов в секунду за период времени (на
входе и выходе интерфейса) и объем трафика за тот же период легко перейти к
необходимой в моделировании величины среднего периода времени между
пакетами (и его дисперсии). Для этого от среднего количества пакетов N
переходим к длине интервала времени между пакетами для каждого временного
среза.
(3.1)
,
где t - время наблюдения.
Дисперсия вычисляется аналогичным образом:
(3.2)
.
Таким образом, получаем математическое ожидание и дисперсию
распределения времени между пакетами отдельно на входе и выходе интерфейса.
51

БД RRD
Коммутатор
SNMP-агент
Анализатор
MRTG
Контроллер
OpenFlow
Анализатор
Модуль с
использованием
статистики
OpenFlow счетчикиSNMP счетчики
Остается открытым вопрос о согласовании результатов, полученных из
разных источников. Протокол SNMP дает более достоверную информацию,
однако не все показатели работы программного обеспечения доступны через него.
Статистика, касающаяся количества байт на поток, например, по заявению
производителей, может отличаться от реальности до 20%. Тогда как количество
пакетов на поток рассчитывается точно.
Очень часто, в пик нагрузки, многие коммутаторы не справляются с
расчетами, и результаты оказываются резко завышенными. Такие результаты
резко выделяются на фоне общей информации на порядок. В борьбе с грубыми
погрешностями измерений, если они не были обнаружены в процессе измерений,
используют три подхода:
а) исключение резко выделяющихся аномальных измерений из
дальнейшей обработки;
б) использование робастных методов обработки;
в) группирование выборки позволяет резко снизить влияние аномальных
наблюдений, а иногда и практически исключить влияние грубых ошибок
измерений.
Все программы для сбора информации по SNMP могут хранить ее в БД,
однако, учитывая большой объем данных, это не всегда целесообразно.
Наилучшим решением является хранить данные в формате RRD
(RoundRobinDatabase, кольцевая база данных), обеспечивающим хранения
данных за большие периоды времени не требующего для этого большого
объема памяти. Поддержку RRD имеют все промышленные программы для
сбора информации по SNMP. Проблемой в этом случае является синхронизация
сведений SNMP и Openflow счетчиков. В соответствии с рисунком 3.11
показаны пути поступления статистической информации в программные
модули.
Рисунок 3.11 – Структурная схема движения информации
52

Начало
Настройки
системы
Выбираем из
настроек
системы имя
нужного файла
Пиковые
данные
Выбираем из
настроек
системы адрес
коммутатора
+
Файлы с данными SNMP
Адреса коммутаторов OpenFlow
Выбор нужного
периода времени
Нормирование
данных
Выбор нужного
показателя
Получение
списка
данных
Получение
данных из
объекта
Посылка
запроса на
данные
Запрос
данных по
SNMP
Формирование
объекта с
данными
Формирование
объекта с
данными
Использование
данных
Конец
Второй особенность является обнуление некоторых счетчиков SNMP
после чтения из них, что предоставляет возможность иметь только текущие
сведения. В соответствии со всеми ограничениями и особенностями был
разработан алгоритм получения статистических данных из обоих источников и
формирования единого объекта со всеми сведениями. Алгоритм представлен в
соответствии с рисунком 3.12.
Рисунок 3.12 – Алгоритм получения статистических данных
53

Данные из разных источников обрабатываются в соответствии со
спецификой источника, затем все они помещаются в соответствующие
поляединого объекта. Для получения данных из объекта необходимо знать тип
статистики (пиковая или накопительная), и свойство множественности
значений (единичное измерение или хранимая серия измерений).
В случае использования только одного канала статистики нет возможности
полностью прогнозировать поведения сети, строить модель сети и создавать
рекомендации другим модулям для оптимального использования ресурсов сети.
Особенно это касается статистических сведений о потоках, для которых важно
правильное назначение приоритета QoS, минимальной гарантированной
пропускной способности и сведений о загрузке портов и очередей.
Пакет программ OFLOPS используется для генерации пакетов по
заданному правилу, он же определяет факт реакции коммутатора посредством
перехвата пакетов канала управления. OFLOPS является платформой
тестирования OpenFlow коммутаторов и имеет множество измеряемых
параметров. Эта платформа разрабатывалась для измерений высокой точности,
и, при работе в системе реального времени, позволяет достичь существенного
уменьшение систематической погрешности. Платформа является модульной,
что позволяет измерять только те величины, которые требуются по условиям
эксперимента. Кроме того, по протоколу SNMP возможно регулярное снятие
статистики любого параметра работы коммутатора.
Использование частотомера и системы реального времени в АСНИ
позволяет обеспечить высокую точность измерений, а автоматизация
проведения исследований позволяет многократно повторять эксперименты в
одинаковых условиях, уменьшая погрешность измерений.
54

4 Cетевые операционные системы для ПКС
4.1 Обзор традиционных сетевых операционных систем
Сетевая операционная система в общем смысле – операционная система,
обеспечивающая обработку, хранение и передачу данных в информационной
сети. Сетевая операционная система определяет взаимосвязанную группу
протоколов верхних уровней, обеспечивающих основные функции сети:
адресацию объектов, функционирование служб, обеспечение безопасности
данных, управление сетью.
Иными словами, сетевая операционная система – операционная система,
в которуювстроены возможности для работы в компьютерных сетях. К ним
относятся:
а) поддержка различных сетевых протоколов модели ISO/OSI;
б) поддержка протоколов маршрутизации и сетевых протоколов
авторизации;
в) поддержка сетевого оборудования и фильтрации сетевого трафика;
г) поддержка доступа к удалённым ресурсам, например, принтерам,
системам хранения данных по сети, и наличие в системе сетевых служб,
позволяющих удалённым пользователям использовать ресурсы компьютера.
Примерами наиболее распространённых сетевых операционных систем
могут служить:
а) Различные UNIX-подобные системы, такие как Solaris, FreeBSD и
GNU/Linux;
б) Novell NetWare;
в) Microsoft Windows (95, NT, XP, Vista, Seven).
В общем смысле для сетевых операционных системможно выделить
следующие основные задачи: разделение ресурсов сети (например, дисковые
пространства сетевых устройств, принтера сети) и администрирование сети. А
системный администратор, при помощи сетевых функций сетевой ОС,
определяет общие ресурсы, назначает пароли и права доступа для каждого
пользователя или группы пользователей. В результате сетевые ОС можно
разделить на две группы: сетевые ОС для серверов и сетевые ОС для
пользователей.
Существуют специальные сетевые ОС, которым приданы функции
обычных систем (например, GNU/Linux с установленным графическим
пользовательским интерфейсом) и обычные ОС (например,
MS Windows 98/XP/Vista/7), которым приданы сетевые функции. Сегодня
практически все современные ОС имеют встроенные сетевые функции.
Кроме того, в отдельный класс можно выделить сетевые операционные
системы, встраиваемые в специальные сетевые устройства (маршрутизаторы и
коммутаторы), такие как:
а) JUNOS компании Juniper Networks;
б) IOS компании Cisco Systems;
в) ZyNOS компании ZyXEL;
55

г) OpenWrt;
д) FreeWRT.
Рассмотрим их более подробно:
а) JUNOS – сетевая операционная система, которая используется в
оборудовании производства компании Juniper Networks. Сетевая ОС JUNOS
разработана на основе 4-ой версии свободной ОС FreeBSD [42].
В JUNOS имеется возможность устанавливать дополнительное ПО,
которое распространяется в виде пакетов, подписанных действительным
сертификатом Juniper Networks.
Пользовательскаясреда представляет собой полноценную рабочую среду
с набором классических (для Unix-like ОС) утилит. Однако любые изменения в
конфигурации допускается вносить только при помощи специальной
программы – «cli».
Командный интерфейс JUNOS разрешает исполнять команды и вводить
конфигурацию. Конфигурация состоит из директив конфигурирования той или
иной подсистемы. Директивы могут состоятьиз вложенных элементов, которые
описывают настройку отдельных компонент. Например, конфигурация
Ethernet-интерфейса может иметь вложенные настройки для отдельных
подсетей, которые, так же, могут иметь вложенные настройки для различных
версий протоколов (например, IPv4 и IPv6).
Узлы конфигурации, которыене содержат вложенных элементов,
заканчиваются точкой с запятой.Узлы с вложенными элементами задают их с
помощью фигурных скобок и при этом точка с запятой не ставится.
JUNOS предлагается в трех версиях, которые различаются лицензией:
1) JUNOSCanadaandU.S. –известнаятакже как «Domesticversion», не
предназначалась для экспорта в другие страны кроме Канады и США, но, в
текущий момент, в рамках контракта на техническую поддержку, эту версию
можно получить,обратившись в службу поддержки с дополнительному
запросу.При этом важным условием для использования является то, что
полученная копия не будет использована в странах из специального списка,
опубликованного госдепом США;
2) JUNOS Worldwide – распространяетсясовместно с оборудованием Juniper
Networks; лицензия этой версии позволяет использовать JUNOS в любой
стране, но имеет значительные ограничения на применение криптографических
алгоритмов (например, отсутствует поддержка SSH);
3) JUNOS-FIPS – версия, которая соответствует федеральным стандартам по
обработки информации в США.
б) Cisco IOS (Ciscointernetworkoperationsystem) – сетевая ОС,
применяемая в маршрутизаторах Cisco, и некоторых сетевых коммутаторах.
Cisco IOS – многозадачная сетевая операционная система, которая выполняет
функции сетевого коммутации, маршрутизации, управления и передачи данных
[43, 44].
Рабочая среда Cisco IOS также представляет собой интерфейс командной
строки CLI (Commandlineinterface). Интерфейс IOS имеет набор многословных
команд.Доступность команд определяется «режимом» и уровнем привилегий
56

данного пользователя. Режим «Global configuration mode» (режим глобальной
конфигурации) – предоставляет возможность для изменения системных
настроек и настроек сетевого интерфейса. У всех командимеется определённый
уровень привилегий от 0 до 15, и к ним могут обращаться только пользователи
с данным уровнем привилегий. Через интерфейс CLI можно определять
доступность команд для каждого уровня привилегий.
в) ZyNOS – это сетевая операционная система, являющаяся
собственностью корпорации ZyXEL. Она является платформой всех
маршрутизаторов этой корпорации, и обеспечивает сетевые сервисы и
приложения. Она построена модульным способом, поэтому разработчикам
легко добавлять в неё новые функции [45].
В зависимости от устройства ZyNOS имеет Web-интерфейс или
интерфейс командной строки. Доступ к Web-интерфейсу осуществляется путем
подключения сетевого кабеля между компьютером и свободным интерфейсом
на устройстве и введением IP-адреса устройства в строке адреса в веб-
браузере. На некоторых устройствах для доступа к интерфейсу командной
строки используется последовательный порт RS-232, подключение по которому
осуществляется с помощью протоколов удаленного доступа SSH или Telnet.
г) OpenWrt – сетевая операционная система, основанная на Linux, и
предназначенная, в основном, для домашних маршрутизаторов. Изначально
поддержка оборудования ограничивалась лишь серией LinksysWRT54G, но
сейчас увеличилась и включает в себя устройства и архитектуры других
производителей, в том числе и x86. Рабочая среда OpenWrt в основном
применяется интерфейс командной строки, но одной из возможностей
расширения функционала является веб-интерфейс [46].
Разработка OpenWrt стала возможной в связис применением
производителем программного обеспечения лицензии GNUGeneralPublicLicense
(GNUGPL), которая обязует разработчиков публиковать все производные
продукты под той же лицензией.
Главной отличительной чертойOpenWrt является полная поддержка
файловой системы JFFS2, что, в сою очередь, позволяет применять для
управления пакетами менеджер пакетов ipkg (в новых версиях opkg). Все эти
особенности делает OpenWrt легко адаптируемой и настраиваемойсетевой ОС
для каждого конкретного случая.
д) FreeWRT – дистрибутив [47] Linux для встраиваемых систем, таких как
беспроводные маршрутизаторы фирмы Linksys и Asus. Это версия проекта
OpenWrt. В отличие от OpenWrt, котораяпредназначена в основном для не
больших компаний и домашних пользователей, FreeWRT предназначена для
профессионального рынка. Эта достигается благодаря проверенному и более
стабильному коду, и постоянному циклу релиза. Поддержка FreeWRT более
доступна для разработчиков и для людей, которые заинтересованы в проекте.
Доступность осуществляется с помощью листов рассылки по электронной
почте, IRC-каналов, блогов и jabber-контактов.
FreeWRT применяетлибо JFFS (записываемую корневую файловую
систему) либо SquashFS как основу файловой системы, доступной только для
57

чтения в сочетании с частью файловой системы, доступной для записи.
ДополнительноеПО распространяется в виде пакетов, и может быть
установлено с помощью системы управления пакетами ipkg, похожей на dpkg.
FreeWRT поддерживает огромное количество периферийного оборудования
(такого как веб-камеры, принтеры, переносные винчестеры). Кроме того,
имеются большие возможности по использованию скриптовых языков, которые
в сочетании с доступным ПО обеспечивают работу большого числа сервисов
(сетевое хранилище, принт-сервер, сервер мультимедиа).
4.2 Сетевые операционные системы в программно-
конфигурируемых сетях
В основе ПКС лежит представление о компьютерной сети, как сети,
имеющей «плоскость данных», которая отвечает за пересылку пакетов на
основе состояния в каждом коммутаторе, и «плоскости управления», которая
отвечает за вычисление, «планирование» и управление пересылкой [48]. В
сетях новой архитектуры все маршрутизаторы и коммутаторы объединяются
под управлением единой сетевой операционной системы (СОС), которая
обеспечивает приложениям доступ к управлению сетью в соответствии с
рисунком 4 и постоянно отслеживает конфигурацию средств сети.
Рисунок 4.1– Схема ПКС
В отличие от традиционного толкования термина СОС как операционной
системы, интегрированной со стеком сетевых протоколов, в данном случае под
СОС понимается программная система, обеспечивающая мониторинг, доступ,
управление, ресурсами всей сети, а не конкретного узла, и СОС (или
58

контроллер) является основным, звеном ПКС-сети. Операционная система не
управляет сетью, она предоставляет программный интерфейс (API) для
управления. Таким образом, фактически решение задач управления сетью
выносится на уровень приложений, реализованных на основе API сетевой
операционной системы.
СОС формирует данные о состоянии всех ресурсов сети и обеспечивает
доступ к ним для приложений управления сетью. Эти приложения управляют
разными аспектами функционирования сети, включая построение топологии,
принятие маршрутизирующих решений, балансировку нагрузки.
Для реализации этой идеи был разработан открытый протокол OpenFlow
для управления сетевым оборудованием, не ориентированный на продукты
какого-то отдельного поставщика. С помощью этого протокола специалисты
сами могут определять и контролировать, какие узлы, при каких условиях и с
каким качеством могут взаимодействовать в сети.
OpenFlow (англ. открытый поток) — открытый протокол и технология
управления процессом обработки данных, которые передаются по
компьютерной сети коммутаторами и маршрутизаторами. Схема работы
протокола OpenFlow представлена в соответствии с рисунком 4.2
Рисунок 4.2– Схема работы протокола OpenFlow
Протокол применяется для управления работой сетевых коммутаторов
(маршрутизаторов) с центрального устройства – контроллера сети (например, с
выделенного сервера или даже с обычного персонального компьютера). Это
управление полностью заменяет или дополняет собой работающую на
коммутаторе (маршрутизаторе) прошивку (специальная программа, встроенная
производителем, котораяосуществляет построение маршрута, и создает карты
коммутации). Контроллер применяется для управления таблицами потоков
коммутаторов (маршрутизаторов).На основании таблиц потоков принимается
решение о передаче принятого пакета на конкретный порт коммутатора, или
его игнорирование. В результате в сети устанавливаются прямые сетевые
соединения с минимальными задержками и требуемыми параметрами передачи
данных.
Протокол OpenFlow решает также проблему зависимости от сетевого
оборудования какого-либо конкретного поставщика, поскольку ПКС
59

использует абстракции для пересылки пакетов, которые сетевая операционная
система использует для управления сетевыми коммутаторами.
В настоящее время разработан целый ряд сетевых операционных систем,
реализующих протокол OpenFlow.
а) NOX является платформой управления сетью, обеспечивающей
высокоуровневый программируемый интерфейс, с помощью которого можно
управлять сетью и/или создавать приложения для управления сетью. Так как
NOX является контроллером OpenFlow, то управление сетью производится на
уровне потоков и подразумевается, что контроллер определяет, как каждый
поток маршрутизируется в сети [49].
В отличие от стандартных средств построения сети (таких как создание
маршрутизаторов на основе Linux), NOX позволяет централизованно
программировать модель для всей сети. NOX предназначен для поддержки как
крупных корпоративных сетей с сотнями коммутаторов (с поддержкой многих
тысяч узлов), так и небольших сетей из нескольких узлов.
Ядро NOX предоставляет приложениям абстрактное представление
сетевых ресурсов, включая топологию сети и расположение всех
обнаруженных узлов.
Основные цели NOX:
1) обеспечить платформу, которая позволяет разработчикам и
исследователям вводить новшества в домашних или корпоративных сетях,
используя реальные сетевые аппаратные средства. Разработчики на NOX могут
управлять всеми подключениями в сети, включая передачу, маршрутизацию,
контроль узлов и пользователей, которым разрешается связь. Кроме того, NOX
может влиять на любой поток.
2) предоставить нужное сетевое программное обеспечение операторам.
На текущий момент можно централизованно управлять всеми коммутаторами
сети, разрешением на уровне пользователей и на уровне узлов с помощью
механизма политик.
б) Maestro – СОС для организации приложений для управления сетью
[50]. Maestro обеспечивает интерфейсы для реализации модульных приложений
управления сетью, для доступа и изменения состояния сети, а также
координации их взаимодействия.
Платформа Maestro предоставляет интерфейсы для:
1) внедрения новых пользовательских функций управления путем
добавления построенных из модулей компонентов управления;
2) поддержания состояния сети от имени управляющих компонентов;
3) компоновки компонентов управления, определяя последовательность
исполнения и общее состояние компонентов сети.
Кроме того, Maestro пытается использовать параллелизм на единственной
машине, чтобы улучшить производительность системы. Основной
особенностью сети является то, что OpenFlow контроллер отвечает за
начальную установку каждого потока, связываясь с подчиненными
коммутаторами. Таким образом, производительность контроллера может быть
узким местом. В разработке Maestro пытается уменьшить усилия
60
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
