ES2905499T3 - Nodos SDN híbridos divididos horizontalmente configurados por Openflow - Google Patents

Nodos SDN híbridos divididos horizontalmente configurados por Openflow Download PDF

Info

Publication number
ES2905499T3
ES2905499T3 ES16788249T ES16788249T ES2905499T3 ES 2905499 T3 ES2905499 T3 ES 2905499T3 ES 16788249 T ES16788249 T ES 16788249T ES 16788249 T ES16788249 T ES 16788249T ES 2905499 T3 ES2905499 T3 ES 2905499T3
Authority
ES
Spain
Prior art keywords
logical
node
network
flow control
fib
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES16788249T
Other languages
English (en)
Inventor
András Kern
Balázs Peter Gerö
Balázs Varga
Zoltán Turanyi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Application granted granted Critical
Publication of ES2905499T3 publication Critical patent/ES2905499T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0895Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/34Signalling channels for network management communication
    • H04L41/342Signalling channels for network management communication between virtual entities, e.g. orchestrators, SDN or NFV entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/036Updating the topology between route computation elements, e.g. between OpenFlow controllers
    • H04L45/037Routes obligatorily traversing service-related nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/741Routing in networks with a plurality of addressing schemes, e.g. with both IPv4 and IPv6
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/02Standardisation; Integration
    • H04L41/022Multivendor or multi-standard integration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/40Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/036Updating the topology between route computation elements, e.g. between OpenFlow controllers
    • H04L45/037Routes obligatorily traversing service-related nodes
    • H04L45/0377Routes obligatorily traversing service-related nodes for service chaining

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Un método implementado por un elemento de red para ejecutar un administrador de base de información de reenvío, FIB, y para programar una función de reenvío de paquetes del elemento de red, donde el administrador de FIB admite un plano de control híbrido con redes definidas por software, SDN y procesos de plano de control local, comprendiendo el método: recibir (401) una solicitud para configurar un elemento de configuración de accesibilidad de nodo, donde el elemento de configuración de accesibilidad de nodo describe la instrucción de procesamiento de paquetes para que la función de reenvío de paquetes reenvíe paquetes hacia un nodo referido, en donde el administrador de FIB configura conmutadores lógicos del elemento de red agregando o eliminando elementos de configuración de accesibilidad a medida que el proceso del plano de control local agrega o elimina la configuración de cómo se puede llegar a un nodo remoto desde el elemento de red; seleccionar (403) un agente de control de flujo a actualizar para que sea accesible al nodo referido; actualizar (405) una representación de información de reenvío lógico para codificar un identificador de siguiente salto para el nodo referido, en donde la representación de información de reenvío lógica es una instancia de puerto lógico o una entrada de grupo de control de flujo y cuando la representación de información de reenvío lógico es la instancia de puerto lógico, y en respuesta a la revocación del elemento de configuración de accesibilidad del nodo, eliminar la instancia de puerto lógico de un conmutador lógico de control de flujo asociado; y enviar un mensaje de estado del puerto de control de flujo a un controlador de servicios que identifica la instancia del puerto lógico.

Description

