Ответ – ни то, ни другое. Работа Openflow заключается в модификации содержания таблицы передачи пакетов внутри маршрутизатор или коммутатора (FORWARDING table). Поэтому, это не протокол маршрутизации и не протокол коммутации.
Архитектура сетевого оборудования часто описывается в виде трех плоскостей: администрирования (management plane), управления (control plane) и передачи данных (data plane) и иллюстрируется такой схемой.
Плоскость администрирования (Management Plane) устанавливает режимы работы устройства, модифицирует версии т.н. фирменного ПО (firmware), жестко «зашитого» в сетевое устройство, выполняет команды простого протокола администрирования сети SNMP (Simple Network Management Protocol) от внешней системы администрирования сети NMS, а также команды внешней конфигурации устройства через интерфейс командной строки CLI (Command Line Interface). Плоскость передачи данных (Data Plane) передает пакеты и кадры (frame) данных со входа устройства (IN) на его выход (OUT) в соответствии с таблицей передачи (Forwarding Table). На плоскости управления (Control Plane) работают протоколы маршрутизации и коммутации.
Плоскость управления использует таблицу маршрутизации (routing table) для составления таблицы передачи пакетов (forwarding table), которую использует плоскость передачи данных (data plane). Таблицы передачи пакетов доставляется на плоскость передачи от плоскости администрирования, как часть операционной системы устройства. В соответствии с таблицей передачи пакет, прибывающий на входной порт коммутатора (IN), передается плоскостью передачи данных на выходной порт (OUT).
OpenFlow – это метод управления потоками (flow) в сети. Дело в том, что сетевые устройства (маршрутизаторы, коммутаторы и другие) занимаются передачей пакетов и фреймов в соответствии с протоколами маршрутизации, однако, приложения не используют определённые пакеты для предоставления услуг. Они обмениваются данными между сервером и клиентом и создают потоки пакетов от источника к получателю, который называются «Flow» (поток). В качестве метафоры, можно сказать, что поток соотносится с пакетами также, как яблочный пирог с яблоками. Точно также, как мы едим не яблоки, а пирог, приложения имеют дело с потоками, а не пакетами данных.
OpenFlow определяет стандарт рассылки «правил потока» (flow rules) в таблицу передачи (forwarding table) каждого сетевого устройства таким образом, что плоскость управления может управлять плоскостью передачи данных. Эти правила потока содержат установки для сетевых устройств, такие как МАС-адрес источника и назначения (source & destination MAC), IP-протокол для источника и назначения (Source & destination IP), TCP-протокол для источника и назначения (source and destination TCP), данные о виртуальной (логической) локальной сети VLAN в общем пуле инфраструктуры, метки QoS и MPLS, и другую информацию. Правила потока затем добавляются в существующие таблицы передачи (forwarding table) пакетов со входа на выход каждого сетевого устройства.
Ценность OpenFlow в том, что он реализуется автоматически через централизованный SDN-контроллер на плоскости управления. При этом управление плоскостью передачи становится гораздо более эффективным и быстрым (agile), функциональные возможности устройств на сети значительно расширяются, и достигается «гранулярность» управления потоками сетевого трафика.