Коммутационная система, система управления коммутацией и носитель данных
Иллюстрации
Показать всеИзобретение относится к вычислительной технике. Технический результат заключается в обеспечении возможности управления большим объемом потоков в сети. Коммутационная система содержит функциональную секцию OpenFlow, которая конфигурирует OpenFlow-таблицу посредством логического комбинирования множества таблиц, каждая из которых задает обработку для предварительно определенного принимаемого пакета, на основе условия и содержимого обработки, которые задаются в каждой таблице, и которая обращается к OpenFlow-таблице, чтобы определять содержимое обработки для принимаемого пакета; и функциональную секцию операций, которая выполняет обработку для принимаемого пакета на основе определенного содержимого обработки; причем функциональная секция OpenFlow содержит функциональную секцию поиска в L2-/L3-/других таблицах; функциональную секцию поиска в ТСАМ (троичном ассоциативном запоминающем устройстве); и решающую секцию по OpenFlow-обработке, которая задает приоритеты ТСАМ, L2-таблицы, L3-таблицы и другой таблицы, принимает результаты поиска из функциональной секции поиска в L2-/L3-/других таблицах и функциональной секции поиска в ТСАМ, определяет элемент, который должен быть приспособлен, на основе приоритетов, и определяет содержимое обработки для принимаемого пакета. 3 н. и 4 з.п. ф-лы, 15 ил.
Реферат
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящее изобретение относится к коммутационной системе и, в частности, к коммутационной системе, в которой каждый коммутатор имеет множество таблиц.
УРОВЕНЬ ТЕХНИКИ
Чтобы управлять трактом связи в сетевой системе, недавно разработан способ управления трактом, приспосабливающий OpenFlow-технологию в качестве протокола управления для оборудования связи. Сеть, тракт которой управляется согласно OpenFlow-технологии, упоминается как OpenFlow-сеть.
В OpenFlow-сети контроллер, такой как OFC (OpenFlow-контроллер), обслуживает каждую OpenFlow-таблицу коммутатора, такого как OFS (OpenFlow-коммутатор), чтобы управлять режимами работы коммутаторов. Контроллер подключается к коммутатору через защищенный канал (Secure Channel), чтобы управлять коммутатором посредством использования управляющего сообщения, соответствующего OpenFlow-протоколу.
Коммутатор в OpenFlow-сети является граничным коммутатором или базовым коммутатором, который составляет OpenFlow-сеть и находится под управлением контроллера. Последовательность типов обработки пакета от приема пакета в граничном коммутаторе на входной стороне в OpenFlow-сети до передачи пакета в граничном коммутаторе на выходной стороне в OpenFlow-сети упоминается как поток.
OpenFlow-таблица является таблицей, в которой регистрируется элемент потока, который задает предварительно определенное содержимое (операцию) обработки, которая должна быть выполнена для пакета (передаваемых данных), соответствующего предварительно определенному условию (правилу) совпадения.
Правило из элемента потока задается согласно различным комбинациям части или всего из адреса назначения, исходного адреса, порта назначения и исходного порта, которые включаются в поле заголовка каждого уровня иерархии протоколов в пакете и могут отличаться. Вышеупомянутые адреса включают в себя MAC-адрес (адрес уровня управления доступом к среде) и IP-адрес (адрес Интернет-протокола). Помимо этого, информация относительно входного порта также может быть использована в качестве правила элемента потока.
Операция элемента потока указывает такое действие, как "вывод в конкретный порт", "отбрасывание" и "перезапись заголовка". Например, когда идентификационная информация порта вывода (например, номер порта вывода) представляется в операции элемента потока, коммутатор выводит пакет в порт, а когда идентификационная информация порта вывода не представляется, коммутатор отбрасывает пакет. Альтернативно, когда информация заголовка представляется в операции элемента потока, коммутатор перезаписывает заголовок пакета на основе информации заголовка.
Коммутатор в OpenFlow-сети выполняет операцию элемента потока для группы пакетов (последовательности пакетов), которая соответствует правилу из элемента потока.
Сведения в отношении OpenFlow-коммутатора описываются в непатентных документах 1 и 2.
OpenFlow-таблица большого размера требуется для того, чтобы управлять большим объемом потоков в сети. В настоящих условиях, TCAM (троичное ассоциативное запоминающее устройство), используемое для OpenFlow-таблицы, не обладает большим размером, и, следовательно, не обеспечивается необходимое и достаточное значение размера. Дополнительно, трудно увеличивать размер непосредственно каждой таблицы (главным образом, TCAM) коммутатора, используемого в OpenFlow-таблице.
В качестве одного из способов решения вышеупомянутой проблемы может быть использовано внешнее TCAM, но это затратно. Кроме того, в оборудовании для высокоскоростной передачи, таком как 10-гигабитное многопортовое оборудование (сетевое оборудование, имеющее множество портов, которые могут соответствовать скорости передачи данных в 10 Гбит/с), внешнее TCAM не может использоваться. Сегодня отсутствуют внешние TCAM, допускающие работу, по меньшей мере, в 10-гигабитном коммутаторе.
СПИСОК БИБЛИОГРАФИЧЕСКИХ ССЫЛОК
Непатентный документ 1. The OpenFlow Switch Consortium" http://www.openflowswitch.org/.
Непатентный документ 2. OpenFlow Switch Specification Version 0.9.0 (Wire Protocol 0x98), 20 июля 2009 года.
Специалист по сопровождению: Brandon Heller (brandonh@stanford.edu)" <http://www.openflowswitch.org/documents/openflow-spec-v0.9.0.pdf>
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Задача настоящего изобретения заключается в том, чтобы реализовывать увеличение числа элементов OpenFlow-таблицы посредством использования таблиц в коммутаторе в качестве существующих ресурсов.
Коммутационная система по настоящему изобретению включает в себя: функциональную секцию OpenFlow, которая конфигурирует OpenFlow-таблицу посредством логического комбинирования множества таблиц, каждая из которых задает обработку для предварительно определенного принимаемого пакета, на основе условия и содержимого обработки, которые задаются в каждой таблице, и которая обращается к OpenFlow-таблице для того, чтобы определять содержимое обработки для принимаемого пакета; и функциональную секцию операций, которая выполняет обработку для принимаемого пакета на основе определенного содержимого обработки.
Способ управления коммутатором по настоящему изобретению, который выполняется в OpenFlow-коммутаторе, при этом способ управления коммутатором включает в себя: конфигурирование OpenFlow-таблицы посредством логического комбинирования множества таблиц, каждая из которых задает обработку для принимаемого пакета, на основе условия и содержимого обработки, заданных в каждой таблице; обращение к OpenFlow-таблице, чтобы определять содержимое обработки для принимаемого пакета; и выполнение обработки принимаемого пакета на основе определенного содержимого обработки.
Программа согласно настоящему изобретению является программой, чтобы инструктировать компьютеру, используемому в качестве коммутатора, выполнять обработку в вышеупомянутом способе управления коммутатором. Следует отметить, что программа согласно настоящему изобретению может быть сохранена в блоке хранения и на носителе данных.
Настоящее изобретение дает возможность контроллеру использовать множество таблиц в коммутаторе в качестве одного большого размера для OpenFlow-таблицы.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг. 1 является концептуальной схемой, показывающей пример конфигурации коммутационной системы согласно настоящему изобретению;
Фиг. 2 является концептуальной схемой, показывающей сведения в отношении функциональной секции OpenFlow согласно первому примерному варианту осуществления настоящего изобретения;
Фиг. 3 является концептуальной схемой, показывающей сведения в отношении решающей секции по OpenFlow-операциям согласно первому примерному варианту осуществления настоящего изобретения;
Фиг. 4 является схемой, показывающей структуру управления OpenFlow-таблицами;
Фиг. 5 является схемой, показывающей подробности примера первого типа управления OpenFlow-таблицами;
Фиг. 6 является схемой, показывающей подробности примера второго типа управления OpenFlow-таблицами;
Фиг. 7A является схемой, показывающей первый пример работы коммутационной системы в случае прихода пакетов;
Фиг. 7B является схемой, показывающей первый пример работы коммутационной системы в случае прихода пакетов;
Фиг. 8A является схемой, показывающей второй пример работы коммутационной системы в случае прихода пакетов;
Фиг. 8B является схемой, показывающей второй пример работы коммутационной системы в случае прихода пакетов;
Фиг. 9 является схемой, показывающей конкретный пример первого типа управления OpenFlow-таблицами;
Фиг. 10 является схемой, показывающей конкретный пример второго способа управления OpenFlow-таблицами;
Фиг. 11 является концептуальной схемой, показывающей подробности примера 1 коммутационной системы согласно второму примерному варианту осуществления настоящего изобретения;
Фиг. 12 является концептуальной схемой, показывающей подробности примера 2 коммутационной системы согласно второму примерному варианту осуществления настоящего изобретения; и
Фиг. 13 является концептуальной схемой, показывающей подробности примера 3 коммутационной системы согласно второму примерному варианту осуществления настоящего изобретения.
ОПИСАНИЕ ПРИМЕРНЫХ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
ПЕРВЫЙ ПРИМЕРНЫЙ ВАРИАНТ ОСУЩЕСТВЛЕНИЯ
Ниже описывается первый примерный вариант осуществления настоящего изобретения со ссылкой на прилагаемые чертежи.
СТРУКТУРА СИСТЕМЫ
Как показано на фиг. 1, коммутационная система согласно настоящему изобретению включает в себя контроллер 101 и коммутатор 102.
Контроллер 101 управляет коммутатором 102 согласно обработке, соответствующей OpenFlow-протоколу.
СТРУКТУРА КОММУТАТОРА
Коммутатор 102 включает в себя секцию 103 протокольного управления, порт 104 ввода, функциональную секцию 105 OpenFlow, унаследованную функциональную секцию 108, функциональную секцию 111 операций и порт 112 вывода.
Секция 103 протокольного управления выполняет протокольное управление между контроллером 101 и коммутатором 102, когда контроллер 101 осуществляет связь для управления коммутатором 102 согласно обработке, соответствующей OpenFlow-протоколу. Секция 103 протокольного управления не обязательно предоставляется в коммутаторе 102 и может предоставляться на ступени, предшествующей коммутатору 102.
Порт 104 ввода является интерфейсом ввода пакетов. Порт 104 ввода имеет допустимый OpenFlow-порт и недопустимый OpenFlow-порт. Допустимый OpenFlow-порт является портом ввода, соответствующим OpenFlow-протоколу, а недопустимый OpenFlow-порт является портом ввода, который не соответствует OpenFlow-протоколу.
Функциональная секция 105 OpenFlow выполняет обработку для пакета, введенного из допустимого OpenFlow-порта.
Функциональная секция 105 OpenFlow включает в себя секцию 106 управления OpenFlow-таблицами и решающую секцию 107 по OpenFlow-операциям.
Секция 106 управления OpenFlow-таблицами сохраняет OpenFlow-таблицу, используемую посредством коммутатора 102. Операция (операция OpenFlow-обработки) для пакета, соответствующего OpenFlow-протоколу, задается в OpenFlow-таблице.
Решающая секция 107 по OpenFlow-операциям определяет операцию OpenFlow-обработки на основе результата поиска секции 106 управления OpenFlow-таблицами.
Унаследованная функциональная секция 108 выполняет обработку для пакета, введенного из недопустимого OpenFlow-порта.
Унаследованная функциональная секция 108 включает в себя секцию 109 управления унаследованными таблицами и решающую секцию 110 по унаследованным операциям.
Секция 109 управления унаследованными таблицами является унаследованной таблицей, используемой посредством коммутатора 102. Секция 109 управления унаследованными таблицами задает операцию (операцию унаследованной обработки) для пакета (обычного пакета и т.п.), который не соответствует OpenFlow-протоколу.
Решающая секция 110 по унаследованным операциям определяет операцию унаследованной обработки на основе результата поиска секции 109 управления унаследованными таблицами. В унаследованной обработке используется обычная функция коммутации.
Функциональная секция 111 операций выполняет операцию, определенную в функциональной секции 105 OpenFlow или в унаследованной функциональной секции 108.
Порт 112 вывода является интерфейсом вывода пакетов.
ОТЛИЧИЯ МЕЖДУ OPENFLOW-ОБРАБОТКОЙ И УНАСЛЕДОВАННОЙ ОБРАБОТКОЙ
В OpenFlow-обработке тракт передачи пакетов управляется через внешний контроллер. Контроллер выбирает оптимальный тракт во всей сети. Напротив, в унаследованной обработке, к примеру, в обычном коммутаторе и маршрутизаторе, тракт управляется посредством автономного распределения. Обычный коммутатор и маршрутизатор определяет состояние сети из информации относительно своего окружения, чтобы выбирать оптимальный тракт.
В OpenFlow-обработке пакет может быть идентифицирован на основе комбинации до 12 типов информации. С другой стороны, в унаследованной обработке, число типов информации, используемой для того, чтобы идентифицировать пакет, является небольшим, к примеру, MAC-адрес назначения в случае L2-сети и IP-адрес назначения в случае L3-сети. По этой причине, трудно выполнять точное управление потоками. Например, в унаследованной обработке, поток с идентичным IP-адресом назначения, но с различным номером исходного TCP-порта определяется в качестве другого потока, и выбирается другой тракт.
ОБЩАЯ РАБОТА КОММУТАЦИОННОЙ СИСТЕМЫ
Ниже описывается общая работа коммутационной системы на фиг. 1.
ВВОД ПАКЕТА
Когда новый пакет проходит в коммутатор 102, коммутатор 102 принимает пакет на порту 104 ввода.
Коммутатор 102 проверяет то, является или нет порт 104 ввода, принимающий пакет, допустимым OpenFlow-портом. Например, коммутатор 102 проверяет то, является или нет порт 104 ввода допустимым OpenFlow-портом, посредством обращения к самому коммутатору 102 или к информации настроек (конфигурации) порта 104 ввода.
ПЕРЕХОД ОТ ВВОДА ПАКЕТОВ К OPENFLOW-ОБРАБОТКЕ
Когда порт ввода является допустимым OpenFlow-портом, коммутатор 102 передает пакет из порта 104 ввода в функциональную секцию 105 OpenFlow.
OPENFLOW-ОБРАБОТКА
Функциональная секция 105 OpenFlow выполняет обработку поиска на передаваемом пакете в секции 106 управления OpenFlow-таблицами, которая сохраняет множество таблиц коммутатора 102.
Затем, функциональная секция 105 OpenFlow определяет операцию по пакету на основе результата поиска и приоритета каждой таблицы в решающей секции 107 по OpenFlow-операциям. Приоритет может упоминаться как уровень приоритета.
ПЕРЕХОД ОТ OPENFLOW-ОБРАБОТКИ К ВЫПОЛНЕНИЮ ОПЕРАЦИИ
Когда определенная операция представляет собой "поступление пакета" (запрос на операцию по пакету в контроллер) (например, когда не существует элементов потока, и операция не может быть определена), функциональная секция 105 OpenFlow выдает запрос (например, на передачу пакета) в контроллер 101 через секцию 103 протокольного управления. Первоначально, операция по всем пакетам, за исключением пакетов, предназначенных для унаследованной обработки, может задаваться как "поступление пакета" без каких-либо условий. Функциональная секция 105 OpenFlow принимает "выдачу пакета" (результат по запросу на операцию из контроллера) в качестве ответа на запрос, определяет содержимое в качестве операции по пакету и регистрирует его в таблице, сохраненной посредством секции 106 управления OpenFlow-таблицами. В дальнейшем в этом документе, функциональная секция 105 OpenFlow определяет операцию для пакетов, которые подчиняются правилу, идентичному правилу для вышеупомянутого пакета в решающей секции 107 по OpenFlow-операциям.
Функциональная секция 105 OpenFlow передает пакет в функциональную секцию 111 операций на основе определенной операции. Иными словами, главный блок, который обрабатывает пакет, переходит от функциональной секции 105 OpenFlow к функциональной секции 111 операций.
ПЕРЕХОД ОТ OPENFLOW-ОБРАБОТКИ К УНАСЛЕДОВАННОЙ ОБРАБОТКЕ
Когда определенная операция представляет собой "обычную" (обработку пакета с использованием унаследованной функциональной секции 108), функциональная секция 105 OpenFlow передает пакет в унаследованную функциональную секцию 108. Иными словами, главный блок, который обрабатывает пакет, переходит от функциональной секции 105 OpenFlow к унаследованной функциональной секции 108.
ПЕРЕХОД ОТ ВВОДА ПАКЕТОВ К УНАСЛЕДОВАННОЙ ОБРАБОТКЕ
Когда порт 104 ввода является недопустимым OpenFlow-портом или, операция для пакета, определенная заранее (предварительно) в функциональной секции 105 OpenFlow, является "обычной", коммутатор 102 передает пакет из порта 104 ввода в унаследованную функциональную секцию 108. Иными словами, главный блок, который обрабатывает пакет, переходит от порта 104 ввода к унаследованной функциональной секции 108.
УНАСЛЕДОВАННАЯ ОБРАБОТКА
Унаследованная функциональная секция 108 выполняет обработку поиска для принимаемого пакета в секции 109 управления унаследованными таблицами, сконфигурированной из множества таблиц коммутатора 102.
ПЕРЕХОД ОТ УНАСЛЕДОВАННОЙ ОБРАБОТКИ К ВЫПОЛНЕНИЮ ОПЕРАЦИИ
Затем, унаследованная функциональная секция 108 определяет операцию по пакету на основе результата поиска и приоритета каждой таблицы в решающей секции 110 по унаследованным операциям. Иными словами, главный блок, который обрабатывает пакет, переходит от унаследованной функциональной секции 108 к функциональной секции 111 операций.
Унаследованная обработка в унаследованной функциональной секции 108 для решающей секции 110 по унаследованным операциям использует обычную функцию коммутации, и, следовательно, ее подробное описание опускается.
ВЫПОЛНЕНИЕ ОПЕРАЦИИ
Функциональная секция 111 операций выполняет операцию, определенную в функциональной секции 105 OpenFlow или унаследованной функциональной секции 108, для пакета.
В качестве примеров операции, определенной в функциональной секции 105 OpenFlow, можно привести перезапись информации заголовка, вывод пакета из указанного порта вывода и отбрасывание пакета. В качестве примеров операции, определенной в унаследованной функциональной секции 108, передачу пакета посредством маршрутизации и т.п. Тем не менее, настоящее изобретение не ограничено этими примерами.
В завершение, когда операция, которая должна быть выполнена, включает в себя "вывод пакета", функциональная секция 111 операций выводит пакет из надлежащего порта 112 вывода согласно содержимому операции.
УПРАВЛЕНИЕ OPENFLOW-ТАБЛИЦЕЙ ПОСРЕДСТВОМ КОНТРОЛЛЕРА
Контроллер 101 может управлять секцией 106 управления OpenFlow-таблицами коммутатора 102 через секцию 103 протокольного управления. Здесь, "управление секцией 106 управления OpenFlow-таблицами" означает регистрацию/изменение/удаление/пакетное удаление и т.п. элементов потоков в OpenFlow-таблице.
Каждая из таблиц коммутатора 102, которые сохраняются в секции 106 управления OpenFlow-таблицами для OpenFlow-таблицы, не обязательно соответствует всем операциям, заданным в OpenFlow-спецификации.
По этой причине, контроллер 101 должен управлять секцией 106 управления OpenFlow-таблицами с учетом функций, которые могут осуществляться посредством соответствующих таблиц, сохраненных посредством секции 106 управления OpenFlow-таблицами для OpenFlow-таблицы (операций, которые могут задаваться).
СВЕДЕНИЯ В ОТНОШЕНИИ ФУНКЦИОНАЛЬНОЙ СЕКЦИИ OPENFLOW
Фиг. 2 является схемой, показывающей сведения в отношении функциональной секции 105 OpenFlow по настоящему изобретению.
Функциональная секция 105 OpenFlow, секция 106 управления OpenFlow-таблицами, решающая секция 107 по OpenFlow-операциям и функциональная секция 111 операций имеют механизмы и функции, идентичные механизмам и функциям на фиг. 1.
Функциональная секция 105 OpenFlow включает в себя секцию 106 управления OpenFlow-таблицами и решающую секцию 107 по OpenFlow-операциям.
Секция 106 управления OpenFlow-таблицами включает в себя группу 113 таблиц и функциональную секцию 114 поиска.
Группа 113 таблиц является группой таблиц, составляющей OpenFlow-таблицу.
Функциональная секция 114 поиска выполняет поиск данных введенного пакета на основе группы 113 таблиц.
Функциональная секция 114 поиска включает в себя функциональную секцию 115 поиска в L2-/L3-/других таблицах (OF) и функциональную секцию 116 поиска в TCAM (OF).
"OF" является сокращением от "OpenFlow".
Функциональная секция 115 поиска в L2-/L3-/других таблицах (OF) обращается к L2-таблице (OF), L3-таблице (OF) и другой таблице (OF) на предмет введенного пакета, чтобы выполнять поиск элемента. Таблица многоадресной маршрутизации показана в качестве примера другой таблицы (OF). Иными словами, функциональная секция 115 поиска в L2-/L3-/других таблицах (OF) выполняет поиск в таблицах на предмет введенного пакета в единицах протоколов.
Функциональная секция 116 поиска в TCAM (OF) обращается к TCAM (OF) на предмет введенного пакета, чтобы выполнять поиск элемента. Иными словами, функциональная секция 116 поиска в TCAM (OF) выполняет поиск в TCAM на предмет введенного пакета.
РАБОТА ФУНКЦИОНАЛЬНОЙ СЕКЦИИ OPENFLOW
Ниже описывается работа функциональной секции 105 OpenFlow, показанной на фиг. 2.
Порт 104 ввода передает пакет, введенный из допустимого OpenFlow-порта, в функциональную секцию 105 OpenFlow.
Функциональная секция 105 OpenFlow выполняет обработку поиска для передаваемого пакета в секции 106 управления OpenFlow-таблицами, сконфигурированной из множества таблиц коммутатора 102.
В это время, функциональная секция 114 поиска секции 106 управления OpenFlow-таблицами выполняет обработку поиска на основе информации элементов, зарегистрированной в группе 113 таблиц, составляющей OpenFlow-таблицу.
В частности, в функциональной секции 114 поиска, функциональная секция 115 поиска в L2-/L3-/других таблицах (OF) сначала выполняет обработку поиска, а затем функциональная секция 116 поиска в TCAM (OF) выполняет обработку поиска.
Функциональная секция 114 поиска передает результат поиска в решающую секцию 107 по OpenFlow-операциям.
Решающая секция 107 по OpenFlow-операциям определяет операцию по пакету на основе результата поиска и приоритета каждой таблицы.
ПРИМЕР АППАРАТНЫХ СРЕДСТВ
Ниже описываются конкретные примеры аппаратных средств для реализации коммутационной системы согласно настоящему изобретению.
В качестве примера контроллера 101, можно привести компьютер, такой как PC (персональный компьютер), рабочая станция, мэйнфрейм и суперкомпьютер. Контроллер 101 может быть платой расширения, установленной на компьютере, или виртуальной машиной (Virtual Machine (VM)), сконструированной на физической машине.
В качестве примера коммутатора 102, можно привести L3-коммутатор (коммутатор уровня 3), L4-коммутатор (коммутатор уровня 4), L7-коммутатор/коммутатор прикладного уровня (коммутатор уровня 7) или сетевой коммутатор (сетевой коммутатор), к примеру, многоуровневый коммутатор. Помимо этого, в качестве примера коммутатора 102, можно привести маршрутизатор (router), прокси-сервер (proxy), шлюз, брандмауэр, секция балансировки нагрузки (устройство распределения нагрузки), полосовой контроллер/контроллер монитора системы безопасности (шлюзовой контроллер), базовую станцию, точку доступа (AP), спутник связи (CS) и компьютер, имеющий множество портов связи.
Секция 103 протокольного управления, функциональная секция 105 OpenFlow, секция 106 управления OpenFlow-таблицами, решающая секция 107 по OpenFlow-операциям, унаследованная функциональная секция 108, секция 109 управления унаследованными таблицами, решающая секция 110 по унаследованным операциям и функциональная секция 111 операций реализуются посредством процессора, который работает на основе программы и выполняет предварительно определенную обработку, и запоминающего устройства, которое сохраняет программы и различные типы данных.
В качестве примера вышеуказанного процессора, можно привести CPU (центральный процессор), сетевой процессор (NP), микропроцессор, микроконтроллер или полупроводниковую интегральную схему (Integrated Circuit (IC)), имеющую выделенную функцию.
В качестве примера вышеупомянутого запоминающего устройства, можно привести RAM (оперативное запоминающее устройство), полупроводниковое устройство хранения данных, такое как ROM (постоянное запоминающее устройство), EEPROM (электрически стираемое программируемое постоянное запоминающее устройство) и флэш-память, вспомогательное устройство хранения данных, такое как HDD (жесткий диск) и SSD (твердотельлный накопитель), съемный диск, такой как DVD (универсальный цифровой диск), и носители данных (носители), такие как карта памяти в формате SD (карта памяти в формате Secure Digital). Могут приспосабливаться буфер и регистр. Альтернативно, могут приспосабливаться устройство хранения данных с использованием DAS (система хранения данных с прямым подключением), FC-SAN (сеть хранения данных по стандарту Fibre Channel), NAS (система хранения данных с подключением по сети), IP-SAN (сеть хранения данных по IP-протоколу) и т.п.
Процессор и запоминающее устройство могут быть интегрированы. Например, в последние годы, микрокомпьютер и т.п. интегрируются в один кристалл. Соответственно, однокристальный микрокомпьютер, установленный в электронном оборудовании, может содержать процессор и запоминающее устройство.
Альтернативно, каждый из секции 103 протокольного управления, функциональной секции 105 OpenFlow, секции 106 управления OpenFlow-таблицами, решающей секции 107 по OpenFlow-операциям, унаследованной функциональной секции 108, секции 109 управления унаследованными таблицами, решающей секции 110 по унаследованным операциям и функциональной секции 111 операций может быть платой расширения, установленной на компьютере, или виртуальной машиной (VM), сконструированной на физической машине.
В качестве примера порта 104 ввода и порта 112 вывода, можно привести полупроводниковую интегральную схему, такую как плата, соответствующая сетевой связи (материнская плата или плата ввода-вывода), сетевой адаптер, такой как NIC (сетевая интерфейсная плата) или аналогичные платы расширения, устройство связи, такое как антенна, и порт связи, такой как порт подключения (разъем).
Кроме того, в качестве примера сети, используемой посредством порта 104 ввода и порта 112 вывода, можно привести Интернет, LAN (локальную вычислительную сеть), беспроводную LAN, WAN (глобальную вычислительную сеть), магистральную сеть (магистральную линию), линию кабельного телевидения (CATV), стационарную телефонную сеть, мобильную телефонную сеть, сеть WiMax (IEEE 802.16a), сеть 3G (третьего поколения), арендованную линию связи, технологию IrDA (стандарт Ассоциации по передаче данных в инфракрасном диапазоне), технологию Bluetooth (зарегистрированная торговая марка), линию последовательной связи и шину данных.
Следует отметить, что каждый из секции 103 протокольного управления, функциональной секции 105 OpenFlow, секции 106 управления OpenFlow-таблицами, решающей секции 107 по OpenFlow-операциям, унаследованной функциональной секции 108, секции 109 управления унаследованными таблицами, решающей секции 110 по унаследованным операциям и функциональной секции 111 операций может быть модулем, компонентом или выделенным устройством либо их запускающей (вызывающей) программой.
Тем не менее, настоящее изобретение не ограничено этими примерами.
СВЕДЕНИЯ В ОТНОШЕНИИ РЕШАЮЩЕЙ СЕКЦИИ ПО OPENFLOW-ОПЕРАЦИЯМ
Фиг. 3 является схемой, показывающей подробности решающей секции 107 по OpenFlow-операциям настоящего изобретения.
Решающая секция 107 по OpenFlow-операциям и функциональная секция 116 поиска в TCAM (OF) имеют механизм и функции, идентичные механизму и функциям на фиг. 2.
Решающая секция 107 по OpenFlow-операциям реализуется в качестве части функциональной секции 116 поиска в TCAM (OF) посредством регулирования преобразования элементов TCAM (OF).
По этой причине, решающая секция 107 по OpenFlow-операциям и функциональная секция 116 поиска в TCAM (OF) фактически составляют один функциональный блок (поиск в TCAM (OF) и решающая секция по OpenFlow-операциям). Функциональный блок имеет межтабличный приоритет 117 и элемент 118 в TCAM (OF).
Межтабличный приоритет 117 указывает ожидаемый приоритет операций. Элемент 118 в TCAM (OF) указывает преобразование элементов в TCAM (OF), соответствующем приоритету.
Элемент 118 в TCAM (OF) включает в себя группу 119 элементов для поиска в TCAM (OF), элемент 120 для обращения к результатам поиска в L2-таблице (OF), элемент 121 для обращения к результатам поиска в L3-таблице (OF), элемент 122 для обращения к результатам поиска в другой таблице (OF) и элемент 123 для отсутствия совпадений.
Группа 119 элементов для поиска в TCAM (OF) является набором элементов для осуществления поиска в TCAM (OF) в функциональной секции 116 поиска в TCAM (OF). Элемент 120 для обращения к результатам поиска в L2-таблице (OF) является элементом для обращения к результатам поиска в L2-таблице (OF). Элемент 121 для обращения к результатам поиска в L3-таблице (OF) является элементом для обращения к результатам поиска в L3-таблице (OF). Элемент 122 для обращения к результатам поиска в другой таблице (OF) является элементом для обращения к результатам поиска в другой таблице (OF). Элемент 123 для отсутствия совпадений является элементом для трактовки пакета, который не совпадает ни с одним элементом, как "несовпадения". Иными словами, они представляют собой элементы, задающие вышеуказанные соответствующие операции.
РАБОТА РЕШАЮЩЕЙ СЕКЦИИ ПО OPENFLOW-ОПЕРАЦИЯМ
Ниже описывается работа решающей секции 107 по OpenFlow-операциям на фиг. 3.
В качестве порядка поиска в OpenFlow-таблице, в завершение функциональная секция 116 поиска в TCAM (OF) выполняет поиск. Следует отметить, что при поиске посредством функциональной секции 116 поиска в TCAM (OF), решающая секция 107 по OpenFlow-операциям может быть реализована посредством регулирования преобразования элементов TCAM (OF) в коммутаторе, который может обращаться к результатам поиска в L2-/L3-/других таблицах.
Например, ожидаемый приоритет операций для каждой таблицы в межтабличном приоритете 117 может трактоваться посредством преобразования для элемента 118 в TCAM (OF).
В случае примера, показанного на фиг. 3, приоритет 117 операций становится следующим: "полностью совместимые (эквивалентно TCAM (OF))", "совместимые с L2 (эквивалентно L2-таблице (OF))", "совместимые с L3 (эквивалентно L3-таблице (OF))", "совместимые с другими (эквивалентно другой таблице)" от наивысшего приоритета.
С использованием в качестве преобразования элементов в TCAM (OF), решающая секция 107 по OpenFlow-операциям может размещать "группу 119 элементов для реализации функции поиска в TCAM (OF)", "элемент 120 для обращения к результатам поиска в L2-таблице (OF)", "элемент 121 для обращения к результатам поиска в L3-таблице (OF)", "элемент 122 для обращения к результатам поиска в другой таблице (OF)" и "элемент 123 для отсутствия совпадений" в этом порядке от наибольшего приоритета поиска TCAM (OF).
ГРУППА ЭЛЕМЕНТОВ ДЛЯ ПОИСКА В TCAM (OF)
Группа 119 элементов для реализации функции поиска в TCAM (OF) является группой элементов для реализации функциональной секции 116 поиска в TCAM (OF) для функции поиска. Когда введенный пакет совпадает с какими-либо элементами группы 119 элементов для реализации функции поиска в TCAM (OF), решающая секция 107 по OpenFlow-операциям выбирает операцию элемента в качестве операции для пакета.
ЭЛЕМЕНТ ДЛЯ ОБРАЩЕНИЯ К РЕЗУЛЬТАТАМ ПОИСКА В L2-ТАБЛИЦЕ (OF)
Элемент 120 для обращения к результатам поиска в L2-таблице (OF) определяется как совпадающий на основе предыдущего результата поиска в L2-таблице (OF), когда элемент, соответствующий введенному пакету, существует в L2-таблице (OF).
Например, когда элемент, соответствующий введенному пакету, существует при поиске L2-таблицы (OF), задается флаг "X=1", и когда флаг "X=1" задан, элемент определяется как совпадающий в элементе 120 для обращения к результатам поиска в L2-таблице (OF) TCAM (OF).
Когда элемент 120 для обращения к результатам поиска в L2-таблице (OF) определяется как совпадающий, решающая секция 107 по OpenFlow-операциям выбирает операцию элемента L2-таблицы (OF) в качестве операции для пакета.
ЭЛЕМЕНТ ДЛЯ ОБРАЩЕНИЯ К РЕЗУЛЬТАТАМ ПОИСКА В L3-ТАБЛИЦЕ (OF)
Для элемента 121 для обращения к результатам поиска определяется, что этот элемент совпадает, на основе предыдущего результата поиска в L3-таблице (OF), когда элемент, соответствующий введенному пакету, существует в L3-таблице (OF).
Например, флаг "Y=1" задается, когда элемент, соответствующий введенному пакету, существует при поиске L3-таблицы (OF), и когда флаг "Y=1" задан, элемент определяется как совпадающий в элементе 121 для обращения к результатам поиска в L3-таблице (OF) для TCAM (OF).
Когда элемент 121 для обращения к результатам поиска в L3-таблице (OF) определяется как совпадающий, решающая секция 107 по OpenFlow-операциям выбирает операцию элемента L3-таблицы (OF) в качестве операции для пакета.
ЭЛЕМЕНТ ДЛЯ ОБРАЩЕНИЯ К РЕЗУЛЬТАТАМ ПОИСКА В ДРУГОЙ ТАБЛИЦЕ (OF)
Элемент 122 для обращения к результатам поиска определяется как совпадающий на основе предыдущего результата поиска в другой таблице (OF), когда элемент, соответствующий введенному пакету, существует в другой таблице (OF).
Например, когда элемент, соответствующий введенному пакету, существует при поиске другой таблицы (OF), задается флаг "Z=1", и когда флаг "Z=1" задан, элемент определяется как совпадающий в элементе 122 для обращения к результатам поиска в другой таблице (OF) TCAM (OF).
Когда элемент 122 для обращения к результатам поиска в другой таблице (OF) определяется как совпадающий, решающая секция 107 по OpenFlow-операциям выбирает операцию элемента другой таблицы (OF) в качестве операции для пакета.
ЭЛЕМЕНТ ДЛЯ ОТСУТСТВИЯ СОВПАДЕНИЙ
Элемент 123 для отсутствия совпадений является элементом, который определяется как совпадающий, когда введенный пакет не совпадает ни с одним элементом TCAM (OF).
Здесь, элемент 123 для отсутствия совпадений является элементом, с которым совпадает пакет, имеющий любой шаблон. Когда введенный пакет не совпадает ни с одним элементом TCAM (OF), а совпадает только с элементом 123 для отсутствия совпадений, решающая секция 107 по OpenFlow-операциям выбирает "поступление пакета" (запрос на операцию по пакету в контроллер) или "обычную" (обработку пакета с использованием унаследованной функциональной секции) в качестве операции для пакета согласно настройке OpenFlow.
Когда пользователь пытается изменять приоритет операций каждой таблицы, может быть изменен порядок элемента в TCAM (OF).
КРАТКИЕ СВЕДЕНИЯ ПО УПРАВЛЕНИЮ OPENFLOW-ТАБЛИЦЕЙ
Фиг. 4 является схематичным видом, показывающим управление OpenFlow-таблицами посредством контроллера согласно настоящему изобретению. Контроллер 101, коммутатор 102, секция 103 протокольного управления и группа 113 таблиц имеют механизм и функции, идентичные механизму и функциям на фиг. 1 и фиг. 2.
Коммутатор 102 включает в себя TCAM 124, L2-таблицу 125, L3-таблицу 126 и другую таблицу 127.
TCAM 124 включает в себя TCAM (OF) и (унаследованное) TCAM. L2-таблица 125 включает в себя L2-таблицу (OF) и (унаследованную) L2-таблицу. L3-таблица 126 включает в себя L3-таблицу (OF) и (унаследованную) L3-таблицу. Другая таблица 127 включает в себя другую таблицу (OF) и (унаследованную) другую таблицу.
TCAM (OF), L2-таблица (OF), L3-таблица (OF) и другая таблица (OF) составляют OpenFlow-таблицу.
(Унаследованное) TCAM, (унаследованная) L2-таблица, (унаследованная) L3-таблица и (унаследованная) другая таблица составляют унаследованную таблицу.
В общем, TCAM 124, L2-таблица 125, L3-таблица 126 и другая таблица 127 в коммутаторе 102 являются физической одной таблицей.
Коммутатор 102 согласно настоящему изобретению имеет функцию логического разделения одной физической таблицы (TCAM 124, L2-таблицы 125, L3-таблицы 126 и другой таблицы 127) на группу 113 таблиц, составляющую OpenFlow-таблицу, и группу 128 таблиц, составляющую унаследованную таблицу. Иными словами, коммутатор 102 разделяет и логически интегрирует одну физическую таблицу (TCAM 124, L2-таблицу 125, L3-таблицу 126 и другую таблицу 127) на основе условий и содержимого обработки, которые задаются для каждой таблицы, чтобы конструировать OpenFlow-таблицу (группу 113 таблиц) и унаследованную таблицу (группу 128 таблиц).
Группа 113 таблиц, составляющая OpenFlow-таблицу, включает в себя TCAM (OF), L2-таблицу (OF), L3-таблицу (OF) и другие таблицы (OF).
Группа 128 таблиц, составляющая унаследованную таблицу, включает в себя (унаследованное) TCAM, (унаследованную) L2-таблицу, (унаследованную) L3-таблицу и (унаследованную) другую таблицу.
КРАТКИЕ СВЕДЕНИЯ ПО УПРАВЛЕНИЮ OPENFLOW-ТАБЛИЦЕЙ
Ниже описываются краткие сведения по управлению OpenFlow-таблицами посредством контроллера на фиг. 4.
Контроллер 101 может управлять OpenFlow-таблицей коммутатора 102 через секцию 103 протокольного управления.
В общем, каждая из TCAM 124, L2-таблицы 125, L3-таблицы 126 и другой таблицы 127 в коммутаторе являются одной физической таблицей.
Коммутатор согласно настоящему изобретению имеет функцию отсечения и использования части табличного ресурса для OpenFlow и логического конструирования группы 113 таблиц, составляющей OpenFlow-таблицу, и группы 128 таблиц, составляющей унаследованную таблицу. Иными словами, коммутатор 102 конструирует логическую OpenFlow-таблицу (группу 113 таблиц) и унаследованную таблицу (группу 128 таблиц) на основе TCAM 124, L2-таблицы 125, L3-таблицы 126 и другой таблицы 127.
Таблицы, составляющие OpenFlow-таблицу, имеют различные осуществляемые OpenFlow-функции.
По этой причине, контроллер 101 должен выполнять управление OpenFlow-таблицами с учетом "1: Какая OpenFlow-функция может быть выполнена в каждой таблице?" и "2: Какой таблице, составляющей OpenFlow-таблицу, принадлежит элемент, который должен управляться?"
Ссылаясь, например, на "1", "контроллер имеет следующий механизм: функция, которая может осуществляться в каждой таблице, предварительно вводится (ввод), и возвращается ошибка, когда предпринимается другой тип управления", и "коммутатор имеет следующий механизм: ошибка возвращается для ком