DESCRIPCIÓN
Nodos SDN híbridos divididos horizontalmente configurados por OpenFlow
Campo
Las realizaciones de la invención se refieren al campo de las redes definidas por software (SDN) y la implementación
de procesos del plano de control en elementos de red. Específicamente, las realizaciones se refieren a un proceso
para usar un protocolo de control de flujo como protocolo de configuración entre nodos SDN híbridos y un controlador
de servicio.
Antecedentes
Una arquitectura SDN híbrida aplica capacidades de control basadas en SDN en la infraestructura de transporte
existente utilizando un plano de control distribuido en lugar de un plano de control centralizado como se utiliza en una
arquitectura SDN estándar. Un ejemplo de una arquitectura SDN híbrida, conocida como división horizontal, es cuando
las funciones relacionadas con el servicio son proporcionadas por el controlador SDN central mientras que las
funciones de transporte más simples (por ejemplo, mantener la conectividad entre los nodos del dominio de red) se
implementan usando métodos distribuidos, heredados.
La Figura 1 es un diagrama de una realización de una realización básica de una implementación SDN híbrida. La SDN
híbrida incluye un controlador de servicios que proporciona un conjunto de servicios a cada uno de los nodos SDN
híbridos en la arquitectura SDN híbrida. Los nodos SDN híbridos utilizan protocolos de transporte distribuidos para la
intercomunicación y el enrutamiento entre los nodos SDN híbridos usando el protocolo de puerta de enlace interior
(IGP) o un protocolo distribuido similar. El controlador de servicio se comunica con cada uno de los nodos SDN híbridos
usando un protocolo de control de flujo.
El protocolo de control de flujo, como OpenFlow o un protocolo de control de flujo similar, especifica un protocolo para
configurar y administrar la FIB de un nodo del plano de datos. Un plan de datos compatible con el control de flujo
implementa una vista lógica de su FIB, denominada conmutador lógico. Todas las acciones de configuración se
realizan en esta vista lógica, es decir, en el conmutador lógico. A continuación, el nodo transforma los elementos de
información de configuración del conmutador lógico en entradas FIB reales. Los elementos de información de
configuración representan la información de reenvío del conmutador lógico. Algunas implementaciones específicas
especifican un protocolo para configurar unas instancias de conmutador lógico de administración, tal como la
configuración OpenFlow (OF-CONFIG). Las diferentes instancias de conmutador lógico del mismo nodo pueden ser
controladas y configuradas por diferentes controladores a través de este protocolo.
Sin embargo, los conceptos relacionados con la implementación SDN híbrida que se han propuesto tienen limitaciones
significativas en sus implementaciones. En particular, la coherencia de su implementación propuesta no está
asegurada ni bien definida. Por lo tanto, siguen existiendo dificultades importantes para implementar una arquitectura
SDN híbrida.
"An Architecture for the Interface to the Routing System; draft-ietf-i2rs-architecture-10.txt" - A. Atlas et al revela una
arquitectura para una interfaz programática estándar para la transferencia de estado dentro y fuera del sistema de
enrutamiento de Internet. "Hybrid-SDN for packet transport: The horizontal split" - Balazs Varga et al describe un
enfoque SDN híbrido que incluye una división de funciones de control local y remoto. La solicitud de patente
internacional WO 2011/161575 describe un método realizado por un elemento de red para notificar a un controlador
de un cambio en una configuración de reenvío de paquetes del elemento de red.
Compendio
La invención está definida por las reivindicaciones independientes. Además, las realizaciones de la invención son las
definidas por las reivindicaciones. Además, los ejemplos, realizaciones y descripciones, que no están cubiertos por
las reivindicaciones, se presentan no como realizaciones de la invención, sino como antecedentes de la técnica o
ejemplos útiles para comprender la invención.
Breve descripción de los dibujos
La invención puede entenderse mejor haciendo referencia a la siguiente descripción y los dibujos adjuntos que se
usan para ilustrar las realizaciones de la invención. En los dibujos:
La Figura 1 es un diagrama de una realización de una realización básica de una implementación SD La Figura 2 es un diagrama de una realización
Figure imgf000002_0001
un nodo de una red definid por software (SDN) hí La Figura 3 es un diagrama de una realización
Figure imgf000002_0002
un dispositivo de red implementado como un nod La Figura 4 es un diagrama de flujo de una realización general del proceso del administrador de la FIB.
La Figura 5 es un diagrama de flujo de una realización del proceso para eliminar los elementos de configuración de accesibilidad en la FIB.
La Figura 6 es un diagrama de una realización del dispositivo de red.
La Figura 7A ilustra la conectividad entre dispositivos de red (ND) dentro de una red ejemplar, así como tres implementaciones ejemplares de los ND, según algunas realizaciones de la invención.
La Figura 7B ilustra una forma ejemplar de implementar un dispositivo de red de propósito especial según algunas realizaciones de la invención.
La Figura 7C ilustra varias formas ejemplares en las que los elementos de red virtual (VNE) pueden acoplarse de acuerdo con algunas realizaciones de la invención.
La Figura 7D ilustra una red con un solo elemento de red (NE) en cada uno de los ND, y dentro de este enfoque directo contrasta un enfoque distribuido tradicional (comúnmente usado por los enrutadores tradicionales) con un enfoque centralizado para mantener la accesibilidad y el reenvío de información (también llamado control de red), de acuerdo con algunas realizaciones de la invención.
La Figura 7E ilustra el caso simple en el que cada uno de los ND implementa un solo NE, pero un plano de control centralizado ha abstraído varios de los n E en diferentes ND en (para representar) un solo NE en una de las redes virtuales, según algunas de las realizaciones de la invención.
La Figura 7F ilustra un caso en el que se implementan múltiples VNE en diferentes ND y están acoplados entre sí, y donde un plano de control centralizado ha abstraído estos múltiples VNE de manera que aparecen como una única VNE dentro de una de las redes virtuales, según algunas realizaciones. de la invención.
La Figura 8 ilustra un dispositivo de plano de control de propósito general con software de plano de control centralizado (CCP), según algunas realizaciones de la invención.
Descripción de las realizaciones
La siguiente descripción describe métodos y aparatos para implementar una red híbrida de redes definidas por software (SDN). La red SDN híbrida está configurada para permitir la configuración de los nodos SDN híbridos a través de un protocolo de control de flujo como el protocolo OpenFlow. Al mismo tiempo, los nodos SDN híbridos admiten procesos de plano de control distribuido convencionales, como el protocolo de puerta de enlace interior (IGP) y protocolos similares. Un administrador de la base de información de reenvío (FIB) interactúa con el controlador de servicio de la SDN y los procesos de control local para mantener y actualizar la FIB de manera que se mantenga una FIB coherente y consistente basada tanto en los procesos del plano de control local como en la configuración del servicio. controlador. Los procesos para actualizar la FIB son eficientes y evitan la creación de escenarios en los que los procesos del controlador de servicio o del plano de control se afecten negativamente entre sí.
En la siguiente descripción, se establecen numerosos detalles específicos, como implementaciones lógicas, códigos de operación, medios para especificar operandos, implementaciones de partición/uso compartido/duplicación de recursos, tipos e interrelaciones de los componentes del sistema, y opciones de partición/integración lógica para proporcionar una mayor comprensión completa de la presente invención. Sin embargo, un experto en la técnica apreciará que la invención se puede poner en práctica sin tales detalles específicos. En otros casos, las estructuras de control, los circuitos de nivel de puerta y las secuencias de instrucciones de software completas no se han mostrado en detalle para no oscurecer la invención. Los expertos en la técnica, con las descripciones incluidas, podrán implementar la funcionalidad apropiada sin una experimentación indebida.
Las referencias en la especificación a "una realización", "la realización", "una realización de ejemplo", etc., indican que la realización descrita puede incluir una característica, estructura o función particular, pero cada realización puede no incluir necesariamente la característica, estructura o función particular. Además, tales frases no se refieren necesariamente a la misma realización. Además, cuando se describe una característica, estructura o función particular en relación con una realización, se afirma que está dentro del conocimiento de un experto en la técnica afectar dicha característica, estructura o función en relación con otras realizaciones, ya sean o no descritas explícitamente.
El texto entre corchetes y los bloques con bordes de trazos (por ejemplo, trazos grandes, trazos pequeños, trazos y puntos) se pueden usar en este documento para ilustrar operaciones opcionales que añaden características adicionales a las realizaciones de la invención. Sin embargo, tal notación no debe entenderse en el sentido de que estas son las únicas opciones u operaciones opcionales, y/o que los bloques con bordes sólidos no son opcionales en ciertas realizaciones de la invención.
En la siguiente descripción y reivindicaciones, pueden usarse los términos "acoplado" y "conectado", junto con sus derivados. Debe entenderse que estos términos no pretenden ser sinónimos entre sí. "Acoplado" se usa para indicar que dos o más elementos, que pueden estar o no en contacto físico o eléctrico directo entre sí, cooperan o interactúan entre sí. "Conectado" se usa para indicar el establecimiento de comunicación entre dos o más elementos que están acoplados entre sí.
Las operaciones en los diagramas de flujo se describirán con referencia a las realizaciones ejemplares de las otras figuras. Sin embargo, debe entenderse que las operaciones de los diagramas de flujo se pueden realizar mediante realizaciones de la invención distintas de las discutidas con referencia a las otras figuras, y las realizaciones de la invención discutidas con referencia a estas otras figuras pueden realizar operaciones diferentes a las discutidas con referencia a los diagramas de flujo.
Un dispositivo electrónico almacena y transmite (internamente y/o con otros dispositivos electrónicos a través de una red) código (que se compone de instrucciones de software y que a veces se denomina código de programa informático o programa informático) y/o datos usando medios legibles por máquina (también llamados medios legibles por ordenador), tales como medios de almacenamiento legibles por máquina (por ejemplo, discos magnéticos, discos ópticos, memoria de solo lectura (ROM), dispositivos de memoria flash, memoria de cambio de fase) y medios de transmisión legibles por máquina (también llamados una portadora) (por ejemplo, señales eléctricas, ópticas, de radio, acústicas u otras formas de propagación, como ondas portadoras, señales infrarrojas). Por lo tanto, un dispositivo electrónico (por ejemplo, un ordenador) incluye hardware y software, como un conjunto de uno o más procesadores acoplados a uno o más medios de almacenamiento legibles por máquina para almacenar código para su ejecución en el conjunto de procesadores y/o para almacenar datos. Por ejemplo, un dispositivo electrónico puede incluir una memoria no volátil que contiene el código, ya que la memoria no volátil puede conservar el código/datos incluso cuando el dispositivo electrónico está apagado (cuando se corta la energía) y mientras el dispositivo electrónico está encendido, esa parte del código que será ejecutado por el procesador o los procesadores de ese dispositivo electrónico generalmente se copia de la memoria no volátil más lenta a la memoria volátil (por ejemplo, memoria dinámica de acceso aleatorio (DRAM), memoria estática de acceso aleatorio (SRAM)) de ese dispositivo electrónico. Los dispositivos electrónicos típicos también incluyen un conjunto o una o más interfaces de red físicas para establecer conexiones de red (para transmitir y/o recibir códigos y/o datos usando señales de propagación) con otros dispositivos electrónicos. Una o más partes de una realización de la invención pueden implementarse usando diferentes combinaciones de software, firmware y/o hardware.
Un dispositivo de red (ND) es un dispositivo electrónico que interconecta comunicativamente otros dispositivos electrónicos en la red (por ejemplo, otros dispositivos de red, dispositivos de usuario final). Algunos dispositivos de red son "dispositivos de red de servicios múltiples" que brindan soporte para múltiples funciones de red (por ejemplo, enrutamiento, puenteo, conmutación, agregación de Capa 2, control de borde de sesión, Calidad de Servicio y/o administración de abonados) y/o brindan soporte para múltiples servicios de aplicaciones (por ejemplo, datos, voz y video).
Descripción general
La Figura 2 es un diagrama de una realización de un nodo de red definida por software (SDN) híbrido. En una realización, el proceso y el sistema usan una división horizontal en el nodo SDN híbrido donde un administrador de la base de información de reenvío (FIB) correlaciona los elementos de información de configuración proporcionados por los procesos del plano de control local y remoto y completa la base de información de reenvío del nodo con base en la información de configuración recibida. En esta configuración, un controlador de servicio se comunica con el nodo a través de una conexión de red. El nodo puede ser un conmutador o un dispositivo de red similar. El nodo incluye el administrador de FIB y los procesos del plano de control local, que implementan los procesos del plano de control distribuido. El administrador de FIB luego usa la entrada del controlador de servicio y los procesos del plano de control local para actualizar una función de reenvío de paquetes del nodo. La FIB mantiene un conjunto de elementos de información de configuración. Los elementos de información de configuración contienen un identificador del siguiente salto para permitir su correlación y combinación por parte del administrador de la FIB. El identificador del siguiente salto puede ser, por ejemplo, una dirección de protocolo de Internet (IP), un identificador de una ruta en la red o una etiqueta de conmutación de etiquetas multiprotocolo (MPLS). La FIB se puede estructurar como una FIB jerárquica (H-FIB) en algunas realizaciones.
En otras realizaciones e implementaciones, se puede implementar una SDN híbrida con lo que se denomina división vertical. En esta implementación, el nodo está configurado para integrar y soportar un plano de control de transporte heredado distribuido y una funcionalidad SDN de transporte central implementada por un controlador de servicios a través de un protocolo de control de flujo. En estas realizaciones e implementaciones, un protocolo de control de flujo puede ampliarse, por ejemplo, mediante el uso de puertos virtuales. Estos puertos virtuales se pueden usar para facilitar el interfuncionamiento entre un conmutador de control de flujo y el transporte heredado en forma de procesos de plano de control local. Sin embargo, la técnica anterior no define cómo deberían usarse los puertos virtuales para implementar el interfuncionamiento entre el transporte heredado en forma de procesos del plano de control local y el transporte controlado por SDN a través de un controlador de servicios. Este interfuncionamiento entre las dos entidades de control es esencial en el caso de una SDN jerárquica dividida horizontalmente; de lo contrario, el plano de control centralizado no podrá detectar los cambios de configuración realizados por el transporte heredado distribuido de los procesos del plano de control local y no podrá adaptarse a él.
En algunas realizaciones, los procesos del plano de control local podrían usar un protocolo de control de flujo como el protocolo OpenFlow para programar la misma instancia de conmutador lógico que el controlador de servicios. Luego, los elementos de información de configuración recibidos de las dos entidades de control (por ejemplo, entradas de flujo o de grupo) se aplican a los paquetes colocados en el canal de procesamiento de paquetes de control de flujo. Para asegurar la secuencia adecuada de ejecución de los elementos de configuración, el identificador del siguiente salto puede estar codificado en el paquete mismo o asociado con el paquete como metadatos. Codificar el identificador (ID) del siguiente salto como un campo de paquete requiere que el nodo vuelva a analizar el paquete varias veces, lo que requiere recursos computacionales adicionales y, a su vez, disminuye el rendimiento alcanzable para el nodo.
Codificar el ID de siguiente salto como metadatos en un protocolo de control de flujo como OpenFlow significa usar un campo de metadatos especificado por el protocolo de control de flujo (por ejemplo, protocolo OpenFlow) o un identificador de elemento de configuración de control de flujo, como un ID de grupo. Sin embargo, estos identificadores tienen una longitud de hasta 8 octetos; por lo tanto, no pueden codificar identificadores complejos del siguiente salto y los identificadores de 8 octetos de longitud deben hacerse corresponder a los descriptores complejos del próximo salto. En tales casos, el controlador de servicios no conoce la correspondencia de ID de siguiente salto con los valores de metadatos de control de flujo y puede obtener esta correspondencia a partir de la entidad de control local del nodo a través de un canal de control. Además, se requiere otra búsqueda entre los valores de metadatos configurados. También es posible que los diversos procesos del plano de control llenen diferentes tablas de control de flujo del mismo conmutador lógico; sin embargo, esta opción da como resultado que se realice una búsqueda de direcciones varias veces. Esto da como resultado el desperdicio de recursos computacionales del conmutador.
Los procesos del plano de control local pueden adjuntar el ID de siguiente salto a los descriptores de puerto definidos en una configuración de control de flujo de un conmutador lógico como OF-CONFIG. Sin embargo, OF-CONFIG permite configurar la encapsulación de paquetes cuando un puerto de conmutador lógico está vinculado a un puerto de dispositivo físico: Este mecanismo es para implementar superposiciones de control de flujo en la parte superior de los túneles, por ejemplo, la virtualización de red mediante encapsulación de enrutamiento genérico (NVGRE) o la red de área local extensible virtual (VxLAN) pero no para configurar pasos de reenvío adicionales. Las realizaciones de la invención expuestas a continuación en el presente documento superan estas limitaciones de la técnica anterior.
Las realizaciones de la invención superan estas deficiencias en la técnica anterior, proporcionando extensiones de protocolo de control de flujo (por ejemplo, OpenFlow) y las funciones de administrador de FIB correspondientes necesarias para implementar una SDN híbrida mediante el uso de un protocolo de control de flujo entre los dispositivos de red y el controlador de servicios. El administrador de FIB de un dispositivo de red, que recibe elementos de configuración de accesibilidad del nodo desde los procesos del plano de control local (por ejemplo, IGP) y que programa la función de reenvío de paquetes según la configuración de accesibilidad recibida, configura varios conmutadores lógicos del mismo elemento de red agregando o eliminando elementos de configuración de accesibilidad a medida que el proceso del plano de control local agrega o elimina la configuración de cómo se puede acceder a un dispositivo de red remoto desde el dispositivo de red en ejecución. Las realizaciones proporcionan ventajas sobre la técnica anterior de registro. Las realizaciones ofrecen reenvío programable en la capa de servicio de transporte en las redes de transporte existentes, permiten un despliegue simple de la funcionalidad SDN de transporte y una implementación simple del dispositivo de red SDN híbrida.
La Figura 3 es un diagrama de una realización de un dispositivo de red implementado como un nodo SDN híbrido. El dispositivo 300 de red ejecuta el administrador 301 de FIB, que recibe elementos de configuración de accesibilidad de nodo de los procesos 309 del plano de control local (por ejemplo, IGP) y que programa la función 303 de reenvío de paquetes según la configuración de accesibilidad recibida, mantiene uno o más modelos 307 de conmutador lógico por servicio de transporte según el estado actual de la función 303 de reenvío de paquetes. Específicamente, el administrador 301 de FIB actualiza los modelos 307 de conmutador lógico con base en las instrucciones de configuración de FIB enviadas por el proceso 309 del plano de control local. Los modelos 307 de conmutador lógico son gestionados por un el agente 305 de control de flujo, que se comunica con el controlador de servicios, actualiza los conmutadores 307 lógicos y envía los comandos de agregación y eliminación a la configuración de reenvío al administrador 301 de FIB.
Los elementos de configuración de accesibilidad del nodo describen todas las instrucciones de procesamiento de paquetes requeridas por la función 303 de reenvío de paquetes para reenviar un paquete hacia un nodo referido (por ejemplo, el nodo de salida del dominio de red). Las instrucciones son, por ejemplo, encapsulaciones de paquetes, actualizaciones de campos de paquetes, puerto físico de salida. Cada elemento de configuración de accesibilidad de nodo contiene un ID de siguiente salto que identifica el conmutador referido.
El administrador 301 de FIB gestiona una FIB 315. El administrador 301 de FIB recibe la solicitud de agregación y eliminación de elementos de configuración de accesibilidad de nodo desde el proceso 309 del plano de control y recibe información de configuración de reenvío de agregación y eliminación del agente 305 de control de flujo. La FIB 315 puede estar organizada de cualquier manera, incluso como una FIB jerárquica (H-FIB). A cambio, cuando el administrador 301 de FIB actualiza la FIB 315 en respuesta a las agregaciones y eliminaciones de la configuración de accesibilidad del nodo, entonces el administrador 301 de FIB envía una solicitud de actualización para la configuración del conmutador lógico al agente de control de flujo 305. El agente 305 de control de flujo a su vez actualiza los conmutadores 307 lógicos.
La función 303 de reenvío de paquetes es una función del dispositivo 300 de red que es responsable de procesar los paquetes entrantes y determinar cómo reenviarlos hacia su próximo salto. La función 303 de reenvío de paquetes puede ser configurada por el administrador 301 de FIB en la dirección de agregar y eliminar comandos recibidos del agente 305 de control de flujo o del proceso 309 del plano de control.
La Figura 4 es un diagrama de flujo de una realización general del proceso del administrador de FIB. El administrador de FIB maneja tanto la agregación de elementos de configuración de accesibilidad como la eliminación de elementos de configuración de accesibilidad. La Figura 4 es el proceso de agregar los elementos de configuración de accesibilidad y el proceso de eliminación se muestra en la Figura 5.
El proceso puede ser iniciado por el administrador de FIB recibiendo una solicitud para configurar un elemento de configuración de accesibilidad de nodo (Bloque 401). La solicitud se recibe del proceso del plano de control local o del agente de control de flujo. La solicitud especifica un nodo en la red para el cual se ha obtenido nueva información de accesibilidad. A continuación, el administrador de FIB selecciona todos los conmutadores lógicos de control de flujo que se actualizarán para que sean accesibles al nodo al que se hace referencia en la solicitud (Bloque 403). La representación de información de reenvío lógico se actualiza para codificar un identificador de siguiente salto para el nodo referido (Bloque 405). A continuación, la información actualizada se envía al controlador de servicios para que tenga una vista del estado actual del elemento de red (Bloque 407). A continuación se presentan aquí ejemplos de la aplicación de este proceso y los tipos de información de reenvío lógico, que incluyen una realización que usa instancias de puerto lógico y otra realización que usa entradas de tabla de grupo.
La Figura 5 es un diagrama de flujo de una realización del proceso para eliminar los elementos de configuración de accesibilidad en la FIB. El proceso puede iniciarse mediante la recepción en el administrador de FIB de una solicitud para revocar un elemento de configuración de accesibilidad de un nodo (Bloque 501). La solicitud puede recibirse de un proceso del plano de control local o de un agente de control de flujo. El administrador de FIB luego selecciona las representaciones de información de reenvío lógico en todos los conmutadores lógicos que representan la entrada de configuración de accesibilidad del nodo revocado (Bloque 503). La representación de información de reenvío lógico puede ser una instancia de puerto lógico o una entrada de grupo como se describe aquí más adelante. La representación de la información de reenvío lógico puede entonces eliminarse o actualizarse de forma similar para reflejar que la configuración de accesibilidad del nodo correlacionado ha sido revocada (Bloque 505). En una realización, la eliminación o actualización de la representación de información de reenvío lógico se puede informar al controlador de servicios (Bloque 507).
Los procesos del administrador de FIB descritos en relación con la Figura 4 y la Figura 5 son realizaciones simplificadas y abstractas proporcionadas a modo de ilustración en lugar de como limitación. Un experto en la técnica comprenderá que las implementaciones más específicas pueden variar en los mecanismos sin dejar de ser coherentes con los procesos y estructuras descritos. Dos implementaciones de ejemplo incluyen una implementación basada en un puerto lógico y una implementación basada en una entrada de grupo que se describen a continuación en el presente documento.
En una realización, el dispositivo de red SDN híbrida es una implementación basada en un puerto lógico. En esta realización de la invención, un puerto lógico de control de flujo, por ejemplo, un puerto lógico OpenFlow, representa exactamente un elemento de configuración de accesibilidad de nodo. Dada esta representación, entonces el ID de siguiente salto para llegar al nodo correspondiente (es decir, el nodo al que se debe llegar como está registrado en la FIB en el elemento de configuración de accesibilidad del nodo) se codifica como un atributo de la estructura de datos del puerto y se propaga al controlador de servicio de la red SDN como contenido del mensaje de estado del puerto estandarizado. El estado del puerto se ampliará para definir un nuevo punto de código de tipo de propiedad de puerto en ofp_puert_desc_prop_tipo (es decir, para una implementación basada en OpenFlow o una extensión similar para otros protocolos de control de flujo). También se define una nueva estructura de datos para llevar el identificador del siguiente salto.
En otra realización de la invención, el puerto lógico codifica el ID de siguiente salto como el nombre del puerto. Esta solución requiere que la longitud del campo de nombre se incremente de 16 o el protocolo permita tales codificaciones en los campos de nombre que no son legibles por un humano (es decir, se utiliza un lenguaje no legible por humanos, como una codificación numérica ).
La razón fundamental detrás de las realizaciones anteriores es que el controlador de servicios de la red SDN usa los ID de siguiente salto cuando selecciona un siguiente salto para una determinada ruta de servicio. Pero para una implementación de OpenFlow como OpenFlow 1.5.0, el identificador de puerto de OpenFlow tiene una longitud de 32 bits y se selecciona de un dominio definido estándar. En consecuencia, el controlador de servicio debe poder asociar el ID de siguiente salto con un puerto lógico OpenFlow, por ejemplo según la nueva propiedad del puerto o según el nombre ampliado del puerto.
Al recibir una regla de flujo de protocolo de control de flujo o una entrada de grupo que apunta a un puerto lógico, el administrador de FIB busca la información de accesibilidad del nodo correspondiente al ID de siguiente salto asignada al puerto lógico en la FIB y configura la función de reenvío de paquetes para reenviar paquetes coincidentes en función de la información de accesibilidad del nodo (por ejemplo, configurar un puerto de salida, encapsulaciones y acciones similares que se realizarán en un paquete coincidente).
Es posible que se configure más de una instancia de conmutador lógico, por ejemplo, cuando varios controladores de servicio se conectan al mismo dispositivo de red. De forma predeterminada, FIB Manager crea una instancia de puerto lógico en cada instancia de conmutador lógico cuando se puede acceder a un nuevo nodo. El administrador de FIB puede programarse para crear puertos lógicos solo en un subconjunto de conmutadores lógicos. Por lo tanto, los procedimientos que se describen a continuación admiten dispositivos de red en los que se configuran varios conmutadores lógicos. El enfoque de estos procesos es la adición y eliminación de los siguientes saltos de la FIB para un nodo dado en la red.
En una realización, el proceso para agregar un nuevo salto siguiente se activa cuando un proceso del plano de control local configura un elemento de configuración de accesibilidad del nodo que aún no se ha traducido. Cuando un proceso del plano de control local configura un elemento de configuración de accesibilidad de nodo que aún no se ha traducido a la función de reenvío de paquetes, el FIB Manager lleva a cabo los siguientes pasos además de actualizar la función de reenvío de paquetes. Primero, el administrador de FIB selecciona cuál de los conmutadores lógicos se actualizará. Esto puede depender de los tipos de servicios o características similares asociadas con los conmutadores lógicos.
A continuación, la FIB crea una nueva instancia de puerto lógico en cada instancia de conmutador lógico seleccionado y codifica el ID de siguiente salto utilizando cualquiera de los métodos descritos en este documento. Como consecuencia de la creación de un puerto lógico, el agente de control de flujo enviará un mensaje de estado del puerto a los controladores de servicio correspondientes indicando la creación del nuevo puerto lógico. Este comportamiento puede ser coherente con algunos protocolos de control de flujo como OpenFlow. En otras realizaciones, se pueden enviar otros tipos de notificaciones al controlador de servicios para proporcionarle esta información de configuración actualizada para que conozca la configuración del dispositivo de red SDN híbrida, lo que afectaría más.
Los procedimientos al eliminar un salto siguiente pueden implementarse después de que se revoque una entidad de configuración de accesibilidad de nodo. En este caso, el FIB Manager lleva a cabo los siguientes pasos además de actualizar la función de reenvío de paquetes. Primero, el administrador de FIB selecciona las instancias de puerto lógico en todos los agentes de control de flujo que representan la entidad de configuración de accesibilidad del nodo revocado. Luego, el administrador de FIB elimina todos los puertos lógicos de control de flujo identificados de los conmutadores lógicos adecuados. Además de eliminar el puerto lógico, FIB Manager elimina todas las entradas de flujo, grupo y medidor que se vuelven inválidas como resultado de eliminar el puerto lógico. Como consecuencia de los pasos anteriores, el agente de control de flujo envía un mensaje de estado de puerto y varios mensajes de modificación de flujo al controlador de servicios indicando la eliminación de los puertos lógicos y de las entradas de flujo. La entidad de configuración de accesibilidad de un nodo puede ser revocada por la entidad del plano de control local del nodo que la configuró previamente, o el administrador de FIB puede declararla inválida como resultado de la actualización del estado de la función de reenvío de paquetes.
Una segunda implementación que tiene un proceso y una estructura distintos de la implementación basada en el puerto lógico anterior es una implementación basada en la entrada de grupo. En la realización de la invención basada en entrada de grupo, una entrada de grupo de control de flujo representa un elemento de configuración de accesibilidad de nodo. La creación, eliminación o actualización de dicha entrada de grupo se propaga al controlador de servicios mediante el mensaje de reenvío de solicitud o un mensaje similar de protocolo de control de flujo como OpenFlow 1.5.0 que lleva un mensaje de modificación de grupo que especifica la creación, la eliminación o la actualización de la entrada del grupo.
La entrada de grupo que representa un elemento de configuración de accesibilidad de nodo puede ser una entrada de grupo indirecta que se refiere a un puerto lógico reservado que lleva el ID de siguiente salto como atributo. En una implementación, el ID de siguiente salto se codifica en una nueva acción incluida en el único segmento de la entrada del grupo indirecto. Al recibir una regla de flujo de protocolo de control de flujo o una entrada de grupo que apunta a una entrada de grupo con una referencia a una ID de siguiente salto, el administrador de FIB busca la información de accesibilidad del nodo correspondiente al ID de siguiente salto en la FIB y configura la FIB para reenviar paquetes coincidentes con base en la información de accesibilidad del nodo (por ejemplo, configurando el puerto de salida, encapsulaciones e información similar en la entrada). Es posible que se configuren más de una instancia de conmutador lógico, por ejemplo, cuando varios controladores de servicio se conectan al mismo dispositivo de red. De forma predeterminada, el administrador de FIB crea una entrada de grupo en cada instancia de conmutador lógico cuando se puede acceder a un nuevo nodo. El administrador de FIB puede programarse para crear entradas de grupo solo en un subconjunto de conmutadores lógicos. Por lo tanto, los procedimientos que se describen a continuación admiten dispositivos de red en los que se configuran varios conmutadores lógicos.
En una realización, los procesos relacionados con la función del administrador de FIB se centran en los procedimientos para crear un siguiente salto. Cuando un proceso del plano de control configura un elemento de configuración de accesibilidad de nodo que no se traduce en la función de reenvío de paquetes, el Administrador de FIB lleva a cabo los siguientes pasos además de actualizar la función de reenvío de paquetes. Primero, el administrador de FIB selecciona cuál de los conmutadores lógicos ha de ser actualizado. Los conmutadores lógicos a actualizar pueden basarse en parámetros de los mismos o en información extrínseca especificada por un controlador de servicios. El administrador de FIB crea una nueva entrada de grupo en cada agente OpenFlow seleccionado y codifica el ID de siguiente salto. Los procedimientos al eliminar un salto siguiente se realizan en respuesta a un cambio en la configuración de accesibilidad del nodo.
Después de que se revoca una entidad de configuración de accesibilidad de nodo, el Administrador de FIB lleva a cabo los siguientes pasos además de actualizar la función de reenvío de paquetes. Primero, el administrador de FIB selecciona las entradas de grupo en todos los conmutadores lógicos que representan la entidad de configuración de accesibilidad del nodo revocado. Luego, el administrador de FIB elimina todas las entradas de grupo identificadas del agente de control de flujo adecuado. Una entidad de configuración de accesibilidad de nodo puede ser revocada por el proceso del plano de control que la configuró previamente, o si el administrador de FIB la declara inválida como resultado de la actualización de estado de la función de reenvío de paquetes.
El Administrador de FIB mantiene una instancia de conmutador lógico de control de flujo de acuerdo con la configuración actual de la función de reenvío de paquetes. El administrador de FIB usa los puertos lógicos para describir la configuración actual de la función de reenvío de paquetes. El administrador de FIB usa las entradas de grupo para describir la configuración actual de la función de reenvío de paquetes.
La Figura 6 es un diagrama de una realización del dispositivo de red. En una realización, un dispositivo 601 de red se implementa como un dispositivo de red SDN híbrida o un dispositivo informático similar. El dispositivo 601 de red puede tener cualquier estructura que le permita recibir tráfico de datos (por ejemplo, tráfico de datos de multidifusión) y reenviarlo hacia su destino. El dispositivo 601 de red puede incluir un procesador 603 de red o un conjunto de procesadores de red que ejecutan las funciones del dispositivo 601 de red. Un "conjunto", como se usa en el presente documento, es cualquier número entero positivo de elementos que incluye un elemento. El dispositivo 601 de red puede ejecutar el administrador 607 de f Ib para implementar las funciones de configuración de la red para hacer la correspondencia adecuada del reenvío de los canales de IP de cambio rápido de los paquetes de datos a través de redes donde el dispositivo 601 de red funciona como un nodo en esta red como se describe anteriormente en el presente documento a través de un procesador 603 de red.
El dispositivo 601 de red se conecta con redes administradas por separado que tienen equipos de usuario y/o servidores de contenido. El procesador 603 de red puede implementar el administrador 607 de FIB como un hardware discreto, un módulo de software o cualquier combinación de los mismos. El procesador 603 de red también puede dar servicio a la base 605A de información de enrutamiento y funciones similares relacionadas con el reenvío de tráfico de datos y el mantenimiento de la topología de la red. La base 605A de información de enrutamiento puede implementarse como tablas de acciones de coincidencia que se utilizan para enviar unidades de datos de protocolo, PDU (es decir, paquetes). Las funciones del administrador 607 de FIB se pueden implementar como módulos en cualquier combinación de software, incluyendo firmware y hardware dentro del dispositivo de red. Las funciones del administrador 607 de FIB que son ejecutadas e implementadas por el dispositivo 601 de red incluyen las descritas anteriormente en el presente documento.
En una realización, el dispositivo 601 de red puede incluir un conjunto de tarjetas 617 de línea que procesan y reenvían el tráfico de datos entrante hacia los respectivos nodos de destino identificando el destino y reenviando el tráfico de datos a la tarjeta 617 de línea apropiada que tiene un puerto de salida que conduce a o hacia el destino a través del siguiente salto. Estas tarjetas 617 de línea también pueden implementar la base de reenvío de información y la base 605B de reenvío de etiquetas, o un subconjunto relevante de las mismas. Las tarjetas 617 de línea también pueden implementar o facilitar las funciones del administrador 607 de FIB descritas anteriormente en este documento. Las tarjetas 617 de línea están en comunicación entre sí a través de una estructura 611 de conmutación y se comunican con otros nodos a través de redes 621 conectadas usando Ethernet, fibra óptica o enlaces y medios de comunicación similares.
La Figura 7A ilustra la conectividad entre dispositivos de red (ND) dentro de una red ejemplar, así como tres implementaciones ejemplares de los ND, según algunas realizaciones de la invención. La Figura 7A muestra los ND 700A-H y su conectividad mediante líneas entre AB, BC, CD, DE, EF, FG y AG, así como entre H y cada uno de A, C, D y G. Estos ND son dispositivos físicos y la conectividad entre estos ND puede ser inalámbrica o por cable (a menudo denominada como un enlace). Una línea adicional que se extiende desde los ND 700A, E y F ilustra que estos ND actúan como puntos de entrada y salida de la red (y, por lo tanto, estos ND a veces se denominan ND de borde; mientras que los otros ND pueden denominarse ND centrales).
Dos de las implementaciones de ND ejemplares en la Figura 7A son: 1) un dispositivo 702 de red de propósito especial que usa circuitos integrados para aplicaciones específicas (ASIC) personalizados y un sistema operativo (OS) propietario; y 2) un dispositivo 704 de red de propósito general que usa procesadores comunes disponibles en el mercado (COTS) y un sistema operativo estándar.
El dispositivo 702 de red de propósito especial incluye hardware 710 de red que comprende recursos 712 informáticos (que normalmente incluyen un conjunto de uno o más procesadores), recurso o recursos 714 de reenvío (que normalmente incluyen uno o más ASIC y/o procesadores de red) e interfaces 716 de red (NI) físicas (a veces llamadas puertos físicos), así como medios 718 de almacenamiento no transitorios legibles por máquina que tienen almacenado software 720 de red. Una NI física es hardware en un ND a través del cual se crea una conexión de red (por ejemplo, de forma inalámbrica a través de un controlador de interfaz de red inalámbrica (WNIC) o mediante la conexión de un cable a un puerto físico conectado a un controlador de interfaz de red (NIC)), tal como las que se muestran mediante la conectividad entre los ND 700A-H. Durante el funcionamiento, el software 720 de red puede ser ejecutado por el hardware 710 de red para instanciar un conjunto de una o más instancias 722 de software de red. Cada una de las instancias 722 de software de red y esa parte del hardware 710 de red que ejecuta esa instancia de software de red (ya sea hardware dedicado a esa instancia de software de red y/o porciones de tiempo de hardware compartidas temporalmente por esa instancia de software de red con otra instancia o instancias 722 de software de red), forman un elemento 760A-R de red virtual separado. Cada uno del elemento o los elementos 760A-R de red virtuales (VNE) incluyen un módulo 732A-R de configuración y comunicación de control (a veces denominado módulo de control local o módulo de comunicación de control) y tablas 734A-R de reenvío, tales que un elemento de red virtual dado (por ejemplo, el 730A) incluye el módulo de configuración y comunicación de control (por ejemplo, el 732A), un conjunto de una o más tablas de reenvío (por ejemplo, la 734A), y esa parte 710 del hardware de red que ejecuta el elemento de red virtual (por ejemplo, el 730A).
El software 720 puede incluir código que cuando se ejecuta mediante hardware 710 de red, hace que el hardware 710 de red realice operaciones de una o más realizaciones de la presente invención como parte de instancias 722 de software de red como el administrador 764 de FIB descrito en el presente documento.
El dispositivo 702 de red de propósito especial a menudo se considera que incluye física y/o lógicamente: 1) un plano 724 de control ND (a veces denominado plano de control) que comprende los recursos 712 informáticos que ejecutan el módulo o módulos 732A-R de configuración y comunicación de control ; y 2) un plano 726 de reenvío ND (a veces denominado plano de reenvío, plano de datos o plano de medios) que comprende el recurso o recursos 714 de reenvío que utilizan la tabla o tablas 734A-R de reenvío y las NI 716 físicos. A modo de ejemplo, cuando el ND es un enrutador (o está implementando la funcionalidad de enrutamiento), el plano de control del ND 724 (el recurso o recursos 712 informáticos que ejecutan el módulo o módulos 732A-R de configuración y comunicación de control) son típicamente responsables de participar en el control de cómo se enrutan los datos (por ejemplo, los paquetes) (por ejemplo, el próximo salto para los datos y la NI física saliente para esos datos) y almacenar esa información de enrutamiento en la tabla o tablas 734A-R de reenvío, y el plano 726 de reenvío ND es responsable de recibir esos datos en las NI 716 físicas y reenviar esos datos a las apropiadas de las NI 716 físicas en base a la tabla o tablas 734A-R de reenvío.
La Figura 7B ilustra una forma ejemplar de implementar el dispositivo 702 de red de propósito especial según algunas realizaciones de la invención. La Figura 7B muestra un dispositivo de red de propósito especial que incluye tarjetas 738 (normalmente conectables en caliente). Mientras que en algunas realizaciones las tarjetas 738 son de dos tipos (una o más que operan como el plano 726 de reenvío ND (a veces llamadas tarjetas de línea), y una o más que operan para implementar el plano 724 de control ND (a veces llamadas tarjetas de control)) , las realizaciones alternativas pueden combinar la funcionalidad en una sola tarjeta y/o incluir tipos de tarjetas adicionales (por ejemplo, un tipo adicional de tarjeta se denomina tarjeta de servicio, tarjeta de recursos o tarjeta de aplicaciones múltiples). Una tarjeta de servicio puede proporcionar un procesamiento especializado (por ejemplo, Servicios de Capa 4 a Capa 7 (por ejemplo, Firewall, Seguridad de Protocolo de Internet (IPsec), Capa de Sockets Seguros (SSL)/Seguridad de Capa de Transporte (TLS), sistema de Detección de Intrusiones (IDS), par a par (P2P), Voz sobre IP (VoIP) Controlador de Borde de Sesión, Puertas de Enlace Inalámbricas Móviles (Nodo de Soporte de la Puerta de Enlace del Servicio General de Paquetes vía Radio (GPRS) (GGSN), Puerta de Enlace del Núcleo de Paquetes Evolucionado (EPC))). A modo de ejemplo , se puede usar una tarjeta de servicio para terminar los túneles IPsec y ejecutar los algoritmos de autenticación y encriptación del asistente. Estas tarjetas se acoplan a través de uno o más mecanismos de interconexión ilustrados como la placa base 736 (por ejemplo, una primera malla completa que une las tarjetas de línea y una segunda malla acoplando todas las tarjetas).
Volviendo a la Figura 7A, el dispositivo 704 de red de propósito general incluye hardware 740 que comprende un conjunto de uno o más procesador o procesadores 742 (que a menudo son procesadores COTS) y controlador o controladores 744 de interfaz de red (NIC; también conocidos como tarjetas de interfaz de red) (que incluyen NI 746 físicas), así como medios 748 de almacenamiento no transitorios legibles por máquina que tienen almacenado el software 750. Durante la operación, el procesador o los procesadores 742 ejecutan el software 750 para instanciar uno o más conjuntos de una o más aplicaciones. 764A-R. Si bien una realización no implementa la virtualización, las realizaciones alternativas pueden usar diferentes formas de virtualización, representadas por una capa 754 de virtualización y contenedores 762A-R de software. Por ejemplo, una de estas realizaciones alternativas implementa la virtualización a nivel de sistema operativo, en cuyo caso la capa 754 de virtualización representa el núcleo de un sistema operativo (o una corrección que se ejecuta en un sistema operativo base) que permite la creación de múltiples contenedores 762A-R de software que pueden usarse para ejecutar uno de los conjuntos de aplicaciones 764A-R. En esta realización, los múltiples contenedores 762A-R de software (también llamados motores de virtualización, servidores privados virtuales o cárceles) son cada uno una instancia de espacio de usuario (típicamente un espacio de memoria virtual); estas instancias de espacio de usuario están separadas entre sí y del espacio del núcleo en el que se ejecuta el sistema operativo; el conjunto de aplicaciones que se ejecutan en un espacio de usuario determinado, a menos que se permita explícitamente, no puede acceder a la memoria de los otros procesos. Otra realización alternativa de este tipo implementa la virtualización completa, en cuyo caso: 1) la capa 754 de virtualización representa un hipervisor (a veces denominado monitor de máquina virtual (VMM)) o un hipervisor que se ejecuta en la parte superior de un sistema operativo anfitrión; y 2) los contenedores 762A-R de software representan cada uno una forma estrechamente aislada de contenedor de software denominada máquina virtual que es ejecutada por el hipervisor y puede incluir un sistema operativo invitado. Una máquina virtual es una implementación de software de una máquina física que ejecuta programas como si se estuvieran ejecutando en una máquina física no virtualizada; y las aplicaciones generalmente no saben que se están ejecutando en una máquina virtual en lugar de ejecutarse en un dispositivo electrónico servidor "bare metal", aunque algunos sistemas brindan paravirtualización que permite que un sistema operativo o aplicación sea consciente de la presencia de virtualización para fines de optimización.
La instanciación de uno o más conjuntos de una o más aplicaciones (por ejemplo, el Administrador de FIB) 764A-R, así como la capa 754 de virtualización y los contenedores 762A-R de software si se implementan, se denominan colectivamente instancia o instancias 752 de software .Cada conjunto de aplicaciones 764A-R, correspondiente al contenedor 762A-de software R si se implementa, y la parte del hardware 740 que las ejecuta (ya sea hardware dedicado a esa ejecución y/o porciones de tiempo de hardware compartidas temporalmente por los contenedores 762A-R de software), forman un elemento o elementos 760A-R de red virtuales separados.
El elemento o elementos 760A-R de red virtuales realizan una funcionalidad similar al elemento o elementos 730A-R de red virtuales 730A-R, por ejemplo, similar al módulo o módulos 732A de configuración y comunicación de control y a la tabla o tablas 734A de reenvío (esta virtualización del hardware 740 a veces se denomina virtualización de funciones de red (NFV)). Por lo tanto, NFV puede usarse para consolidar muchos tipos de equipos de red en hardware de servidor de alto volumen estándar de la industria, conmutadores físicos y almacenamiento físico, que podrían ubicarse en centros de datos, ND y equipos en las instalaciones del cliente (CPE). Sin embargo, diferentes realizaciones de la invención pueden implementar uno o más del contenedor o contenedores 762A-R de software de manera diferente. Por ejemplo, mientras que las realizaciones de la invención se ilustran con cada contenedor de software 762A-R correspondiente a un VNE 760A-R, las realizaciones alternativas pueden implementar esta correspondencia con un nivel de granularidad más fino (por ejemplo, máquinas virtuales de tarjetas de línea virtualizan tarjetas de línea, máquinas virtuales de tarjetas de control virtualizan tarjetas de control, etc.); debe entenderse que las técnicas descritas en el presente documento con referencia a una correspondencia de contenedores 762A-R de software con VNE también se aplican a realizaciones en las que se usa un nivel de granularidad más fino.
En determinadas realizaciones, la capa 754 de virtualización incluye un conmutador virtual que proporciona servicios de reenvío similares a los de un conmutador Ethernet físico. Específicamente, este conmutador virtual reenvía el tráfico entre los contenedores 762A-R de software y la NIC o las NIC 744, así como opcionalmente entre los contenedores 762A-R de software; además, este conmutador virtual puede imponer el aislamiento de la red entre los VNE 760A-R que, por política, no pueden comunicarse entre sí (por ejemplo, respetando las redes de área local virtuales (VLAN)).
El software 750 puede incluir código que, cuando es ejecutado por el procesador o los procesadores 742, hace que el procesador o los procesadores 742 realicen operaciones de una o más realizaciones de la presente invención como parte de los contenedores 762A-R de software, específicamente la ejecución de un administrador 764A-R de FIB o elementos similares de las realizaciones.
La tercera implementación de ND ejemplar en la Figura 7A es un dispositivo 706 de red híbrido, que incluye ASIC personalizados/OS propietario y procesadores COTS/OS estándar en un solo ND o una sola tarjeta dentro de un ND. En ciertas realizaciones de tal dispositivo de red híbrida, una plataforma VM (es decir, una VM que implementa la funcionalidad del dispositivo 702 de red de propósito especial) podría proporcionar paravirtualización al hardware de red presente en el dispositivo 706 de red híbrido.
Independientemente de las implementaciones de ejemplo anteriores de un ND, cuando se está considerando uno de los múltiples VNE implementados por un ND (por ejemplo, solo uno de los VNE es parte de una red virtual dada) o cuando solo se está implementando un único VNE por un ND, el término abreviado elemento de red (NE) se usa a veces para referirse a ese VNE. También en todas las implementaciones de ejemplo anteriores, cada uno de los VNE (por ejemplo, el VNE o los VNE 730A-R, los VNE 760A-R y los del dispositivo 706 de red híbrido) recibe datos en las N i físicas (por ejemplo, la 716, la 746 ) y reenvía esos datos a las correspondientes de las NI físicas (por ejemplo, la 716, la 746). Por ejemplo, un VNE que implementa la funcionalidad de enrutador IP reenvía paquetes IP basándose en parte de la información de encabezado IP en el paquete IP; donde la información del encabezado IP incluye la dirección IP de origen, la dirección IP de destino, el puerto de origen, el puerto de destino (donde "puerto de origen" y "puerto de destino" se refieren en este documento a puertos de protocolo, a diferencia de los puertos físicos de un ND), el protocolo de transporte (por ejemplo, protocolo de datagramas de usuario (UDP), Protocolo de Control de Transmisión (TCP) y valores de servicios diferenciados (DSCP).
La Figura 7C ilustra varias formas ejemplares en las que los VNE se pueden acoplar según algunas realizaciones de la invención. La Figura 7C muestra los VNE 770A.1-770A.P (y opcionalmente los VNE 770A.Q-770A.R) implementados en el ND 700A y el VNE 770H.1 en el ND 700H. En la Figura 7C, los VNE 770A.1-P están separados entre sí en el sentido de que pueden recibir paquetes desde fuera del ND 700A y reenviar paquetes fuera de ND 700A; el VNE 770A.1 está acoplado con el VNE 770H. 1, y así comunican paquetes entre sus respectivos ND; los VNE 770A.2-770A.3 puede opcionalmente reenviar paquetes entre ellos sin reenviarlos fuera del ND 700A; y el VNE 770A.P puede ser opcionalmente el primero en una cadena de VNE que incluye el VNE 770A.Q seguido del v Ne 770A.R (esto a veces se denomina encadenamiento de servicio dinámico, donde cada uno de los VNE en la serie de VNE proporciona un servicio diferente, por ejemplo, uno o más servicios de red de capa 4-7). Si bien la Figura 7C ilustra varias relaciones ejemplares entre los VNE, las realizaciones alternativas pueden soportar otras relaciones (por ejemplo, más/menos VNE, más/menos cadenas de servicios dinámicos, múltiples cadenas de servicios dinámicos diferentes con algunos VNE comunes y algunos VNE diferentes).
Los ND de la Figura 7A, por ejemplo, pueden formar parte de Internet o de una red privada; y otros dispositivos electrónicos (no mostrados; tales como dispositivos de usuario final que incluyen estaciones de trabajo, ordenadores portátiles, miniportátiles, tabletas, agendas electrónicas, teléfonos móviles, teléfonos inteligentes, tabléfonos, teléfonos multimedia, teléfonos con Voz sobre Protocolo de Internet (VOIP), terminales, reproductores multimedia portátiles, unidades GPS, dispositivos portátiles, sistemas de juego, decodificadores, electrodomésticos habilitados para Internet) se pueden acoplar a la red (directamente o a través de otras redes, como redes de acceso) para comunicarse a través de la red (por ejemplo, Internet o redes privadas virtuales. (VPN) superpuestas (por ejemplo, a través de un túnel) de Internet) entre sí (directamente o a través de servidores) y/o acceden a contenido y/o servicios. Dichos contenidos y/o servicios suelen ser proporcionados por uno o más servidores (no mostrados) que pertenecen a un proveedor de servicios/contenido o uno o más dispositivos de usuario final (no mostrados) que participan en un servicio par a par (P2P), y pueden incluir, por ejemplo, páginas web públicas (por ejemplo, contenido gratuito, escaparates, servicios de búsqueda), páginas web privadas (por ejemplo, páginas web a las que se accede con nombre de usuario/contraseña que brindan servicios de correo electrónico) y/o redes corporativas a través de VPN. Por ejemplo, los dispositivos de usuario final se pueden acoplar (por ejemplo, a través de un equipo en las instalaciones del cliente acoplado a una red de acceso (por cable o inalámbrica)) a los ND de borde, que están acoplados (por ejemplo, a través de uno o más ND de núcleo) a otros ND de borde, que están acoplados a dispositivos electrónicos que actúan como servidores. Sin embargo, a través de la virtualización de computación y almacenamiento, uno o más de los dispositivos electrónicos que operan como los ND en la Figura 7A también pueden albergar uno o más de tales servidores (por ejemplo, en el caso del dispositivo 704 de red de propósito general, uno o más de los contenedores 762A-R pueden operar como servidores; lo mismo sería cierto para el dispositivo 706 de red híbrido; en el caso del dispositivo de red para propósitos especiales 702, uno o más de tales servidores también podrían ejecutarse en una capa de virtualización ejecutada por el recurso o recursos 712 de computación); en cuyo caso se dice que los servidores están coubicados con los VNE de ese ND.
Una red virtual es una abstracción lógica de una red física (como la de la Figura 7A) que proporciona servicios de red (por ejemplo, servicios L2 y/o L3). Una red virtual se puede implementar como una red superpuesta (a veces denominada superposición de virtualización de red) que proporciona servicios de red (por ejemplo, Servicios de capa 2 (L2, capa de enlace de datos) y/o capa 3 (L3, capa de red)) sobre una red subyacente (por ejemplo, una red L3, como una red de Protocolo de Internet (IP) que usa túneles (por ejemplo, encapsulación de enrutamiento genérico (GRE), protocolo de túnel de capa 2 (L2TP), IPSec) para crear la red superpuesta).
Un borde de virtualización de red (NVE) se encuentra en el borde de la red subyacente y participa en la implementación de la virtualización de la red; el lado de la red del NVE usa la red subyacente para hacer túneles de tramas hacia y desde otros NVE; el lado externo del NVE envía y recibe datos hacia y desde sistemas fuera de la red. Una instancia de red virtual (VNI) es una instancia específica de una red virtual en un NVE (por ejemplo, un NE/VNE en un ND, una parte de un NE/VNE en un ND donde ese NE/VNE se divide en múltiples VNE a través de emulación); se pueden crear instancias de una o más VNI en un NVE (por ejemplo, como diferentes VNE en un ND). Un punto de acceso virtual (VAP) es un punto de conexión lógica en el n Ve para conectar sistemas externos a una red virtual; un VAP puede ser puertos físicos o virtuales identificados a través de identificadores de interfaz lógica (por ejemplo, un ID de VLAN).
Ejemplos de servicios de red incluyen: 1) un servicio de emulación de LAN Ethernet (un servicio multipunto basado en Ethernet similar a un servicio de Conmutación de Etiquetas Multiprotocolo (MPLS) del Grupo de Trabajo de Ingeniería de Internet (IETF) o VPN de Ethernet (EVPN)) en el que los sistemas externos están interconectados a través de la red mediante un entorno LAN sobre la red subyacente (por ejemplo, un NVE proporciona VNI (instancias de conmutación virtual) L2 independientes para diferentes redes virtuales, y encapsulación de túnel L3 (por ejemplo, IP/MPLS) a través de la red subyacente); y 2) un servicio de reenvío de IP virtualizado (similar a IETF IP v Pn (por ejemplo, Protocolo de Puerta de Enlace de Borde (BGP)/MPLS IP VPN) desde una perspectiva de definición de servicio) en el que los sistemas externos están interconectados a través de la red por un entorno L3 sobre la red subyacente (por ejemplo, un NVE proporciona VNI L3 (instancias de enrutamiento y reenvío) separadas para diferentes redes virtuales, y encapsulación de túnel L3 (por ejemplo, IP/MPLS) a través de la red subyacente)). Los servicios de red también pueden incluir capacidades de calidad de servicio (por ejemplo, marcado de clasificación de tráfico, acondicionamiento y programación del tráfico), capacidades de seguridad (por ejemplo, filtros para proteger las instalaciones del cliente de ataques originados en la red, para evitar anuncios de ruta mal formados) y capacidades de gestión (por ejemplo, detección y procesamiento completos).
La Figura 7D ilustra una red con un solo elemento de red en cada uno de los ND de la Figura 7A, y dentro de este enfoque directo contrasta un enfoque distribuido tradicional (comúnmente usado por los enrutadores tradicionales) con un enfoque centralizado para mantener la accesibilidad y el reenvío de información (también denominado control de red), según algunas realizaciones de la invención. Específicamente, la Figura 7D ilustra los elementos 770A-H de red (NE) con la misma conectividad que los ND 700A-H de la Figura 7A.
La Figura 7D ilustra que el enfoque 772 distribuido distribuye la responsabilidad de generar la accesibilidad y el envío de información a través de los NE 770A-H; en otras palabras, se distribuye el proceso de descubrimiento de vecinos y descubrimiento de topología.
Por ejemplo, donde se usa el dispositivo 702 de red de propósito especial, el módulo o módulos 732A-R de comunicación y configuración de control del plano de control ND 724 típicamente incluyen un módulo de información de reenvío y accesibilidad para implementar uno o más protocolos de enrutamiento (por ejemplo, un protocolo de puerta de enlace exterior como Protocolo de Puerta de Enlace de Borde (BGP), Protocolo o Protocolos de Puerta de Enlace Interiores (IGP) (por ejemplo, Abrir el Camino más Corto Primero (OSPF), Sistema Intermedio a Sistema Intermedio (IS-IS), Protocolo de Información de Enrutamiento (RIP)), Protocolo de Distribución de Etiquetas (LDP), Protocolo de Reserva de Recursos (RSVP), así como RSVP-Ingeniería de Tráfico (TE): Extensiones a RSVP para túneles LSP, Conmutación de Etiquetas Multiprotocolo Generalizada (GMPLS), Señalización RSVP-TE que se comunican con otros NE para intercambiar rutas, y luego selecciona esas rutas con base en una o más métricas de enrutamiento. Por lo tanto, los NE 770A-H (por ejemplo, los recursos 712 informáticos que ejecuta el módulo o módulos 732A-R de configuración y comunicación de control) realizan su responsabilidad para participar en el control de cómo se encaminarán los datos (por ejemplo, los paquetes) (por ejemplo, el próximo salto para los datos y la NI física saliente para esos datos) determinando distributivamente la accesibilidad dentro de la red y calculando su respectiva información de reenvío. Las rutas y adyacencias se almacenan en una o más estructuras de enrutamiento (por ejemplo, la Base de Información de Enrutamiento (RIB), la Base de Información de Etiquetas (LIB), una o más estructuras de adyacencia) en el plano ND 724 de control. El plano ND 724 de control programa el plano 726 de reenvío de ND con información (por ejemplo, información de adyacencia e información de ruta) con base en la estructura o estructuras de enrutamiento. Por ejemplo, el plano 724 de control de ND programa la información de adyacencia y ruta en una o más tablas 734A-R de reenvío (por ejemplo, la Base de Información de Reenvío (FIB), la Base de Información de Reenvío de Etiquetas (LFIB) y una o más estructuras de adyacencia) en el plano 726 de reenvío de ND. Para el reenvío de capa 2, el ND puede almacenar una o más tablas puente que se usan para reenviar datos con base en la información de capa 2 en esos datos. Si bien el ejemplo anterior usa el dispositivo 702 de red de propósito especial, el mismo enfoque 772 distribuido se puede implementar en el dispositivo 704 de red de propósito general y el dispositivo 706 de red híbrido.
La Figura 7D ilustra que un enfoque centralizado 774 (también conocido como redes definidas por software (SDN)) que desacopla el sistema que toma decisiones sobre dónde se envía el tráfico desde los sistemas subyacentes que reenvían el tráfico al destino seleccionado. El enfoque 774 centralizado ilustrado tiene la responsabilidad de la generación de accesibilidad y reenvío de información en un plano 776 de control centralizado (a veces denominado módulo de control SDN, controlador, controlador de red, controlador OpenFlow, controlador SDN, nodo del plano de control, autoridad de virtualización de red , o entidad de control de gestión) y, por tanto, el proceso de descubrimiento de vecinos y descubrimiento de topología está centralizado. El plano 776 de control centralizado tiene una interfaz 782 en dirección sur con un plano 780 de datos (en ocasiones referido a la capa de infraestructura, plano de reenvío de red o plano de reenvío (que no debe confundirse con un plano de reenvío de ND)) que incluye los NE 770A-H (a veces denominados conmutadores, elementos de reenvío, elementos del plano de datos o nodos). El plano 776 de control centralizado incluye un controlador 778 de red, que incluye un módulo 779 de información de reenvío y accesibilidad centralizado que determina la accesibilidad dentro de la red y distribuye la información de reenvío a los NE 770A-H del plano 780 de datos a través de la interfaz 782 en dirección sur (que puede usar el protocolo OpenFlow). Por tanto, la inteligencia de la red está centralizada en el plano 776 de control centralizado que se ejecuta en dispositivos electrónicos que normalmente están separados de los ND.
Por ejemplo, cuando el dispositivo 702 de red de propósito especial se usa en el plano 780 de datos, cada uno de del módulo o módulos 732A-R de configuración y comunicación de control del plano 724 de control de ND típicamente incluye un agente de control que proporciona el lado VNE de la interfaz 782 en dirección sur. En este caso, el plano 724 de control de ND (el recurso o recursos 712 informáticos que ejecutan el módulo o módulos 732A-R de configuración y comunicación de control) realiza su responsabilidad de participar en el control de cómo los datos (por ejemplo, los paquetes) debe enrutarse (por ejemplo, el siguiente salto para los datos y la NI física saliente para esos datos) a través del agente de control que se comunica con el plano 776 de control centralizado para recibir la información de reenvío (y en algunos casos, la información de accesibilidad) del módulo 779 de información de reenvío y accesibilidad centralizado (debe entenderse que en algunas realizaciones de la invención, el módulo o módulos 732A-R de configuración y comunicación de control, además de comunicarse con el plano 776 de control centralizado también puede desempeñar algún papel en la determinación de la accesibilidad y/o el cálculo de la información de reenvío, aunque menos que en el caso de un enfoque distribuido; generalmente se considera que tales realizaciones caen bajo el enfoque 774 centralizado, pero también pueden considerarse un enfoque híbrido).
Si bien el ejemplo anterior usa el dispositivo 702 de red de propósito especial, el mismo enfoque 774 centralizado se puede implementar con el dispositivo 704 de red de propósito general (por ejemplo, cada uno de los VNE 760A-R realiza su responsabilidad de controlar cómo los datos (por ejemplo, los paquetes) deben enrutarse (por ejemplo, el siguiente salto para los datos y la NI física saliente para esos datos) comunicándose con el plano 776 de control centralizado para recibir la información de reenvío (y en algunos casos, la información de accesibilidad) desde el módulo 779 de información de reenvío y accesibilidad centralizado; debe entenderse que en algunas realizaciones de la invención, los VNE 760A-R, además de comunicarse con el plano 776 de control centralizado, también pueden desempeñar algún papel en la determinación de la accesibilidad y/o el cálculo de la información de reenvío, aunque menos que en el caso de un enfoque distribuido) y el dispositivo 706 de red híbrido. De hecho, el uso de técnicas SDN puede mejorar las técnicas NFV típicamente usadas en las implementaciones del dispositivo 704 de red de propósito general o del dispositivo 706 de red híbrido, ya que NFV es capaz de soportar SDN proporcionando una infraestructura sobre la cual se puede ejecutar el software SDN, y NFV y s Dn ambos tienen como objetivo hacer uso de hardware de servidor básico y conmutadores físicos.
La Figura 7D también muestra que el plano 776 de control centralizado tiene una interfaz 784 en dirección norte a una capa 786 de aplicación, en la que residen las aplicaciones 788. El plano 776 de control centralizado tiene la capacidad de formar redes 792 virtuales (a veces denominadas plano de reenvío lógico, servicios de red o redes superpuestas (siendo los NE 770A-H del plano 780 de datos la red subyacente)) para las aplicaciones 788. Por lo tanto, el plano 776 de control centralizado mantiene una vista global de todos los ND y NE/v Ne configurados, y hace corresponder las redes virtuales a los ND subyacentes de manera eficiente (incluido el mantenimiento de estas asignaciones a medida que la red física cambia, ya sea por fallo, adición o eliminación del hardware (ND, enlace o componente ND)).
Si bien la Figura 7D muestra el enfoque 772 distribuido separado del enfoque 774 centralizado, el esfuerzo del control de red puede distribuirse de manera diferente o combinarse los dos en ciertas realizaciones de la invención. Por ejemplo: 1) las realizaciones pueden usar generalmente el enfoque 774 centralizado (SDN), pero tienen ciertas funciones delegadas a los NE (por ejemplo, el enfoque distribuido puede usarse para implementar uno o más de entre la monitorización de fallos, la monitorización de desempeño, la conmutación de protección y primitivas para el descubrimiento de vecino y/o topología); o 2) las realizaciones de la invención pueden realizar el descubrimiento de vecinos y el descubrimiento de topología a través del plano de control centralizado y los protocolos distribuidos, y los resultados se pueden comparar para generar excepciones donde no concuerden. Generalmente se considera que tales realizaciones caen bajo el enfoque 774 centralizado, pero también pueden considerarse un enfoque híbrido.
Si bien la Figura 7D ilustra el caso simple en el que cada uno de los ND 700A-H implementa un solo NE 770A-H, debe entenderse que los enfoques de control de red descritos con referencia a la Figura 7D también funcionan para redes donde uno o más de los Nd 700A-H implementan múltiples VNE (por ejemplo, el VNE 730A-R, VNE 760A-R, aquellos del dispositivo 706 de red híbrido). Alternativamente o además, el controlador 778 de red también puede emular la implementación de múltiples VNE en un solo ND. Específicamente, en lugar de (o además de) implementar múltiples VNE en un solo ND, el controlador 778 de red puede presentar la implementación de un VNE/NE en un solo ND como múltiples VNE en las redes virtuales 792 (todas en la misma de la red o redes 792 virtuales, cada una en diferentes redes 792 virtuales, o alguna combinación). Por ejemplo, el controlador 778 de red puede hacer que un ND implemente un solo VNE (un NE) en la red subyacente, y luego dividir lógicamente los recursos de ese NE dentro del plano 776 de control centralizado para presentar diferentes VNE en la red o redes 792 virtuales (donde estos diferentes VNE en las redes superpuestas comparten los recursos de la implementación única VNE/NE en el ND en la red subyacente).
Por otro lado, las Figuras 7E y 7F, respectivamente, ilustran abstracciones ejemplares de NE y VNE que el controlador 778 de red puede presentar como parte de diferentes redes 792 virtuales. La Figura 7E ilustra el caso simple de que cada uno de los n D 700A-H implementa un solo NE 770A-H (ver Figura 7D), pero el plano 776 de control centralizado ha abstraído múltiples NE en diferentes ND (los NE 770A-C y GH) en (para representar) un solo NE 7701 en una de la red o redes 792 virtuales de la Figura 7D, según algunas realizaciones de la invención. La Figura 7E muestra que en esta red virtual, el NE 7701 está acoplado al NE 770D y 770F, que todavía están acoplados al NE 770E.
La Figura 7F ilustra un caso en el que varios VNE (VNE 770A.1 y VNE 770H.1) se implementan en diferentes ND (ND 700A y ND 700H) y están acoplados entre sí, y donde el plano 776 de control centralizado ha abstraído estos múltiples VNE de manera que aparecen como un solo VNE 770T dentro de una de las redes 792 virtuales de la Figura 7D, según algunas realizaciones de la invención. Por tanto, la abstracción de un NE o VNE puede abarcar varios ND.
Si bien algunas realizaciones de la invención implementan el plano 776 de control centralizado como una sola entidad (por ejemplo, una sola instancia de software que se ejecuta en un solo dispositivo electrónico), realizaciones alternativas pueden extender la funcionalidad a través de múltiples entidades con fines de redundancia y/o escalabilidad (por ejemplo, múltiples instancias de software que se ejecutan en diferentes dispositivos electrónicos).
De manera similar a las implementaciones de dispositivos de red, el dispositivo o dispositivos electrónicos que ejecutan el plano 776 de control centralizado y, por lo tanto, el controlador 778 de red, que incluye el módulo 779 de información de reenvío y accesibilidad centralizado, pueden implementarse de diversas formas (por ejemplo, un dispositivo de propósito especial, un dispositivo de uso general (por ejemplo, COTS) o un dispositivo híbrido). De manera similar, este dispositivo o dispositivos electrónicos incluirían un recurso o recursos informáticos, un conjunto o una o más NIC físicas, y un medio de almacenamiento no transitorio legible por máquina que tiene almacenado en el mismo el software del plano de control centralizado. Por ejemplo, la Figura 8 ilustra un dispositivo 804 de plano de control de propósito general que incluye hardware 840 que comprende un conjunto de uno o más procesador o procesadores 842 (que a menudo son procesadores COTS) y controlador o controladores 844 de interfaz de red (NIC; también conocidos como tarjetas de interfaz de red) (que incluyen NI 846 físicas), así como medios 848 de almacenamiento no transitorios legibles por máquina que tienen almacenado en ellos el software 850 del plano de control centralizado (CCP).
En las realizaciones que usan la virtualización informática, el procesador o procesadores 842 normalmente ejecutan software para crear una instancia de una capa 854 de virtualización y un contenedor o contenedores 862A- R de software (por ejemplo, con virtualización a nivel de sistema operativo, la capa 854 de virtualización representa el núcleo de un sistema operativo (o una corrección que se ejecuta en un sistema operativo base) que permite la creación de múltiples contenedores 862A-R de software (que representan instancias de espacio de usuario separadas y también llamados motores de virtualización, servidores privados virtuales o cárceles) que pueden usarse para ejecutar un conjunto de una o más aplicaciones; con virtualización completa, la capa 854 de virtualización representa un hipervisor (a veces denominado monitor de máquina virtual (VMM)) o un hipervisor que se ejecuta en la parte superior de un sistema operativo servidor, y los contenedores 862A-R de software cada uno representa una forma muy aislada de contenedor de software llamada máquina virtual que es ejecutada por el hipervisor y puede incluir un sistema operativo invitado; con paravirtualización, un sistema operativo o una aplicación que se ejecuta con una máquina virtual puede ser consciente de la presencia de virtualización con fines de optimización). Nuevamente, en las realizaciones en las que se usa la virtualización informática, durante el funcionamiento se ejecuta una instancia del software 850 CCP (ilustrada como la instancia CCP 876A) dentro del contenedor 862A de software en la capa 854 de virtualización. En las realizaciones en las que no se usa la virtualización informática, la instancia 876A CCP en la parte superior de un sistema operativo servidor se ejecuta en el dispositivo 804 del plano de control de propósito general "bare metal". La instanciación de la instancia 876a CCP, así como la capa 854 de virtualización y los contenedores 862A-R de software, si se implementan, son denominadas de manera colectiva como instancia o instancias 852 de software.
En algunas realizaciones, la instancia 876A CCP incluye una instancia 878 de controlador de red. La instancia 878 de controlador de red incluye una instancia 879 de módulo de información de reenvío y accesibilidad centralizada (que es una capa de middleware que proporciona el contexto del controlador 778 de red al sistema operativo y se comunica con los diversos NE) y una capa 880 de aplicación CCP (a veces denominada capa de aplicación) sobre la capa de middleware (que proporciona la inteligencia necesaria para diversas operaciones de red, como protocolos, conciencia de la situación de la red e interfaces de usuario). En un nivel más abstracto, esta capa 880 de aplicación CCP dentro del plano 776 de control centralizado funciona con una vista o vistas de red virtual (vista o vistas lógicas de la red) y la capa de middleware proporciona la conversión de las redes virtuales a la vista física.
El plano 776 de control centralizado transmite mensajes relevantes al plano 780 de datos en base a los cálculos de la capa 880 de aplicación CCP y la correspondencia de la capa de middleware para cada flujo. Un flujo puede definirse como un conjunto de paquetes cuyos encabezados coinciden con un patrón de bits dado; en este sentido, el reenvío tradicional de IP también es un reenvío basado en flujo donde los flujos están definidos por la dirección IP de destino, por ejemplo; sin embargo, en otras implementaciones, el patrón dado de bits usado para una definición de flujo puede incluir más campos (por ejemplo, 10 o más) en los encabezados de los paquetes. Diferentes ND/NE/VNE del plano 780 de datos pueden recibir diferentes mensajes y, por lo tanto, diferente información de reenvío. El plano de datos 780 procesa estos mensajes y programa la información de flujo apropiada y las acciones correspondientes en las tablas de reenvío (a veces denominadas tablas de flujo) de los NE/VNE apropiados, y luego los n E/VNE asignan los paquetes entrantes a los flujos representados en las tablas de reenvío y reenvía paquetes con base en las coincidencias en las tablas de reenvío.
Estándares como OpenFlow definen los protocolos usados para los mensajes, así como un modelo para procesar los paquetes. El modelo para procesar paquetes incluye el análisis de encabezados, la clasificación de paquetes y la toma de decisiones de reenvío. El análisis de encabezados describe cómo interpretar un paquete basándose en un conjunto de protocolos bien conocido. Algunos campos de protocolo se utilizan para construir una estructura de coincidencia (o clave) que se usará en la clasificación de paquetes (por ejemplo, un primer campo clave podría ser una dirección de control de acceso al medio de origen (MAC) y un segundo campo clave podría ser una dirección MAC de destino).
La clasificación de paquetes implica ejecutar una búsqueda en la memoria para clasificar el paquete determinando qué entrada (también conocida como entrada de la tabla de reenvío o entrada de flujo) en las tablas de reenvío coincide mejor con el paquete en función de la estructura, o clave, de coincidencia de las entradas de la tabla de reenvío. Es posible que muchos flujos representados en las entradas de la tabla de reenvío puedan corresponder/coincidir con un paquete; en este caso, el sistema se configura típicamente para determinar una entrada de la tabla de reenvío de las muchas según un esquema definido (por ejemplo, seleccionando una primera entrada de la tabla de reenvío que coincida). Las entradas de la tabla de reenvío incluyen un conjunto específico de criterios de coincidencia (un conjunto de valores o comodines, o una indicación de qué partes de un paquete deben compararse con un valor/valores/comodines en particular, según lo definido por las capacidades de coincidencia, para campos específicos en la cabecera del paquete, o para algún otro contenido del paquete), y un conjunto de una o más acciones para que las realice el plano de datos al recibir un paquete coincidente. Por ejemplo, una acción puede ser insertar una cabecera en el paquete, para el paquete que usa un puerto en particular, inundar el paquete o simplemente descartar el paquete. Por lo tanto, una entrada de la tabla de reenvío para paquetes IPv4/IPv6 con un puerto de destino de protocolo de control de transmisión (TCP) particular podría contener una acción que especifique que estos paquetes deben descartarse.
Se toman decisiones de reenvío y se llevan a cabo acciones, con base en la entrada de la tabla de reenvío identificada durante la clasificación de paquetes, ejecutando el conjunto de acciones identificadas en la entrada de la tabla de reenvío coincidente en el paquete.
Sin embargo, cuando un paquete desconocido (por ejemplo, un "paquete perdido" o un "fallo de coincidencia" como se usa en el lenguaje OpenFlow) llega al plano 780 de datos, el paquete (o un subconjunto de la cabecera y contenido del paquete) es típicamente reenviado al plano 776 de control centralizado. El plano 776 de control centralizado programará entonces entradas de la tabla de reenvío al plano 780 de datos para acomodar los paquetes que pertenecen al flujo del paquete desconocido. Una vez que se ha programado una entrada específica de la tabla de reenvío en el plano 780 de datos por el plano 776 de control centralizado, el siguiente paquete con credenciales coincidentes coincidirá con esa entrada de la tabla de reenvío y tomará el conjunto de acciones asociadas con esa entrada emparejada.
Una interfaz de red (NI) puede ser física o virtual; y en el contexto de IP, una dirección de interfaz es una dirección IP asignada a una NI, ya sea una NI física o virtual. Una NI virtual puede estar asociada con una NI física, con otra interfaz virtual, o ser independiente (por ejemplo, una interfaz de bucle de retorno, una interfaz de protocolo punto a punto). Una NI (física o virtual) puede estar numerada (una NI con una dirección IP) o no numerada (una NI sin una dirección IP). Una interfaz de bucle de retorno (y su dirección de bucle de retorno) es un tipo específico de NI virtual (y dirección IP) de un NE/VNE (físico o virtual) que se usa a menudo con fines de gestión; donde dicha dirección IP se denomina dirección de bucle de retorno nodal. Las direcciones IP asignadas a la NI o las NI de un ND son denominadas direcciones IP de ese ND; a un nivel más granular, las direcciones IP asignadas a las NI asignadas a un NE/VNE implementado en un ND pueden denominarse direcciones IP de ese NE/VNE.
Algunas partes de las descripciones detalladas anteriores se han presentado en términos de algoritmos y representaciones simbólicas de transacciones en bits de datos dentro de la memoria de un ordenador. Estas descripciones y representaciones algorítmicas son las formas usadas por los expertos en las técnicas de procesamiento de datos para transmitir de manera más eficaz la sustancia de su trabajo a otros expertos en la técnica. Aquí, y en general, se concibe un algoritmo como una secuencia autoconsistente de transacciones que conducen a un resultado deseado. Las transacciones son aquellas que requieren manipulaciones físicas de cantidades físicas. Por lo general, aunque no necesariamente, estas cantidades toman la forma de señales eléctricas o magnéticas que pueden almacenarse, transferirse, combinarse, compararse y manipularse de otro modo. En ocasiones ha resultado conveniente, principalmente por razones de uso común, referirse a estas señales como bits, valores, elementos, símbolos, caracteres, términos, números o similares.
Debe tenerse en cuenta, sin embargo, que todos estos y otros términos similares deben asociarse con las cantidades físicas apropiadas y son meras etiquetas convenientes aplicadas a estas cantidades. A menos que se indique específicamente lo contrario, como se desprende de la discusión anterior, se aprecia que a lo largo de la descripción, las discusiones que utilizan términos como "procesamiento" o "computación" o "cálculo" o "determinación" o "representación" o similares, se refieren a la acción y procesos de un sistema informático, o dispositivo informático electrónico similar, que manipula y transforma datos representados como cantidades físicas (electrónicas) dentro de los registros y memorias del sistema informático en otros datos representados de manera similar como cantidades físicas dentro de las memorias o registros del sistema informático u otros tales dispositivos de almacenamiento, transmisión o visualización de información.
Los algoritmos y las pantallas que se presentan en este documento no están intrínsecamente relacionados con ningún ordenador u otro aparato en particular. Se pueden usar varios sistemas de propósito general con programas de acuerdo con las enseñanzas de este documento, o puede resultar conveniente construir aparatos más especializados para realizar las transacciones requeridas del método. La estructura requerida para una variedad de estos sistemas aparecerá en la descripción anterior. Además, las realizaciones de la presente invención no se describen con referencia a ningún lenguaje de programación particular. Se apreciará que se puede usar una variedad de lenguajes de programación para implementar las enseñanzas de las realizaciones de la invención como se describe en este documento.
En la memoria descriptiva anterior, se han descrito realizaciones de la invención con referencia a realizaciones ejemplares específicas de la misma. Será evidente que se pueden realizar varias modificaciones sin apartarse del alcance de la invención como se establece en las siguientes reivindicaciones. Por consiguiente, la memoria descriptiva y los dibujos deben considerarse en un sentido ilustrativo más que en un sentido restrictivo.
A lo largo de la descripción, se han presentado realizaciones de la presente invención mediante diagramas de flujo. Se apreciará que el orden de las transacciones y las transacciones descritas en estos diagramas de flujo están destinados únicamente a fines ilustrativos y no pretenden ser una limitación de la presente invención. Un experto en la técnica reconocería que se pueden realizar variaciones en los diagramas de flujo sin apartarse del alcance de la invención como se establece en las siguientes reivindicaciones.

