OpenFlow

Материал из Википедии — свободной энциклопедии
Это старая версия этой страницы, сохранённая VolkovBot (обсуждение | вклад) в 03:39, 21 ноября 2011 (r2.5.1) (робот изменил: en:OpenFlow). Она может серьёзно отличаться от текущей версии.
Перейти к навигации Перейти к поиску

Openflow (открытый поток) — протокол (и технология) управления процессом обработки данных, передающихся по компьютерой сети маршрутизаторами и коммутаторами.

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

Версии микропрограмм с поддержкой Openflow разработаны для устройств многих производителей, включая Cisco, Juniper, HP, IBM, NEC.[1]

В настоящий момент протокол имеет версию 1.1 (принята 1 марта 2011 года).

Архитектура

Путь прохождения данных (datapath) состоит из таблицы потоков (flow table) и действий, назначенных для каждой записи в таблице. Сами таблицы могут касаться как Ethernet (или других протоколов канального уровня), так и протоколов вышестоящих уровней (IP, TCP). Точный список действий может меняться, но основные это: форвардинг (пересылка PDU (пакета, фрейма) в заданный порт), пересылка PDU на контроллер через безопасный канал для дальнейшего исследования, отбрасывание PDU (drop). Для устройств, совмещающих openflow и обычную обработку пакетов средствами микропрограммы устройства, добавляется четвёртый тип действия: обработка PDU 'обычными' средствами. Оборудование, поддерживающее эти четыре действия являются Type0 устройствами.

Устройство OpenFlow состоит из, как минимум, из трёх компонент:

  • таблицы потоков (англ. flow table);
  • безопасного канала (англ. secure channel), использующегося для управления коммутатором внешним «интеллектуальным» устройством (контроллером);
  • Поддержки протокола OpenFlow protocol, использующегося для управления. Использование этого протокола позволяет избежать необходимости писать программу для управляемого устройства

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

Заголовок может состоять из множества полей разного уровня (например, MAC-адресов отправителя и получателя, полей из заголовка IP-пакета, полей из заголовка TCP-сегмента). Каждое поле может иметь особое значение (звезда), означающее соответствие любому значению соответствующего поля в PDU.[2]

Устройства type1, которые будут обеспечивать функционал трансляции адресов (NAT), поддержку классов и приоритетов, запланированы, но их спецификация пока не определена.

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

Примечания

Ссылки