ТЕХНОЛОГИИ ДЛЯ ПРЕДОСТАВЛЕНИЯ МАКСИМАЛЬНОЙ ГЛУБИНЫ ИДЕНТИФИКАТОРА СЕГМЕНТА УЗЛА И/ИЛИ ЛИНИИ СВЯЗИ, ИСПОЛЬЗУЮЩИЕ OSPF
TECHNOLOGIES USING OSPF FOR PROVIDING MAXIMUM DEPTH OF NODE AND/OR COMMUNICATION LINK SEGMENT IDENTIFIER

Перекрёстная ссылка на родственные заявки
Настоящая заявка испрашивает приоритет предварительной заявки на патент США № 62/295,453, поданной 15 февраля 2016 года, которая включена в настоящий документ посредством ссылки.
Область техники, к которой относится изобретение
Варианты осуществления изобретения относятся к области организации компьютерной сети; и, более конкретно, к технологиям для предоставления максимальной глубины идентификатора сегмента узла и/или линии связи с использованием протокола маршрутизации с определением кратчайшего пути (OSPF).
Уровень техники
Сегментная маршрутизация (SR) представляет собой недавно разработанную технологию маршрутизации, эффективно использующую парадигму маршрутизации от источника. В SR сетях узел направляет пакет через упорядоченный список инструкций, называемых сегментами. Сегмент может представлять собой любую топологическую инструкцию или основанную на услугах инструкцию, и семантика сегмента может быть локальной по отношению к SR узлу или глобальной, распространяющейся на определенный SR домен.
SR позволяет направить поток данных через любой топологический путь и цепь услуг, и в тоже время состояние отдельного потока хранится только на узле, входном в SR домен. SR может быть непосредственно применена к общей архитектуре многопротокольной коммутации по меткам (MPLS), не требуя каких-либо изменений в плоскостях передачи участвующих узлов. Например, сегмент может быть закодирован как MPLS метка, и упорядоченный список сегментов может быть закодирован как стек меток. Обрабатываемый сегмент находится на верхушке стека. По завершении обработки сегмента, соответствующую метку выталкивают из стека.
SR также могут применять к архитектуре протокола сети интернет (IP) версии 6 (IPv6) с использованием нового типа заголовка расширения маршрутизации. Сегмент может быть закодирован как IPv6-адрес. Упорядоченный список сегментов кодируют как упорядоченный список IPv6-адресов в заголовке расширения маршрутизации. Сегмент для обработки указан указателем в заголовке расширения маршрутизации. По завершении обработки, порядковый номер указателя сегмента увеличивается.
SR имеет множество преимуществ, основанное на предоставлении масштабируемой сквозной политики, которая была разработана для IP и программно-конфигурируемой сети (SDN) (т.е. посредством предоставления информации о выборе маршрута в зависимости от стоимости (ECMP) и балансе между распределенными интеллектуальными средствами, централизованной структурой оптимизации и способом формирования политики на основе приложений), обладающей операционной простотой и, благодаря централизованной оптимизации, обеспечивающей эффективный способ использования установленной инфраструктуры.
Сущность изобретения
Способ в устройстве, реализующий сетевой элемент в SR сети, включает в себя передачу сетевым элементом элемента «тип-длина-значение» (TLV), включающего в себя значение максимальной глубины идентификатора сегмента (MSD). TLV элемент передают с использованием OSPF протокола. MSD значение идентифицирует максимальное количество меток идентификатора сегмента (SID), которое сетевой элемент способен вставлять в заголовки пакетов принятых пакетов для обеспечения пересылки принятых пакетов через SR сеть. Способ также включает в себя прием из контроллера данных для пути, который будет использован сетевым элементом, для последующей передачи принятых пакетов через SR сеть. Данные включают в себя набор из одной или нескольких SID меток, которые должны быть вставлены в принятые пакеты, ассоциированные с этим путем. Набор SID меток включает в себя меньше или равен MSD значению количества SID меток, и контроллер и сетевой элемент не используют протокол связи элемента вычислений пути (PCEP) по южному интерфейсу.
В некоторых вариантах осуществления используемый OSPF протокол содержит либо OSPF версию 2 (OSPFv2), либо OSPF версию 3 (OSPFv3).
В некоторых вариантах осуществления TLV элемент является TLV MSD узла, и который передают посредством, либо OSPFv2 непрозрачного сообщения о состоянии канала (LSA) в информации маршрутизатора, либо OSPFv3 непрозрачного LSA в информации маршрутизатора.
В некоторых вариантах осуществления TLV элемент является суб-TLV MSD линии связи и который передают, либо с помощью OSPFv2 непрозрачного расширенного LSA линии связи, либо OSPFv2 TE LSA, либо OSPVv3E-маршрутизатор-LSA.
В некоторых вариантах осуществления способ дополнительно включает в себя определение сетевым элементом MSD значения как наименьшее из одного или нескольких MSD значений одной или нескольких линейных карт сетевого элемента.
В соответствии с некоторыми вариантами осуществления постоянный машиночитаемый носитель данных имеет инструкции, которые при выполнении одним или несколькими процессорами устройства побуждают устройство реализовать сетевой элемент в SR сети и выполнять операции. Операции включают в себя передачу TLV элемента, включающего в себя MSD значение. TLV элемент передают с использованием OSPF протокола. MSD значение определяет максимальное количество SID меток, которые сетевой элемент может вставлять в заголовки пакетов принятых пакетов для обеспечения пересылки принятых пакетов через SR сеть. Операции также включают в себя прием от контроллера данных для пути, который будет использован сетевым элементом для пересылки принятых пакетов через SR сеть. Данные включают в себя набор из одной или нескольких SID меток, которые должны быть вставлены в принятые пакеты, ассоциированные с этим путем. Набор SID меток содержит меньше или равен MSD значению количества SID меток, и контроллер и сетевой элемент не используют PCEP по южному интерфейсу.
В некоторых вариантах осуществления устройство включает в себя один или несколько процессоров и постоянный машиночитаемый носитель данных. Постоянный машиночитаемый носитель данных имеет инструкции, которые при выполнении одним или несколькими процессорами побуждают устройство реализовать сетевой элемент в SR сети и выполнять операции. Операции включают в себя передачу TLV элемента, включающего в себя MSD значение. TLV элемент передают с использованием OSPF протокола. MSD значение определяет максимальное количество SID меток, которые сетевой элемент может вставлять в заголовки пакетов принятых пакетов, чтобы обеспечить пересылку принятых пакетов через SR сеть. Операции также включают в себя прием из контроллера данных для пути, который будет использоваться сетевым элементом, для пересылки принятых пакетов через SR сеть. Данные включают в себя набор из одной или нескольких SID меток, которые должны быть вставлены в принятые пакеты, ассоциированные с этим путем. Набор SID меток содержит меньше или равен MSD значению количества SID меток, и контроллер и сетевой элемент не используют PCEP по южному интерфейсу.
Система включает в себя контроллер и сетевой элемент. Сетевой элемент, который реализуют устройством, функционирует в SR сети и выполняет операции. Операции включают в себя передачу TLV элемента, включающего в себя MSD значение. TLV элемент передают с использованием OSPF протокола. MSD значение определяет максимальное количество SID меток, которые сетевой элемент может вставлять в заголовки пакетов принятых пакетов для обеспечения пересылки принятых пакетов через SR сеть. Операции также включают в себя прием из контроллера данных для пути, который будет использован сетевым элементом, для пересылки принятых пакетов через SR сеть. Данные включают в себя набор из одной или нескольких SID меток, которые должны быть вставлены в принятые пакеты, ассоциированные с этим путем. Набор SID меток содержит меньше или равен MSD значению количества SID меток, и контроллер и сетевой элемент не используют PCEP через южный интерфейс.
В соответствии с некоторыми вариантами осуществления способ в контроллере, коммуникативно соединенный с множеством сетевых элементов SR сети, включает в себя прием из первого сетевого элемента множества сетевых элементов TLV элемента, включающего в себя MSD значение. TLV элемент передают с использованием OSPF протокола. MSD значение определяет максимальное количество SID меток, которые первый сетевой элемент может вставлять в заголовки пакетов принятых пакетов для обеспечения пересылки принятых пакетов через SR сеть. Способ также включает в себя определение, на основании MSD значения, пути от первого сетевого элемента ко второму сетевому элементу множества сетевых элементов для идентифицируемого набора трафика, который включает в себя набор из одного или нескольких SID меток. Количество SID меток в наборе SID меток обязательно меньше или равно MSD значению. Способ также включает в себя отправку в первый сетевой элемент данных для пути, который будет использован сетевым элементом для пересылки принятых пакетов через SR сеть. Данные включают в себя набор SID меток, которые должны быть вставлены в принятые пакеты идентифицируемого набора трафика. Контроллер и первый сетевой элемент не используют PCEP по южному интерфейсу.
В некоторых вариантах осуществления OSPF протокол содержит либо OSPF версию 2 (OSPFv2), либо OSPF версию 3 (OSPFv3).
В некоторых вариантах осуществления TLV элемент является TLV MSD узла, и передают посредством, либо OSPFv2 непрозрачного сообщения о состоянии канала (LSA) в информации маршрутизатора, либо OSPFv3 непрозрачного LSA в информации маршрутизатора.
В некоторых вариантах осуществления TLV элемент является суб-TLV MSD линии связи и который передают, либо с помощью OSPFv2 непрозрачного расширенного LSA линии связи, либо OSPFv2 TE LSA, либо OSPVv3E-маршрутизатора-LSA.
В соответствии с некоторыми вариантами осуществления постоянный машиночитаемый носитель данных имеет инструкции, которые при выполнении одним или несколькими процессорами устройства побеждают устройство реализовать контроллер, который должен быть коммуникативно соединен с множеством сетевых элементов SR сети, и выполнять операции. Операции включают в себя прием из первого сетевого элемента множества сетевых элементов TLV элемента, включающего в себя MSD значение. TLV элемент передают с использованием OSPF протокола. MSD значение определяет максимальное количество SID меток, которые первый сетевой элемент способен вставлять в заголовки пакетов принятых пакетов для обеспечения пересылки принятых пакетов через SR сеть. Операции также включают в себя определение на основании MSD значения пути от первого сетевого элемента ко второму сетевому элементу множества сетевых элементов для идентифицируемого набора трафика, который включает в себя набор из одного или нескольких SID меток. Количество SID меток в наборе SID меток обязательно меньше или равно MSD значению. Операции также включают в себя отправку в первый сетевой элемент данных для пути, который будет использован сетевым элементом для пересылки принятых пакетов через SR сеть. Данные включают в себя набор SID меток, которые должны быть вставлены в принятые пакеты идентифицируемого набора трафика. Контроллер и первый сетевой элемент не используют PCEP по южному интерфейсу.
В некоторых вариантах осуществления устройство включает в себя один или несколько процессоров и постоянный машиночитаемый носитель данных. Постоянный машиночитаемый носитель данных имеет инструкции, которые при выполнении одним или несколькими процессорами побуждает устройство реализовать контроллер, который должен быть коммуникативно соединен с множеством сетевых элементов SR сети и выполнять операции. Операции включают в себя прием из первого сетевого элемента множества сетевых элементов TLV элемента, включающего в себя MSD значение. TLV элемент передают с использованием OSPF протокола. MSD значение определяет максимальное количество SID меток, которые первый сетевой элемент может вставлять в заголовки пакетов принятых пакетов для обеспечения пересылки принятых пакетов через SR сеть. Операции также включают в себя определение на основании MSD значения пути от первого сетевого элемента ко второму сетевому элементу множества сетевых элементов для идентифицируемого набора трафика, который включает в себя набор из одного или нескольких SID меток. Количество SID меток в наборе SID меток обязательно меньше или равно MSD значению. Операции также включают в себя отправку в первый сетевой элемент данных для пути, который будет использован сетевым элементом для пересылки принятых пакетов через SR сеть. Данные включают в себя набор SID меток, которые должны быть вставлены в принятые пакеты идентифицируемого набора трафика. Контроллер и первый сетевой элемент не используют PCEP по южному интерфейсу.
В некоторых вариантах осуществления система включает в себя контроллер, который коммуникативно соединен с множеством сетевых элементов SR сети. Контроллер может быть реализован устройством и выполнен с возможностью выполнять операции. Операции включают в себя прием из первого сетевого элемента множества сетевых элементов TLV элемента, включающего в себя MSD значение. TLV элемент передают с использованием OSPF протокола. MSD значение определяет максимальное количество SID меток, которые первый сетевой элемент может вставлять в заголовки пакетов принятых пакетов для обеспечения пересылки принятых пакетов через SR сеть. Операции также включают в себя определение на основании MSD значения пути от первого сетевого элемента ко второму сетевому элементу множества сетевых элементов для идентифицируемого набора трафика, который включает в себя набор из одной или нескольких SID меток. Количество SID меток в наборе SID меток обязательно меньше или равно MSD значению. Операции также включают в себя отправку в первый сетевой элемент данных для пути, который будет использован сетевым элементом, для пересылки принятых пакетов через SR сеть. Данные включают в себя набор SID меток, которые должны быть вставлены в принятые пакеты идентифицируемого набора трафика. Контроллер и первый сетевой элемент не используют PCEP по южному интерфейсу.
Краткое описание чертежей
С целью подробного пояснения настоящего изобретения далее приведено описание и прилагаемые чертежи, которые используют для иллюстрации вариантов осуществления изобретения. На чертежах:
фиг. 1 представляет собой блок-схему высокого уровня, иллюстрирующую систему сетевых элементов, коммуникативно соединенных в SR сети, выполненной с возможностью предоставлять максимальную глубину идентификатора сегмента узла и/или линии связи, в соответствии с некоторыми вариантами осуществления;
фиг. 2 иллюстрирует OSPF TLV элемент MSD узла, OSPFv2 непрозрачного LSA в информации маршрутизатора, передающего OSPF TLV MSD узла, и OSPFv3 непрозрачного LSA в информации маршрутизатора, передаваемого OSPF TLV MSD узла, который могут использовать для предоставления максимальной глубины идентификатора сегмента узла, в соответствии с некоторыми вариантами осуществления;
фиг. 3 иллюстрирует ODSF суб-TLV элемент MSD линии связи, OSPFv2 расширенного TLV линии связи, передающий ODSF суб-TLV MSD линии связи, и OSPFv2 TLV линии связи, передающий ODSF суб-TLV MSD линии связи, который могут использовать для предоставления максимальной глубины идентификатора сегмента линии связи, в соответствии с некоторыми вариантами осуществления;
фиг. 4 иллюстрирует OSPFv3 TLV линии связи при маршрутизации, передающий ODSF суб-TLV MSD линии связи, как показано на фиг. 3, который могут использовать для предоставления максимальной глубины идентификатора сегмента линии связи, в соответствии с некоторыми вариантами осуществления;
фиг. 5 иллюстрирует IS-IS TLV элемент MSD узла и IS-IS TLV функциональной возможности маршрутизации, передающий IS-IS TLV MSD узла, который могут использовать для предоставления максимальной глубины идентификатора сегмента узла в соответствии с некоторыми вариантами осуществления;
фиг. 6 иллюстрирует IS-IS суб-TLV-элемент MSD линии связи и несколько типов IS-IS TLVs, которые могут использовать для предоставления максимальной глубины идентификатора сегмента линии связи, в соответствии с некоторыми вариантами осуществления;
фиг. 7А иллюстрирует блок-схему алгоритма для предоставления максимальной глубины идентификатора сегмента узла/линии связи, в соответствии с некоторыми вариантами осуществления;
фиг. 7В иллюстрирует блок-схема высокого уровня сетевого элемента, который может выполнять последовательность операций, показанную на фиг. 7А, в соответствии с некоторыми вариантами осуществления;
фиг. 8А иллюстрирует блок-схему алгоритма для использования предоставленной максимальной глубины идентификатора сегмента узла/линии связи, в соответствии с некоторыми вариантами осуществления;
фиг. 8В иллюстрирует блок-схему высокого уровня контроллера, который может выполнять последовательность операций, показанную на фиг. 8А в соответствии с некоторыми вариантами осуществления;
фиг. 9А иллюстрирует взаимосвязь между сетевыми устройствами (NDs) в примерной сети, а также три примерные реализации NDs, в соответствии с некоторыми вариантами осуществления;
фиг. 9В иллюстрирует примерный способ реализации специализированного сетевого устройства, в соответствии с некоторыми вариантами осуществления;
фиг. 9С иллюстрирует различные иллюстративные способы, с помощью которых могут быть соединены элементы виртуальной сети (VNEs), в соответствии с некоторыми вариантами осуществления;
фиг. 9D иллюстрирует сеть с единственным сетевым элементом (NE) на каждом из NDs, и в рамках подхода прямой пересылки, на котором отображено различие между традиционным распределенным подходом (обычно используемым традиционными маршрутизаторами) и централизованным подходом для обеспечения достижимости и пересылки информации (также называемым сетевым управлением), в соответствии с некоторыми вариантами осуществления;
фиг. 9E иллюстрирует упрощенный случай, когда каждый из NDs реализует один NE, но централизованная плоскость управления абстрагировала множество NEs в различные NDs (для представления) в один NE в одной из виртуальной сети (сетях), в соответствии с некоторыми вариантами осуществления;
фиг. 9F иллюстрирует случай, когда множество VNEs реализованы на различных NDs и соединены друг с другом и, при этом, централизованная плоскость управления абстрагирует это множество VNEs, сопоставляя как один VNE в одной из виртуальных сетей, в соответствии с к некоторым вариантам осуществления;
фиг. 10 иллюстрирует устройство общего назначения плоскости управления с программным обеспечением централизованной плоскости управления (CCP)), в соответствии с некоторыми вариантами осуществления.
Описание вариантов осуществления
В нижеследующем описании множество конкретных деталей, таких как логические реализации, коды операций, средство для указания операндов, реализации разбиения/ совместного использования/дублирования ресурсов, типы и взаимосвязи системных компонентов и варианты логического разбиения/интеграции, изложены для предоставления более полного понимания настоящего изобретения. Однако специалисту в данной области техники будет понятно, что изобретение может быть осуществлено на практике без таких конкретных деталей. В других случаях, с целью упрощения описания настоящего изобретения структуры управления, схемы уровня логических элементов и полные последовательности инструкций программного обеспечения не были подробно проиллюстрированы. Посредством ознакомления с настоящим описанием, специалисты в данной области техники смогут реализовать соответствующую функциональность без дополнительных исследований.
Ссылки в спецификации на «один вариант осуществления», «вариант осуществления», «примерный вариант осуществления» и т.д. указывают, что описанный вариант осуществления может включать в себя конкретный признак, структуру или характеристику, но каждый вариант осуществления может необязательно включать в себя конкретный признак, структуру или характеристику. Более того, такие фразы необязательно относятся к одному и тому же варианту осуществления. Дополнительно, при описании конкретного признака, структуры или характеристики, относящийся к варианту осуществления, допускают, что специалисту в данной области техники известен результат использования такого признака, структуры или характеристики относительно других вариантов осуществления, независимо от того, описаны они или нет.
Текст в скобках и блоки, обозначенные пунктирными линиями (например, большие штрихи, маленькие штрихи, пунктир и точки) могут быть использованы в настоящем описании для иллюстрации возможных операций, которые добавляют дополнительные признаки в некоторые варианты осуществления. Однако в некоторых вариантах осуществления такую нотацию не следует понимать так единственный вариант или возможные операции и/или что блоки, обозначенные сплошными линиями, не являются возможными.
В нижеследующем описании и формуле изобретения могут использовать термины «соединенный» и «подключенный» вместе со своими производными. Следует понимать, что эти термины не следует рассматривать в качестве синонимов друг для друга. «Соединенный» используют для обозначения того, что два или более элемента, которые могут или не могут находиться в прямом физическом или электрическом контакте друг с другом, совместно работают или взаимодействуют друг с другом. «Подключенный» используют для указания установления связи между двумя или более элементами, которые соединены друг с другом.
В SR сетях контроллер может быть выполнен с возможностью определять один или несколько идентификаторов сегмента (SID) (также называемый «стеком меток»), которые должны быть добавлены сетевым элементом в сетевой трафик для обеспечения транзита данного трафика по конкретному пути в SR сети. Например, сетевой элемент (например, граничный маршрутизатор на границе SR сети) может принимать подлежащий последующей передаче пакет по SR сети для определения сконфигурированного набора SIDs, которые должны быть вставлены в пакет, и добавляет эти метки. Эти SIDs могут быть проверены другими сетевыми элементами в SR сети для быстрого определения способа рассылки трафика. После передач пакетов по SR сети, эти SIDs могут быть удалены (или «выдавлены»), поскольку определенный сегмент (или участок пути) был завершен. Соответственно, контроллер может сконфигурировать сетевой элемент, который изначально принял трафик, установить конкретный набор SIDs в трафике для последующей передачи трафика соответствующим образом.
Однако, многие сетевые устройства (обеспечивающие функциональность сетевых элементов) имеют ограничения, основанные на аппаратном и/или программном обеспечении, которые ограничивают характеристики сетевых устройств в области обработки трафика. Например, различные сетевые устройства имеют разные функциональные возможности вставлять различное количество SIDs в трафик, и даже различные компоненты сетевых устройств (например, линейные карты), даже в одном сетевом устройстве, могут иметь разные функциональные возможности вставлять различное количество SIDs в трафик. Например, одно сетевое устройство может использовать первую линейную карту, обеспечивающую вставку только четырех меток, тогда как вторая линейная карта одного сетевого устройства может вставлять двенадцать меток, и в то время третья линейная карта одного сетевого устройства может вставить шестнадцать меток.
Таким образом, при вычислении SR туннелей централизованным контроллером (например, элементом вычисления пути (PCE) или SDN контроллером), крайне важно, чтобы контроллер имел информацию о «максимальной SID глубине» (или «MSD») конкретного узла, для предотвращения попыток установить путь/туннель с набором SID, имеющий большую глубину (то есть, больше), чем узел способен вставлять в трафик.
Например, если контроллер выбирает путь для набора трафика, который требует вставки шести меток (SIDs), то этот путь не может быть реализован сетевым элементом, который имеет возможность вставить только три метки в трафик. В таких ситуациях необходимо решить множество технических задач, таких как перегрузка сети, снижение трафика и сбой в сети.
Соответственно, были предприняты усилия для решения этой технической задачи с использованием расширений протокола связи элементов вычисления пути (PCEP) (например, через южный интерфейс между контроллером и его сетевыми элементами, служащими в качестве плоскости передачи, возможно, с использованием TLV в пределах PCEP OPEN сообщения), позволяя сетевому элементу предоставлять контроллеру MSD значение для сетевого элемента. Таким образом, сетевой элемент может сообщать о максимальной SIDs глубине, которую он может обеспечить, и контроллер может учитывать это при определении путей для трафика, чтобы не допустить попыток сформировать путь, имеющий большее количество SIDs, чем может быть вставлено сетевым элементом.
Несмотря на то, что эта разработка, безусловно, полезна, но по-прежнему не соответствует требованиям функционирования во многих средах, в которых PCEP не используют (или не может быть использовано), и поэтому сетевые элементы не могут сообщать свои MSDs контроллеру. Например, во многих средах определенные сетевые элементы (например, сетевой элемент на головном узле SR туннеля) не поддерживают PCEP. (Дополнительно, любые попытки использовать протокол граничного шлюза (BGP) для предоставления этой информации аналогичным образом являются неудачными, поскольку сетевые элементы во многих схемах развертывания также не могут поддерживать или «взаимодействовать» по BGP.)
Дополнительно, в средах, где одно сетевое устройство может иметь множество функциональных возможностей на множестве линий связи (например, различные функциональные возможности разных линейных карт), вышеупомянутый PCEP подход в значительной степени «расходует» функциональные возможности некоторых компонентов устройства. Например, для обеспечения функциональности, очевидно, что с использованием PCEP сетевой элемент должен сообщать о наименьшей/самом низком уровне MSD функциональных возможностей, которые все его компоненты могут поддерживать, в качестве MSD значения. Таким образом, это «расходует» избыточные функциональные возможности любых компонентов, имеющие большие функциональные возможности, так как эти компоненты могут вставлять большее количество SIDs, но не могут этого сделать, потому что контроллеру не разрешено предоставлять такие SIDs для используемого сетевого элемента. Например, для сетевого устройства с первой линейной картой, способной вставить три метки и со второй линейной картой, способной вставлять шестнадцать меток, сетевому устройству необходимо будет сообщить MSD значение всего только для трех меток и, следовательно, контроллер может обеспечить только путь для трех меток к сетевому устройству, вероятно, в значительной степени ограничивая пути, которые он может использовать, несмотря на то, что вторая линейная карта может обрабатывать больше наборов SIDs.
Соответственно, для решения упомянутой технической задачи необходимо разработать усовершенствованные технологии.
Как описано в настоящем документе, в некоторых вариантах осуществления MSD значение может быть сообщено обратно контроллеру с использованием протокола распределения меток (LDP), такого как OSPF протокол или протокол маршрутизации промежуточных систем (IS-IS), тем самым, устраняя необходимость использования PCEP. Кроме того, в некоторых вариантах осуществления сетевой элемент может, возможно, сообщать (для контроллера) MSD для множества своих линий связи (например, линейных карт), которые могут позволить контроллеру более полно использовать функциональные возможности сети, рассматривая и/или устанавливая более длинные наборы SIDs для данных линий связи, которые могут их разместить.
Фиг. 1 представляет собой блок-схему высокого уровня, иллюстрирующую систему 100 сетевых элементов 102A-102F, коммуникативно соединенных в сети 120 с поддержкой SR, выполненной с возможностью предоставлять максимальную глубину идентификатора сегмента узла и/или линии связи согласно некоторым вариантам осуществления. Данная система включает в себя контроллер 104 и шесть сетевых элементов A-F (102A-102F), служащих в качестве плоскости передачи по SR-сети 120. В этом примере предполагают, что PCEP канал 116 между контроллером 104 и, по меньшей мере, сетевым элементом «A» 102A отсутствует. Примечательно, что PCEP канал 116 может быть установлен или может отсутствовать между другими сетевыми элементами B-F (102B-102F).
В этом примере, как показано кружком «1», сетевой элемент «A» 102A определяет MSD значение 112 (например, два) и объявляет MSD значение 112 в TLV элементе 110. В некоторых вариантах осуществления этот TLV элемент 110 отправляют как часть IGP объявления, например, в пределах OSPF LSA или IS-IS TLV. Как известно специалистам в данной области техники, данное объявление может перемещать различные физические коммуникационные пути, поскольку сетевой элемент «A» 102A, вероятно, не находится в режиме непосредственной связи с контроллером, и, вместо этого, объявленный TLV 110 может быть отправлен одному или нескольким (или всем) интерфейсам для других участвующих в IGP узлов, и, в конечном итоге, объявленный TLV 110 может быть поставлен контроллеру 104, как отмечено кружком «2».
В этот момент, контроллер 104 может использовать MSD значение 112 сетевого элемента «A» 102A при определении путей для трафика, который должен передавать SR сеть 120, который сначала принимают на сетевом элементе «A» 102A. Соответственно, при попытке сформировать путь для идентифицируемой группы трафика (например, потока или другого уникально идентифицируемого типа трафика, такого как пакеты 150А), контроллер 104 может ограничить рассмотрение кандидата путей, которые будут запрограммированы только для тех, которые требуют то же количество (или меньшее число) SIDs, которое должно быть вставлено сетевым элементом «A» 102A. Таким образом, в некоторых вариантах осуществления, MSD значение 112 может быть обработано контроллером 104 аналогично TE требованию/ограничению, таким образом, ограничивая возможности пути, которые, в конечном итоге, могут быть выбраны.
В этом примере, контроллер 104, обозначенный кружком «3», запрограммирует сетевой элемент «А» 102А (например, отправит сообщение сетевому элементу «А» 102А с данными, включающими в себя информацию о пути, такую как набор SIDs 152), путь 114, имеющий количество SIDs, которое не превышают сообщенное MSD значение 112 сетевого элемента «A» 102A, здесь выбирают действующий путь 122, который может использовать один или два SIDs, например, для транзита сетевого элемента «C» 102C и сетевого элемента «E» 102E. После этого, после приема трафика (например, пакетов 150А, обозначенных кружком «4») сетевой элемент «А» 102А может идентифицировать набор SIDs и вставить набор SIDs в этот трафик, в результате чего, трафик (пересылаемые пакеты 150В) отправляют с использованием действительного пути 122 к адресату, обозначенным кружком «5».
Для иллюстрации, на фиг. 1 также показан недействительный путь 124, который мог бы быть рассмотрен контроллером 104, но требуется больший SID стек меток, чем указанное MSD значение 112, например, четыре метки. Примечательно, что системы предшествующего уровня техники могли попытаться использовать этот путь из-за того, что контроллер 104 не имел информации о функциональных возможностях сетевого элемента «А» 102А, что привело бы к сбоям в сети, которые могут быть устранены описанными здесь вариантами осуществления.
Как описано выше, MSD значение 112 может быть объявлено с использованием различных IGP протоколов, включающие в себя, но, не ограничиваясь ими, OSPF и IS-IS.
OSPF
Например, на фиг. 2 показан OSPF MSD TLV элемент 110A узла, OSPFv2 непрозрачное LSA 210 информации маршрутизатора, передающее OSPF MSD TLV 110A и OSPFv3 непрозрачное LSA 250 информации маршрутизатора, передающее OSPF MSD TLV 110A, который может быть использован для предоставления максимальной глубины идентификатора сегмента узла в соответствии с некоторыми вариантами осуществления.
В некоторых вариантах осуществления OSPF MSD TLV 110A может быть использован для объявления MSD значения 112A «узла», которое имеет уровень детализации узла (или сетевого элемента). В некоторых вариантах осуществления, в котором множество различных поддерживаемых SID глубин могут быть применимы к одному сетевому элементу (например, сетевое устройство имеет множество различных линейных карт с разными SID глубинами для вставки), MSD значение может быть самым низким значением поддерживаемых SID глубин. Данный OSPF MSD TLV 110A включает в себя значение 202 типа (2 байта), которое может быть уникальным значением (например, уникальным в пределах конкретного набора TLVs, используемых в конкретной системе или в соответствии с конкретным стандартом), которое идентифицирует OSPF MSD TLV 110A как таковое, значение 204 длины (2 байта), указывающее длину «значения» части TLV 110A, MSD значения 112A узла.
MSD значение 112A узла в некоторых вариантах осуществления представляет собой 2-байтовое значение, включающее в себя значение, представляющее число в диапазоне от нуля («0») до 254. В некоторых вариантах осуществления, значение нуля может представлять собой отсутствие способности при отправке сетевого элемента вставлять SIDs любой глубины, и любое другое значение может представлять собой конкретное количество SIDs, поддерживаемое узлом. Опять же, в некоторых вариантах осуществления это значение может представлять наименьшее значение, поддерживаемое узлом, когда возможны несколько различных значений уровня линии связи поддерживаемой SID глубины для вставки (например, из-за различных типов линейных карт в сетевом элементе). Примечательно, что в некоторых вариантах осуществления использование этого OSPF MSD TLV 110A является возможным, и поэтому от может быть или не может быть объявлен.
Тем не менее, в некоторых вариантах осуществления OSPF MSD TLV 110A узла может быть передан с помощью OSPFv2 непрозрачного LSA 210 информации маршрутизатора, который описан с помощью запроса на комментарии и предложения (RFC) 4970 Инженерной рабочей группы интернета (IETF). Данное OSPFv2 непрозрачного LSA 210 информации маршрутизатора может включать в себя поле 212 возраста состояния линии связи (LS), поле 214 выбора (1 байт), 1 байт, несущий представление «9» или «10» или «11», 1 байт, несущий представление «4», (значение непрозрачного типа), 3 байта несущие представление «0» (значение непрозрачного ID), идентификатор 216 маршрутизатора объявления (4 байта), LS порядкового номера 218 (4 байта), LS контрольная сумма 220 (2 байта), длина 222 размера (2 байта) следующего TLV (s) 224 и TLV (s) 224, которые могут нести данный новый MSD TLV 110A узла.
Аналогичным образом, в некоторых вариантах осуществления OSPF MSD TLV 110A узла может быть передан с помощью OSPFv3 непрозрачного LSA 250 информации маршрутизатора, который также описан IETF RFC 4970. Данное OSPFv3 непрозрачное LSA 250 информации маршрутизатора включает в себя некоторые аналогичные и некоторые иные поля/значения как OSPFv2 непрозрачного LSA 210 информации маршрутизатора, и аналогичным образом переносит новый MSD TLV 110A узла в его поле TLV (s) 224.
Как упоминалось выше, в некоторых вариантах осуществления сетевой элемент может сообщать различные функциональные возможности для размеров SID вставки сетевого элемента. На фиг. 3 проиллюстрированы OSPF MSD суб-TLV элемент 110В линии связи, OSPFv2 TLV 308 расширенной линии связи, передающий OSPF MSD суб- TLV линии связи, и OSPFv2 TLV 330 линии связи, передающий OSPF MSD суб-TLV линии связи, который может быть использован для предоставления максимальной глубины идентификатора сегмента линии связи в соответствии с некоторыми вариантами осуществления.
В некоторых вариантах осуществления сетевой элемент может объявлять один или несколько OSPF MSD суб-TLVs 110В линии связи, например, по одному для каждой линии связи сетевого элемента. OSPF MSD суб-TLV 110В линии связи может включать в себя поля 302 типа (2 байта), включающее в себя уникальный идентификатор, который идентифицирует MSD суб-TLVs 110В как таковой в конкретном контексте, значение 304 длины (2 байта), указывающее длину части «значение» TLV, MSD значение 112В линии связи. В некоторых вариантах осуществления MSD значение 112В линии связи может быть 2 байтовым значением, которое представляет собой число в диапазоне 0-254, при этом, 0 означает отсутствие возможности вставлять SIDs любой глубины, и любое другое значение представляет количество SIDs для конкретной линии связи.
Соответственно, в некоторых вариантах осуществления сетевой элемент может объявлять различные MSD значения (то есть, MSD значения 112В линии связи) с использованием множества OSPF MSD суб-TLVs 110В линии связи.
Одним из примеров OSPF сообщения, которое может использоваться для передачи одного или нескольких MSD суб-TLVs 110В линии связи, является OSPFv2 расширенным TLV 308 линии связи, описанный IETF RFC 7684, и который может быть сам передан в OSPFv2 расширенном непрозрачном LSA линии связи. OSPFv2 расширенный TLV 308 линии связи может включать в себя тип 310 (2 байта), длина 312 (2 байта), тип 314 линии связи (1 байт), зарезервированное пространство (3 байта), идентификатор 318 линии связи (4 байта), значение 320 данных линии связи (4 байта) и ноль или более суб-TLVs 324, при этом, могут, возможно, быть переданы один или несколько OSPF MSD суб-TLVs 110В линии связи.
Аналогичным образом, в некоторых вариантах осуществления сетевой элемент может использовать OSPFv2 TLV 330 линии связи, описанный IETF RFC 3630, который может быть сам передан посредством TE LSA. OSPFv2 TLV 330 линии связи может включать в себя тип 332, длину 334 и переменное количество суб-TLVs 336, включающее в себя суб-TLV 338 типа линии связи, суб-TLV 340 идентификатор линии связи и, возможно: MSD суб-TLV 110В линии связи, IP-адрес 342 локального интерфейса, IP-адрес 344 удаленного интерфейса, ТЕ метрику 346, максимальную ширину 348 полосы пропускания, максимальную зарезервированную ширину 350 полосы пропускания, незарезервированную ширину 352 полосы пропускания и/или значение 354 группы администрирования. В некоторых вариантах осуществления каждый OSPFv2 TLV 330 линии связи может нести только один MSD суб-TLV 110В линии связи и, таким образом, могут быть отправлены два объявления множества MSD суб-TLVs 110В линии связи, множества OSPFv2 TLVs 330 линии связи сетевым элементом (например, в TE LSA).
Дополнительно, фиг. 4 иллюстрирует OSPFv3 TLV 400 маршрутизатор-линия связи, передающий OSPF MSD суб-TLV линии связи, показанный на фиг. 3, который может быть использован для предоставления максимальной глубины идентификатора сегмента линии связи в соответствии с некоторыми вариантами осуществления. OSPFv3 TLV 400 маршрутизатор-линия связи может включать в себя тип 210 маршрутизатор-линия связи (2 байта) (например, со значением «1»), длина 212 (2 байта), тип 214 (1 байт), представление нуля (1 байт), метрики 402 (2 байта), идентификатор 404 интерфейса (4 байта), идентификатор 406 соседнего интерфейса (4 байта), идентификатор 408 соседнего маршрутизатора (4 байта) и переменное количество суб-TLVs 418, которое может передавать MSD суб-TLV 110В линии связи.
IS-IS
Как описано выше, для предоставления максимальной глубины идентификатора сегмента узла и/или линии связи контроллеру без использования PCEP могут быть использованы различные IGP протоколы. Например, в некоторых вариантах осуществления используют IS-IS. На фиг. 5 показан IS-IS MSD суб-TLV элемент 110C узла и IS-IS TLV 506 функциональной возможности маршрутизатора, несущий IS-IS MSD TLV узла, который может быть использован для предоставления максимальной глубины идентификатора сегмента узла в соответствии с некоторыми вариантами осуществления.
В некоторых вариантах осуществления IS-IS MSD суб-TLV элемент 110C узла включает в себя тип 502 (1байт), передающий значение, которое однозначно идентифицирует IS-IS MSD суб-TLV элемент 110C узла как IS-IS MSD суб-TLV элемент 110C узла в конкретном контексте (например, является уникальным для всех типов суб-TLVs в конкретном сценарии использования). IS-IS MSD суб-TLV элемент 110C узла также может включать в себя значение длины 504 длины (1 байт), указывающее длину участка «значение» суб-TLV, который передает MSD значение 112A узла, которое имеет 2 байта в некоторых вариантах осуществления.
Подобно MSD значению 112A узла, представленному на фиг. 2, это MSD значение 112A узла также может быть значением в 2 байта, представляющим число в диапазоне от нуля («0») до 254. В некоторых вариантах осуществления значение нуля может представлять собой отсутствие способности отправляющего сетевого элемента вставлять/вводить SIDs любого размера, и любое другое значение может представлять конкретное количество SIDs, которое могут быть вставлено/введено узлом. Опять же, в некоторых вариантах осуществления это значение может представлять наименьшее значение, поддерживаемое узлом, когда возможны несколько различных значений уровня линии связи поддерживаемой SID размера вставки (например, из-за различных типов линейных карт в сетевом элементе).
В системах, использующих IS-IS, IS-IS MSD суб-TLV элемент 110C узла может быть объявлен с использованием, например, IS-IS TLV 506 функциональной возможности маршрутизатора, как определено IETF RFC 4971. В некоторых вариантах осуществления IS-IS TLV 506 функциональной возможности маршрутизатора включает в себя тип 508 (1байт), значение длины 510 (1 байт) и «значение» 512 участка переменной длины. В некоторых вариантах осуществления «значение» 512 участка переменной длины может включать в себя идентификатор 514 маршрутизатора (4 байта), флаги 515 (1 байт) и переменное количество суб-TLVs 324, которое может (возможно) передавать IS-IS MSD суб-TLV элемент 110C узла.
Как и в OSPF, MSD значения на уровне линии связи могут быть объявлены аналогичным образом в системах, использующих IS-IS. На фиг. 6 показан IS-IS MSD суб-TLV элемент 110D линии связи и несколько типов IS-IS TLVs (606/630), которые могут быть использованы для предоставления максимальной глубины идентификатора сегмента линии связи в соответствии с некоторыми вариантами осуществления.
В некоторых вариантах осуществления новый IS-IS MSD суб-TLV элемент 110D линии связи может быть использован для передачи MSD значений для каждой линии связи. Например, IS-IS MSD суб-TLV элемент 110D линии связи может включать в себя тип 602 (1 байт), который однозначно идентифицирует тип этого суб-TLV, значение длины 604 (1 байт) участка «значение» суб-TLV, который представляет собой MSD значение 112B линии связи (2 байта).
IS-IS MSD суб-TLV элемент 110D линии связи может быть передан множеством различных IS-IS TLVs, в зависимости от контекста использования. Например, один или несколько IS-IS MSD суб-TLVs 110D линии связи могут быть переданы посредством IS-IS «Тип 22» расширенного IS достижимости TLV 606A, как описано в IETF RFC 5305, или IS-IS «Тип 23», IS атрибута соседа TLV 606B, как описано в IETF RFC 5311.
Эти TLVs 606A-606B могут включать в себя тип 608 (1 байт) («22» или «23»), длину 610 (1 байт) «значения» TLV: а именно, идентификатор системы (7 байтов) и псевдоническое число 612, метрику 614 по умолчанию (3 байта), суб-TLV длину 616 (1 байт) и переменное количество суб-TLVs, которое может включать в себя один или несколько IS-IS MSD суб-TLV элемент 110D линии связи.
Аналогично, IS-IS MSD суб-TLV элемент 110D линии связи может быть передан с помощью «Типа 22» IS-IS с множественной топологией (MT) IS TLV 630A, как описано в IETF RFC 5120, или «Типа 223» IS-IS MT IS атрибута соседа TLV 630B, как описано в IETF RFC 5311. Эти TLV 630A-630B могут включать в себя тип 632 («222»или«223») (1 байт), длину 634 (1 байт) и 4 зарезервированных бита , 12 бит МТ-идентификатора 636 и TLV 606 (например, IS-IS расширенного IS достижимости TLV 606A, проиллюстрированный выше).
В некоторых вариантах осуществления для конкретной линии связи используют только один IS-IS MSD суб-TLV элемент 110D линии связи. Хотя в некоторых вариантах осуществления только один IS-IS MSD суб-TLV элемент 110D линии связи передают конкретным TLV (например, TLV типа 22/23/222/223, как описано выше), в некоторых вариантах осуществления множество IS-IS MSD суб-TLVs 110D линии связи, то есть, для множества линий связи, могут быть упакованы только в один из этих TLVs (например, Type 22/23/222/223).
Последовательность операций и компоненты системы
На фиг. 7А показана последовательность 700 операций для предоставления максимальной глубины идентификатора сегмента узла и/или линии связи согласно некоторым вариантам осуществления. Операции на этой блок-схеме алгоритма и блок-схеме алгоритма на фиг. 8А будут описаны со ссылкой на примерные варианты осуществления других чертежей. Однако следует понимать, что операции блок-схем алгоритма могут быть выполнены вариантами осуществления, отличными от описанных со ссылкой на другие чертежи, и варианты осуществления, рассмотренные со ссылкой на эти другие чертежи, могут выполнять операции, отличающиеся от операций, описанных со ссылкой на блок-схемы алгоритма. Однако в некоторых вариантах осуществления последовательность 700 операций может выполняться сетевым элементом на фиг. 1, таким как сетевой элемент «А» 102А, который может выступать в качестве «граничного» маршрутизатора на границе сети 120 с поддержкой SR или действовать как «головной» конец SR туннеля/пути.
На этапе 705 последовательность 700 операций включает в себя передачу TLV-элемента, включающего в себя MSD значение. Эта передача может быть выполнена сетевым элементом в SR сети и может быть отправлена по одной или нескольким (или всем) ее линиям связи, ведущих к другим сетевым элементам в SR сети. MSD значение определяет максимальное количество SID меток, которые сетевой элемент может вставлять в заголовки пакетов принятых пакетов для пересылки принятых пакетов через SR сеть. В некоторых вариантах осуществления TLV элемент является суб-TLV, и в некоторых вариантах осуществления TLV элемент является «обычным» TLV элементом.
В некоторых вариантах осуществления TLV элемент является частью OSPF объявления (например, LSA), и в некоторых вариантах осуществления TLV элемент является частью IS-IS объявления (например, TLV). TLV элемент может прямо или косвенно (например, через другие сетевые элементы) в конечном счете, быть предоставлен контроллеру.
В различных вариантах осуществления TLV элемент может быть передан с помощью OSPFv2 непрозрачного LSA 210 информации маршрутизатора, OSPFv3 непрозрачного LSA 250 информации маршрутизатора, OSPFv2 расширенного TLV 308 линии связи, OSPFv2 TLV 330 линии связи, OSPFv3 TLV 400 маршрутизатор-линия связи, IS-IS TLV 506 функциональной возможности маршрутизатора, IS-IS «Тип 22» расширенного IS достижимости TLV 606A, IS-IS «Тип 23», IS атрибута соседа TLV 606B, «Тип 222» IS-IS с множественной топологией (MT) IS TLT 630A и/ или «Тип 223» IS-IS MT IS атрибута соседа TLV 630B.
На этапе 710 последовательность 700 операций также включает в себя прием от контроллера данных для пути, который будет использован для пересылки принятых пакетов через SR сеть. Данные включают в себя набор из одной или нескольких SID меток, которые должны быть вставлены в любые принятые пакеты, ассоциированные с этим путем. Примечательно, что набор SID меток включает в себя меньше или равное MSD значению количества SID меток, первоначально переданных на этапе 705.
Возможно, на этапах 715-720-725 последовательность 700 операций может включать в себя прием одного или более пакетов (например, которые могут быть ассоциированы с путем, описанным в отношении этапа 710), вставку набора из одной или нескольких меток (например, например, набор SIDs) в принимаемые пакеты для получения модифицированных пакетов, и передачу модифицированных пакетов по пути.
На фиг. 7В показана блок-схема 750 высокого уровня сетевого элемента 102А, который может выполнять последовательность 700 операций, показанную на фиг. 7А, в соответствии с некоторыми вариантами осуществления.
Возможно, каждый изображенный модуль может быть реализован как физически отдельный блок. Некоторые или все модули могут быть объединены в физический блок. Кроме того, модули не обязательно должны строго быть реализованы в аппаратных средствах. Предусматривают, что блоки могут быть реализованы с помощью комбинации аппаратного и программного обеспечения. Например, электронное устройство 752 может включать в себя один или несколько центральных блоков обработки, выполняющие программные команды, хранящиеся на постоянном носителе данных или в прошивке для выполнения функций модулей.
Электронное устройство 752 может реализовать сетевой элемент 102А и включать в себя модуль 754 передачи и модуль 756 приема.
Модуль 754 передачи может быть выполнен с возможностью передавать TLV-элемент, включающий в себя MSD значение, при этом, MSD значение идентифицирует максимальное количество SID меток, которые сетевой элемент способен вставлять в заголовки пакетов принятых пакетов, чтобы обеспечить пересылку принятых пакетов через SR сеть. TLV элемент может быть передан с использованием OSPF протокола. В некоторых вариантах осуществления модуль 754 передачи может выполнять операции на этапе 705 последовательности 700 операций, показанной на фиг. 7А.
Модуль 756 приема может быть выполнен с возможностью принимать от контроллера данные для пути, который будет использоваться для пересылки принятых пакетов через SR сеть, при этом, данные включают в себя набор из одной или нескольких SID меток, которые будут вставляться в принятые пакеты, ассоциированные с этим путем, и где набор SID меток меньше или равен MSD значению количества SID меток. В некоторых вариантах осуществления модуль 756 приема может выполнять операции на этапе 710 последовательности 700 операций, показанной на фиг. 7А.
В некоторых вариантах осуществления электронное устройство 752 может включать в себя другие не проиллюстрированные модули, такие как один или модули для выполнения операций на этапах 715, 720 и/или 725 последовательности 700 операций, показанной на фиг. 7А и, возможно, могут включать в себя другие не проиллюстрированные модули для выполнения других операций, описанных в настоящем документе. Таким образом, изображенный вариант осуществления является иллюстративным, а не ограничивающим.
На фиг. 8А показана последовательность 800 операций для использования предоставленной максимальной глубины идентификатора сегмента узла и/или линии связи в соответствии с некоторыми вариантами осуществления. В некоторых вариантах осуществления последовательность 800 операций может выполняться контроллером, таким как контроллер 104 на фиг. 1.
На этапе 805 последовательность 800 операций включает в себя прием из первого сетевого элемента множества сетевых элементов SR сети TLV элемента, включающего в себя MSD значение. MSD значение определяет максимальное количество SID меток, которые первый сетевой элемент может вставлять в заголовки пакетов принятых пакетов для обеспечения пересылки принятых пакетов через SR сеть.
В некоторых вариантах осуществления TLV элемент является частью OSPF объявления (например, LSA), и в некоторых вариантах осуществления TLV элемент является частью IS-IS объявления (например, TLV). TLV элемент может прямо или косвенно (например, через другие сетевые элементы) быть предоставлен контроллеру из исходного сетевого элемента.
В некоторых вариантах осуществления TLV элемент является суб-TLV, и в некоторых вариантах осуществления TLV элемент является «обычным» TLV элементом.
В различных вариантах осуществления TLV элемент может быть передан с помощью OSPFv2 непрозрачного LSA 210 информации маршрутизатора, OSPFv3 непрозрачного LSA 250 информации маршрутизатора, OSPFv2 расширенного TLV 308 линии связи, OSPFv2 TLV 330 линии связи, OSPFv3 TLV 400 маршрутизатор-линия связи, IS-IS TLV 506 функциональной возможности маршрутизатора, IS-IS «Тип 22» расширенного IS достижимости TLV 606A, IS-IS «Тип 23», IS атрибута соседа TLV 606B, «Тип 222» IS-IS с множественной топологией (MT) IS TLT 630A и/ или «Тип 223» IS-IS MT IS атрибута соседа TLV 630B.
На этапе 810 последовательность 800 операций включает в себя определение, на основании MSD значения, пути от первого сетевого элемента ко второму сетевому элементу множества сетевых элементов для идентифицируемого набора трафика. Путь может быть представлен набором из одного или нескольких SID меток. Количество SID меток в наборах меток идентификатора сегмента обязательно меньше или равно MSD значению, принятому на этапе 805.
В некоторых вариантах осуществления этап 810 включает в себя выполнение процесса поиска пути с использованием принятого MSD значения в качестве ограничения, так что любой выбранный путь не будет иметь соответствующее количество SIDs, которое превышает MSD значение. Например, в некоторых вариантах осуществления этап 810 включает в себя идентификацию набора кандидатов путей и исключение из рассмотрения одного или нескольких кандидатов путей на основании определения того, что для этого пути необходимо ставить количество SIDs в трафик (например, посредством первого сетевого элемента), превышающее MSD значение, сообщенное первым сетевым элементом.
В вариантах осуществления, в котором MSD значение является MSD значением «линии связи» для первой линии связи первого сетевого элемента, этап 805 также может включать в себя прием одного или нескольких дополнительных MSD значений для одной или нескольких дополнительных линий связи первого сетевого элемента. В этом случае, определение на этапе 810 может быть основано на одном или нескольких из этих MSD значений, так что MSD возможности различных линий связи могут быть рассмотрены при попытке идентифицировать пути, используя эти различные линии связи.
На этапе 815 последовательность 800 операций включает в себя отправку в первый сетевой элемент данных для пути, который будет использоваться сетевым элементом для пересылки принятых пакетов через SR сеть. Данные включают в себя набор SID меток, которые должны быть вставлены в принятые пакеты идентифицируемого набора трафика.
На фиг. 8В показана блок-схема 850 высокого уровня контроллера 104, который может выполнять последовательность 800 операций на фиг. 8А в соответствии с некоторыми вариантами осуществления.
Возможно, каждый изображенный модуль может быть реализован как физически отдельный блок. Некоторые или все модули могут быть объединены в физический блок. Кроме того, модули не обязательно должны строго быть реализованы в аппаратных средствах. Предусматривают, что блоки могут быть реализованы с помощью комбинации аппаратного и программного обеспечения. Например, электронное устройство 852 может включать в себя один или несколько центральных блоков обработки, выполняющие программные команды, хранящиеся на постоянном носителе данных или в прошивке для выполнения функций модулей.
Электронное устройство 852 может реализовать контроллер 104, который может включать в себя модуль 854 приема, модуль 856 определения и/или модуль 858 отправки.
Модуль 854 приема может быть выполнен с возможностью принимать от первого сетевого элемента множества сетевых элементов сегмента маршрутизации сети, TLV элемент, включающий в себя MSD значение, которое идентифицирует максимальное количество SID меток, которое первый сетевой элемент может вставлять в заголовки пакетов принятых пакетов для обеспечения пересылки принятых пакетов через SR сеть. TLV элемент может быть отправлен с использованием OSPF протокола. В некоторых вариантах осуществления модуль 854 приема может выполнять операции на этапе 805 последовательности 800 операций, показанной на фиг. 8А.
Модуль 856 определения может быть выполнен с возможностью определять, на основании MSD значения, путь от первого сетевого элемента ко второму сетевому элементу множества сетевых элементов для идентифицируемого набора трафика, который включает в себя набор из одного или больше SID меток, причем количество SID меток в наборе SID меток меньше или равно MSD значению. В некоторых вариантах осуществления модуль 856 определения может выполнять операции на этапе 810 последовательности 800 операций, показанной на фиг. 8А.
Модуль 858 отправки может быть выполнен с возможностью отправлять в первый сетевой элемент данные для пути, который будет использован сетевым элементом для пересылки принятых пакетов через SR сети, при этом, данные включают в себя набор SID меток, которые будут вставлены в принятые пакеты идентифицируемого набора трафика. В некоторых вариантах осуществления модуль 858 отправки может выполнять операции на этапе 815 последовательности 800 операций, показанной на фиг. 8А.
В некоторых вариантах осуществления контроллер 104 может включать в себя другие не проиллюстрированные модули для выполнения других операций, описанных в настоящем документе. Таким образом, изображенный вариант осуществления является иллюстративным, а не ограничивающим.
Как описано в настоящем документе, в некоторых вариантах осуществления используют электронные устройства. Электронное устройство может хранить и/или передавать (внутри и/или с другими электронными устройствами по сети) код (который состоит из программных инструкций и который иногда упоминается как код компьютерной программы или компьютерная программа) и/или данные, используя машиночитаемые носители (например, считываемые компьютером носители данных), такие как машиночитаемые носители данных (например, магнитные диски, оптические диски, постоянное запоминающее устройство (ROM), устройства флэш-памяти, память на фазовых переходах) и машиночитаемые носители данных передачи (также называемые несущими) (например, электрическая, оптическая, радио, акустическая или другая форма распространяемых сигналов, таких как несущие волны, инфракрасные сигналы). Таким образом, многие электронные устройства (например, компьютер или «вычислительное устройство») могут включать в себя аппаратное и программное обеспечение, такое как набор из одного или нескольких процессоров, соединенных с одним или несколькими машиночитаемыми носителями для хранения кода для выполнения на множестве процессоров и/или для хранения данных.
Например, электронное устройство может включать в себя энергонезависимую память, содержащую код, поскольку энергонезависимая память может сохранять код/данные, даже когда электронное устройство выключено (когда питание отключено). В то время как электронное устройство включено, то эта часть кода, который должен выполняться процессором (и) этого электронного устройства, обычно копируют из более медленной энергонезависимой памяти в энергозависимую память (например, динамическое оперативное запоминающее устройство (DRAM)), статическую память произвольного доступа (SRAM)) этого электронного устройства. Многие электронные устройства также включают в себя набор или один или несколько физических сетевых интерфейсов для установления сетевых соединений (для передачи и/или приема кода и/ или данных с использованием распространяющихся сигналов) или иным образом обмениваются данными с другими электронными устройствами. Одна или несколько частей различных вариантов осуществления, описанных здесь, могут быть реализованы с использованием различных комбинаций программного обеспечения, прошивки и/или аппаратного обеспечения.
Сетевое устройство (ND) представляет собой электронное устройство, которое коммуникативно соединяет другие электронные устройства (например, другие сетевые устройства, устройства конечного пользователя) в одной или нескольких сетях. Некоторые сетевые устройства представляют собой «сетевые устройства множества служб», которые обеспечивают поддержку множества сетевых функций (например, маршрутизация, использование мостов, коммутация, агрегация уровня 2, контроль границ сеанса, качество обслуживания и/или управление подписчиками) и/или предоставлять поддержку для множества приложений (например, данных, голоса и видео).
На фиг. 9А показана схема взаимосвязи между сетевыми устройствами (NDs) в примерной сети, а также три примерных реализации NDs в соответствии с некоторыми вариантами осуществления. На фиг. 9А показаны NDs 900A-900H, и их взаимосвязь посредством линий 900A-900B, 900B-900C, 900C-900D, 900D-900E, 900E-900F, 900F-900G и 900A-900G связи, а также между 900H и каждым из 900A, 900C, 900D и 900G. Эти NDs являются физическими устройствами, и взаимосвязь между этими NDs может быть беспроводной или проводной (часто называемой линией связи). Дополнительная линия связи, простирающаяся от NDs 900A, 900E и 900F (и не показана как завершающаяся на терминале), иллюстрирует, что эти NDs действуют как точки входа и выхода для сети, и поэтому эти NDs иногда называют «граничными» NDs, тогда как другие NDs могут быть названы «основными» NDs.
Две из иллюстративных реализаций ND на фиг. 9А представляют собой: 1) специализированное сетевое устройство 902, которое может включать в себя специализированные заказные интегральные схемы (ASICs) и специализированную операционную систему (ОS); и 2) сетевое устройство 904 общего назначения, которое может использовать общие готовые коммерческие (COTS) компоненты (например, процессоры) и потенциально «стандартную» ОS.
Специализированное сетевое устройство 902 включает в себя сетевое оборудование 910, содержащее вычислительный ресурс (ы) 912 (обычно включающий в себя набор из одного или нескольких процессоров), ресурсы (ресурсы) 914 пересылки (которые обычно включают в себя одну или несколько ASICs и/или сетевые процессоры) и физические сетевые интерфейсы (NIs) 916 (иногда называемые физическими портами), а также непреходящие машиночитаемые носители 918 данных, имеющее сохраненное на нем сетевое программное обеспечение 920.
Сетевое программное обеспечение 920 может в некоторых вариантах осуществления включать в себя MSD код 990A модуля объявления, используемый для реализации MSD модуля 933A объявления, который может выполнять описанные в настоящем документе операции, включающие в себя операции последовательности 700 операций, показанной на фиг. 7A и обсуждаемые в этом описании. Например, MSD модуля 933A объявления может содержать примерный механизм OSPF и/или IS-IS маршрутизации, выполненный с возможностью отправлять MSD значение, как описано в настоящем документе. Эти MSD значения могут быть определены на основании, например, функциональных возможностей физических сетевых интерфейсов 916.
Физический NI является аппаратным обеспечением в ND, через которое устанавливают сетевое соединение (например, беспроводное соединение через контроллер беспроводного сетевого интерфейса (WNIC) или посредством подключения кабеля к физическому порту, подключенному к контроллеру сетевого интерфейса (NIC)), показанное взаимосвязью между NDs 900A-900H.
Во время работы сетевое программное обеспечение 920 может быть выполнено сетевым оборудованием 910 для формирования экземпляра одного или нескольких экземпляров 922 сетевого программного обеспечения. Каждый из экземпляров 922 сетевого программного обеспечения и эта часть сетевого оборудования 910, которая выполняет этот экземпляр сетевого программного обеспечения (будь то выделенное аппаратное обеспечение, предназначенное для этого экземпляра сетевого программного обеспечения и/или используемое оборудование в течение временных интервалов, временно совместно используемое этим сетевым программным экземпляром с другими экземплярами 922 сетевого программного обеспечения), может формировать (отдельный) виртуальный сетевой элемент 930A-930R. Каждый из виртуальных сетевых элементов (VNEs) 930A-930R включает в себя модуль 932A-932R управления и конфигурации связи (иногда называемый локальным модулем управления или модулем управления связи) и таблицу (ы) 934A-934R пересылки, так что данный виртуальный сетевой элемент (например, 930A) включает в себя модуль управления и конфигурации связи (например, 932A), набор из одной или нескольких таблиц пересылки (например, 934A) и ту часть сетевого оборудования 910, которая выполняет виртуальной сетевой элемент (например, 930A).
В некоторых вариантах осуществления один или несколько модулей управления и конфигурирования связи (например, 932А) виртуального сетевого элемента (ов) (VNEs) 930A-930R могут включать в себя MSD модуль 933A объявления, сформированный или реализованный посредством выполнения кода 990A модуля MSD объявления.
Специализированное сетевое устройство 902 часто физически и/или логически считается включающим в себя: 1) ND плоскость 924 управления (иногда называемую плоскостью управления), содержащую вычислительный ресурс (ресурсы) 912, который выполняет модуль (и) 932A-932R управления и конфигурации связи; и 2) ND плоскость 926 пересылки (иногда называемую плоскостью пересылки, плоскостью данных или медиа плоскостью), содержащую ресурс (ы) 914 пересылки, который использует таблицу (ы) 934A-934R пересылки и физические NIs 916. В качестве примера, когда ND является маршрутизатором (или реализует функцию маршрутизации), ND плоскость 924 управления (вычислительный ресурс (ы) 912, выполняющий модуль (и) 932A-932R управления и конфигурации связи), обычно организует участие в управлении маршрутизации данных (например, пакеты) (например, следующий переход к данным и исходящий физический NI для этих данных) и сохраняет эту информацию маршрутизации в таблице (ах) 934A-934R пересылки, и ND плоскость 926 пересылки выполнена с возможностью принимать эти данные на физических NIs 916 и пересылать эти данные из соответствующих физических NIs 916 на основании таблицы (таблиц) 934A-934R пересылки.
На фиг. 9В показан пример 937 реализации специализированного сетевого устройства 902 в соответствии с некоторыми вариантами осуществления. На фиг. 9В показано специализированное сетевое устройство, включающее в себя карты 938 (обычно с возможностью оперативной замены). Хотя в некоторых вариантах осуществления карты 938 имеют два типа (один или более, которые работают как ND плоскость 926 пересылки (иногда называемые линейными картами), и один или несколько, которые работают для реализации ND плоскости 924 управления (иногда называемой управляющими картами)), альтернативные варианты осуществления могут сочетать функциональность с одной картой и/или включать в себя дополнительные типы карт (например, один дополнительный тип карты называется сервисной картой, карточкой ресурсов или карточкой с несколькими приложениями). Сервисная карта может предоставлять специализированную обработку (например, услуги уровня 4 - уровня 7 (например, брандмауэр, безопасность протокола IP (IPsec), уровень защищенных сокетов (SSL)/безопасность транспортного уровня (TLS), система обнаружения вторжений (IDS), одноранговая сеть (P2P), речевой протокол IP (VoIP) пограничного контроллера сессий, мобильные беспроводные шлюзы (шлюз общей услуги пакетной радиосвязи (GPRS)), поддерживающий узел (GGSN), шлюз развитого ядра пакетной коммутации (EPC)). В качестве примера, сервисная карта может использоваться для завершения IPsec туннелей и выполнения алгоритмов аутентификации и шифрования сопутствующих услуг. Эти карточки соединены вместе через один или несколько механизмов межсоединений, проиллюстрированного как объединительная плата 936 (например, первое полное соединение линейных карт и второе полное соединение всех карт).
В контексте раскрытых в настоящем изобретении вариантов осуществления карты 938 могут потенциально иметь различные глубины SIDs, которые они могут вставлять в трафик, и, следовательно, могут иметь разные MSD значения. Например, в некоторых распространенных сценариях развертывания карты 938 могут включать в себя карточки, изготовленные разными поставщиками, или включают в себя карты, которые являются разными моделями одного производителя, и эти карты 938 могут иметь различные возможности SID вставки.
Возвращаясь к фиг. 9А, сетевое устройство 904 общего назначения включает в себя аппаратное обеспечение 940, содержащее набор из одного или более процессоров (процессоров) 942 (которые часто являются COTS-процессорами) и контроллер (ы) 944 сетевого интерфейса (NICs, также известными как сетевые интерфейсные карты) (которые включают в себя физические NIs 946), а также постоянный машиночитаемый носитель 948 данных, хранящий в нем программное обеспечение 950.
Программное обеспечение 950 может включать в себя код 990B MSD модуля объявления, который может быть выполнен процессором (процессорами) 942 для реализации MSD модуля объявления (не показан), который может быть частью приложения(й) 964A-964R, чтобы выполнить описанные в настоящем документе операции (например, последовательность 700 операций на фиг. 7). Соответственно, данный MSD модуль объявления может объявлять MSD значения «узла» и/или «линий связи», которое может быть определено на основании функциональных возможностей 944 NIC(s) и может быть объявлено с использованием IGP, такого как OSPF или IS-IS.
Во время работы процессор(ы) 942 выполняет программное обеспечение 950 для реализации одного или нескольких наборов одного или нескольких приложений 964A-964R. Хотя один вариант осуществления не использует виртуализацию, альтернативные варианты осуществления могут использовать различные формы виртуализации. Например, в одном из таких альтернативных вариантов осуществления уровень 954 виртуализации представляет ядро операционной системы (или оболочку, выполняемую на базовой операционной системе), что позволяет сформировать несколько экземпляров 962A-962R, называемых программными контейнерами, которые каждый может быть использован для выполнения одного (или более) набора приложений 964A-964R; в котором множество программных контейнеров (также называемые механизмами виртуализации, виртуальными выделенными серверами или «тюрьмами») представляют собой пространства пользователя (как правило, пространство виртуальной памяти), которые отделены друг от друга и отделены от пространства ядра, в котором выполняется операционная система; и при этом, набор приложений, работающих в заданном пространстве пользователя, если явно не разрешено, не может получить доступ к памяти других процессов. В другом таком альтернативном варианте осуществления, уровень 954 виртуализации представляет собой гипервизор (иногда называемый монитором виртуальной машины (VMM)) или гипервизор, выполняемый поверх операционной системы хоста, и каждый из наборов приложений 964A-964R запускается на верхней части гостевой операционной системы в экземпляре 962A-962R, называемом виртуальной машиной (которая в некоторых случаях может рассматриваться как сильно изолированная форма программного контейнера), которая запускается поверх гипервизора, при этом, гостевая операционная система и приложение могут не знать, работают ли они на виртуальной машине, как противоположность работе на электронном устройстве т.е. «чистом железе», или через пара-виртуализацию операционной системы и/или приложение может иметь информацию о наличии виртуализации для целей оптимизации. В других альтернативных вариантах осуществления одно или несколько приложений реализуют как unikernel, которые могут быть сгенерированы путем компиляции непосредственно с приложением только ограниченного набора библиотек (например, из операционной системы на основе библиотек (LibOS), включающую в себя драйверы/библиотеки OS служб), которые предоставляют конкретные OS службы, необходимые для приложения. Поскольку unikernel может быть реализован для непосредственного использования на аппаратном обеспечении 940 непосредственно на гипервизоре (в этом случае, unikernel иногда описывают как работающее на LibOS виртуальной машине) или в программном контейнере, варианты осуществления могут быть реализованы полностью с помощью unikernel, работающих напрямую на гипервизоре, представленном уровнем 954 виртуализации, unikernels, работающие в программных контейнерах, представленных экземплярами 962A-962R, или как комбинация unikernels и вышеописанных технологий (например, unikernels и виртуальные машины работают непосредственно на гипервизоре, unikernels и наборы приложений, которые работают в разных программных контейнерах).
Реализация одного или нескольких наборов одного или нескольких приложений 964A-964R, а также виртуализация, в случае применения, совместно называют экземпляром(и) 952 программного обеспечения. Каждый набор приложений 964A-964R, соответствующий конструкции виртуализации (например, экземпляр 962A-962R), в случае применения, и эта часть аппаратного обеспечения 940, которое их выполняет (будь то аппаратное обеспечение, выделенное для этого выполнения и/или временно используемое аппаратное обеспечение для совместного использования), формирует отдельный виртуальный сетевой элемент (ы) 960A -960R.
Виртуальный сетевой элемент (ы) 960A-960R выполняют аналогичную функциональность виртуального сетевого элемента(ов) 930A-930R, например, аналогично модулю (ям) 932A управления и конфигурации связи и таблице(ам) 934A пересылки (данную виртуализацию аппаратного обеспечения 940 иногда называют виртуализацией сетевых функций (NFV)). Таким образом, NFV могут использовать для консолидации многих типов сетевого оборудования на отраслевом стандартном серверном оборудовании большого объема, физических коммутаторах и физическом хранилище, которые могут быть расположены в центрах обработки данных, NDs и клиентском оборудовании (CPE). Хотя варианты осуществления изобретения проиллюстрированы с каждым экземпляром 962A-962R, соответствующим одному VNE 960A-960R, альтернативные варианты осуществления могут реализовывать это соответствие при более высоком уровне детализации (например, виртуальная машина линейной карты виртуализуют линейные карты, виртуальная машина карты управления виртуализуют карты управления и т.д.); следует понимать, что описанные в настоящем документе технологии со ссылкой на соответствие экземпляров 962A-962R с VNEs, также применимы к вариантам осуществления, в которых используют более высокий уровень детализации и/или unikernels.
В некоторых вариантах осуществления уровень 954 виртуализации включает в себя виртуальный коммутатор, который обеспечивает аналогичные услуги пересылки, что и физический коммутатор Ethernet. В частности, этот виртуальный коммутатор пересылает трафик между экземплярами 962A-962R и NIC (s) 944, а также, возможно, между экземплярами 962A-962R; дополнительно, этот виртуальный коммутатор может обеспечить сетевую изоляцию между VNEs 960A-960R, которые по политике не разрешено взаимодействовать друг с другом (например, установлением виртуальных локальных сетей (VLANs)).
Третья примерная реализация ND на фиг. 9A представляет собой гибридное сетевое устройство 906, которое включает в себя как пользовательские ASICs/OS специального назначения, так и COTS-процессоры/стандартную OS в одном ND или одну карту в ND. В некоторых вариантах осуществления такого гибридного сетевого устройства, VM платформы (то есть, виртуальная машина, которая реализует функциональные возможности специализированного сетевого устройства 902) может обеспечить пара-виртуализацию сетевого оборудования в гибридном сетевом устройстве 906.
Независимо от приведенных выше примерных реализаций ND, когда рассматривается один из множества VNE, реализованных ND (например, только один из VNEs является частью данной виртуальной сети) или где только один VNE является в настоящее время реализуемый ND, термин «сетевой элемент» (NE) иногда используют для обозначения этого VNE. Также во всех вышеприведенных примерных реализациях каждый из VNEs (например, VNEs 930A-930R, VNEs 960A-960R и те в гибридном сетевом устройстве 906) принимает данные на физических NIs (например, 916, 946) и пересылает данные из соответствующих физических NIs (например, 916, 946). Например, VNE, реализующий функциональность IP-маршрутизатора, пересылает IP-пакеты на основании некоторой информации IP-заголовка в IP-пакете; где информация IP-заголовка включает в себя IP-адрес источника, IP-адрес получателя, порт источника, порт назначения (где «порт источника» и «порт назначения» относятся к портам протокола, в отличие от физических портов ND), транспортный протокол (например, протокол пользовательских дейтаграмм (UDP), протокол управления передачей (TCP) и значения приоритизированных служб (DSCP).
На фиг. 9С показаны различные примерные способы, с помощью которых могут быть соединены VNEs в соответствии с некоторыми вариантами осуществления изобретения. На фиг. 9C показаны VNEs 970A.1-970A.P (и, возможно, VNEs 970A.Q-970A.R), реализованные в ND 900A и VNE 970H.1 в ND 900H. На фиг. 9C VNEs 970A.1-P отделены друг от друга в том смысле, что они могут принимать пакеты со стороны ND 900A и пересылать пакеты за пределы ND 900A; VNE 970A.1 соединен с VNE 970H.1, и, таким образом, они обмениваются пакетами между соответствующими NDs; VNE 970A.2-970A.3 может, возможно, пересылать пакеты между собой, не пересылая их за пределы ND 900A; и VNE 970A.P может быть, возможно, первым в цепочке VNEs, которая включает в себя VNE 970A.Q, за которым следует VNE 970A.R (это иногда называют динамической цепочкой услуг, где каждый из VNEs в последовательности VNEs обеспечивает различные услуги, например, один или несколько уровней 4-7 сетевых сервисов). Хотя на фиг. 9С показаны различные примерные взаимоотношения между VNEs, альтернативные варианты осуществления могут поддерживать другие взаимоотношения (например, больше/меньше VNEs, больше/меньше динамических цепочек услуг, множество различных динамических цепочек услуг с некоторыми общими VNEs и некоторыми различными VNEs).
NDs на фиг. 9A, например, могут быть частью интернета или частной сети; и другие электронные устройства (не показаны), такие как устройства конечного пользователя, включающие в себя рабочие станции, ноутбуки, нетбуки, планшеты, малоразмерные компьютеры, мобильные телефоны, смартфоны, телешет, мультимедийные телефоны, VoIP телефоны, терминалы, портативные медиаплееры, блоки глобальной системы позиционирования (GPS), носимые устройства, игровые системы, телевизионные приставки, бытовая техника, подключенная к интернету) могут быть подключены к сети (непосредственно или через другие сети, такие как сети доступа) для связи по сети (например, интернет или виртуальные частные сети (VPN), наложенные на (например, туннелируемые через интернет) друг с другом (напрямую или через серверы) и/или получить доступ к контенту и/или услугам. Такой контент и/или услуги обычно предоставляют одним или несколькими серверами (не показаны), принадлежащими поставщику услуг/контента или одному или нескольким конечным пользователям (не показаны), участвующим в сеансе одноранговой (P2P) связи, и могут включать в себя, например, общедоступные веб-страницы (например, бесплатный контент, витрины магазина, службы поиска), частные веб-страницы (например, веб-страницы с именем пользователя/паролем, предоставляющие услуги электронной почты) и/или корпоративные сети через VPNs. Например, устройства конечных пользователей могут быть соединены (например, через абонентское оборудование, подключенное к сети доступа (проводной или беспроводной)) к граничным NDs, которые соединены (например, через один или несколько основных NDs) с другими граничными NDs, которые соединены с электронными устройствами, действующими в качестве серверов. Однако посредством виртуализации вычислений и хранения одно или несколько электронных устройств, работающих как NDs, как показано на фиг. 9A, могут также размещать один или несколько таких серверов (например, в случае сетевого устройства 904 общего назначения одно или несколько экземпляров 962A-962R программного обеспечения могут работать как серверы, то же самое будет верно для гибридного сетевого устройства 906, и в случае специализированного сетевого устройства 902 один или несколько таких серверов могут также работать на уровне виртуализации, выполняемом ресурсом (ми) 912 вычисления); в этом случае, упомянутые серверы расположены совместно с VNEs этого ND.
Виртуальная сеть представляет собой логическую абстракцию физической сети (такой как на фиг. 9A), которая предоставляет сетевые услуги (например, L2 и/или L3 услуги). Виртуальная сеть может быть реализована как оверлейная сеть (иногда называемая сетевой виртуализацией на основе наложения), которая предоставляет сетевые услуги (например, уровень 2 (уровень L2, уровень канала передачи данных) и/или уровень 3 (L3, сетевой уровень) услуги) по подстилающей сети (например, сеть L3, такая как IP-сеть, которая использует туннели (например, общую инкапсуляцию маршрутов (GRE), протокол туннелирования уровня 2 (L2TP), IPSec) для формирования оверлейной сети).
Граничные устройства сетевой виртуализации (NVE) расположены на границе подстилающей сети и используются при реализации сетевой виртуализации; сторона, обращенная к сети NVE использует подстилающую сеть для туннельных кадров в и из других NVEs; сторона, обращенная от сети NVE отправляет и принимает данные в и из систем вне сети. Экземпляр виртуальной сети (VNI) является конкретным экземпляром виртуальной сети на NVE (например, NE/VNE на ND, частью NE/VNE на ND, где этот NE /VNE разделен на множество VNEs посредством эмуляции); один или несколько VNIs могут быть реализованы на NVE (например, как разные VNEs на ND). Виртуальная точка доступа (VAP) является точкой логического соединения на NVE для подключения внешних систем к виртуальной сети; VAP могут быть физическими или виртуальными портами, идентифицированными посредством идентификаторов логического интерфейса (например, VLAN ID).
Примеры сетевых услуг включают в себя: 1) услугу эмуляции Ethernet LAN (многоточечную службу на основе Ethernet, аналогичную услуге IETF MPLS или Ethernet VPN (EVPN)), в которой внешние системы взаимосвязаны по сети посредством LAN по оверлейной сети (например, NVE предоставляет отдельные L2 VNIs (экземпляры виртуального переключения) для разных таких виртуальных сетей и L3 (например, IP/MPLS) туннелирование/инкапсуляция через подстилающую сеть); и 2) виртуализированную службу IP-переадресации (аналогичную IETF IP VPN (например, BGP/MPLS IPVPN) с точки зрения определения обслуживания), в которой внешние системы взаимосвязаны по сети посредством L3 среды по подстилающей сети (например, NVE предоставляет отдельные L3VNIs (экземпляры переадресации и маршрутизации) для разных таких виртуальных сетей и L3 туннелирование/инкапсуляцию (например, IP/MPLS) по подстилающей сети)). Сетевые сервисы могут также включать в себя возможности качества обслуживания (например, маркировку классификации трафика, состояние и планирование трафика), возможности безопасности (например, фильтры для защиты абонентского оборудования от сетевых атак для предотвращения искаженных объявлений маршрута) и возможности управления (например, полное обнаружение и обработка).
На фиг. 9D показана сеть с одним сетевым элементом на каждом из NDs на фиг. 9A, и данный традиционный распределенный подход (обычно используемый традиционными маршрутизаторами) контрастирует с централизованным подходом для обеспечения достижимости и пересылки информации (также называемой сетевым управлением), в соответствии с некоторыми вариантами осуществления изобретения. В частности, на фиг. 9D показаны сетевые элементы (NEs) 970A-970H с аналогичным взаимодействием, что и NDs 900A-H на фиг. 9A.
На фиг. 9D показано, что распределенный подход 972 распределяет функции генерирования информации достижимости и пересылки через NEs 970A-970H; другими словами, распределяют процесс обнаружения соседей и обнаружения топологии.
Например, когда используют специализированное сетевое устройство 902, модуль (и) 932A-932R управления и конфигурирования связи ND плоскости 924 управления обычно включают в себя модуль достижимости и пересылки информации для реализации одного или нескольких протоколов маршрутизации (например, протокол внешнего шлюза, такой как BGP протокол внешней маршрутизации, IGP протокол (ы) внутреннего шлюза (например, OSPF, IS-IS, протокол маршрутизации информации (RIP), LDP, протокол резервирования сетевых ресурсов (RSVP)) (включающий в себя RSVP-TE: сигнализацию с помощью RSVP-TE расширения RSVP для LSP туннелей и обобщенной многопротокольной коммутации по меткам (GMPLS)), которые обмениваются данными с другими сетевыми элементами для обмена путями, и затем выбирают эти пути на основании одной или нескольких метрик маршрутизации. Таким образом, NEs 970A- 970H (например, вычислительный ресурс(ы) 912, выполняющий модуль (и) 932A-932R управления и конфигурирования связи), выполнен с возможностью управлять маршрутизацией данных (например, пакетов) (например, следующий переход данных и исходящего физического NI для этих данных) путем распределительного определения достижимости в сети и вычисления их соответствующей информации пересылки. Информация пути и соседства хранят в одной или нескольких структурах маршрутизации (например, информационная база маршрутизации (RIB), база данных метки (LIB), одна или несколько структур соседства) на ND плоскости 924 управления. ND плоскость 924 управления программирует ND плоскость 926 пересылки информацией (например, информацией соседства и пути) на основании структуры (структур) маршрутизации. Например, ND плоскость 924 управления программирует информацию соседства и пути в одну или несколько таблиц 934A-934R пересылки (например, информационную базу пересылки (FIB), информационную базу пересылки меток (LFIB) и одну или несколько структур соседства) на ND плоскости 926 пересылки. Для пересылки второго уровня ND может хранить одну или несколько таблиц адресов моста, которые используют для пересылки данных на основании информации уровня 2 в этих данных. Хотя в приведенном выше примере используют специализированное сетевое устройство 902, один и тот же распределенный подход 972 может быть реализован на сетевом устройстве 904 общего назначения и гибридном сетевом устройстве 906.
Фиг. 9D иллюстрирует, что централизованный подход 974 (также известный как SDN), который разъединяет систему, принимая решения об отправке трафика из базовых систем, который перенаправляет трафик выбранному адресату. Иллюстрированный централизованный подход 974 выполнен с возможностью генерировать информацию достижимости и информацию пересылки в централизованной плоскости 976 управления (иногда называемой SDN модулем управления, контроллером, сетевым контроллером, OpenFlow контроллером, SDN контроллером, узлом плоскости управления, центром сетевой виртуализации или объектом управления) и, таким образом, процесс обнаружения соседей и обнаружения топологии является централизованным.
Централизованная плоскость 976 управления имеет южный интерфейс 982 с плоскостью 980 данных (иногда называемой уровнем инфраструктуры, плоскостью сетевой пересылки или плоскостью переадресации (которую не следует путать с ND плоскостью пересылки)), которая включает в себя NEs 970A-970H (иногда называемые переключателями, элементами пересылки, элементами плоскости данных или узлами). Централизованная плоскость 976 управления включает в себя сетевой контроллер 978, который включает в себя модуль 979 централизованной достижимости и пересылки информации, который определяет достижимость внутри сети и распределяет информацию пересылки по NEs 970A-970H плоскости 980 данных по южному интерфейсу 982 (который может использовать OpenFlow протокол). Таким образом, сетевая аналитика централизуется в централизованной плоскости 976 управления, выполняемой на электронных устройствах, которые обычно отделены от NDs.
В некоторых вариантах осуществления модуль 979 централизованной достижимости и пересылки информации включает в себя модуль 981 выбора канала MSD-осведомленности, который выполнен с возможностью выполнять операции, описанные в настоящем документе, такие как операции последовательности 800 операция по фиг. 8А.
Например, когда используют специализированное сетевое устройство 902 в плоскости 980 данных, то каждый из модулей 932A-932R управления и конфигурации связи ND плоскости 924 управления обычно включает в себя агент управления, который обеспечивает VNE сторону южного интерфейса 982. В этом случае, ND плоскость 924 управления (вычислительный ресурс (ресурсы) 912, выполняющий модуль (и) 932A-932R управления и конфигурирования связи), выполнен с возможностью управлять маршрутизацией данных (например, пакетов) (например, следующий переход данных и исходящего физического NI для этих данных) посредством управляющего агента, взаимодействующего с централизованной плоскостью 976 управления для приема информации пересылки (а в некоторых случаях информации достижимости) из модуля 979 централизованной достижимости и пересылки информации (следует понимать, что в некоторых вариантах осуществления настоящего изобретения модуль (модули) 932A-932R управления и конфигурирования связи дополнительно для связи с централизованной плоскостью 976 управления также могут играть определенную роль в определении достижимости и/или вычислении информации пересылки, пусть даже и меньше, чем в случае распределенного подхода; такие варианты осуществления, как правило, рассматривают, как находящиеся в рамках централизованного подхода 974, но могут также рассматриваться как гибридный подход).
Хотя в вышеприведенном примере используют специализированное сетевое устройство 902, один и тот же централизованный подход 974 может быть реализован с помощью сетевого устройства 904 общего назначения (например, каждый из VNEs 960A-960R выполнен с возможностью управлять маршрутизацией данных (например, пакетов) (например, следующий переход данных и исходящего физического NI для этих данных) путем установления связи с централизованной плоскостью 976 управления для приема информации пересылки (а в некоторых случаях и информации достижимости) из модуля 979 централизованной достижимости и пересылки информации, следует понимать, что в некоторых вариантах осуществления изобретения VNEs 960A-960R, помимо установления связи с централизованной плоскостью 976 управления, также могут играть определенную роль в определении достижимости и/или вычисления информации пересылки, хотя и меньше, чем в случае распределенного подхода, и гибридного сетевого устройства 906. Фактически использование SDN технологий может усовершенствовать NFV технологию, обычно используемую в сетевом устройстве 904 общего назначения или гибридном сетевом устройстве 906, поскольку NFV может поддерживать SDN, предоставляя инфраструктуру, на которой может работать SDN программное обеспечение, и NFV и SDN стремятся использовать аппаратное обеспечение сервера и физические переключатели.
На фиг. 9D также показано, что централизованная плоскость 976 управления имеет северный интерфейс 984 с прикладным уровнем 986, в котором находится приложение (приложения) 988. Централизованная плоскость 976 управления имеет возможность формировать виртуальные сети 992 (иногда называемые как плоскость логики пересылки, сетевые службы или оверлейные сети (с NEs 970A-970H плоскости 980 данных, являющейся подстилающей сетью)) для приложения(й) 988. Таким образом, централизованная плоскость 976 управления поддерживает глобальный вид всех NDs и сконфигурированных NEs/VNEs, и он эффективно отображает виртуальные сети на подстилающие NDs (включающее в себя сохранение этих сопоставлений, либо как изменения физической сети, либо через аппаратное обеспечение (ND, линия связи или ND-компонент) сбой, добавление или удаление).
На фиг. 9D показан распределенный подход 972, отдельно от централизованного подхода 974, процесс сетевого управления может быть распределен по-разному или два объединены в определенных вариантах осуществления. Например: 1) варианты осуществления обычно могут использовать централизованный подход (SDN) 974, но имеют определенные функции, делегированные NEs (например, распределенный подход может быть использован для реализации одного или нескольких процессов мониторинга неисправности, мониторинга производительности, переключения защиты и примитивы для обнаружения соседей и/или топологии); или 2) варианты осуществления изобретения могут выполнять обнаружение соседей и топологию с помощью, как централизованной плоскости управления, так и распределенных протоколов, и результаты сравнивают с получением исключений, если они не согласуются. Такие варианты осуществления, как правило, рассматривают как находящиеся в рамках централизованного подхода 974, но могут также рассматривать как гибридный подход.
На фиг. 9D показан простой случай, когда каждый из NDs 900A-H реализует один NE 970A-970H, следует понимать, что подходы к управлению сетью, описанные со ссылкой на фиг. 9D, также работают для сетей, в которых один или несколько из NDs 900A-900H реализуют множество VNEs (например, VNEs 930A-930R, VNEs 960A-960R, те, которые находятся в гибридном сетевом устройстве 906). Альтернативно или дополнительно, сетевой контроллер 978 также может эмулировать реализацию множества VNEs в одном ND. В частности, вместо (или в дополнение к) реализации множества VNEs в одном ND сетевой контроллер 978 может представить реализацию VNE/NE в одном ND как множество VNEs в виртуальных сетях 992 (все в одной и той же виртуальной сети(-ях) 992, каждая в разных виртуальных сетях 992 или некоторая комбинация). Например, сетевой контроллер 978 может вызвать ND реализовать один VNE (NE) в подстилающей сети и затем логически разделить ресурсы этого NE в пределах централизованной плоскости 976 управления для представления различных VNEs в виртуальной сети (сетях) 992 (где эти различные VNEs в оверлейных сетях совместно используют ресурсы одной реализации VNE/NE на ND в подстилающей сети).
С другой стороны, фиг. 9E и фиг. 9F иллюстрируют примеры абстракций NEs и VNEs, которые сетевой контроллер 978 может представлять как часть различных виртуальных сетей 992. На фиг. 9E показан простой случай, когда каждый из NDs 900A-H реализует один NE 970A-970H (см. фиг. 9D), но централизованная плоскость 976 управления абстрагировала множество NEs в разных NDs (NEs 970A-970C и 970G-970H) в (для представления) одного NE 970I в одной из виртуальных сетей 992 на фиг. 9D, в соответствии с некоторыми вариантами осуществления. На фиг. 9E показано, что в этой виртуальной сети NE 970I соединен с NE 970D и 970F, которые оба соединены с NE 970E.
На фиг. 9F показан случай, когда множество VNEs (VNE 970A.1 и VNE 970H.1) реализованы на разных NDs (ND 900A и ND 900H) и соединены друг с другом, и где централизованная плоскость 976 управления абстрагирована это множество VNEs, так что они отображаются как один VNE 970T в одной из виртуальных сетей 992 на фиг. 9D, в соответствии с некоторыми вариантами осуществления изобретения. Таким образом, абстракция NE или VNE может охватывать множество NDs.
Хотя некоторые варианты осуществления реализуют централизованную плоскость 976 управления как единый объект (например, один экземпляр программного обеспечения, работающего на одном электронном устройстве), альтернативные варианты осуществления могут предоставлять функциональные возможности для множества объектов для целей резервирования и/или масштабирования (например, множество экземпляров программного обеспечения, работающего на разных электронных устройствах).
Подобно реализации сетевых устройств, электронное устройство (устройства), работающее в централизованной плоскости 976 управления и, следовательно, сетевой контроллер 978, включающий в себя модуль 979 централизованной доступности и пересылки информации, может быть реализован различными способами (например, специализированным устройством, устройством общего назначения (например, COTS) или гибридным устройством). Это электронное устройство (устройства) включают в себя вычислительный ресурс(ы), набор или один или несколько физических NICs и постоянный машиночитаемый носитель данных, на котором хранят программное обеспечение централизованной системы управления. Например, на фиг. 10 показано устройство 1004 плоскости управления общего назначения, включающее в себя аппаратное обеспечение 1040, содержащее набор из одного или нескольких процессоров 1042 (которые часто являются COTS процессорами) и контроллер (контроллеры) 1044 сетевого интерфейса (NICs, также известные как сетевые интерфейсные карты) (которые включают в себя физические NIs 1046), а также постоянный машиночитаемый носитель 1048, хранящий на нем программное обеспечение 1050 централизованной системы управления (CCP).
В некоторых вариантах осуществления CCP программное обеспечение 1050 включает в себя код 1081 модуля выбора канала MSD-осведомленности, который, когда он исполняется процессором (процессорами) 1042, может предоставлять компонент модуля 981 выбора канала MSD-осведомленности в пределах экземпляра 1079 модуля централизованной достижимости и пересылки информации и/или CCP прикладной уровень 1080, в зависимости от конкретной реализации.
В вариантах осуществления, которые используют вычислительную виртуализацию, процессор (ы) 1042 обычно выполняют программное обеспечение для реализации уровня 1054 виртуализации (например, в одном варианте осуществления уровень 1054 виртуализации представляет ядро операционной системы (или оболочку, выполняемую на основной операционной системе), которая позволяет сформировать множество экземпляров 1062A-R, называемых программными контейнерами (представляющими собой отдельные пользовательские пространства, а также называемые механизмами виртуализации, виртуальными выделенными серверами или «тюрьмами»), которые могут использовать для выполнения набора из одного или нескольких приложений; в другом варианте осуществления уровень 1054 виртуализации представляет собой гипервизор (иногда называемый монитором виртуальной машины (VMM)) или гипервизор, выполняющийся поверх операционной системы хоста, и приложение выполняется поверх гостевой операционной системы в экземпляре 1062A-R, называемый виртуальной машиной (которая, в некоторых случаях, может считаться сильно изолированной формой программного контейнера), которой управляет гипервизор, в другом варианте осуществления, приложение реализуют как unikernel, который может быть сгенерирован путем компиляции непосредственно с приложением только ограниченного набора библиотек (например, из библиотеки операционной системы (LibOS), включающей в себя драйверы/библиотеки OS служб), которые предоставляют конкретную OS служб, требуемые приложением, unikernel может работать непосредственно на аппаратном обеспечении 1040 непосредственно на гипервизоре, представленном уровнем 1054 виртуализации (в этом случае, unikernel иногда описывается как работающее на LibOS виртуальной машины) или в программном контейнере, представленном одним из примеров 1062A-R). Опять же, в вариантах осуществления, в которых используют вычислительную виртуализацию, во время работы выполняют экземпляр CCP программного обеспечения 1050 (проиллюстрированного как CCP экземпляр 1076A) (например, в экземпляре 1062A) на уровне 1054 виртуализации. В вариантах осуществления, где вычислительная виртуализация не используется, CCP экземпляр 1076A выполняется как unikernel или поверх операционной системы хоста на «чистом железе» устройства 1004 плоскости управления общего назначения. Реализация CCP 1076A, а также уровня 1054 виртуализации и экземпляры 1062A-R, если они реализованы, совместно называются экземплярами программного обеспечения 1052.
В некоторых вариантах осуществления CCP экземпляр 1076A включает в себя экземпляр 1078 сетевого контроллера. Экземпляр 1078 сетевого контроллера включает в себя экземпляр 1079 модуля централизованной достижимости и пересылки информации (который является уровнем промежуточного программного обеспечения, обеспечивающим контекст сетевого контроллера 978 операционной системы и устанавливает связь с различными сетевыми элементами) и CCP прикладной уровень 1080 (иногда называемый прикладным уровнем) на уровне промежуточного программного обеспечения (обеспечивающий аналитику, необходимую для различных сетевых операций, таких как протоколы, сетевая ситуативная осведомленность и пользовательские интерфейсы). На более абстрактном уровне этот CCP прикладной уровень 1080 в рамках централизованной плоскости 976 управления работает с виртуальными сетевыми представлениями (логическими видами (представлениями) сети), и уровень промежуточного программного обеспечения обеспечивает переход от виртуальных сетей к физическому виду.
Централизованная плоскость 976 управления передает соответствующие сообщения в плоскость 980 данных на основании вычислений CCP прикладного уровня 1080 и сопоставления уровней промежуточного программного обеспечения для каждого потока. Поток может быть определен как набор пакетов, заголовки которых соответствуют заданному шаблону битов; в этом смысле, что традиционная IP-переадресация также представляет собой процесс пересылки, основанный на потоке, где потоки определяются, например, IP-адресом назначения; однако в других реализациях заданный шаблон битов, используемых для определения потока, может включать в себя больше полей (например, 10 или более) в заголовках пакетов. Различные NDs/NEs/VNEs плоскости 980 данных могут принимать разные сообщения и, следовательно, различную информацию пересылки. Плоскость 980 данных обрабатывает эти сообщения и программы соответствующей информации потока и соответствующими действиями в таблицах пересылки (иногда называемых таблицами потоков) соответствующих NEs/VNEs, и затем NEs/VNEs сопоставляют входящие пакеты с потоками, представленными в таблицах пересылки и пересылаемых пакетов на основе совпадений в таблицах пересылки.
Стандарты, такие как OpenFlow, определяют протоколы, используемые для сообщений, а также модель для обработки пакетов. Модель обработки пакетов включает в себя синтаксический анализ заголовков, классификацию пакетов и принятие решений о пересылке. Синтаксический анализ заголовка описывает порядок интерпретации пакета на основании известного набора протоколов. Некоторые поля протокола используют для построения структуры соответствия (или ключа), которую будут использовать при классификации пакетов (например, первое поле ключа может быть адресом (MAC) управления доступом к медиа-источнику, и второе поле ключа может быть MAC-адресом адресата).
Классификация пакетов включает в себя выполнение поиска в памяти для классификации пакета путем определения того, какая запись (также называемая записью таблицы пересылки или потоковой записью) в таблицах пересылки лучше всего соответствует пакету на основе структуры соответствия или ключа, записи таблицы пересылки. Возможно, что многие потоки, представленные в записях таблицы пересылки, могут соответствовать пакету; в этом случае, система обычно выполнена с возможностью определять одну запись таблицы пересылки из множества в соответствии с определенной схемой (например, выбором первой соответствующей записи таблицы пересылки). Записи таблицы пересылки включают в себя как конкретный набор критериев соответствия (набор значений или специальных символов, так и указание того, какие участки пакета следует сравнивать с конкретным значением/значениями/специальными символами, как определено возможностями сопоставления, для определенных полей в заголовке пакета или для некоторого другого контента пакета) и набор из одного или нескольких действий для плоскости данных для приема соответствующего пакета. Например, действие может заключаться в вставке заголовка на пакет, для пакета с использованием определенного порта, лавинную рассылку пакета или просто отбрасывание пакета. Таким образом, запись таблицы пересылки для IPv4 / IPv6 пакетов с конкретным портом адресата протокола управления передачей (TCP) может содержать действие, указывающее, что эти пакеты должны быть отброшены.
Принятие решений о пересылке и выполнение действий осуществляют на основании записи таблицы пересылки, идентифицированной во время классификации пакетов, путем выполнения набора действий, идентифицированных в согласованной записи таблицы пересылки в пакете.
Однако, когда неизвестный пакет (например, «пропущенный пакет» или «совпадение-промах», как используется в OpenFlow терминологии), поступает на плоскость 980 данных, пакет (или подмножество заголовка и контента пакета) обычно пересылают в централизованную плоскость 976 управления. Затем централизованная плоскость 976 управления будет программировать записи таблицы пересылки в плоскость 980 данных для размещения пакетов, принадлежащих потоку неизвестного пакета. После того, как конкретная запись таблицы пересылки запрограммирована в плоскости 980 данных с помощью централизованной плоскости 976 управления, следующий пакет с соответствующими идентификационными данными будет соответствовать этой записи таблицы пересылки, и получить набор действий, ассоциированный с этой согласованной записью.
Сетевой интерфейс (NI) может быть физическим или виртуальным; и в контексте IP-адрес интерфейса представляет собой IP-адрес, назначенный NI, будь то физический NI или виртуальный NI. Виртуальный NI может быть ассоциирован с физическим NI, с другим виртуальным интерфейсом или функционировать в качестве интерфейса (например, интерфейса обратной связи, интерфейса протокола «точка-точка»). NI (физический или виртуальный) может быть пронумерованным (NI с IP-адресом) или ненумерованным (NI без IP-адреса). Интерфейс обратной связи (и его адрес обратной связи) представляет собой конкретный тип виртуального NI (и IP-адреса) NE/VNE (физического или виртуального), который часто используется для целей управления; где такой IP-адрес называется узловым адресом обратной связи. IP-адреса, назначенные NI (s) ND, называются IP-адресами этого ND; на более детализированном уровне IP-адреса, назначенные NI(s), назначенные NE/VNE, реализованные в ND, могут упоминаться как IP-адреса этого NE/VNE.
Выбор следующего перехода с помощью системы маршрутизации для данного адресата может быть выполнен одним путем (то есть, протокол маршрутизации может генерировать один следующий переход по кратчайшему пути); но, если система маршрутизации определяет, что существует множество действительных последующих переходов (то есть, протокол маршрутизации, сгенерированный с помощью решения маршрутизации, предлагает более одного следующего перехода по кратчайшему пути, то это множество следующих переходов имеют равные затраты), используются некоторые дополнительные критерии, например, в сети без маршрутизации информации, ECMP (также известная как выбор маршрута в зависимости от стоимости, многопутевая пересылка, IP-многопутевой переадресации) (например, типичные реализации используют в качестве критериев конкретные поля заголовка, чтобы гарантировать, что пакеты определенного потока пакетов всегда были отправлены на таком же следующем переходе, чтобы сохранить упорядочение потока пакетов). Для целей многопутевой пересылки поток пакетов определяется как набор пакетов, которые совместно используют ограничение порядка. В качестве примера, набор пакетов в конкретной TCP последовательности передачи должен прибыть в порядке, иначе TCP логика будет интерпретировать незапланированную доставку в качестве перегрузки и снизит TCP скорость передачи.
Виртуальная схема (VC), синонимичная виртуальному соединению и виртуальному каналу, представляет собой услугу связи, ориентированную на соединение, которая доставляется посредством связи с коммутацией пакетов. Связь виртуальных схем напоминает коммутацию каналов, поскольку оба являются ориентированными на соединение, что означает, что в обоих случаях данные доставляют в правильном порядке, и сигнализация служебных данных необходима во время фазы установления соединения. Виртуальные схемы могут быть использованы на разных уровнях. Например, на уровне 4, соединение, ориентированное на протокол передачи данных транспортного уровня, такой как протокол управления передачей (TCP), может использовать протокол сетевого уровня коммутации без маршрутизации информации, такой как IP, где различные пакеты могут быть маршрутизированы по различным путям и, таким образом, могут быть доставлены вне порядка. Когда надежная виртуальная схема устанавливается с TCP поверх базового ненадежного IP-протокола без установления соединения, виртуальная схема идентифицируется с помощью пары адресов сокетов источника и адресата сети, то есть, IP-адреса отправителя и получателя и номера порта. Тем не менее, виртуальная схема возможна, поскольку TCP включает в себя нумерацию сегментов и переупорядочение на стороне приемника для предотвращения доставки вне очереди. Виртуальные схемы также возможны на уровне 3 (сетевой уровень) и уровне 2 (уровень данных); такие протоколы виртуальной схемы основаны на коммутации пакетов, ориентированных на соединение, что означает, что данные всегда передаются по одному и тому же сетевому пути, то есть через одни и те же NE/VNE. В таких протоколах пакеты не маршрутизируют индивидуально, и полная информация адресации не указана в заголовке каждого пакета данных; необходим в каждом пакете только небольшой идентификатор виртуального канала (VCI); и информация маршрутизации передается NEs/VNEs во время фазы установления соединения; переключение предполагает только поиск идентификатора виртуального канала в таблице, а не анализ полного адреса. Примеры протоколов виртуальной схемы уровня сетевого уровня и уровня данных, где данные всегда передают по одному и тому же пути представляют собой: X.25, где VC идентифицируют идентификатором виртуального канала (VCI); ретрансляцию кадра, где VC идентифицируют VCI; асинхронный режим передачи (ATM), где схема идентифицируется парой идентификатора виртуального пути (VPI) и виртуального канала (VCI); систему пакетной радиосвязи общего пользования (GPRS); и многопротокольную коммутацию меток (MPLS), которая может быть использована для IP-адресов по виртуальным схемам (каждая схема идентифицируется меткой).
Некоторые NDs (например, некоторые граничные NDs) используют иерархию схем. Листовыми узлами иерархии схем являются абонентские цепи. Абонентские цепи имеют родительские схемы в иерархии, которые обычно представляют собой объединения нескольких абонентских цепей и, следовательно, сетевых сегментов и элементов сети, используемые для обеспечения доступа к сети доступа к этим конечным пользовательским устройствам в ND. Эти родительские схемы могут представлять физические или логические объединения абонентских цепей (например, виртуальную локальную сеть (VLAN), постоянную виртуальную цепь (PVC) (например, для асинхронного режима передачи (ATM)), группу схем, канал, псевдопровод, физический NI ND и группу агрегирования линии связи). Группа схем представляет собой виртуальную конструкцию, которая позволяет группировать различные наборы схем для целей конфигурации, например, для управления агрегатной скоростью. Псевдопровод представляет собой эмуляцию уровня 2 службы, ориентированной на соединение «точка-точка». Группа агрегирования линии связи представляет собой виртуальную конструкцию, которая объединяет несколько физических NIs для целей агрегации и избыточности полосы пропускания. Таким образом, родительские схемы физически или логически инкапсулируют абонентские цепи.
Как правило, каждый VNE (например, виртуальный маршрутизатор, виртуальный мост (который может действовать как экземпляр виртуального коммутатора в виртуальной частной локальной сети (VPLS), независимо управляется. Например, в случае нескольких виртуальных маршрутизаторов каждый виртуальных маршрутизаторов могут совместно использовать системные ресурсы, но отдельно от других виртуальных маршрутизаторов в отношении своего домена управления, пространства имен AAA (аутентификация, авторизация и учет), IP-адреса и базы (баз) данных маршрутизации. Для обеспечения прямого доступа к сети и/или различным классам услуг для абонентов услуг и/или провайдера контента могут использовать множество VNEs.
В некоторых ND «интерфейсы», которые не зависят от физических NIs, могут быть сконфигурированы как часть VNEs для предоставления информации протокола и услуги более высокого уровня (например, адресации 3-го уровня). Абонентские записи на AAA сервере идентифицируют в дополнение к другим требованиям к конфигурации абонента, в какой контекст (например, какой из VNEs/NEs) соответствующие подписчики должны быть привязаны к ND. Как используется в настоящем документе, привязка формирует ассоциацию между физическим объектом (например, физическим NI, каналом) или логическим объектом (например, схемой, такой как абонентская цепь или логическая схема (набор из одной или нескольких абонентских цепей)) и контекстным интерфейсом, по которому конфигурируют сетевые протоколы (например, протоколы маршрутизации, протоколы моста) для данного контекста. Абонентские данные передают на физическом объекте, когда некоторый интерфейс протокола более высокого уровня ассоциирован и сконфигурирован с этим физическим объектом.
Некоторые NDs обеспечивают поддержку для реализации VPNs (виртуальных частных сетей) (например, VPNs уровня 2 и/или VPNs уровня 3). Например, ND, где сеть провайдера и сеть клиента соединены, соответственно, называют PEs (устройство на стороне поставщика услуг) и CE (абонентское устройство). В VPN второго уровня пересылку обычно выполняют на CE (s) на конечной точке VPN, и трафик отправляют по сети (например, через один или несколько PEs, соединенных с другими NDs). Схемы уровня 2 сконфигурированы между CEs и PEs (например, Ethernet-порт, ATM постоянная виртуальная схема (PVC), ретрансляция кадра PVC). В VPN уровня 3 маршрутизацию обычно выполняют посредством PE. В качестве примера, граничный ND, который поддерживает множество VNEs, может быть развернут как PE; и VNE может быть сконфигурирован с использованием VPN протокола и, таким образом, VNE называется VPN VNE.
Некоторые NDs обеспечивают поддержку VPLS (виртуальную частную LAN). Например, в VPLS сети устройства конечного пользователя получают доступ к контенту/услугам, предоставляемым через VPLS сеть, путем соединения с CEs, которые соединены через PEs, соединенные другими NDs. VPLS сети могут быть использованы для реализации сетевых приложений «тройная услуга» (например, приложений для передачи данных (например, высокоскоростной доступ в интернет), видео приложений (например, телевизионных услуг, таких как IPTV (интернет-протокол телевидения), VoD (видео по запросу) услуга) и голосовые приложения (например, служба VoIP), VPN услуги и т. д. VPLS представляет собой тип VPN уровня 2, который может быть использован для многоточечной связи. VPLS сети также позволяют устройствам конечного использования, которые соединены с CEs в отдельных географических точках, устанавливать связь друг с другом через глобальную сеть (WAN), как если бы они были напрямую подключены друг к другу в локальной сети (LAN) (называемой эмулированной LAN).
В VPLS сетях каждый CE обычно подключается, возможно, через сеть доступа (проводной и/или беспроводной) к модулю моста PE через схему присоединения (например, виртуальную линию связи или соединение между CE и PE). Модуль моста PE присоединяется к эмулированной LAN через эмулированный LAN интерфейс. Каждый модуль моста действует как «экземпляр виртуального коммутатора» (VSI), поддерживая таблицу пересылки, которая отображает MAC-адреса на псевдопроводные и схемы присоединения. PEs пересылают кадры (принятые от CEs) в пункты назначения (например, другие CEs, другие PEs) на основании поля MAC-адреса назначения, включенного в состав этих кадров.
Хотя на блок-схемах алгоритма на чертежах показан конкретный порядок выполнения операций в определенных вариантах осуществления изобретения, следует понимать, что такой порядок является примерным (например, альтернативные варианты осуществления могут выполнять операции в другом порядке, объединять определенные операции, перекрывать определенные операции и т.д.).
Хотя изобретение описано в нескольких вариантах осуществления, специалисты в данной области поймут, что изобретение не ограничено описанными вариантами осуществления, и может быть реализовано на практике с модификацией и изменением в пределах сущности и объема прилагаемой формулы изобретения. Таким образом, описание должно рассматриваться как иллюстративное, а не ограничивающее.