Claims (6)

REIVINDICACIONES
1. Un método implementado por un elemento de red para ejecutar un administrador de base de información de reenvío, FIB, y para programar una función de reenvío de paquetes del elemento de red, donde el administrador de FIB admite un plano de control híbrido con redes definidas por software, SDN y procesos de plano de control local, comprendiendo el método:
recibir (401) una solicitud para configurar un elemento de configuración de accesibilidad de nodo, donde el elemento de configuración de accesibilidad de nodo describe la instrucción de procesamiento de paquetes para que la función de reenvío de paquetes reenvíe paquetes hacia un nodo referido, en donde el administrador de FIB configura conmutadores lógicos del elemento de red agregando o eliminando elementos de configuración de accesibilidad a medida que el proceso del plano de control local agrega o elimina la configuración de cómo se puede llegar a un nodo remoto desde el elemento de red;
seleccionar (403) un agente de control de flujo a actualizar para que sea accesible al nodo referido;
actualizar (405) una representación de información de reenvío lógico para codificar un identificador de siguiente salto para el nodo referido, en donde la representación de información de reenvío lógica es una instancia de puerto lógico o una entrada de grupo de control de flujo y
cuando la representación de información de reenvío lógico es la instancia de puerto lógico, y en respuesta a la revocación del elemento de configuración de accesibilidad del nodo,
eliminar la instancia de puerto lógico de un conmutador lógico de control de flujo asociado; y enviar un mensaje de estado del puerto de control de flujo a un controlador de servicios que identifica la instancia del puerto lógico.
2. El método de la reivindicación 1, que además comprende: enviar (507) una actualización al controlador de servicios que identifica la entrada del grupo de control de flujo.
3. El método de la reivindicación 1, en el que en respuesta a la revocación del elemento de configuración de accesibilidad del nodo, comprende además:
si la representación de información de reenvío lógica es la entrada del grupo de control de flujo, eliminar (505) la entrada del grupo de control de flujo de un conmutador lógico de control de flujo asociado.
4. Un elemento de red configurado para ejecutar un administrador de base de reenvío de información, FIB, y para programar una función de reenvío de paquetes del elemento de red, donde el administrador de FIB admite un plano de control híbrido con redes de redes definidas por software (SDN), SDN y procesos del plano de control local, comprendiendo el elemento de red:
un medio (718) legible por máquina no transitorio que tiene almacenado en él el administrador (764) de FIB; y
un procesador (712) acoplado al medio legible por máquina no transitorio, el procesador configurado para ejecutar el administrador de FIB, configurado el administrador de FIB para recibir una solicitud para configurar un elemento de configuración de accesibilidad de nodo, donde el elemento de configuración de accesibilidad de nodo describe la instrucción de procesamiento de paquetes para que la función de reenvío de paquetes reenvíe paquetes hacia un nodo referido, para configurar conmutadores lógicos del elemento de red agregando o eliminando elementos de configuración de accesibilidad a medida que el proceso del plano de control local agrega o elimina la configuración de cómo un dispositivo de red remoto es accesible desde el elemento de red para seleccionar un agente de control de flujo que se actualizará para que sea accesible al nodo referido, y para actualizar una representación de información de reenvío lógico para codificar el identificador del siguiente salto para el nodo referido, donde la representación de información de reenvío lógico es una instancia de puerto lógico o una entrada de grupo de control de flujo y
cuando la representación de información de reenvío lógico es la instancia de puerto lógico, y en respuesta a la revocación del elemento de configuración de accesibilidad del nodo, eliminar (505) la instancia de puerto lógico de un conmutador lógico de control de flujo asociado; y
enviar un mensaje de estado del puerto de control de flujo a un controlador de servicios que identifique la instancia del puerto lógico.
5. El elemento de red de la reivindicación 4, en donde el agente de control de flujo está configurado para enviar una actualización al controlador de servicios cuando se agrega o elimina una entrada de grupo.
6. El elemento de red de la reivindicación 4, en donde en respuesta a la revocación del elemento de configuración de accesibilidad del nodo, si la representación de la información de reenvío lógico es la entrada del grupo de control de flujo, el administrador de FIB se configura además para eliminar la entrada del grupo de control de flujo de un conmutador lógica de control de flujo.
ES16788249T 2015-12-16 2016-10-18 Nodos SDN híbridos divididos horizontalmente configurados por Openflow Active ES2905499T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/971,908 US10171336B2 (en) 2015-12-16 2015-12-16 Openflow configured horizontally split hybrid SDN nodes
PCT/IB2016/056259 WO2017103700A1 (en) 2015-12-16 2016-10-18 Openflow configured horizontally split hybrid sdn nodes

