СПОСОБ И УСТРОЙСТВО ДЛЯ ПЕРЕДАЧИ ИНФОРМАЦИИ О ФУНКЦИЯХ КОММУТАТОРА OPENFLOW
METHOD AND DEVICE FOR TRANSMITTING INFORMATION ON OPENFLOW SWITCH FUNCTIONS

Область техники
Настоящее изобретение относится к технологиям программно-определяемых сетей (Software Defined Network, SDN), однако без ограничения ими. А именно, настоящее изобретение относится к способу и устройству для передачи информации о функциях коммутатора OpenFlow.
Предпосылки создания изобретения
В архитектуре, применяемой в сетях OpenFlow ("открытый поток"), плоскость управления отделена от плоскости коммутации. Фиг. 1 представляет собой эскизную блок-схему архитектуры компонентов сети OpenFlow. В соответствии с фиг. 1, плоскость управления сети OpenFlow реализована при помощи контроллера OpenFlow, а плоскость коммутации сети OpenFlow реализована при помощи коммутатора OpenFlow, при этом между контроллером OpenFlow и коммутатором OpenFlow функционирует протокол OpenFlow. Контроллер OpenFlow, с помощью протокола OpenFlow, по каналу OpenFlow передает в коммутатор OpenFlow таблицу потоков и групповую таблицу, благодаря чему решаются задачи управления коммутацией данных, а также удается разнести коммутацию данных и управление маршрутизацией.
Согласно правилам спецификации протокола OpenFlow, поскольку различные коммутаторы OpenFlow могут обладать различными функциями, после того, как контроллер OpenFlow установит соединение управления с коммутатором OpenFlow, контроллер OpenFlow получает информацию о функциях различных типов, которыми обладает плоскость коммутации, при помощи передачи множества различных типов сообщений с запросом информации о функциях. Упомянутые множество типов сообщений с запросом информации о функциях включают сообщения с запросом информации о функциях коммутатора, сообщения с запросом информации о функциях таблицы, сообщения с запросами информации о групповых функциях и т.п. После приема сообщения с запросом информации о функциях любого типа, переданного контроллером OpenFlow, коммутатор OpenFlow отвечает контроллеру OpenFlow соответствующим типом сообщения с уведомлением о функциях, которые включают сообщения с уведомлением о функциях коммутатора, сообщения с уведомлением о функциях таблицы и сообщения с уведомлением о групповых функциях и т.п. Одна или более передаваемых характеристик коммутатора OpenFlow включают максимальное количество таблиц потоков, максимальную емкость каждой из таблиц потоков, поддерживаемые типы групповых таблиц, максимальную емкость групповых таблиц каждого типа, тип поля соответствия, поддерживаемый каждым уровнем таблиц потоков, тип операций, поддерживаемый каждым уровнем таблиц потоков и т.п. При этом для получения информации о портах коммутатора OpenFlow контроллер OpenFlow также передает в коммутатор OpenFlow сообщение с запросом информации о портах, в результате чего он может получить такую информацию о портах как номер порта, скорость порта, состояние порта и аналогичную информацию для всех портов коммутатора OpenFlow.
На существующем уровне техники часто применяют оверлейные сети. Фиг. 2 представляет собой эскизную блок-схему структуры оверлейной сети. В соответствии с иллюстрацией, оверлейная сеть содержит сетевые узлы двух различных типов, а именно, краевые узлы и промежуточные узлы. Клиентские устройства, чтобы получить доступ к оверлейной сети, соединяются с краевыми узлами. Краевые узлы добавляют ко всем информационным пакетам, попадающим в оверлейную сеть, внешнюю инкапсулирующую оболочку. Внешняя инкапсулирующая оболочка содержит внешние адреса отправления и назначения, необходимые для коммутации промежуточных узлов. В данном примере внешние адреса отправления указывают на локальные краевые узлы, добавляющие инкапсулирующую оболочку, а внешние адреса назначения указывают на удаленные краевые узлы. После приема информационных пакетов, к которым были добавлены инкапсулирующие оболочки, удаленные краевые узлы сначала отбрасывают из этих пакетов инкапсулирующие оболочки и затем пересылают информационные пакеты с отброшенными инкапсулирующими оболочками в подключенные пользовательские устройства.
Сегодня технологии оверлейных сетей часто применяют в сетях центров обработки данных, при этом значительное количество серверов центров обработки данных, используемых в качестве пользовательских устройств, соединены друг с другом с помощью технологии оверлейных сетей. На существующем уровне техники известны несколько протоколов инкапсуляции оверлейных сетей, как стандартизированных, так и еще не прошедших стандартизации. Среди таких протоколов: инкапсуляция с помощью виртуальной расширяемой локальной сети (Local Area Network, VxLAN), описанная в рабочем предложении (Request For Comments) 7348 Инженерного совета Интернета (Internet Engineering Task Force, IETF), инкапсуляция с помощью технологии прозрачной взаимосвязи множества линий связи (Transparent Interconnection of Lots of Links, Trill), описанная в рабочем предложении RFC 6325, стандартная инкапсуляция протокола пользовательских датаграмм (User Datagram Protocol, UDP), описанная в документе drafts-ietf-nvo3-gue IETF, инкапсуляция с помощью технологии магистрального моста провайдера (Backbone Bridging, РВВ), описанная в стандарте 802.1 ah, принятом Института инженеров электротехники и электроники (Institute of Electrical and Electronics Engineers, IEEE) и т.п. Серверные ресурсы датацентра могут сдаваться в аренду некоторому количеству различных арендаторов, при этом различные арендаторы могут требовать использования различных протоколов инкапсуляции оверлейных сетей для реализации соединений между серверами, принадлежащими арендаторам. К примеру, арендатору А может быть необходимо применение VxLAN-инкапсуляции, арендатор В может требовать применения Trill-инкапсуляции, арендатору С может быть необходима GUE-инкапсуляция, а арендатору D - РВВ-инкапсуляция. Чтобы описанные выше требования могли быть удовлетворены, различные линейные карты в коммутаторе OpenFlow, который применяют в качестве узла оверлейной сети и который содержит множество линейных карт, должны поддерживать различные протоколы инкапсуляции оверлейной сети, например, линейная карта А может поддерживать инкапсуляцию VxLAN, линейная карта В может поддерживать Trill-инкапсуляюцию, линейная карта С может поддерживать GUE-инкапсуляцию, линейная карта D может поддерживать РВВ-инкапсуляцию и т.п. На существующем уровне техники краевые узлы, поддерживающие протокол OpenFlow в оверлейной сети, не способны передавать в контроллер OpenFlow информацию о функциях различных линейных карт в соответствующих узлах.
На существующем уровне техники проблема, связанная с невозможностью передачи информации о различных функциях различных линейных карт коммутатора OpenFlow в контроллер OpenFlow, еще не была успешно решена.
Сущность изобретения
Ниже будет кратко описана сущность настоящего изобретения. Данное краткое описание не следует рассматривать как ограничивающее объем правовой защиты настоящего изобретения.
В одном из вариантов осуществления настоящего изобретения предложен способ передачи информации о функциях коммутатора OpenFlow, позволяющий реализовать передачу информации о функциях различных линейных карт из состава коммутатора OpenFlow в контроллер OpenFlow, соответственно.
В одном из вариантов осуществления настоящего изобретения предложен способ передачи информации о функциях коммутатора OpenFlow, включающий:
когда в коммутаторе OpenFlow становится известно, что контроллеру OpenFlow необходимо запросить информацию о портах, передачу идентификаторов групп портов для тех групп портов, которым принадлежит каждый из портов коммутатора OpenFlow или каждый из портов, запрашиваемых контроллером OpenFlow, в контроллер OpenFlow, при этом группы портов получают группированием портов с различными функциями в коммутаторе OpenFlow на основании одного или более типа функций, и при этом каждая из групп портов имеет идентификатор группы портов.
В одном из примеров осуществления настоящего изобретения, когда в коммутаторе OpenFlow становится известно, что контроллеру OpenFlow необходимо запросить информацию о функциях для первого типа функций, способ дополнительно включает:
передачу, коммутатором OpenFlow, идентификатора группы портов для каждой из групп портов, полученных группированием на основании первого типа функций, в контроллер OpenFlow.
В одном из примеров осуществления настоящего изобретения, перед выполнением предложенного способа выполняют следующие шаги:
группирование, коммутатором OpenFlow, портов с различными функциями на основании одного или более типа функций и назначение идентификатора группы портов каждой группе портов.
В одном из примеров осуществления настоящего изобретения идентификаторы групп портов для тех групп портов, которым принадлежит каждый из портов, включают:
количество имеющихся идентификаторов групп портов и значение каждого из идентификаторов групп портов.
В одном из примеров осуществления настоящего изобретения типы функций включают одно из следующего:
функции таблицы или групповые функции.
В одном из примеров осуществления настоящего изобретения один или более типов функций, на основании которых выполняют группирование, включают один или более типов функций, для которых функции в различных портах коммутатора OpenFlow неодинаковы.
В одном из примеров осуществления настоящего изобретения диапазоны значений идентификаторов групп портов, соответствующих различным типам функций, не пересекаются.
В одном из примеров осуществления настоящего изобретения передача, коммутатором OpenFlow, идентификатора группы портов для каждой из групп портов, полученных группированием на основании первого типа функций, в контроллер OpenFlow включает:
ответную передачу, коммутатором OpenFlow, в контроллер OpenFlow, N отчетных сообщений с информацией о функциях для первого типа функций, где N - количество групп портов, полученных группированием на основании первого типа функций, и при этом каждое отчетное сообщение с информацией о функциях содержит идентификатор группы портов, и при этом идентификатор группы портов, содержащийся в каждом отчетном сообщении с информацией о функциях, отличается от остальных и соответствует идентификатору группы портов для группы портов, полученной группированием на основании первого типа функций.
В одном из примеров осуществления настоящего изобретения передача, коммутатором OpenFlow, идентификатора группы портов для каждой из групп портов, полученных группированием на основании первого типа функций, в контроллер OpenFlow включает:
ответную передачу, коммутатором OpenFlow, в контроллер OpenFlow одного отчетного сообщения с информацией о функциях для первого типа функций, при этом информация о функциях, содержащаяся в отчетном сообщении с информацией о функциях, содержит идентификатор или идентификаторы одной или более групп портов, полученных группированием на основании первого типа функций.
В одном из вариантов осуществления настоящего изобретения предложен также машиночитаемый информационный носитель, на котором хранят машиноисполняемые инструкции, при этом машиноисполняемые инструкции применяют для исполнения любых из способов, описанных в данном документе.
Предложено также устройство для передачи информации о функциях коммутатора OpenFlow, находящееся в составе коммутатора OpenFlow и включающее:
первый модуль отчетов, сконфигурированный, когда становится известно о том, что контроллеру OpenFlow необходимо запросить информацию о портах, для передачи идентификаторов групп портов для тех групп портов, которым принадлежит каждый из портов коммутатора OpenFlow или каждый из портов, запрашиваемых контроллером OpenFlow, в контроллер OpenFlow, при этом группы портов получают группированием портов с различными функциями в коммутаторе OpenFlow, на основании одного или более типа функций, и при этом каждая из групп портов имеет идентификатор группы портов.
В одном из примеров осуществления настоящего изобретения устройство дополнительно включает:
второй модуль отчетов, сконфигурированный, когда становится известно о том, что контроллеру OpenFlow необходимо запросить информацию о функциях для первого типа функций, для передачи идентификатора группы портов каждой из групп портов, полученных группированием на основании первого типа функций, в контроллер OpenFlow.
В одном из примеров осуществления настоящего изобретения устройство дополнительно включает:
модуль группирования, сконфигурированный для группирования, коммутатором OpenFlow, портов с различными функциями на основании одного или более типа функций, и для назначения идентификатора группы портов каждой группе портов.
В одном из примеров осуществления настоящего изобретения идентификаторы групп портов для тех групп портов, которым принадлежит каждый из портов, включают:
количество имеющихся идентификаторов групп портов и значение каждого из идентификаторов групп портов.
В одном из примеров осуществления настоящего изобретения типы функций включают одно из следующего:
функции таблицы или групповые функции.
В одном из примеров осуществления настоящего изобретения один или более типов функций, на основании которых выполняют группирование, включают один или более типов функций, для которых функции в различных портах коммутатора OpenFlow неодинаковы.
В одном из примеров осуществления настоящего изобретения диапазоны значений идентификаторов групп портов, соответствующих различным типам функций, не пересекаются.
В одном из примеров осуществления настоящего второй модуль отчетов сконфигурирован для передачи идентификатора группы портов для каждой из групп портов, полученных группированием на основании первого типа функций, в контроллер OpenFlow, следующим образом:
первый модуль отчетов выполняет ответную передачу, в контроллер OpenFlow, N отчетных сообщений с информацией о функциях для первого типа функций, где N - количество групп портов, полученных группированием на основании первого типа функций, и при этом каждое отчетное сообщение с информацией о функциях содержит идентификатор группы портов, и при этом идентификатор группы портов, содержащийся в каждом отчетном сообщении с информацией о функциях, отличается от остальных и соответствует идентификатору группы портов для группы портов, полученной группированием на основании первого типа функций.
В одном из примеров осуществления настоящего второй модуль отчетов сконфигурирован для передачи идентификатора группы портов для каждой из групп портов, полученных группированием на основании первого типа функций, в контроллер OpenFlow, следующим образом:
второй модуль отчетов выполняет ответную передачу, в контроллер OpenFlow одного отчетного сообщения с информацией о функциях для первого типа функций, при этом информация о функциях, содержащаяся в отчетном сообщении с информацией о функциях, содержит идентификатор или идентификаторы одной или более групп портов, полученных группированием на основании первого типа функций.
В настоящем изобретении предложена схема передачи информации о функциях коммутатора OpenFlow. В соответствии с предложенной схемой передачи информации о функциях коммутатора OpenFlow, коммутатор OpenFlow группирует порты с различными функциями на основании одного или более типа функций и назначает каждой группе портов идентификатор группы портов. Затем каждый идентификатор группы портов добавляют, соответственно, в информацию о портах и в информацию о функциях различных типов, которая передается коммутатором OpenFlow в контроллер OpenFlow. Благодаря этому коммутатор OpenFlow способен передавать информацию о функциях каждой группы портов для различных типов функций в контроллер OpenFlow, соответственно, что значительно повышает гибкость передачи информации о функциях коммутатора OpenFlow и дает возможность поддерживать передачу информации о функциях коммутатора OpenFlow с точностью до группы портов.
Другие отличительные признаки и преимущества настоящего изобретения можно найти в приведенном ниже описании, при этом они могут как следовать из этого описания, так и быть получены в результате практической реализации настоящего изобретения. Цель и дополнительные преимущества настоящего изобретения могут быть реализованы и получены при помощи структуры, образованной настоящим описанием, формулой изобретения и приложенными чертежами.
После изучения приложенных чертежей и подробного описания настоящего изобретения могут быть поняты другие его аспекты.
Краткое описание чертежей
Фиг. 1 представляет собой эскизную блок-схему архитектуры компонентов сети OpenFlow на существующем уровне техники.
Фиг. 2 представляет собой эскизную блок-схему структуры оверлейной сети на существующем уровне техники.
Фиг. 3 представляет собой блок-схему алгоритма для способа передачи информации о функциях коммутатора OpenFlow в соответствии с первым вариантом осуществления настоящего изобретения.
Фиг. 4 представляет собой эскизную блок-схему одного из сценариев применения, в котором различные линейные карты поддерживают различные протоколы инкапсуляции оверлейной сети, в соответствии с первым примером реализации настоящего изобретения.
Фиг. 5 представляет собой эскизную блок-схему одного из сценариев применения, в котором различные линейные карты поддерживают различные типы групп, в соответствии со вторым примером реализации настоящего изобретения.
Фиг. 6 представляет собой эскизную блок-схему одного из сценариев применения, в котором, одновременно, различные линейные карты поддерживают различные протоколы инкапсуляции оверлейной сети, и различные линейные карты поддерживают различные типы групп, в соответствии с третьим примером реализации настоящего изобретения.
Фиг. 7 представляет собой эскизную блок-схему устройства передачи информации о функциях коммутатора OpenFlow в соответствии со вторым вариантом осуществления настоящего изобретения.
Подробное описание изобретения
Ниже, в комбинации с приложенными чертежами и конкретными вариантами осуществления настоящего изобретения, будут более подробно рассмотрена предложенная техническая схема.
Следует отметить, что в объеме настоящего изобретения, при отсутствии противоречий, различные варианты осуществления настоящего изобретения и их отличительные признаки могут комбинироваться друг с другом. На блок-схемах алгоритмов показаны конкретные логические последовательности операций, однако в некоторых случаях шаги, проиллюстрированные на чертежах или описанные в данном документе, могут выполняться в отличающемся порядке.
В первом варианте осуществления настоящего изобретения предложен способ передачи информации о функциях коммутатора OpenFlow. В соответствии с иллюстрацией фиг. 3, способ включает шаги А-С, описанные ниже.
На шаге А порты с различными функциям в коммутаторе OpenFlow группируют на основании одного или более типа функций, и каждой группе портов назначают идентификатор.
Шаг А, который может быть необязательным (шаг А на фиг. 3 показан прерывистой линией, что означает его опциональность), при этом он может выполняться после включения питания коммутатора OpenFlow, или же состояние группирования и назначенные идентификаторы групп портов могут быть сохранены заранее в коммутаторе OpenFlow в виде конфигурационной информации.
Типы функций включают по меньшей мере одно из следующего:
функции таблицы или групповые функции.
В одном из примеров осуществления настоящего изобретения шаг А может выполняться коммутатором OpenFlow, однако без ограничения настоящего изобретения в данном отношении. В других схемах реализации настоящего изобретения шаг А может также выполняться в форме ручного предварительного конфигурирования, или шаг А может выполняться при помощи других устройств, вместо коммутатора OpenFlow.
В одном из примеров осуществления настоящего изобретения, если функции порта меняются, может инициироваться повторное выполнение шага А, то есть порты заново перегруппируют и заново назначают идентификаторы групп портов. Альтернативно, шаг А может выполняться периодически, - это гарантирует, что состояние группирования будет своевременно обновляться в случае изменений функций портов.
Поскольку в протоколе OpenFlow определены множество различных типов функций, и каждый из портов может быть помечен идентификатором группы портов, когда порты с различными функциями группируют по некоторому типу функций, то каждый из портов может быть помещен одним или более идентификаторами групп портов.
В одном из примеров осуществления настоящего изобретения, если все порты имеют одинаковые функции для заданного типа функций, порты не должны группироваться по этому типу функций, и порты не должны помечаться идентификатором группы портов для этого типа функций, то есть упомянутые в шаге А одна или боле типов функций ограничены только теми одним или более типами функций, для которых функции в различных портах коммутатора OpenFlow неодинаковы. К примеру, если функции таблицы, поддерживаемые всеми линейными картами коммутатора OpenFlow, идентичны, порты не следует группировать по типу «функции таблицы», и не нужно присваивать им идентификаторы групп портов.
В других схемах реализации настоящего изобретения шаг А может выполняться также для всех из упомянутых одного или более типов функций, независимо от того, имеют ли все порты в коммутаторе OpenFlow одинаковые функции для каких-либо типов функций или нет.
Когда порт помечают несколькими идентификаторами групп портов, поскольку каждый идентификатор группы портов, которыми помечен порт, относится к собственному типу функций, то чтобы иметь возможность различать типы функций, диапазоны значений идентификаторов групп портов, соответствующих различным типам функций, не должны пересекаться друг с другом.
На шаге В, когда становится известно, что контроллеру OpenFlow необходимо запросить информацию о портах, коммутатор OpenFlow передает идентификаторы групп портов для тех групп портов, которым принадлежит каждый из портов коммутатора OpenFlow или каждый из портов, запрашиваемых контроллером OpenFlow, в контроллер OpenFlow, при этом группы портов получают группированием портов с различными функциями в коммутаторе OpenFlow, на основании одного или более типа функций, и при этом каждая из групп портов имеет идентификатор группы портов.
На этом шаге, после приема, коммутатором OpenFlow, сообщения с запросом информации о портах, переданного контролером OpenFlow, коммутатор OpenFlow отвечает контроллеру OpenFlow отчетным сообщением с информацией о портах, которое содержит идентификаторы групп портов для каждой группы портов, которой принадлежит каждый порт коммутатора OpenFlow или каждый порт из сообщения с запросом информации о портах.
Информация о портах для каждого порта, передаваемая коммутатором OpenFlow в контроллер OpenFlow, содержит один или более идентификаторов групп портов, при этом упомянутые в шаге А одна или боле типов функций ограничены только теми одним или более типами функций, для которых функции в различных портах коммутатора OpenFlow неодинаковы, и при этом каждый идентификатор группы портов соответствует одной из функций одного из типов, для которого в различных портах функции неодинаковы.
В одном из примеров осуществления настоящего изобретения то, что отчетное сообщение с информацией о портах содержит идентификаторы групп портов для портов для тех групп портов, которым принадлежит каждый из портов, означает следующее:
отчетное сообщение с информацией о портах содержит информацию о портах для одного или более портов в коммутаторе OpenFlow, при этом информация о портах для каждого порта включает количество идентификаторов групп портов, содержащихся в информации о портах, и значения каждого из идентификаторов групп портов.
На шаге С, когда в коммутаторе OpenFlow становится известно о том, что контроллеру OpenFlow необходимо запросить информацию о функциях для первого типа функций, коммутатор OpenFlow передает идентификатор группы портов для каждой из групп портов, полученных группированием на основании первого типа функций, в контроллер OpenFlow.
На этом шаге, после приема, коммутатором OpenFlow, сообщения с запросом информации о функциях для первого типа функций, переданного контроллером OpenFlow, коммутатор OpenFlow отвечает контроллеру OpenFlow отчетным сообщением с информацией о функциях для первого типа функций, при этом отчетное сообщение с информацией о функциях содержит идентификаторы групп портов для каждой из групп портов, полученных группированием на основании первого типа функций.
Соответственно, типы функций, без ограничения перечисленным, могут включать одно из следующего:
информацию о функциях таблицы и информацию о групповых функциях.
Когда контроллер OpenFlow передает сообщение с запросом информации о функциях таблицы, отчетное сообщение с информацией о функциях, которым отвечает коммутатор OpenFlow, также содержит информацию о функциях таблицы; и когда контроллер OpenFlow передает сообщение с запросом информации о групповых функциях, отчетное сообщение с информацией о функциях, которым отвечает коммутатор OpenFlow, также содержит информацию о групповых функциях.
В одном из примеров осуществления настоящего изобретения, когда упомянутые в шаге А один или боле типов функций ограничены только теми одним или более типами функций, для которых функции в различных портах коммутатора OpenFlow неодинаковы, в отчетном сообщении с информацией о функциях идентификаторы группы портов будут содержаться в информации о функциях только для тех типов функций, для которых функции в различных портах коммутатора OpenFlow отличаются, то есть, информация о функциях для каждого типа функций, для которого имеются отличия в функциях в различных портах, передаваемая коммутатором OpenFlow в контроллер OpenFlow, содержит один или более идентификаторов групп портов.
В одном из примеров осуществления настоящего изобретения различную информация о функциях, соответствующую различным значениям идентификаторов групп портов, содержащихся в информации о функциях, передают, соответственно, одним из конкретных методов реализации. Такой конкретный метод реализации может подразумевать ответ множеством отчетных сообщений с информацией о функциях, соответственно, или может подразумевать разбиение одного отчетного сообщения с информацией о функциях на несколько частей, содержащих различную информацию о функциях.
Ответ коммутатора OpenFlow в контроллер OpenFlow отчетным сообщением с информацией о функциях для первого типа функций может включать:
ответную передачу, коммутатором OpenFlow, в контроллер OpenFlow, N отчетных сообщений с информацией о функциях для первого типа функций, где N -количество групп портов, полученных группированием на основании первого типа функций, и при этом каждое отчетное сообщение с информацией о функциях содержит один идентификатор группы портов, и при этом идентификатор группы портов, содержащийся в каждом отчетном сообщении с информацией о функциях, отличается от остальных и соответствует идентификатору группы портов для группы портов, полученной группированием на основании первого типа функций.
или ответную передачу, коммутатором OpenFlow, в контроллер OpenFlow одного отчетного сообщения с информацией о функциях для первого типа функций, при этом информация о функциях, содержащаяся в отчетном сообщении с информацией о функциях включает идентификатор или идентификаторы одной или более групп портов, полученных группированием на основании первого типа функций.
В данном варианте осуществления настоящего изобретения идентификаторы групп портов, содержащиеся в информации о функциях, связаны с идентификаторами групп портов, содержащихся в информации о портах, таким образом, что для них выбраны одинаковые значения, то есть, коммутатор OpenFlow может не только передавать информацию о состоянии группирования портов, но также и информацию о функциях каждой группы портов, соответственно, в контроллер OpenFlow.
Между описанными выше шагами В и С нет обязательного порядка следования. Шаг В может выполняться, когда будет принято сообщение с запросом информации о портах, переданное контроллером OpenFlow. Когда принято сообщение с запросом информации о функциях (например, сообщение с запросом о функциях таблицы и/или групповых функциях) для первого типа функций, переданное контроллером OpenFlow, может выполняться шаг С.
Первый пример реализации
Фиг. 4 представляет собой эскизную блок-схему одного из сценариев применения, в котором различные линейные карты поддерживают различные протоколы инкапсуляции оверлейной сети, в соответствии с первым примером реализации. В соответствии с фиг. 4 в данном примере реализации краевые узлы (здесь - коммутаторы OpenFlow) 41, 42, 43, 44, поддерживающие протокол OpenFlow в оверлейной сети, связаны, соответственно, с контроллером OpenFlow. Краевые узлы 41, 42, 43 и 44, соответственно, содержат линейную карту А1, которая поддерживает инкапсуляцию VxLAN, линейную карту В1, которая поддерживает Trill-инкапсуляцию, линейную карту С1, которая поддерживает GUE-инкапсуляцию и линейную карту D1, которая поддерживает РВВ-инкапсуляцию. В данном примере линейная карта А1 имеет порты 11, 12, 13, 14, линейная карта В1 имеет порты 15, 16, 17, 18, линейная карта С1 имеет порты 19, 110, 111, 112, а линейная карта D1 имеет порты 113, 114, 115, 116.
В данном примере реализации контроллер OpenFlow и краевые узлы, поддерживающие протокол OpenFlow в оверлейной сети, выполняют шаги S401-S403, описанные ниже.
На шаге S401 коммутаторы 41, 42, 43, 44 OpenFlow группируют порты с различными функциями по функциям таблицы и присваивают каждой группе портов идентификатор группы портов.
А именно, порты 11, 12, 13 и 14 линейной карты А1 становятся первой группой портов, и всем им присваивают первый идентификатор группы портов. Порты 15, 16, 17 и 18 линейной карты В1 становятся второй группой портов, и всем им присваивают второй идентификатор группы портов. Порты 19, 110, 111 и 112 линейной карты С1 становятся третьей группой портов, и всем им присваивают третий идентификатор группы портов. Порты 113, 114, 115 и 116 линейной карты D1 становятся четвертой группой портов, и всем им присваивают четвертый идентификатор группы портов. Значения первого, второго, третьего и четвертого идентификаторов групп портов отличают друг от друга.
На шаге S402, после приема сообщения с запросом информации о портах, переданного контроллером OpenFlow, коммутаторы 41, 42, 43, 44 OpenFlow отвечают контроллеру OpenFlow сообщениями с информацией о портах, которые содержат идентификаторы групп портов.
А именно, информация о портах для портов 11, 12, 13 и 14 линейной карты А1, передаваемая коммутаторами 41, 42, 43 и 44 OpenFlow, во всех случаях содержит первый идентификатор группы портов, передаваемая информация о портах для портов 15, 16, 17 и 18 линейной карты В1 во всех случаях содержит второй идентификатор группы портов, передаваемая информация о портах для портов 19, 110, 111 и 112 линейной карты С1 во всех случаях содержит третий идентификатор группы портов, а передаваемая информация о портах для портов 113, 114, 115 и 116 линейной карты D1 во всех случаях содержит четвертый идентификатор группы портов.
На шаге S403, после приема сообщения с запросом информации о функциях таблицы, переданного контроллером OpenFlow, коммутаторы 41, 42, 43, 44 OpenFlow отвечают контроллеру OpenFlow сообщениями с информацией о функциях таблицы, которые содержат идентификаторы групп портов.
А именно, информация о функциях таблицы для первой группы портов, передаваемая коммутаторами 41, 42, 43, 44 OpenFlow, содержит первый идентификатор группы портов и указывает на то, что первая группа портов поддерживает выполнение операции таблицы, представляющей собой инкапсуляцию/декапсуляцию VxLAN; передаваемая информация о функциях таблицы для второй группы портов содержит второй идентификатор группы портов и указывает на то, что вторая группа портов поддерживает выполнение операции таблицы, представляющей собой инкапсуляцию/декапсуляцию Trill; передаваемая информация о функциях таблицы для третьей группы портов содержит третий идентификатор группы портов и указывает на то, что третья группа портов поддерживает выполнение операции таблицы, представляющей собой инкапсуляцию/декапсуляцию GUE; и передаваемая информация о функциях таблицы для четвертой группы портов содержит четвертый идентификатор группы портов и указывает на то, что четвертая группа портов поддерживает выполнение операции таблицы, представляющей собой инкапсуляцию/декапсуляцию РВВ.
Описанные выше шаги S402 и S403 не обязательно должны иметь строгий порядок следования. Шаг S402 может быть выполнен после приема сообщения с запросом информации о портах, переданного контроллером OpenFlow. Шаг S403 может быть выполнен после приема сообщения с запросом информации о функциях таблицы, переданного контроллером OpenFlow.
Второй пример реализации
Фиг. 5 представляет собой эскизную блок-схему одного из сценариев применения, в котором различные линейные карты поддерживают различные типы групп, в соответствии со вторым примером реализации. В соответствии с фиг. 5 в данном примере реализации краевые узлы (здесь - коммутаторы OpenFlow) 51, 52, 53, 54, поддерживающие протокол OpenFlow в оверлейной сети, связаны, соответственно, с контроллером OpenFlow. Сетевые узлы 51, 52, 53 и 54, соответственно, содержат линейные карты А2 и В2, поддерживающие группу типа Select (выбор) и линейных карт С2 и D2, поддерживающих группу типа Fast Failover (быстрое преодоление отказа). В данном примере линейная карта А2 имеет порты 21, 22, 23, 24, линейная карта В2 имеет порты 25, 26, 27, 28, линейная карта С2 имеет порты 29, 210, 211, 212, а линейная карта D2 имеет порты 213, 214, 215, 216.
В данном примере реализации контроллер OpenFlow и краевые узлы, поддерживающие протокол OpenFlow в оверлейной сети, выполняют шаги S501-S503, описанные ниже.
На шаге S501 коммутаторы 51, 52, 53, 54 OpenFlow группируют порты с различными функциями по групповым функциям и присваивают каждой группе портов идентификатор группы портов.
А именно, порты 21, 22, 23 и 24 линейной карты А2 и порты 25, 26, 27 и 28 линейной карты В2 становятся первой группой портов, и всем им присваивают первый идентификатор группы портов. Порты 29, 210, 211 и 212 линейной карты С2 и порты 213, 214, 215 и 216 линейной карты D2 становятся второй группой портов, и всем им присваивают второй идентификатор группы портов. Значения первого и второго идентификаторов групп портов отличаются друг от друга.
На шаге S502, после приема сообщения с запросом информации о портах, переданного контроллером OpenFlow, коммутаторы 51, 52, 53, 54 OpenFlow отвечают контроллеру OpenFlow сообщениями с информацией о портах, которые содержат идентификаторы групп портов.
А именно, информация о портах для портов 21, 22, 23 и 12 линейной карты А2 и для портов 25, 26, 27 и 28 линейной карты В2, передаваемая коммутаторами 51, 52, 53 и 54 OpenFlow, во всех случаях содержит первый идентификатор группы портов, и передаваемая информация о портах для портов 29, 210, 211 и 212 линейной карты А2 и для портов 213, 214, 215 и 216 линейной карты D2, во всех случаях содержит второй идентификатор группы портов.
На шаге S503, после приема сообщения с запросом информации о функциях таблицы, переданного контроллером OpenFlow, коммутаторы 51, 52, 53, 54 OpenFlow отвечают контроллеру OpenFlow сообщениями с информацией о функциях таблицы, которые содержат идентификаторы групп портов.
А именно, информация о групповых функциях для первой группы портов, передаваемая коммутаторами 51, 52, 53, 54 OpenFlow, содержит первый идентификатор группы портов и указывает на то, что первая группа портов поддерживает группу типа Select; а передаваемая информация о групповых функциях для второй группы портов содержит второй идентификатор группы портов и указывает на то, что вторая группа портов поддерживает группу типа Fast Failover.
Описанные выше шаги S502 и S503 не обязательно должны иметь строгий порядок следования. Шаг S502 может быть выполнен после приема сообщения с запросом информации о портах, переданного контроллером OpenFlow. Шаг S503 может быть выполнен после приема сообщения с запросом информации о групповых функциях, переданного контроллером OpenFlow.
Третий пример реализации
Фиг. 6 представляет собой эскизную блок-схему одного из сценариев применения, в котором, одновременно, различные линейные карты поддерживают различные протоколы инкапсуляции оверлейной сети, и различные линейные карты поддерживают различные типы групп, в соответствии с третьим примером реализации. В соответствии с фиг. 6 в данном примере реализации краевые узлы (здесь - коммутаторы OpenFlow) 61, 62, 63, 64, поддерживающие протокол OpenFlow в оверлейной сети, связаны, соответственно, с контроллером OpenFlow. Краевые узлы 61, 62, 63 и 64, соответственно, содержат линейную карту A3, которая поддерживает инкапсуляцию VxLAN и группу типа Select, линейную карту В3, которая поддерживает Trill-инкапсуляцию и группу типа Select, линейную карту С3, которая поддерживает GUE-инкапсуляцию и группу типа Fast Failover, и линейную карту D3, которая поддерживает РВВ-инкапсуляцию и группу типа Fast Failover. В данном примере линейная карта A3 имеет порты 31, 32, 33, 34, линейная карта В3 имеет порты 35, 36, 37, 38, линейная карта СС имеет порты 39, 310, 311, 312, а линейная карта D3 имеет порты 313, 314, 315, 316.
В данном примере реализации контроллер OpenFlow и краевые узлы, поддерживающие протокол OpenFlow в оверлейной сети, выполняют шаги S601-S604, описанные ниже.
На шаге S601 коммутаторы 61, 62, 63, 64 OpenFlow группируют порты с различными функциями по функциям таблицы и групповым функциям и присваивают каждой группе портов идентификатор группы портов.
А именно, чтобы различать идентификаторы групп портов, присвоенные, исходя из функций таблицы, от идентификаторов групп портов, присвоенных, исходя из групповых функций, диапазоны значений для портов этих двух типов не должны пересекаться. В результате группирования портов с различными функциями по функциям таблицы порты 31, 32, 33 и 34 линейной карты A3 становится первой группой портов и всем им присваивают первый идентификатор группы портов, и порты 35, 36, 37 и 38 линейной карты В3 становятся второй группой портов и всем им присваивают второй идентификатор группы портов, и Порты 39, 310, 311 и 312 линейной карты С3 становятся третьей группой портов, и всем им присваивают третий идентификатор группы портов, и порты 313, 314, 315 и 316 линейной карты D3 становятся четвертой группой портов, и всем им присваивают четвертый идентификатор группы портов. В результате группирования портов с различными функциями по групповым функциям порты 31, 32, 33 и 34 линейной карты A3 и порты 35, 36, 37 и 38 линейной карты В3 становятся пятой группой портов и всем им присваивают пятый идентификатор группы портов, и порты 39, 310, 311 и 312 линейной карты С3 и порты 313, 314, 315 и 316 линейной карты D3 становятся шестой группой портов, и всем им присваивают шестой идентификатор группы портов. В данном примере значения первого, второго, третьего и четвертого идентификаторов групп портов отличают друг от друга; значения пятого и шестого идентификаторов групп портов отличаются друг от друга. В дополнение, диапазоны значений первого, второго, третьего и четвертого идентификаторов групп портов (например, числа од 1 до 10) отличаются от диапазонов значений пятого и шестого идентификаторов групп портов (например, числа от 11 до 20).
На шаге S602, после приема сообщения с запросом информации о портах, переданного контроллером OpenFlow, коммутаторы 61, 62, 63, 64 OpenFlow отвечают контроллеру OpenFlow сообщениями с информацией о портах, которые содержат идентификаторы групп портов.
А именно, информация о портах для портов 31, 32, 33 и 34 линейной карты A3, передаваемая коммутаторами 61, 62, 63 и 64 OpenFlow, во всех случаях содержит первый идентификатор группы портов и пятый идентификатор группы портов. Передаваемая информация о портах для портов 35, 36, 37 и 38 линейной карты В3 во всех случаях содержит второй идентификатор группы портов и пятый идентификатор группы портов. Передаваемая информация о портах для портов 35, 36, 37 и 38 линейной карты В3 во всех случаях содержит второй идентификатор группы портов и пятый идентификатор группы портов. Передаваемая информация о портах для портов 313, 314, 315 и 316 линейной карты D3 во всех случаях содержит четвертый идентификатор группы портов и шестой идентификатор группы портов.
На шаге S603, после приема сообщения с запросом информации о функциях таблицы, переданного контроллером OpenFlow, коммутаторы 61, 62, 63, 64 OpenFlow отвечают контроллеру OpenFlow отчетными сообщениями с информацией о функциях таблицы, которые содержат идентификаторы различных групп портов, полученные в результате группирования по функциям таблицы.
А именно, информация о функциях таблицы для первой группы портов, передаваемая коммутаторами 61, 62, 63, 64 OpenFlow, содержит первый идентификатор группы портов и указывает на то, что первая группа портов поддерживает выполнение операции таблицы, представляющей собой инкапсуляцию/декапсуляцию VxLAN. Передаваемая информация о функциях таблицы для второй группы портов содержит второй идентификатор группы портов и указывает на то, что вторая группа портов поддерживает выполнение операции таблицы, представляющей собой инкапсуляцию/декапсуляцию Trill. Передаваемая информация о функциях таблицы для третьей группы портов содержит третий идентификатор группы портов и указывает на то, что третья группа портов поддерживает выполнение операции таблицы, представляющей собой инкапсуляцию/декапсуляцию GUE. Передаваемая информация о функциях таблицы для четвертой группы портов содержит четвертый идентификатор группы портов и указывает на то, что четвертая группа портов поддерживает выполнение операции таблицы, представляющей собой инкапсуляцию/декапсуляцию РВВ.
На шаге S604, после приема сообщения с запросом информации о функциях таблицы, переданного контроллером OpenFlow, коммутаторы 61, 62, 63, 64 OpenFlow отвечают контроллеру OpenFlow отчетными сообщениями с информацией о групповых функциях, которые содержат идентификаторы различных групп портов, полученные в результате группирования по групповым функциям.
А именно, информация о групповых функциях для пятой группы портов, передаваемая коммутаторами 61, 62, 63, 64 OpenFlow, содержит пятый идентификатор группы портов и указывает на то, что пятая группа портов поддерживает группу типа Select; а передаваемая информация о групповых функциях для шестой группы портов содержит шестой идентификатор группы портов и указывает на то, что шестая группа портов поддерживает группу типа Fast Failover.
Описанные выше шаги S602, S603 и S604 не обязательно должны иметь строгий порядок следования. Шаг S602 может быть выполнен после приема сообщения с запросом информации о портах, переданного контроллером OpenFlow. Шаг S603 может быть выполнен после приема сообщения с запросом информации о функциях таблицы, переданного контроллером OpenFlow. Шаг S604 может быть выполнен после приема сообщения с запросом информации о групповых функциях, переданного контроллером OpenFlow.
В одном из вариантов осуществления настоящего изобретения предложен также машиночитаемый информационный носитель, на котором хранят машиноисполняемые инструкции, при этом машиноисполняемые инструкции применяют для исполнения любых из способов, описанных в данном документе.
Во втором варианте осуществления настоящего изобретения предложено устройство для передачи информации о функциях коммутатора OpenFlow, находящееся в составе коммутатора OpenFlow. В соответствии с иллюстрацией фиг. FIG. 7, устройство включает:
первый модуль 71 отчетов, сконфигурированный, когда становится известно о том, что контроллеру OpenFlow необходимо запросить информацию о портах, для передачи идентификаторов групп портов для тех групп портов, которым принадлежит каждый из портов коммутатора OpenFlow или каждый из портов, запрашиваемых контроллером OpenFlow, в контроллер OpenFlow. В данном варианте осуществления настоящего изобретения группы портов получают группированием портов с различными функциями в коммутаторе OpenFlow, на основании одного или более типа функций, и при этом каждая из групп портов имеет идентификатор группы портов.
В одном из примеров осуществления настоящего изобретения устройство дополнительно включает:
второй модуль 72 отчетов, сконфигурированный, когда становится известно о том, что контроллеру OpenFlow необходимо запросить информацию о функциях для первого типа функций, для передачи идентификатора группы портов каждой из групп портов, полученных группированием на основании первого типа функций, в контроллер OpenFlow.
В одном из примеров осуществления настоящего изобретения устройство включает также модуль 73 группирования (на фиг. 7 модуль группирования показан штриховым прямоугольником, который означает, что модуль группирования является опциональным), сконфигурированный для группирования портов с различными функциями в коммутаторе OpenFlow на основании одного или более типа функций и для назначения идентификатора группы портов каждой группе портов. Модуль группирования не обязательно должен размещаться в коммутаторе OpenFlow; или модуль группирования может отсутствовать, а группирование портов может выполняться вручную. Состояние группирования и присвоенные идентификаторы групп портов могут быть сохранены в коммутаторе OpenFlow заранее, в виде конфигурационной информации.
В одном из примеров осуществления настоящего изобретения идентификаторы групп портов для тех групп портов, которым принадлежит каждый из портов, включают:
количество имеющихся идентификаторов групп портов и значение каждого из идентификаторов групп портов.
В одном из примеров осуществления настоящего изобретения типы функций включают одно из следующего:
функции таблицы или групповые функции.
В одном из примеров осуществления настоящего изобретения один или более типов функций, на основании которых выполняют группирование, включают один или более типов функций, для которых функции в различных портах коммутатора OpenFlow неодинаковы.
В одном из примеров осуществления настоящего изобретения диапазоны значений идентификаторов групп портов, соответствующих различным типам функций, не пересекаются.
В одном из примеров осуществления настоящего второй модуль отчетов сконфигурирован для передачи идентификатора группы портов для каждой из групп портов, полученных группированием на основании первого типа функций, в контроллер OpenFlow, следующим образом:
первый модуль отчетов выполняет ответную передачу, в контроллер OpenFlow, N отчетных сообщений с информацией о функциях для первого типа функций, где N - количество групп портов, полученных группированием на основании первого типа функций, и при этом каждое отчетное сообщение с информацией о функциях содержит идентификатор группы портов, и при этом идентификатор группы портов, содержащийся в каждом отчетном сообщении с информацией о функциях, отличается от остальных и соответствует идентификатору группы портов для группы портов, полученной группированием на основании первого типа функций.
В одном из примеров осуществления настоящего второй модуль отчетов сконфигурирован для передачи идентификатора группы портов для каждой из групп портов, полученных группированием на основании первого типа функций, в контроллер OpenFlow, следующим образом:
второй модуль отчетов выполняет ответную передачу, в контроллер OpenFlow одного отчетного сообщения с информацией о функциях для первого типа функций, при этом информация о функциях, содержащаяся в отчетном сообщении с информацией о функциях, содержит идентификатор или идентификаторы одной или более групп портов, полученных группированием на основании первого типа функций.
Специалисты в данной области техники должны понимать, что все шаги описанных выше способов, или их часть, могут выполняться соответствующим аппаратным обеспечением (например, процессорами) при помощи программ. Такие программы может храниться на машиночитаемом носителе, например, в памяти «только для чтения», на магнитном диске, оптическом диске и т.п. В одном из примеров осуществления настоящего изобретения все шаги описанных выше вариантов осуществления настоящего изобретения, или их часть, могут быть также реализованы при помощи одной или боле интегральных схем. Соответственно, различные модули и/или блоки в вариантах осуществления настоящего изобретения могут быть реализованы в виде аппаратного обеспечения, например, с использованием интегральных схем для реализации соответствующих функций, или могут быть реализованы в виде программного функционального модуля, например, при помощи исполнения программ и/или инструкций, хранимых в памяти, при помощи процессора в целях реализации соответствующих функций. Настоящее изобретение не ограничено никакой конкретной комбинацией аппаратного и программного обеспечения.
Выше приведено описание конкретных вариантов осуществления настоящего изобретения, однако нужно понимать, что эти варианты осуществления настоящего изобретения предназначены исключительно для простоты понимания настоящего изобретения, и не должны трактоваться как ограничивающие его. В пределах объема и сущности настоящего изобретения специалисты в данной области техники могут вносить любые модификации и изменения, касающиеся формы и частных деталей реализации, однако при этом объем правовой защиты настоящего изобретения задан приложенной формулой изобретения.
Промышленная применимость
Описанное выше техническое решение позволяет значительно повысить гибкость передачи информации о функциях коммутатора OpenFlow, при этом передача информации о функциях коммутатора OpenFlow возможна с точностью до группы портов.