OpenFlow — протокол управления процессом обработки данных, передающихся по сети передачи данных маршрутизаторами и коммутаторами, реализующий технологию программно-конфигурируемой сети.
Протокол используется для управления сетевыми коммутаторами и маршрутизаторами с центрального устройства — контроллера сети (например, с сервера или даже персонального компьютера). Это управление заменяет или дополняет работающую на коммутаторе (маршрутизаторе) встроенную программу, осуществляющую построение маршрута, создание карты коммутации и т. д.. Контроллер используется для управления таблицами потоков коммутаторов, на основании которых принимается решение о передаче принятого пакета на конкретный порт коммутатора. Таким образом в сети формируются прямые сетевые соединения с минимальными задержками передачи данных и необходимыми параметрами(из Вики).
Устройство OpenFlow состоит, как минимум, из трёх компонент:
Заголовок может состоять из множества полей разного уровня (например, MAC-адресов отправителя и получателя, полей из заголовка IP-пакета, полей из заголовка TCP-сегмента).
Собственно Путь прохождения данных по протоколы выглядит следующим образом:
Основные компоненты записи потока в таблицу:
где:
match fields -- поле соответствия, нужно сопоставления с пакетами.
состоит из входных портов и заголовков пакетов,а также
необязательных метаданных, указанных в предыдущей
таблице.
priority -- приоритет записи потока
counters -- счетчик, обновляется при сопоставлении пакетов
instructions -- инструкции, для изменения набора действий или обработки
процесса
timeouts -- максимальное время жизни пакета или времени ожидания
ответа от коммутатора.
cookie -- специализированный/специфический набор данных выбранный
самим контроллером. Может использоваться контроллером для
контроля статистики потока, его модификации и удаления.
Не используется при обработке пакетов.
Все писал и переводил из версии протокола 1.3
Протокол используется для управления сетевыми коммутаторами и маршрутизаторами с центрального устройства — контроллера сети (например, с сервера или даже персонального компьютера). Это управление заменяет или дополняет работающую на коммутаторе (маршрутизаторе) встроенную программу, осуществляющую построение маршрута, создание карты коммутации и т. д.. Контроллер используется для управления таблицами потоков коммутаторов, на основании которых принимается решение о передаче принятого пакета на конкретный порт коммутатора. Таким образом в сети формируются прямые сетевые соединения с минимальными задержками передачи данных и необходимыми параметрами(из Вики).
Архитектура
Путь прохождения данных (datapath) состоит из таблицы потоков (flow table) и действий, назначенных для каждой записи в таблице. Сами таблицы могут касаться как Ethernet (или других протоколов канального уровня), так и протоколов вышестоящих уровней (IP, TCP). Точный список действий может меняться, но основные это: форвардинг (пересылка фрагмента данных - пакета, фрейма - в заданный порт), пересылка фрагмента данных на контроллер через безопасный канал для дальнейшего исследования, отбрасывание фрагмента данных (drop). Для устройств, совмещающих openflow и обычную обработку пакетов средствами микропрограммы устройства, добавляется четвёртый тип действия: обработка фрагмента данных обычными средствами. Оборудование, поддерживающее эти четыре действия являются Type0-устройствами.Устройство OpenFlow состоит, как минимум, из трёх компонент:
- таблицы потоков (flow table);
- безопасного канала (secure channel), использующегося для управления коммутатором внешним «интеллектуальным» устройством (контроллером);
- Поддержки протокола OpenFlow protocol, использующегося для управления. Использование этого протокола позволяет избежать необходимости писать программу для управляемого устройства;
Заголовок может состоять из множества полей разного уровня (например, MAC-адресов отправителя и получателя, полей из заголовка IP-пакета, полей из заголовка TCP-сегмента).
Собственно Путь прохождения данных по протоколы выглядит следующим образом:
Основные компоненты записи потока в таблицу:
где:
match fields -- поле соответствия, нужно сопоставления с пакетами.
состоит из входных портов и заголовков пакетов,а также
необязательных метаданных, указанных в предыдущей
таблице.
priority -- приоритет записи потока
counters -- счетчик, обновляется при сопоставлении пакетов
instructions -- инструкции, для изменения набора действий или обработки
процесса
timeouts -- максимальное время жизни пакета или времени ожидания
ответа от коммутатора.
cookie -- специализированный/специфический набор данных выбранный
самим контроллером. Может использоваться контроллером для
контроля статистики потока, его модификации и удаления.
Не используется при обработке пакетов.
Все писал и переводил из версии протокола 1.3
Комментариев нет:
Отправить комментарий