вторник, 28 мая 2019 г.

А что такое OpenFlow?

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

Архитектура

     Путь прохождения данных (datapath) состоит из таблицы потоков (flow table) и действий, назначенных для каждой записи в таблице. Сами таблицы могут касаться как Ethernet (или других протоколов канального уровня), так и протоколов вышестоящих уровней (IP, TCP). Точный список действий может меняться, но основные это: форвардинг (пересылка фрагмента данных - пакета, фрейма - в заданный порт), пересылка фрагмента данных на контроллер через безопасный канал для дальнейшего исследования, отбрасывание фрагмента данных (drop). Для устройств, совмещающих openflow и обычную обработку пакетов средствами микропрограммы устройства, добавляется четвёртый тип действия: обработка фрагмента данных обычными средствами. Оборудование, поддерживающее эти четыре действия являются Type0-устройствами.
     Устройство OpenFlow состоит, как минимум, из трёх компонент:
  • таблицы потоков (flow table);
  • безопасного канала (secure channel), использующегося для управления коммутатором внешним «интеллектуальным» устройством (контроллером);
  • Поддержки протокола OpenFlow protocol, использующегося для управления. Использование этого протокола позволяет избежать необходимости писать программу для управляемого устройства;
        Каждая запись в таблице потоков имеет три поля: заголовок PDU (фрагмента данных), который позволяет определить соответствие PDU потоку, действие и поле со статистикой (число байтов и PDU, соответствующее потоку, время прохождения последнего соответствующего потоку PDU).
        Заголовок может состоять из множества полей разного уровня (например, MAC-адресов отправителя и получателя, полей из заголовка IP-пакета, полей из заголовка TCP-сегмента).
       Собственно Путь прохождения данных по протоколы выглядит следующим образом:
        

 Основные компоненты записи потока в таблицу:
где:

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

counters -- счетчик, обновляется при сопоставлении пакетов

instructions -- инструкции, для изменения набора действий или обработки
                       процесса

timeouts -- максимальное время жизни пакета или времени ожидания
                  ответа от коммутатора.

cookie -- специализированный/специфический набор данных выбранный
              самим контроллером. Может использоваться контроллером для
              контроля статистики потока, его модификации и удаления.
              Не используется при обработке пакетов.

Все писал и переводил из версии протокола 1.3







Комментариев нет:

Отправить комментарий

Debian 12 sources.list редактирование и уход от cdrom

     Если после установки постоянно просит диск и ничего с этим не сделать, то идем в сорс-листы и комментим вот такую строчку  cat /etc/apt...