КОММУТАЦИОННАЯ СИСТЕМА, СИСТЕМА УПРАВЛЕНИЯ КОММУТАЦИЕЙ И НОСИТЕЛЬ ДАННЫХ
SWITCHING SYSTEM, SWITCHING CONTROL SYSTEM AND DATA MEDIUM

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящее изобретение относится к коммутационной системе и, в частности, к коммутационной системе, в которой каждый коммутатор имеет множество таблиц.
УРОВЕНЬ ТЕХНИКИ
Чтобы управлять трактом связи в сетевой системе, недавно разработан способ управления трактом, приспосабливающий 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", "контроллер имеет следующий механизм: функция, которая может осуществляться в каждой таблице, предварительно вводится (ввод), и возвращается ошибка, когда предпринимается другой тип управления", и "коммутатор имеет следующий механизм: ошибка возвращается для команды управления из контроллера, когда целевая таблица не имеет функции, соответствующей управлению".
Ссылаясь, например, на "2", "определенный диапазон приоритетов (0-64k) в OpenFlow-таблице назначается каждой таблице, и таблица, которая должна быть использована, определяется на основе диапазона приоритетов, когда контроллер осуществляет управление", или "идентификатор назначается каждой таблице, составляющей OpenFlow-таблицу, таблица, которая должна быть использована, определяется на основе идентификатора, когда контроллер осуществляет управление".
ПОДРОБНОСТИ УПРАВЛЕНИЯ OPENFLOW-ТАБЛИЦЕЙ (1)
Фиг. 5 является схемой, показывающей подробности примера первого способа управления OpenFlow-таблицами посредством контроллера согласно настоящему изобретению. Здесь описывается случай указания таблицы посредством использования диапазона приоритетов.
Контроллер 101, коммутатор 102, секция 106 управления OpenFlow-таблицами и группа 113 таблиц имеют механизм и функции, идентичные механизму и функциям на фиг. 1 и 2.
Секция 106 управления OpenFlow-таблицами функциональной секции 105 OpenFlow назначает диапазон приоритетов каждой таблице из группы 113 таблиц, составляющей OpenFlow-таблицу.
В случае указания таблицы на основе диапазона приоритетов не должны перекрываться диапазоны приоритетов таблиц. Сумма диапазонов приоритетов не должна превышать диапазон приоритетов, предписываемый в OpenFlow.
Контроллер 101 указывает таблицу на основе значения в диапазоне приоритетов, назначаемого каждой таблице.
Секция 106 управления OpenFlow-таблицами функциональной секции 105 OpenFlow определяет таблицу, которая должна быть использована, на основе значения в диапазоне приоритетов, который указывается посредством контроллера 101.
ПОДРОБНОСТИ УПРАВЛЕНИЯ OPENFLOW-ТАБЛИЦЕЙ (2)
Фиг. 6 является схемой, показывающей подробности примера второго способа управления OpenFlow-таблицами посредством контроллера согласно настоящему изобретению. Здесь описывается случай указания таблицы посредством использования идентификатора таблицы.
Контроллер 101, коммутатор 102, секция 106 управления OpenFlow-таблицами и группа 113 таблиц имеют механизм и функции, идентичные механизму и функциям на фиг. 1 и фиг. 2.
Секция 106 управления OpenFlow-таблицами функциональной секции 105 OpenFlow назначает идентификатор 129 таблицы каждой таблице из группы 113 таблиц, составляющей OpenFlow-таблицу.
В случае указания таблицы на основе идентификатора таблицы не должны перекрываться идентификаторы таблиц. С другой стороны, диапазоны приоритетов, заданные для таблиц, могут перекрываться. Это обусловлено тем, что каждая таблица идентифицируется согласно идентификатору 129 таблицы в качестве отдельной таблицы, и приоритет каждой таблицы определяется посредством решающей секции 107 по OpenFlow-операциям.
Контроллер 101 указывает таблицу согласно идентификатору 129 таблицы, назначаемому каждой таблице.
Секция 106 управления OpenFlow-таблицами функциональной секции 105 OpenFlow определяет таблицу, которая должна быть использована, на основе идентификатора 129 таблицы, указанного посредством контроллера 101.
ПРИМЕР (1) РАБОТЫ ДЛЯ ОБРАБОТКИ ПРИ ПОСТУПЛЕНИИ ПАКЕТА
Фиг. 7A и 7B показывают первый пример работы коммутационной системы при поступлении пакета согласно настоящему изобретению. Для упрощения, показан только функциональный блок, связанный с работой. Этапы S101-S107 показывают общую последовательность операций от поступления пакета.
(1) Этап S101
Контроллер 101 предварительно регистрирует элемент (1) TCAM (OF) {Условие совпадения: IP назначения=AA, Операция: игнорировать} в коммутаторе 102. Коммутатор 102 регистрирует элемент (1) TCAM (OF) в TCAM (OF) из группы 113 таблиц.
"Условие совпадения" задается на основе комбинации необязательной информации заголовка L1-L4. "Операция" задает операцию, к примеру, ретрансляция/отбрасывание/перезапись информации заголовка, для пакета, который удовлетворяет условию совпадения.
(2) Этап S102
Контроллер 101 предварительно регистрирует элемент (1) L3-таблицы (OF) {Условие совпадения: IP назначения=AA, Операция: вывод из порта 1} и элемент (2) L3-таблицы (OF) {Условие совпадения: IP назначения=BB, Операция: вывод из порта 2} в коммутаторе 102. Коммутатор 102 регистрирует элемент (1) L3-таблицы (OF) и элемент (2) L3-таблицы (OF) в L3-таблице (OF) из группы 113 таблиц.
(3) Этап S103
Когда пакет "IP назначения=AA" проходит в допустимый OpenFlow-порт при поступлении пакета, порт 104 ввода передает пакет в функциональную секцию 105 OpenFlow.
(4) Этап S104
Когда пакет "IP назначения=AA" проходит в допустимый OpenFlow-порт, функциональная секция 105 OpenFlow обрабатывает пакет.
(5) Этап S105
Во-первых, в функциональной секции 105 OpenFlow, функциональная секция 115 поиска в L2-/L3-/других таблицах (OF) выполняет поиск поступающего пакета в L2-/L3-/другой таблице (OF). При этом поиске, пакет имеет совпадение для элемента (1) L3-таблицы (OF).
(6) Этап S106
Функциональная секция 115 поиска в L2-/L3-/других таблицах (OF) сообщает результат поиска в решающую секцию 107 по OpenFlow-операциям. На фиг. 7B, решающая секция 107 по OpenFlow-операциям и функциональная секция 116 поиска в TCAM (OF) показаны как один функциональный блок (поиск в TCAM (OF) и решающая секция по OpenFlow-операциям).
(7) Этап S107
Функциональная секция 116 поиска в TCAM (OF) выполняет поиск поступающего пакета в TCAM (OF). При этом поиске пакет сначала совпадает с элементом (1) TCAM (OF). В это время, обработка поиска для TCAM (OF) завершается. Функциональная секция 116 поиска в TCAM (OF) сообщает результат поиска в решающую секцию 107 по OpenFlow-операциям.
(8) Этап S108
Решающая секция 107 по OpenFlow-операциям принимает результат поиска из каждого из функциональной секции 115 поиска в L2-/L3-/других таблицах (OF) и функциональной секции 116 поиска в TCAM (OF) и определяет операцию для поступающего пакета согласно межтабличному приоритету. Здесь, приоритет TCAM (OF) является наибольшим. По этой причине, решающая секция 107 по OpenFlow-операциям определяет операцию (игнорировать) элемента (1) TCAM (OF) в качестве операции для поступающего пакета и сообщает относительно определенной операции (игнорировать) в функциональную секцию 111 операций.
(9) Этап S109
Функциональная секция 111 операций выполняет операцию (игнорировать), определенную посредством решающей секции 107 по OpenFlow-операциям. Здесь, поскольку операция - это "игнорировать", функциональная секция 111 операций не выводит пакет. Функциональная секция 111 операций отбрасывает поступающий пакет и последующие пакеты, принадлежащие идентичному потоку.
ПРИМЕР (2) РАБОТЫ ДЛЯ ОБРАБОТКИ ПРИ ПОСТУПЛЕНИИ ПАКЕТА
Фиг. 8A и 8B показывают второй пример работы коммутационной системы при поступлении пакета согласно настоящему изобретению. Для упрощения, показаны только функциональные блоки, связанные с работой. Этапы S201-S210 показывают общую последовательность операций от поступления пакета.
(1) Этап S201
Контроллер 101 предварительно регистрирует элемент (1) TCAM (OF) {Условие совпадения: IP назначения=AA, Операция: игнорировать} в коммутаторе 102. Коммутатор 102 регистрирует элемент (1) TCAM (OF) в TCAM (OF) из группы 113 таблиц.
(2) Этап S202
Контроллер 101 предварительно регистрирует элемент (1) L3-таблицы (OF) {Условие совпадения: IP назначения=AA, Операция: вывод из порта 1} и элемент (2) L3-таблицы (OF) {Условие совпадения: IP назначения=BB, Операция: вывод из порта 2} в коммутаторе 102. Коммутатор 102 регистрирует элемент (1) L3-таблицы (OF) и элемент (2) L3-таблицы (OF) в L3-таблице (OF) из группы 113 таблиц.
(3) Этап S203
Когда пакет "IP назначения=BB" проходит в допустимый OpenFlow-порт при поступлении пакета, порт 104 ввода передает пакет в функциональную секцию 105 OpenFlow.
(4) Этап S204
Когда пакет "IP назначения=BB" проходит в допустимый OpenFlow-порт, функциональная секция 105 OpenFlow обрабатывает пакет.
(5) Этап S205
Во-первых, в функциональной секции 105 OpenFlow, функциональная секция 115 поиска в L2-/L3-/других таблицах (OF) выполняет поиск пакета в L2-/L3-/другой таблице (OF). При этом поиске пакет совпадает с элементом (2) L3-таблицы (OF).
(6) Этап S206
Функциональная секция 115 поиска в L2-/L3-/других таблицах (OF) сообщает в решающую секцию 107 по OpenFlow-операциям результат поиска. На фиг. 8B, решающая секция 107 по OpenFlow-операциям и функциональная секция 116 поиска в TCAM (OF) показаны как один функциональный блок (поиск в TCAM (OF) и решающая секция по OpenFlow-операциям).
(7) Этап S207
Функциональная секция 116 поиска в TCAM (OF) выполняет поиск поступающего пакета в TCAM (OF). Тем не менее, поскольку поступающий пакет является пакетом "IP назначения=BB", в TCAM (OF) не существует элемента относительно того, что пакет совпадает с каким-либо элементом. В это время, обработка поиска для TCAM (OF) завершается. Функциональная секция 116 поиска в TCAM (OF) сообщает результат поиска в решающую секцию 107 по OpenFlow-операциям. В это время, обработка поиска для TCAM (OF) завершается. Функциональная секция 116 поиска в TCAM (OF) сообщает результат поиска в решающую секцию 107 по OpenFlow-операциям.
(8) Этап S208
Решающая секция 107 по OpenFlow-операциям принимает результат поиска из каждого из функциональной секции 115 поиска в L2-/L3-/других таблицах (OF) и функциональной секции 116 поиска в TCAM (OF) и определяет операцию для поступающего пакета согласно межтабличному приоритету. Здесь, целевой элемент существует только в элементе (2) L3-таблицы (OF). Таким образом, решающая секция 107 по OpenFlow-операциям определяет операцию (вывод из порта 2) элемента (2) L3-таблицы (OF) в качестве операции для поступающего пакета и сообщает относительно определенной операции (вывод из порта 2) в функциональную секцию 111 операций.
(9) Этап S209
Функциональная секция 111 операций выполняет операцию (вывод из порта 2), определенную посредством решающей секции 107 по OpenFlow-операциям.
(10) Этап S210
Функциональная секция 111 операций выводит поступающий пакет и последующие пакеты, принадлежащие идентичному потоку, на порт 112 вывода, имеющий порт 2.
(11) Этап S211
Порт 112 вывода выводит пакеты, выведенные из функциональной секции 111 операций, на порт 2.
(12) Этап S212
Пакеты, выведенные из порта 2, проходят по сети и передаются на "IP назначения=BB".
На фиг. 8A и 8B, когда поступающий пакет совпадает с какими-либо элементами во множестве таблиц, функциональная секция 115 поиска в L2-/L3-/других таблицах (OF) сообщает все совпадающие элементы в решающую секцию 107 по OpenFlow-операциям в качестве результата поиска. Когда поступающий пакет не совпадает ни с одним элементом в TCAM (OF) с наивысшим приоритетом, решающая секция 107 по OpenFlow-операциям приспосабливает совпадение с элементом в таблице с более высоким приоритетом из результатов поиска функциональной секции 115 поиска в L2-/L3-/других таблицах (OF).
На фиг. 8A и 8B, когда поступающий пакет совпадает с элементами во множестве таблиц, функциональная секция 115 поиска в L2-/L3-/других таблицах (OF) может сообщать элемент, который совпадает в таблице с более высоким приоритетом из этих таблиц, в решающую секцию 107 по OpenFlow-операциям в качестве результата поиска согласно межтабличному приоритету 117.
ПРИМЕР (1) УПРАВЛЕНИЯ OPENFLOW-ТАБЛИЦАМИ
Фиг. 9 показывает пример первого способа управления OpenFlow-таблицами посредством контроллера в случае указания таблицы на основе диапазона приоритетов.
Регистрационная информация 132 является информацией из контроллера 101 в секцию 106 управления OpenFlow-таблицами коммутатора 102. Результат 133 регистрации представляет собой результат регистрации группы 113 таблиц, составляющей OpenFlow-таблицу.
Когда группа 113 таблиц, составляющая OpenFlow-таблицу, предполагается как одна таблица, коммутатор 102 управляет таблицей, ожидаемой согласно приоритету.
(1) Этап S301
Контроллер 101 регистрирует элемент {Приоритет: 50001, Условие совпадения: XXXX, Операция: YYYY} в коммутаторе 102.
(2) Этап S302
Когда элемент регистрируется из контроллера 101, коммутатор 102 выбирает L2-таблицу (OF) в качестве таблицы согласно приоритету относительно элемента и регистрирует элемент в L2-таблице (OF).
ПРИМЕР (2) УПРАВЛЕНИЯ OPENFLOW-ТАБЛИЦАМИ
Фиг. 10 показывает пример второго способа управления OpenFlow-таблицами посредством контроллера в случае указания таблицы на основе идентификатора таблицы.
Регистрационная информация 134 является регистрационной информацией из контроллера в OpenFlow-таблицы. Результат 135 регистрации представляет собой результат регистрации в группе таблиц, составляющей OpenFlow-таблицу.
Когда таблицы из группы таблиц, составляющей OpenFlow-таблицу, предполагаются в качестве различных OpenFlow-таблиц, коммутатор 102 управляет таблицей, ожидаемой согласно идентификатору таблицы.
(1) Этап S401
Контроллер 101 регистрирует элемент {Идентификатор таблицы: #2, Приоритет: 1, Условие совпадения: XXXX, Операция: YYYY} в коммутаторе 102.
(2) Этап S402
Когда элемент регистрируется из контроллера 101, коммутатор 102 выбирает L2-таблицу (OF) в качестве таблицы согласно идентификатору таблицы и регистрирует элемент в L2-таблице (OF).
ПРИЗНАКИ ПЕРВОГО ПРИМЕРНОГО ВАРИАНТА ОСУЩЕСТВЛЕНИЯ
В этом примерном варианте осуществления, решающая секция по OpenFlow-операциям может интегрировать ресурсы множества таблиц и сравнивать приоритеты таблиц друг с другом, чтобы разрешать операцию.
Соответственно, OpenFlow-таблица большого размера может конструироваться посредством использования ресурса множества таблиц коммутатора. В силу этого, коммутатор может управлять большим объемом потоков.
В этом примерном варианте осуществления, каждая таблица, составляющая OpenFlow-таблицу, может быть идентифицирована на основе "диапазона приоритетов" в случае использования OpenFlow-таблицы в качестве одной OpenFlow-таблицы большого размера или "идентификатора таблицы" в случае использования каждой таблицы из группы таблиц, составляющей OpenFlow-таблицу, в качестве множества различных OpenFlow-таблиц. Соответственно, OpenFlow-таблица, состоящая из множества таблиц коммутатора, может быть использована в качестве одной OpenFlow-таблицы большого размера или множества различных OpenFlow-таблиц. В силу этого, может гибко управляться OpenFlow-таблица, сконфигурированная из множества таблиц.
ВТОРОЙ ПРИМЕРНЫЙ ВАРИАНТ ОСУЩЕСТВЛЕНИЯ
Второй примерный вариант осуществления настоящего изобретения описывается ниже со ссылкой на прилагаемые чертежи. Второй примерный вариант осуществления представляет собой примерный вариант осуществления решающей секции по OpenFlow-операциям, когда функциональная секция поиска в TCAM (OF) не включает в себя решающую секцию по OpenFlow-операциям.
ПРИМЕР 1
Фиг. 11 является схемой, показывающей сведения в отношении функциональной секции 105 OpenFlow, когда поиск выполняется посредством "функциональной секции 116 поиска в TCAM (OF)" и "функциональной секции 115 поиска в L2-/L3-/других таблицах (OF)" в этом порядке.
Функциональная секция 105 OpenFlow, секция 106 управления OpenFlow-таблицами, решающая секция 107 по OpenFlow-операциям, функциональная секция 111 операций, группа 113 таблиц, функциональная секция 114 поиска, функциональная секция 115 поиска в L2-/L3-/других таблицах (OF) и функциональная секция 116 поиска в TCAM (OF) имеют механизм и функции, идентичные механизму и функциям на фиг. 2.
Ссылаясь на фиг. 11, описывается работа функциональной секции 105 OpenFlow, когда поиск выполняется посредством "функциональной секции 116 поиска в TCAM (OF)" и "функциональной секции 115 поиска в L2-/L3-/других таблицах (OF)" в этом порядке.
Фиг. 11 показывает случай, когда в функциональной секции 114 поиска секции 106 управления OpenFlow-таблицами, функциональная секция 116 поиска в TCAM (OF) в итоге не выполняет поиск.
На фиг. 11, поскольку поиск выполняется посредством "функциональной секции 116 поиска в TCAM (OF)" и "функциональной секции 115 поиска в L2-/L3-/других таблицах (OF)" в этом порядке, функциональная секция 116 поиска в TCAM (OF) не может включать в себя решающую секцию 107 по OpenFlow-операциям.
ПРИМЕР 2
Фиг. 12 является схемой, показывающей сведения в отношении функциональной секции 105 OpenFlow, когда функциональная секция 116 поиска в TCAM (OF) и функциональная секция 116 поиска в L2-/L3-/других таблицах (OF) выполняют поиск одновременно.
Функциональная секция 105 OpenFlow, секция 106 управления OpenFlow-таблицами, решающая секция 107 по OpenFlow-операциям, функциональная секция 111 операций, группа 113 таблиц, функциональная секция 114 поиска, функциональная секция 115 поиска в L2-/L3-/других таблицах (OF) и функциональная секция 116 поиска в TCAM (OF) имеют механизм и функции, идентичные механизму и функциям на фиг. 2.
Ссылаясь на фиг. 12, описывается работа функциональной секции 105 OpenFlow, когда функциональная секция 115 поиска в L2-/L3-/других таблицах (OF) и функциональная секция 116 поиска в TCAM (OF) выполняют поиск одновременно.
Фиг. 12 показывает случай, когда в функциональной секции 114 поиска секции 106 управления OpenFlow-таблицами, функциональная секция 116 поиска в TCAM (OF) в итоге не выполняет поиск.
Поскольку функциональная секция 115 поиска в L2-/L3-/других таблицах (OF) и функциональная секция 116 поиска в TCAM (OF) выполняют поиск одновременно, функциональная секция 116 поиска в TCAM (OF) не может включать в себя решающую секцию 107 по OpenFlow-операциям.
ПРИМЕР 3
Фиг. 13 показывает примерный вариант осуществления решающей секции 107 по OpenFlow-операциям, когда функциональная секция 116 поиска в TCAM (OF) не может включать в себя решающую секцию 107 по OpenFlow-операциям.
Решающая секция 107 по OpenFlow-операциям и функциональная секция 111 операций имеют механизм и функции, идентичные механизму и функциям на фиг. 2.
Решающая секция 107 по OpenFlow-операциям включает в себя секцию 130 приема результатов поиска (приемная секция для результатов поиска) и решающую секцию 131 по процессам (решающая секция по операциям).
Секция 130 приема результатов поиска (приемная секция для результатов поиска) принимает результат поиска для каждой таблицы. Решающая секция 131 по процессам (решающая секция по операциям) определяет OpenFlow-обработку на основе результата поиска для каждой таблицы.
Ссылаясь на фиг. 13, описывается работа решающей секции 107 по OpenFlow-операциям, когда функциональная секция 116 поиска в TCAM (OF) не может включать в себя решающую секцию 107 по OpenFlow-операциям.
Когда функциональная секция 116 поиска в TCAM (OF) не может включать в себя решающую секцию 107 по OpenFlow-операциям, решающая секция 107 по OpenFlow-операциям, как показано на фиг. 13, устанавливается в коммутаторе 102.
В решающей секции 107 по OpenFlow-операциям секция 130 приема результатов поиска (приемная секция для результатов поиска) принимает результат поиска для каждой таблицы. Решающая секция 131 по процессам (решающая секция по операциям) определяет операцию OpenFlow на основе результата поиска для каждой таблицы и предварительно заданного межтабличного приоритета и сообщает относительно определенной операции в функциональную секцию 111 операций.
ДРУГИЕ ПРИМЕРНЫЕ ВАРИАНТЫ ОСУЩЕСТВЛЕНИЯ
Хотя коммутатор 102 описывается как OpenFlow-коммутатор в каждом из вышеупомянутых примерных вариантов осуществления, OpenFlow-коммутатор является просто примером. Фактически, коммутатор не ограничивается OpenFlow-коммутатором, и настоящее изобретение также может применяться к любому коммутатору, имеющему механизм и функции, идентичные механизму и функциям OpenFlow-коммутатора.
ПРИЗНАКИ НАСТОЯЩЕГО ИЗОБРЕТЕНИЯ
Настоящее изобретение относится к способу увеличения размера OpenFlow-таблицы посредством интеграции множества таблиц.
Согласно настоящему изобретению, в OpenFlow-таблице, состоящей из одной таблицы (главным образом, TCAM) коммутатора, увеличение числа элементов потоков в OpenFlow-таблице осуществляется посредством конструирования OpenFlow-таблицы из множества таблиц коммутатора.
В OpenFlow-технологии функция передачи и функция управления установлены в идентичном NW-оборудовании (маршрутизаторе/коммутаторе и т.п.) и отделены друг от друга, функция передачи по-прежнему остается в NW-оборудовании, а функция управления заменяется внешним контроллером. Контроллер удаленно обслуживает OpenFlow-таблицу в NW-оборудовании согласно OpenFlow-протоколу, чтобы управлять режимом работы NW-оборудования. OpenFlow-таблица состоит из группы элементов потоков, включающей в себя три типа информации: {Условие совпадения, операция, статистическая информация}. В OpenFlow-технологии условие совпадения задает поток, который должен управляться, и операция и статистическая информация могут быть обнаружены в единицах потоков.
Краткие сведения по {Условие совпадения, операция, статистическая информация} OpenFlow следующие.
УСЛОВИЕ СОВПАДЕНИЯ
"Входной порт (порт ввода)"/"Src MAC (исходный MAC-адрес)"/"Dst MAC (MAC-адрес назначения)"/"Ethertype (тип/поле)"/"Идентификатор VLAN (идентификационная информация виртуальной LAN)"/"Приоритет VLAN (виртуальный приоритет LAN)"/"Src IP (исходный IP-адрес)"/"Dst IP (IP-адрес назначения)"/"IP-протокол (номер IP-протокола)"/"IP ToS (первые 6 битов)"/"Src Port (номер исходного порта)"/"Dst Port (номер порта назначения)".
ОПЕРАЦИИ
"Перенаправить (вывод из физического порта)"/"Все (вывод из всех портов, кроме порта ввода)"/"Контроллер (вывод в контроллер)"/"Локальный (вывод в локальный стек устройства)"/"Таблица (вывод согласно содержимому в OpenFlow-таблице)"/"In_port (вывод из порта ввода)"/"Обычная (вывод с использованием содержимого в унаследованной таблице)"/"Лавинная маршрутизация (вывод из всех портов, кроме порта ввода, и блокировка порта на основе алгоритма связующего дерева)"/"Игнорировать (отбрасывание пакета)"/"Модифицировать поле (перезапись информации заголовка пакета)".
Например, в случае "Модифицировать поле" могут быть перезаписаны "Идентификатор VLAN", "Приоритет VLAN (приоритет)", "Src MAC", "Dst MAC", "Src IP", "Dst IP", "IP ToS", "Src Port" и "Dst Port".
СТАТИСТИЧЕСКАЯ ИНФОРМАЦИЯ
Различные типы статистической информации в единицах "таблицы", "потока", "физического порта" и "очереди (Queue)".
Согласно настоящему изобретению, увеличение числа элементов потоков в OpenFlow-таблице в качестве устройства может быть реализовано без увеличения размера непосредственно таблицы (главным образом, TCAM) коммутатора посредством образования OpenFlow-таблицы посредством использования множества таблиц коммутатора. Иными словами, множество таблиц в коммутаторе может быть использовано в качестве OpenFlow-таблицы большого размера со стороны контроллера.
В частности, интеграция в OpenFlow-таблицу осуществляется посредством поглощения отличия между функциями (условие совпадения/операция) каждой таблицы. Поскольку множество таблиц коммутатора имеют первоначальное применение (например, L2-ретрансляция в L2-таблице, L3-ретрансляция в L3-таблице), все ресурсы не используются, а отсекается и используется часть ресурсов.
Как описано выше, признаки настоящего изобретения заключаются в том, чтобы "поглощать отличие "условия совпадения/операции" множества таблиц и интегрировать таблицы в OpenFlow-таблицу", и "предоставлять конкретный способ определения операций".
Согласно настоящему изобретению, часть из множества табличных ресурсов коммутатора используется в качестве OpenFlow-таблицы.
Согласно настоящему изобретению, каждая таблица коммутатора трактуется как "функционально ограниченный табличный OpenFlow-ресурс" согласно осуществляемой функции (условие совпадения/операция).
Согласно настоящему изобретению, решающая секция по OpenFlow-операциям поглощает отличие между функциями (условие совпадения/операция) каждого табличного ресурса и интегрирует ресурсы в качестве табличного OpenFlow-ресурса.
Согласно настоящему изобретению, решающая секция по OpenFlow-операциям определяет операцию на основе приоритета (Priority) таблиц, включающих в себя TCAM.
В коммутаторе, в котором в итоге выполняется поиск в TCAM (OF), решающая секция по OpenFlow-операциям включается в функционально секции поиска в TCAM (OF).
Согласно настоящему изобретению, OpenFlow-таблица, сконфигурированная из множества таблиц, гибко управляется посредством контроллера.
Согласно настоящему изобретению, когда множество таблиц используются в качестве одной OpenFlow-таблицы, таблица идентифицируется на основе диапазона приоритетов.
Согласно настоящему изобретению, когда множество таблиц используются в качестве OpenFlow-таблицы, таблицы идентифицируются на основе идентификатора таблицы.
Хотя подробно описаны примерные варианты осуществления настоящего изобретения, настоящее изобретение не ограничено вышеуказанными примерными вариантами осуществления, и модификации, которые не отступают от предмета настоящего изобретения, попадают в пределы объема настоящего изобретения.
Эта заявка притязает на приоритет заявки на патент (Япония) номер JP 2010-200690. Ее раскрытие содержится в данном документе по ссылке.