Русский

OpenFlow коммутатор: определение, компонеты и применения

Updated on июн 22, 2022
258

Data Center Switches

В последние годы значительно возрос сетевой трафик операторов связи. В настоящее время операторам сети приходится обрабатывать большое количество форматов данных, видов услуг и онлайнового оборудования. Программно-определяемая сеть разработана для решения этой проблемы. И OpenFlow является ключевой частью программно-определяемой сети. В этой статье рассказывается о том, что такое OpenFlow коммутатор, компоненты и применения OpenFlow коммутатора.

Что такое OpenFlow и OpenFlow коммутатор?

OpenFlow - это сетевой протокол связи, применяемый для связи между контроллерами и коммутаторами в архитектуре SDN. OpenFlow позволяет нам передать уровень управления всеми коммутаторами центральному контроллеру и позволяет центральному программному обеспечению определять поведение сети. Таким образом, сетевые администраторы могут использовать программное обеспечение OpenFlow для управления потоками трафика между коммутационным оборудованием различных марок.

OpenFlow коммутатор является основным компонентом всей сети OpenFlow и в основном отвечает за пересылку уровня данных. OpenFlow коммутатор может быть физическим коммутатором/маршрутизатором или виртуальным коммутатором/маршрутизатором. OpenFlow коммутатор делится на две типа: специальный OpenFlow коммутатор и совместимый OpenFlow коммутатор. Специальный OpenFlow коммутатор: стандартное OpenFlow устройство, поддерживающее только пересылку OpenFlow. Он не поддерживает обычный процесс обработки данных в существующем коммерческом коммутаторе, все данные, проходящие через коммутатор, передаются в соответствии с режимом OpenFlow. Совместимый OpenFlow коммутатор: поддерживает как пересылку OpenFlow, так и обычную пересылку уровней 2 и 3. Это коммутатор, который добавляет таблицы потоков, безопасные каналы и OpenFlow протокол на основе коммерческих коммутаторов для получения функций OpenFlow.

Компоненты OpenFlow коммутатора

OpenFlow коммутатор состоит из одной или нескольких flow-table,group-table и OpenFlow канала к удалённому контроллеру. OpenFlow коммутатор обменивается сообщениями с контроллером при помощи протокола OpenFlow.

OpenFlow Switch Components

Flow table (Таблица переадресации)

Используя OpenFlow протокол, контроллер может добавлять, обновлять и удалять flow-записи(flow-entries) во flow-table, как реактивно(ответы на входящие пакеты), так и проактивно.

Реактивные flow-записи создаются, когда контроллер динамически изучает, где в топологии находятся устройства, и flow-таблиц должны обновляться на этих устройствах для создания конец-конец подключения. Например, если хосту на коммутаторе A необходимо поговорить с хостом-коммутатором B, на контроллер будут отправлены сообщения, чтобы узнать, как добраться до этого хоста. Контроллер изучит таблицы MAC-адресов хоста коммутаторов и способы их подключения, программируя логику в flow-таблицах каждого коммутатора. Это реактивная flow-запись.

Проактивные flow-записи программируются до прибытия трафика. Если уже известно, что два устройства должны или не должны взаимодействовать, контроллер может заранее запрограммировать эти записи потока на конечных точках OpenFlow.

Сопоставление трафика, конвейерная обработка и навигация Flow table

В OpenFlow сети каждый OpenFlow коммутатор содержит по меньшей мере 1 flow-table и набор flow-записей в этой таблице. Эти flow-записи содержат поля соответствия, счетчики и инструкции для применения к совпавшим пакетам.

Как правило, у вас много flow-table, поэтому важно отметить, что сопоставление начинается с первой flow-table и может продолжаться в дополнительных таблицах потоков конвейера. Пакет сначала запустится в таблице 0 и проверит эти записи на основе приоритета. Первым будет соответствовать наивысший приоритет. Если flow должен перейти к другой таблице, инструкция goto сообщает пакету, что нужно перейти к таблице, указанной в инструкциях.

Эта обработка конвейера будет происходить в два этапа: обработка входа и обработка выхода.

OpenFlow Switch

Если найдена совпадающая flow-запись, к пакету применяются инструкции ассоциированные с данной записью. Если не найдено ни одной записи, результат зависит от конфигурации записи потока промаха таблицы.

Table-miss flow запись

Table-miss flow запись является последней в таблице, с приоритетом 0 и соответствуют любому содержимому. Это похоже на все, и действия, которые необходимо предпринять, зависят от того, как вы его настроите. Вы можете переслать пакет контроллеру по каналу OpenFlow, отбросить пакет или продолжить работу со следующей таблицей потоков.

Порты OpenFlow коммутатора

OpenFlow порт - это сетевой интерфейс для передачи пакетов между обработкой OpenFlow и остальной сетью. Коммутаторы OpenFlow логически подключаются друг к другу через свои OpenFlow порт. OpenFlow коммутатор должен поддерживать три типа OpenFlow портов: физический порт, логический порт и зарезервированный порт.

Физический порт

Физический порт – порт, который соответствует аппаратному сетевому интерфейсу. Это означает взаимно однозначное сопоставление OpenFlow физических портов с аппаратно-определяемыми интерфейсами Ethernet на коммутаторе, но это не обязательно должно быть взаимно однозначным. OpenFlow коммутатор может иметь виртуальные физические порты, и сопоставляется с некоторым виртуальным представлением физического порта. Это похоже на виртуализацию аппаратных сетевых интерфейсов в вычислительных средах.

Логический порт

Логический порт – порт, который не соответствуют напрямую аппаратным интерфейсам коммутатора. Логический порт представляет собой более высокую абстракцию и может быть определен без использования OpenFlow(например: туннели, loopback интерфейсы). Единственное различие между физическими портами и логическими портами заключается в том, что пакет пересылаемый через данные порты в заголовке может иметь дополнительное поле Tunnel-ID, и когда пакеты получены на логические порты, требующие связи с контроллером, как логический порт, так и лежащий в основе физический порт сообщается контроллеру.

Зарезервированный порт

Зарезервированный порт представляет собой специальное действие по пересылки пакета. Существует несколько необходимых зарезервированных портов: all, controller, table, in_port, any, unset, local. Controller порт представляет собой канал связи с OpenFlow контроллером. В гибридных средах вы также увидите порты normal и flood, которые обеспечивают взаимодействие между конвейером OpenFlow и аппаратным конвейером коммутатора.

Применения OpenFlow коммутатора в облачном ЦОД

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

0

Вас также может заинтересовать