Publications (1)

Publication Number Publication Date
ES2905499T3 true ES2905499T3 (es) 2022-04-08

Family

ID=57209668

Family Applications (1)

Application Number Title Priority Date Filing Date
ES16788249T Active ES2905499T3 (es) 2015-12-16 2016-10-18 Nodos SDN híbridos divididos horizontalmente configurados por Openflow

Country Status (6)

Country Link
US (1) US10171336B2 (es)
EP (1) EP3391588B1 (es)
ES (1) ES2905499T3 (es)
PL (1) PL3391588T3 (es)
PT (1) PT3391588T (es)
WO (1) WO2017103700A1 (es)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11671318B1 (en) * 2022-05-27 2023-06-06 Arista Networks, Inc. Post-deployment updating of network device management switch configurations

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9225638B2 (en) 2013-05-09 2015-12-29 Vmware, Inc. Method and system for service switching using service tags
US9531590B2 (en) 2014-09-30 2016-12-27 Nicira, Inc. Load balancing across a group of load balancers
US10516568B2 (en) 2014-09-30 2019-12-24 Nicira, Inc. Controller driven reconfiguration of a multi-layered application or service model
US11271870B2 (en) 2016-01-27 2022-03-08 Oracle International Corporation System and method for supporting scalable bit map based P_Key table in a high performance computing environment
US10200308B2 (en) 2016-01-27 2019-02-05 Oracle International Corporation System and method for supporting a scalable representation of link stability and availability in a high performance computing environment
US11962486B2 (en) 2016-06-06 2024-04-16 Telefonaktiebolaget Lm Ericsson (Publ) Determining a path in a communication network
US20180063201A1 (en) * 2016-08-25 2018-03-01 Tianhu Zhang Device and method for managing a communication interface of a communication device
US10275273B2 (en) * 2016-10-28 2019-04-30 Nicira, Inc. Efficient computation of address groupings across multiple network interfaces
US11429410B2 (en) * 2017-05-09 2022-08-30 Vmware, Inc. Tag based firewall implementation in software defined networks
EP3646533B1 (en) * 2017-06-27 2023-08-02 Telefonaktiebolaget LM Ericsson (PUBL) Inline stateful monitoring request generation for sdn
CN107809422B (zh) * 2017-10-16 2020-10-02 深圳市泰信通信息技术有限公司 一种解耦接口差异化的接口兼容方法及装置
US10805181B2 (en) 2017-10-29 2020-10-13 Nicira, Inc. Service operation chaining
TWI647617B (zh) * 2018-01-23 2019-01-11 緯創資通股份有限公司 電子裝置與其韌體更新方法
US10805192B2 (en) 2018-03-27 2020-10-13 Nicira, Inc. Detecting failure of layer 2 service using broadcast messages
US11595250B2 (en) 2018-09-02 2023-02-28 Vmware, Inc. Service insertion at logical network gateway
US11169836B2 (en) * 2019-01-23 2021-11-09 International Business Machines Corporation Hardware placement and maintenance scheduling in high availability systems
US11042397B2 (en) 2019-02-22 2021-06-22 Vmware, Inc. Providing services with guest VM mobility
US11140218B2 (en) 2019-10-30 2021-10-05 Vmware, Inc. Distributed service chain across multiple clouds
US11659061B2 (en) 2020-01-20 2023-05-23 Vmware, Inc. Method of adjusting service function chains to improve network performance
US11277331B2 (en) 2020-04-06 2022-03-15 Vmware, Inc. Updating connection-tracking records at a network edge using flow programming
CN113949679B (zh) * 2020-06-29 2022-09-23 华为技术有限公司 一种容器网络的数据传输方法、装置、系统及存储介质
US11709699B2 (en) * 2020-11-24 2023-07-25 International Business Machines Corporation Virtualized fabric name server for storage area network
US11683372B2 (en) 2020-11-24 2023-06-20 International Business Machines Corporation Virtualized fabric management server for storage area network
US11522814B2 (en) * 2020-11-24 2022-12-06 International Business Machines Corporation Virtualized fabric login server for storage area network
US11734043B2 (en) 2020-12-15 2023-08-22 Vmware, Inc. Providing stateful services in a scalable manner for machines executing on host computers
US11611625B2 (en) 2020-12-15 2023-03-21 Vmware, Inc. Providing stateful services in a scalable manner for machines executing on host computers
US20220327003A1 (en) 2021-04-09 2022-10-13 Oracle International Corporation Cloud edge device virtualization

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7283465B2 (en) * 2003-01-07 2007-10-16 Corrigent Systems Ltd. Hierarchical virtual private LAN service protection scheme
US7990993B1 (en) * 2008-02-20 2011-08-02 Juniper Networks, Inc. Platform-independent control plane and lower-level derivation of forwarding structures
GB0804920D0 (en) * 2008-03-17 2008-04-16 Ericsson Telefon Ab L M Method and apparatus for ethernet re-routing
CN101741742B (zh) * 2009-12-18 2012-01-04 华为技术有限公司 报文处理方法、接入设备和通信系统
US8122127B2 (en) * 2009-12-31 2012-02-21 Juniper Networks, Inc. Automatic aggregation of inter-device ports/links in a virtual device
US8897134B2 (en) * 2010-06-25 2014-11-25 Telefonaktiebolaget L M Ericsson (Publ) Notifying a controller of a change to a packet forwarding configuration of a network element over a communication channel
US9014049B2 (en) * 2011-04-27 2015-04-21 Cisco Technology, Inc. Selectively populating forwarding information bases in a packet switch
US8560663B2 (en) * 2011-09-30 2013-10-15 Telefonaktiebolaget L M Ericsson (Publ) Using MPLS for virtual private cloud network isolation in openflow-enabled cloud computing
US8923149B2 (en) * 2012-04-09 2014-12-30 Futurewei Technologies, Inc. L3 gateway for VXLAN
US8797877B1 (en) * 2012-08-09 2014-08-05 Juniper Networks, Inc. Virtual output queue allocation using dynamic drain bandwidth
US9071529B2 (en) * 2012-10-08 2015-06-30 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for accelerating forwarding in software-defined networks
US9715538B2 (en) * 2013-03-12 2017-07-25 International Business Machines Corporation Floating time dimension design
US9769074B2 (en) * 2013-03-15 2017-09-19 International Business Machines Corporation Network per-flow rate limiting
US20140337160A1 (en) * 2013-05-09 2014-11-13 Microsoft Corporation Considering social information in generating recommendations
US9553764B2 (en) * 2013-07-17 2017-01-24 Red Hat Israel, Ltd. Migration of guest bridge
WO2015023537A2 (en) * 2013-08-16 2015-02-19 Interdigital Patent Holdings, Inc. Methods and apparatus for hash routing in software defined networking
CA2922204C (en) * 2013-08-31 2021-01-26 Huawei Technologies Co., Ltd. Method and apparatus for processing operation request in storage system
US9686381B1 (en) * 2013-09-30 2017-06-20 Juniper Networks, Inc. Control word decapsulation in a hybrid BGP-VPLS network
CN104579968B (zh) * 2013-10-26 2018-03-09 华为技术有限公司 Sdn交换机获取精确流表项方法及sdn交换机、控制器、系统
US20150120924A1 (en) * 2013-10-29 2015-04-30 Palo Alto Research Center Incorporated Software-defined named-data networking
US9590914B2 (en) * 2013-11-05 2017-03-07 Cisco Technology, Inc. Randomized per-packet port channel load balancing
WO2015152436A1 (ko) * 2014-03-31 2015-10-08 쿨클라우드㈜ Sdn 기반의 서비스 체이닝 시스템
CN106233673B (zh) * 2014-04-29 2019-07-19 慧与发展有限责任合伙企业 用于网络服务插入的设备和方法
CN105099960B (zh) * 2014-04-30 2018-03-16 国际商业机器公司 用于实现服务链的方法和装置
US9774502B2 (en) * 2014-06-25 2017-09-26 Ciena Corporation Systems and methods for combined software defined networking and distributed network control
WO2016011376A1 (en) * 2014-07-18 2016-01-21 Hewlett-Packard Development Company, L.P. Conflict detection in a hybrid network device
US9503344B2 (en) * 2014-07-25 2016-11-22 Telefonaktiebolaget L M Ericsson (Publ) Data path performance measurement using network traffic in a software defined network
US9860314B2 (en) * 2014-08-19 2018-01-02 Ciena Corporation Data synchronization system and methods in a network using a highly-available key-value storage system
US9413646B2 (en) * 2014-08-25 2016-08-09 Nec Corporation Path selection in hybrid networks
US20160254984A1 (en) * 2015-02-27 2016-09-01 Argela Yazilim ve Bilisim Teknolojileri San. ve Tic. A.S. Method and system for delivering service-enabled flow paths across multiple domains in sdn networks
US9806983B2 (en) * 2015-09-14 2017-10-31 Argela Yazilim ve Bilisim Teknolojileri San. ve Tic. A.S. System and method for control flow management in software defined networks
US9848049B2 (en) * 2015-10-06 2017-12-19 Ciena Corporation Service preemption selection systems and methods in networks

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11671318B1 (en) * 2022-05-27 2023-06-06 Arista Networks, Inc. Post-deployment updating of network device management switch configurations

