Протокол OpenFlow
дата: 11.09.2016 г.

     OpenFlow е първия стардантизиран протокол за предаване на потоци от данни между мрежовите устройства (комутаторите) и централния контролер в софтуерно дефинираните мрежи (SDN).
Един от създателите Martin Casado казва: „ Ние го е създадохме, защото съществуващите протоколи бяха или твърде сложни или твърде трудно се използват за ефективно управление на отдалечен контрол в мрежата“. OpenFlow e проект с отворен код, който от 2011 г. се поддържа от организациите в: Open Networking Foundation (ONF). OpenFlow протоколът е набор от инструкции, които определят правилата ( MAC, ACL (Access control list) и др) за управление и насочване на потоците от данни в дадена мрежа. При стандартните маршрутизатори препращането на пакетите (data path) и самото маршрутизиране (избиране на най-добрия път) се изпълнява в едно устройство. Основната идеята на софтуерно дефинираните мрежи (SDN) e разделянето на системите, които управляват мрежата (control plane) от устройствата, който препращат потоците от данни (data plane). Управлението на мрежата се осъществява от отделно устройство наречено - Централeн контролер или OpenFlow-контролер, обикновено се изпълнява на стандартен х86 сървър. Самото пренасяе на данните се осъществява от OpenFlow-комутатори (switch(s)). Централения контролер управлява комутатора с помоща на протокола OpenFlow.    OpenFlow контролера използва сигурни канали за връзка ( SSL - Secure Sockets Layer, TLS - Transport Layer Security). Kонтролерът управлява и променя съдържанието на таблиците в комутаторите, получава съобщения от комутатора и предава съобщения на комутатора, като използва този канал. Всички съобщенията трябва да бъдат форматирани по правилата на OpenFlow протокола. Централният контролер съдържа точна информация за структурата и топологията на мрежата. По този начин той може да програмира движението на днните и да осъществявя връзка «всеки с всеки» на слой L2 без да използва IP маршрутизация.

SDN


Фиг. 1.Схема на действие на OpenFlow протокола

Подробно обяснение за Switch Agent може да намерите на сайта: http://flowgrammable.org анг. език. Актуален към дата: 27.09.2016 г.

  Всеки комутатор съдържа една или няколко FlowTable (таблица на потоците), които запълва с основна информация получена от OpenFlow-контролера. Тази таблица се нарича таблица на потоците, защото в SDN се предават потоци от данни, а не пакети (дейтаграми или сегменти). FlowTable е базирана на ТСАМ ( Ternary CAM - (content addressable memory) въвежат към двоичниая САМ допълнителен символ „Х“, който може да бъде заместен с 0 или 1, ако е „ХX“ може да се замести с вариантите 00, 01, 10, 11. По този начин се съкращава размера на таблицата за маршрутизация).
  Контролера основавайки се на цялостната конфигурация и информация за мрежата предава по защитения канал команди за всеки маршрутизатор попълвайки по този начин неговата flow таблица, която съдържа поредица от записи (flow entries) въз основа,на която комутатора взема решения, къде да се отправят съответните пакети.
            Всеки запис съдържа:
  Полета за съвпадане (match fields). Търсят се съвпадение над пакетите и техните заглавни части, входни портове и метаданни;
  Броячи (counters): използват за статистика на съвпаденията:
        - за следене броя на пакети и байтове за всеки поток и времето, което е изминало от началната точка на потока.
  Инструкции (instructions):
        - препращане на пакета през определен порт или портове, ако е необходимо се прави промяна на заглавната част;
        - пакета се опакова и се изпраща на контролера;
        - отхвърляне на пакет;
        - обртаботка на конвейера;
        - добавяне на собствени разширения;

SDN

Фиг. 2. Съдържанието на един запис от таблица на потоците

  Когато се получи пакет от него се отделят метаданите и другите полета от пакета. След това тези полета се сравняват със записите от flow таблицата. Всеки запис от flow таблицата съдържа полето протокол със съответен приоритет, по което се извършва сравнението. Записът с най-висок приоритет определя каква да бъде следващата обработка на пакета. Контролерът предава команди към всеки маршрутизатор, попълвайки по този начин неговата flow таблица, въз основа на която комутатора взема решения, къде да се отправят съответните пакети.   Всеки поток в таблицата съдържа информация, за кои полета от хедърите на пакетите да се търси за съвпадение. При наличие на съвпадение над пакетите и техните заглавни части (header), се извършвт преобразувания: определен набор от инструкции, указани в даденото правило. Правилата за идентификация могат да изискват приемане на пакета през определен порт (In Port) ( физически, виртуален, указан от комутатора, резервиран виртуален порт), тип на протокола Ethernet, MAC адрес, идентификатор на тунел (Tunnel ID), полета oт IP пакета. Резервираните виртуалени портове се използват за вътрешна обработка на трафика и за хибридни мрежи (OpenFlow + традиционни мрежи). Определят общите дайствия на пренасянето, дали да се изпрати към контролера, да се изпряща без OpenFlow и т.н. Виртуалните портове както и в другите мрежи не са свързани „пряко“ с определен порт от оборудването, определят групите на агрегираните канали, интерфейсите с обратна връзка (тунелите), да се модифицира поле от хедъра му или да се отстрани без да се изпраща. При промяна на състоянието на порт от Up в Down не пренасочва потока през алтернативен маршрут. Записът във flow таблицата на интерфейса си остава и следващите пакети ще бъдат отхвърляни. За постоянна промяна, комутатора трябва да изпрати съобщение на контролера, който от своя страна трябва да го добави във flow таблицата на комутатора. Ако се получи пакет, който не съответства на първата таблица, пакета се разопакова и се изпраща на контролера, който създава правило, как да се обработват пакети от този тип: да го добави като запис в таблицата на потоците на комутатора или група от комутатори. Инструкциите на конвейера дават възможност да се изпращат пакети за допълнителна обработка в следващите таблици и във вид на метаданни, които да се предават между таблиците. Инструкциите също определят и правилата за промяна на броячите, които могат да се използват за различни статистики. . . . . . . . . . . . . . ....................................

Следва по-детайлно представяне на темата . . ...