Also Published As

Publication number Publication date
WO2017103700A1 (en) 2017-06-22
EP3391588A1 (en) 2018-10-24
PL3391588T3 (pl) 2022-04-19
EP3391588B1 (en) 2021-12-08
US20170180240A1 (en) 2017-06-22
PT3391588T (pt) 2022-01-10
US10171336B2 (en) 2019-01-01

Similar Documents

Publication Publication Date Title
ES2905499T3 (es) Nodos SDN híbridos divididos horizontalmente configurados por Openflow
US11665089B2 (en) Mechanism for hitless resynchronization during SDN controller upgrades between incompatible versions
US10841210B2 (en) Service function proxy performance in software defined networks
ES2906171T3 (es) Sistema y métodos para la colocación de funciones de servicio inteligente y escala automática basado en aprendizaje automático
US11362945B2 (en) Dynamic lookup optimization for packet classification
US10291555B2 (en) Service based intelligent packet-in buffering mechanism for openflow switches by having variable buffer timeouts
EP3400685B1 (en) Mechanism to detect control plane loops in a software defined networking (sdn) network
US20160315866A1 (en) Service based intelligent packet-in mechanism for openflow switches
US11968082B2 (en) Robust node failure detection mechanism for SDN controller cluster
US11362925B2 (en) Optimizing service node monitoring in SDN
US10623300B2 (en) Method and apparatus for adaptive flow control of link-state information from link-state source to border gateway protocol (BGP)
US9313117B2 (en) Alternate method to give operators flexibility to choose LFAs
US11089102B2 (en) Advertising network resource sharing status in SDN
US9647926B2 (en) Procedure to identify multi-homed prefixes for IS-IS LFA
US9692684B2 (en) Forwarding table precedence in SDN
WO2016005926A1 (en) Prefix distribution-based table performance optimization in sdn
US20170149659A1 (en) Mechanism to improve control channel efficiency by distributing packet-ins in an openflow network
WO2020212998A1 (en) Network address allocation in a virtual layer 2 domain spanning across multiple container clusters
US20220021646A1 (en) Efficient network address translation (nat) in cloud networks
WO2018042230A1 (en) Configurable selective packet-in mechanism for openflow switches
WO2017187222A1 (en) Robust method of distributing packet-ins in a software defined networking (sdn) network