ES2750778T3 - Método para enviar un paquete de red de área local extensible virtual, dispositivo informático y medio legible por ordenador - Google Patents

Método para enviar un paquete de red de área local extensible virtual, dispositivo informático y medio legible por ordenador Download PDF

Info

Publication number
ES2750778T3
ES2750778T3 ES15911932T ES15911932T ES2750778T3 ES 2750778 T3 ES2750778 T3 ES 2750778T3 ES 15911932 T ES15911932 T ES 15911932T ES 15911932 T ES15911932 T ES 15911932T ES 2750778 T3 ES2750778 T3 ES 2750778T3
Authority
ES
Spain
Prior art keywords
packet
encapsulation
network adapter
vxlan
address
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
ES15911932T
Other languages
English (en)
Inventor
Zhenliang Ma
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Application granted granted Critical
Publication of ES2750778T3 publication Critical patent/ES2750778T3/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
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9057Arrangements for supporting packet reassembly or resequencing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/103Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2592Translation of Internet protocol [IP] addresses using tunnelling or encapsulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/622Layer-2 addresses, e.g. medium access control [MAC] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2212/00Encapsulation of packets

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Un método para enviar un paquete de red de área local extensible virtual, VxLAN, en donde el método comprende los pasos de: operar un dispositivo informático, el dispositivo informático que comprende una unidad central de procesamiento, un adaptador de red y una máquina virtual, y el adaptador de red comprende un procesador de adaptador de red; recibir (500), por el procesador de adaptador de red, un primer paquete enviado por la máquina virtual; obtener, por el procesador de adaptador de red del primer paquete recibido, un ID de una función virtual, VF, para reenviar el primer paquete, y consultar, según el ID de la VF, para un atributo de la VF correspondiente al ID de la VF; y cuando el atributo de la VF es un atributo de VxLAN, obtener un identificador de red de VxLAN, VNI, de la VF; determinar (502), por el procesador de adaptador de red, si el adaptador de red almacena la información de encapsulación requerida para realizar la encapsulación de VxLAN sobre el primer paquete, en donde la información de encapsulación comprende una dirección de Control de Acceso al Medio, MAC, de encapsulación y una dirección de Protocolo de Internet, IP, de encapsulación, la dirección MAC de encapsulación es una dirección MAC de un dispositivo de siguiente salto que se pasa cuando se envía el primer paquete, y la dirección IP de encapsulación es una dirección IP de un punto final de túnel de red de área local extensible virtual, VTEP, en un extremo de destino del primer paquete; y cuando el adaptador de red almacena la información de encapsulación requerida para realizar la encapsulación de VxLAN sobre el primer paquete, realizar (504) la encapsulación de VxLAN sobre el primer paquete según la información de encapsulación, y enviar el primer paquete encapsulado; o cuando el adaptador de red no almacena la información de encapsulación requerida para realizar la encapsulación de VxLAN sobre el primer paquete, enviar (506) una solicitud de obtención a la unidad central de procesamiento, obtener la información de encapsulación de la unidad central de procesamiento y almacenar la información de encapsulación, y enviar un paquete obtenido después de que se realice la encapsulación de VxLAN sobre el primer paquete; en donde la solicitud de obtención lleva el primer paquete y el VNI de la VF para reenviar el primer paquete.

Description

DESCRIPCIÓN
Método para enviar un paquete de red de área local extensible virtual, dispositivo informático y medio legible por ordenador
Campo técnico
La presente invención se refiere al campo de las tecnologías de la información y, en particular, a un método para enviar un paquete VxLAN de red de área local extensible virtual, un dispositivo de ordenador y un medio legible por ordenador.
Antecedentes
Una red de área local extensible virtual (VxLAN, en inglés Virtual eXtensible Local Area Network) usa una tecnología MAC (Control de Acceso al Medio, en inglés Media Access Control) sobre UDP (Protocolo de Datagramas de Usuario, en inglés User Datagram Protocol), que es una tecnología de red superpuesta o una tecnología de túnel. La VxLAN encapsula un paquete de datos enviado por una máquina virtual en el UDP y usa el Protocolo de Internet IP/MAC de una red física como una cabecera externa para realizar encapsulación. El paquete de datos se transmite entonces sobre una red IP física y se desencapsula mediante un punto de terminación de túnel después de alcanzar un destino, y los datos se envían a una máquina virtual de destino. Un paquete enviado usando la tecnología VxLAN es un paquete VxLAN, y el paquete VxLAN normalmente incluye una cabecera de túnel VxLAN y una carga útil original. La cabecera de túnel VxLAN incluye una dirección MAC de destino externo, una dirección MAC de origen externa, una dirección de Protocolo de Internet (IP, en inglés Internet Protocol) de destino externa, una dirección IP de origen externa, una cabecera UDP externa y un identificador de red VxLAN (VNI, en inglés VXLAN Network Identifier). La carga útil original incluye una dirección MAC de destino interna, una dirección MAC de origen interna, 802.1Q interna y una carga útil válida de Ethernet original. La implementación del envío de un paquete VxLAN requiere información acerca de la cabecera del túnel VxLAN y la carga útil original.
En la técnica anterior, en un dispositivo de ordenador que ejecuta un servicio de máquina virtual, un adaptador de red puede identificar y reenviar un paquete de red de área local virtual (VLAN, en inglés Virtual Local Area Network) enviado por la máquina virtual. No obstante, para el paquete VxLAN, el adaptador de red no tiene la capacidad de obtener la información requerida para reenviar el paquete VxLAN y, por lo tanto, el adaptador de red no puede encapsular y enviar el paquete VxLAN.
El documento WO 2015/062529 A1 describe un método para reenviar un paquete en una red de centro de datos para resolver el problema de la baja eficiencia de reenvío causado usando un conmutador virtual como Punto Final de Túnel VXLAN (VTEP) implementado por un software en la técnica anterior.
El documento US2 014/0146817 A1 se refiere a un sistema y a un método para comunicaciones entre dominios VXLAN. Particularmente, describe que un VTEP modificado que encapsula el paquete con una cabecera VXLAN a través de la adición de una cabecera VXLAN a un paquete Ethernet original.
El documento US 2015/0358232 A1 se refiere a un método de reenvío de paquetes y una pasarela de red de área local extensible virtual (VXLAN). En particular, describe que una pasarela VXLAN que encapsula el paquete de comunicación según el segundo VNI, para obtener un paquete VXLAN encapsulado.
El documento US 2014/0086253 A1 se refiere a la comunicación en una red virtual superpuesta. Particularmente, describe que un NVE u OVG realiza la traducción de encapsulación.
El documento US 8923155 B2 se refiere a un método de empleo de un conmutador virtual como pasarela por defecto para una máquina virtual (VM) dentro de una red de área local extensible (VXLAN) de capa 3 (L3). Particularmente, describe que una VM envía un paquete de comunicación a un conmutador virtual, el conmutador virtual reemplaza la dirección de destino virtual del paquete de comunicaciones con la dirección de red del componente de encaminamiento.
El documento XP 15077813 se refiere a VXLAN, que se usa para abordar la necesidad de redes superpuestas dentro de datos virtualizados que se introducen en múltiples usuarios de alojamiento.
El documento XP 15098645 se refiere a VXLAN, que se usa para abordar la necesidad de redes superpuestas dentro de datos virtualizados que se introducen en múltiples usuarios de alojamiento.
El documento XP 15090937 se refiere a la encapsulación NVGRE y VXLAN para la extensión L3VPN.
Compendio
La presente invención proporciona un método para enviar un paquete VxLAN, un dispositivo de ordenador y un medio legible por ordenador como se define en las reivindicaciones.
Breve descripción de los dibujos
Para describir las soluciones técnicas de la presente invención más claramente, a continuación se introducen brevemente los dibujos adjuntos que describen realizaciones preferidas de la presente invención o de la técnica anterior. Aparentemente, los dibujos adjuntos en la siguiente descripción muestran meramente algunas realizaciones de la presente invención.
La FIG. 1 es un diagrama estructural esquemático de un dispositivo informático de la técnica anterior;
La FIG. 2 es un diagrama estructural esquemático de un dispositivo 200 informático según una realización de la presente invención;
La FIG. 3 es un diagrama estructural esquemático de una implementación específica de un dispositivo 200 informático según una realización de la presente invención;
La FIG. 4 es un diagrama estructural esquemático de una implementación específica de un dispositivo 200 informático en un entorno de ejecución Linux según una realización de la presente invención;
La FIG. 5 es un diagrama de flujo esquemático de un método para enviar un paquete VxLAN de red de área local extensible virtual según una realización de la presente invención;
La FIG. 6 es un diagrama estructural esquemático de un dispositivo 600 informático según una realización de la presente invención; y
La FIG. 7 es un diagrama estructural esquemático de una implementación específica de un dispositivo 600 informático según una realización de la presente invención.
Descripción de realizaciones
Lo siguiente describe clara y completamente las soluciones técnicas de la presente invención con referencia a los dibujos adjuntos que muestran realizaciones preferidas de la presente invención. Evidentemente, las realizaciones descritas son una parte más que todas las realizaciones de la presente invención.
Con referencia a la FIG. 1, la FIG. 1 es un diagrama estructural esquemático de un dispositivo 100 informático de la técnica anterior. El dispositivo 100 informático incluye una unidad 101 central de procesamiento y un adaptador 102 de red, y el adaptador 102 de red incluye un procesador 1021 de adaptador de red. El adaptador 102 de red soporta la descarga de una función de reenvío de un conmutador virtual (vSwitch, en inglés Virtual Switch), soporta una función de virtualización de entrada/salida de raíz única (SR-IOV, en inglés Single-Root I/O Virtualization), y puede reenviar un paquete VLAN basado en el vSwitch.
Que el adaptador de red soporte la descarga de la función de reenvío del vSwitch indica que un paquete de red de área local virtual (VLAN, en inglés virtual local area network) se reenvía en el adaptador de red. El vSwitch también se conoce como conmutador de red virtual, funciona en una red de datos de capa 2 e implementa una función de red de capa 2 (y parte de una capa 3) de un conmutador físico de una manera software. En comparación con un conmutador físico convencional, el conmutador virtual tiene ventajas de configuración flexible y buena extensibilidad. Se pueden configurar docenas o incluso cientos de conmutadores virtuales en un servidor ordinario, y se puede seleccionar de manera flexible una cantidad de puertos. Además, el conmutador virtual normalmente puede lograr, por medio de conmutación virtual, un rendimiento que solamente un conmutador físico grande puede lograr. El vSwitch se aplica ampliamente a un servicio de Internet que se basa en una infraestructura como servicio (IaaS, en inglés Infrastructure as a Service). Una máquina virtual (VM, en inglés Virtual Machine) se conecta a una red usando el vSwitch, y el vSwitch usa un adaptador de red físico en un ordenador central físico como enlace ascendente para conectar a una red externa. Lo mismo que el conmutador físico, cada vSwitch incluye una cantidad específica de puertos. Un conjunto de puertos virtuales vPorts con la misma característica es una red de área local virtual VLAN. Los paquetes en diferentes VLAN se aíslan mutuamente en transmisión, y un usuario en cada VLAN no puede comunicar directamente con un usuario en otra VLAN.
Que el adaptador de red soporte una función SR-IOV indica que el adaptador de red presenta múltiples adaptadores de red virtuales para un dispositivo informático (tal como un servidor) en el que se sitúa el adaptador de red. La SR-IOV es una solución de virtualización basada en hardware y puede mejorar el rendimiento y la escalabilidad. Según un estándar SR-IOV, un dispositivo de Interconexión de Componentes Periféricos Rápida (PCIe, en inglés Peripherical Component Interconnect Express) se permite que se comparta entre máquinas virtuales a alta velocidad. Según la especificación SR-IOV, un único recurso de entrada/salida (I/O, en inglés Input/Output) se puede compartir por múltiples máquinas virtuales. El dispositivo de compartición se provee con un recurso dedicado y además usa un recurso común compartido. De esta forma, cada máquina virtual puede acceder a un recurso único. Por lo tanto, un dispositivo PCIe (tal como un adaptador de red) que habilita S R - I O v y tiene el hardware apropiado y se soporta por un O s se puede presentar como múltiples dispositivos físicos separados, y cada VM tiene su propio espacio de configuración PCIe.
La especificación SR-IOV define dos tipos de funciones: una función física (PF, en inglés Physical Function) y una función virtual (VF, en inglés Virtual Function). La PF es una función PCIe de función completa y se puede descubrir, administrar y procesar como cualquier otro dispositivo PCIe. La PF tiene un recurso de configuración completa y se puede usar para configurar o controlar el dispositivo PCIe. La VF es una función relacionada con la función física PF. La VF puede compartir uno o más recursos físicos con la función física y otra VF relacionada con la misma función física. Se permite que la VF tenga solo un recurso de configuración usado para la VF. Cuando el adaptador de red se conecta a otro componente en el dispositivo informático usando un enlace PCIe, el adaptador de red presenta múltiples adaptadores de red PCIe virtuales para el dispositivo informático en el que se sitúa el adaptador de red. Los múltiples adaptadores de red PCIe virtuales son adaptadores de red virtuales de hardware, y los adaptadores de red virtuales de hardware se pueden asignar a una máquina virtual común en el dispositivo informático para su uso y asignar a una máquina virtual de gestión en el dispositivo informático para su uso. El adaptador de red se conecta a la máquina virtual de gestión usando un puerto de PF y se conecta a la máquina virtual común usando un puerto de VF. La máquina virtual de gestión se configura para gestionar la máquina virtual común.
Se debería observar que, cuando el adaptador de red soporta la función SR-IOV, un dispositivo informático en el que se sitúa el adaptador de red necesita reservar un recurso de bus y reservar un recurso BAR (registro de dirección base, en inglés base address resource) para el adaptador de red cuando se escanea un BIOS (sistema de entrada/salida básico, en inglés basic input/output system), y un núcleo de un sistema operativo del dispositivo informático necesita soportar una función para habilitar SR-IOV.
En la técnica anterior, en un modo SR-IOV, un paquete a ser enviado de la máquina virtual se reenvía directamente usando el adaptador de red. Cuando la encapsulación de VxLAN necesita ser realizada en el paquete a ser enviado de la máquina virtual y el paquete necesita ser enviado, el adaptador 102 de red en el dispositivo 100 informático no tiene la capacidad de reenviar un paquete VxLAN y no puede reenviar eficazmente el paquete.
Una realización de la presente invención proporciona un nuevo dispositivo informático para resolver un problema de que un adaptador de red no puede encapsular y enviar un paquete VxLAN de la técnica anterior.
El paquete VxLAN incluye una cabecera de túnel VxLAN y una carga útil original. La cabecera de túnel VxLAN incluye una dirección mAc de destino externa, una dirección MAC de origen externa, una dirección IP de destino externa, una dirección IP de origen externa, una cabecera UDP externa, un VNI y similares; y la carga útil original incluye una dirección MAC de destino interna, una dirección MAC de origen interna, 802.1Q interna, una carga útil válida de Ethernet original y similares. La dirección MAC de destino externa es una dirección MAC de un dispositivo de siguiente salto que se pasa cuando se reenvía el paquete VxLAN, es decir, una dirección MAC de encapsulación; y la dirección IP de destino externa es una dirección IP de un punto final de túnel de red de área local extensible virtual (VTEP, en inglés VxLAN Tunnel End Point) en un extremo de destino para reenviar el paquete VxLAN, es decir, una dirección IP de encapsulación. El dispositivo de siguiente salto que se pasa cuando se reenvía el paquete VxLAN es el siguiente dispositivo que se pasa cuando se reenvía el paquete VxLAN. Por ejemplo, cuando el adaptador de red reenvía el paquete VxLAN a un dispositivo de destino solamente a través de un dispositivo de ruta 1 y un dispositivo de ruta 2, el dispositivo de ruta 1 es el dispositivo de siguiente salto que se pasa cuando el adaptador de red reenvía el paquete VxLAN.
Cuando la encapsulación de VxLAN se realiza sobre un paquete enviado por la máquina virtual, la dirección MAC de origen externa y la dirección IP de origen externa en la cabecera de túnel VxLAN se configuran estáticamente por un administrador cuando el administrador despliega el VTEP. Otro campo en una cabecera IP externa, y la cabecera UDP externa se puede encapsular según los significados de los campos en los protocolos IP y UDP cuando se encapsulan. El VNI se configura en una VF correspondiente a la máquina virtual, y la carga útil original es un paquete original enviado por la máquina virtual.
Normalmente, el paquete VxLAN se reenvía configurando el VTEP, y el VTEP aísla una red virtual desde una red física. Una trama de datos de la red virtual se transmite sobre la red física estableciendo un túnel entre los VTEP, y la red física no detecta la red virtual. Como intermediario, el VTEP se puede implementar de múltiples maneras, se puede implementar mediante hardware y software del sistema de una manera cooperativa, y las funciones para realizar la encapsulación de VxLAN sobre el paquete a ser enviado y realizar análisis sintáctico, descubrimiento, desencapsulación y similares sobre un paquete VxLAN recibido. Una red que incluye múltiples dispositivos informáticos se puede considerar de manera lógica como un túnel VxLAN establecido entre múltiples VTEP.
El VTEP encapsula la carga útil original en una cabecera de túnel. La cabecera de túnel usa un formato UDP e identifica que un paquete es de un tipo VxLAN usando un número de puerto de destino del UDP. La información de IP (Protocolo de Internet, en inglés Internet Protocol) en la cabecera de túnel encapsulado es información de dirección IP de un VTEP de extremo local e información de dirección IP de un VTEP de extremo igual al que se ha de enviar un paquete. Una dirección MAC de origen en la cabecera de túnel encapsulado es una dirección MAC de un VTEP de extremo local. Una dirección MAC de destino es una dirección MAC de un dispositivo de siguiente salto desde un VTEP de extremo local a un VTEP de extremo igual, es decir, una dirección MAC de un dispositivo de siguiente salto que se pasa cuando se reenvía el paquete VxLAN. Para un dispositivo intermedio en transmisión de red, el dispositivo intermedio realiza el reenvío solamente según la información de red del VTEP y no necesita analizar sintácticamente el VNI y la información de paquete interna.
Con referencia a la FIG. 2, la FIG. 2 es un diagrama estructural esquemático de un dispositivo 200 informático según una realización de la presente invención. Como se muestra en la FIG. 2, el dispositivo 200 informático incluye una unidad 201 central de procesamiento y un adaptador 202 de red, y el adaptador 202 de red incluye un procesador 2021 de adaptador de red.
En esta realización de la presente invención, el adaptador 202 de red implementa la encapsulación y desencapsulación de datos y una función de reenvío del VTEP, de modo que el adaptador de red implementa la encapsulación y el reenvío de un paquete VxLAN. Es decir, cuando se recibe un paquete enviado por una máquina virtual, el adaptador 202 de red obtiene una dirección MAC de encapsulación y una dirección IP de encapsulación que se requieren para realizar la encapsulación de VxLAN sobre el paquete, realiza la encapsulación de VxLAN sobre el paquete según la dirección MAC de encapsulación y la dirección IP de encapsulación, y envía el paquete. Una manera en la que el adaptador 202 de red obtiene la dirección MAC de encapsulación y la dirección IP de encapsulación incluye: el adaptador 202 de red envía una solicitud de obtención a la unidad 201 central de procesamiento para un paquete a ser enviado y solicita una dirección MAC de encapsulación y una dirección IP de encapsulación del paquete a ser enviado. Es decir, cuando el adaptador 202 de red no almacena la dirección MAC de encapsulación y la dirección IP de encapsulación que están relacionadas con el paquete a ser enviado, el adaptador 202 de red envía información acerca del paquete a ser reenviado a la unidad 201 central de procesamiento. Después de obtener la dirección MAC de encapsulación y la dirección IP de encapsulación que requieren por el paquete a ser enviado, la unidad 201 central de procesamiento envía la dirección MAC de encapsulación y la dirección IP de encapsulación obtenidas al adaptador 202 de red. El adaptador 202 de red almacena la dirección MAC de encapsulación y la dirección IP de encapsulación obtenidas, y encapsula el paquete a ser reenviado según la dirección MAC de encapsulación y la dirección IP de encapsulación obtenidas y envía el paquete. El adaptador 202 de red puede reenviar además, según la información de encapsulación almacenada (la dirección MAC de encapsulación y la dirección IP de encapsulación), un paquete recibido posteriormente que tiene la misma dirección MAC de destino y el mismo VNI de una VF de reenvío que el paquete a ser reenviado. En esta realización de la presente invención, una VF de reenvío es una VF que reenvía, al adaptador de red, un paquete enviado por una máquina virtual. Cada máquina virtual es correspondiente a una VF. Cuando se envía un paquete al adaptador de red para su reenvío, la máquina virtual envía el paquete al adaptador de red usando una VF correspondiente a la máquina virtual.
Con referencia a una estructura del dispositivo 200 informático mostrado en la FIG. 2, lo siguiente describe un proceso de envío de un paquete VxLAN en esta realización de la presente invención usando un ejemplo en el que el adaptador 202 de red encapsula y envía un paquete VxLAN.
Cuando una máquina virtual en el dispositivo 200 informático necesita enviar un paquete a otro dispositivo, la máquina virtual envía el paquete a ser enviado al adaptador 202 de red. Un proceso en el que el adaptador 202 de red procesa el paquete recibido es de la siguiente manera.
S100. El adaptador 202 de red recibe un primer paquete enviado por una máquina virtual.
El primer paquete recibido por el adaptador 202 de red es un paquete enviado por una máquina virtual en el dispositivo 200 informático. En un modo SR-IOV, la máquina virtual en el dispositivo 200 informático envía el primer paquete usando una VF correspondiente a la máquina virtual, es decir, una VF de reenvío de la máquina virtual envía el primer paquete al adaptador 202 de red.
S102. El procesador 2021 de adaptador de red en el adaptador 202 de red obtiene un VNI correspondiente a una VF para reenviar el primer paquete.
Específicamente, el procesador 2021 de adaptador de red puede obtener un ID de la VF para reenviar el primer paquete, buscar una tabla de configuración de VF según el ID obtenido de la VF y obtener un atributo de la VF y una VTAG (cuando el atributo de la VF es una VLAN, la VTAG indica un ID de VLAN; o cuando el atributo de la VF es un VxLAN, la VTAG indica un VNI). Si el atributo de VF es la VxLAN, un VNI correspondiente al ID de la VF es el VNI de la VF. El contenido de la tabla de configuración de la VF se puede mostrar en la Tabla a.
Tabla a
Figure imgf000005_0001
En esta realización de la presente invención, la Tabla a enumera solamente el contenido de entrada relacionado con esta solución. La VTAG es un identificador correspondiente al ID de la VF y el atributo de la VF y no tiene un significado específico.
El primer paquete recibido por el adaptador 202 de red lleva el ID de la VF para reenviar el primer paquete. Cuando el adaptador 202 de red recibe el primer paquete, el procesador 2021 de adaptador de red puede descubrir desde qué VF se envía el primer paquete. Además, una tabla de configuración de cada VF incluye información que identifica si un atributo de la Vf es de un tipo VLAN o de un tipo VxLAN. Si el atributo de la VF es de un tipo VLAn , una VTAG en la tabla de configuración de la VF indica un ID de VLAN correspondiente a la VF; o si el atributo de la VF es de un tipo VxLAN, una VTAG en la tabla de configuración de la VF indica un VNI correspondiente a la VF. El procesador 2021 de adaptador de red determina, según el ID obtenido de la VF en el primer paquete, si un atributo de la VF correspondiente al ID de la VF es un atributo de VxLAN; y obtiene un VNI correspondiente de la tabla de configuración de la VF si el atributo de la VF correspondiente al ID de la VF es el atributo de VxLAN.
Se debería señalar que, un atributo de la VF usado por una máquina virtual se configura normalmente cuando se inicializa un adaptador de red. Por ejemplo, un administrador configura un atributo de la VF usado por una máquina virtual como VxLAN cuando se inicializa el adaptador de red. Además, un VNI se configura previamente, y cada VF cuyo atributo es la VxLAN es correspondiente a un VNI único.
S104. El procesador 2021 de adaptador de red determina, según el VNI obtenido de la VF y una dirección MAC de destino del primer paquete, si el adaptador 202 de red almacena una dirección MAC de encapsulación y una dirección IP de encapsulación que se requieren para realizar la encapsulación de VxLAN sobre el primer paquete, donde la dirección MAC de encapsulación es una dirección MAC de un dispositivo de siguiente salto que se pasa cuando se envía el primer paquete, y la dirección IP de encapsulación es una dirección IP de un VTEP en un extremo de destino del primer paquete.
El procesador 2021 de adaptador de red puede buscar, según el VNI obtenido de la VF, para el reenvío del primer paquete y la dirección MAC de destino interna del primer paquete, el adaptador 202 de red (tal como una unidad de almacenamiento o una entrada de almacenamiento del adaptador 202 de red) para una dirección MAC de encapsulación y una dirección IP de encapsulación que son correspondientes al VNI de la VF para reenviar el primer paquete y la dirección MAC de destino del primer paquete; y si puede encontrar la dirección MAC de encapsulación y la dirección IP de encapsulación, determinar que el adaptador 202 de red almacena la dirección MAC de encapsulación y la dirección IP de encapsulación que se requieren para realizar la encapsulación de VxLAN sobre el primer paquete. En esta realización de la presente invención, la dirección de destino MAC de memoria es una dirección MAC de destino en un paquete original (es decir, una carga útil original).
S106. Cuando el adaptador 202 de red no almacena la dirección MAC de encapsulación y la dirección IP de encapsulación que se requieren para realizar la encapsulación de VxLAN sobre el primer paquete, enviar un mensaje de solicitud a la unidad 201 central de procesamiento para solicitar la dirección MAC de encapsulación y la dirección IP de encapsulación que se requieren para realizar la encapsulación de VxLAN sobre el primer paquete, donde el mensaje de solicitud lleva el primer paquete y el VNI de la VF para reenviar el primer paquete.
S108. El procesador 2021 de adaptador de red obtiene la dirección MAC de encapsulación y la dirección IP de encapsulación que se envían por la unidad 201 central de procesamiento y que se requieren para realizar la encapsulación de VxLAN sobre el primer paquete, envía un paquete obtenido después de que se realiza la encapsulación de VxLAN sobre el primer paquete, y almacena la dirección MAC de encapsulación y la dirección IP de encapsulación.
Que el procesador 2021 de adaptador de red envíe un paquete obtenido después de que se realice la encapsulación de VxLAN sobre el primer paquete puede incluir:
el procesador 2021 de adaptador de red realiza la encapsulación de VxLAN sobre el primer paquete según la dirección MAC de encapsulación y la dirección IP de encapsulación obtenidas requeridas para realizar la encapsulación de VxLAN sobre el primer paquete, y envía el paquete encapsulado; o
el procesador 2021 de adaptador de red recibe el paquete que se envía por la unidad 201 central de procesamiento y que se obtiene después de que se realice la encapsulación de VxLAN sobre el primer paquete, y envía el paquete obtenido después de que se realice la encapsulación de VxLAN sobre el primer paquete.
Opcionalmente, el procesador 2021 de adaptador de red incluye además un conmutador virtual. Que el procesador 2021 de adaptador de red envíe un paquete obtenido después de que se realice la encapsulación de VxLAN sobre el primer paquete puede incluir:
el procesador 2021 de adaptador de red realiza la encapsulación de VxLAN sobre el primer paquete según la dirección MAC de encapsulación y la dirección IP de encapsulación obtenidas requeridas para realizar la encapsulación de VxLAN sobre el primer paquete, y envía el paquete encapsulado usando el conmutador virtual; o
el conmutador virtual en el procesador 2021 de adaptador de red recibe el paquete que se envía por la unidad 201 central de procesamiento y que se obtiene después de que se realice la encapsulación de VxLAN sobre el primer paquete, y envía el paquete obtenido después de que se realice la encapsulación de VxLAN sobre el primer paquete.
El procesador 2021 de adaptador de red solicita, desde la unidad 201 central de procesamiento, la dirección MAC de encapsulación y la dirección IP de encapsulación que se requieren para realizar la encapsulación de VxLAN sobre el primer paquete, y puede realizar la encapsulación de VxLAN sobre el primer paquete según la dirección MAC de encapsulación y dirección IP de encapsulación obtenidas y enviar el primer paquete. El procesador 2021 de adaptador de red almacena la dirección MAC de encapsulación y la dirección IP de encapsulación, de modo que cuando se reciba un paquete que tenga la misma dirección MAC de destino interna y el mismo VNI de una VF de reenvío que el primer paquete, el adaptador 202 de red puede realizar la encapsulación de VxLAN sobre el paquete recibido posteriormente según la dirección MAC de encapsulación y la dirección IP de encapsulación obtenidas y enviar el paquete.
En esta realización de la presente invención, el procesador 2021 de adaptador de red puede realizar la encapsulación de VxLAN sobre el primer paquete, o la unidad 201 central de procesamiento puede realizar la encapsulación de VxLAN sobre el primer paquete. Cuando la unidad 201 central de procesamiento realiza la encapsulación, después de que el procesador 2021 de adaptador de red envía a la unidad 201 central de procesamiento el primer paquete y el VNI de la VF para reenviar el primer paquete, para obtener la dirección MAC de encapsulación y la dirección IP de encapsulación, el procesador 2021 de adaptador de red no necesita almacenar temporalmente el primer paquete, de modo que se pueda guardar espacio de memoria del adaptador 202 de red, y se pueda mejorar la utilización del espacio de memoria del adaptador 202 de red.
En esta realización de la presente invención, que el adaptador 202 de red almacene, usando una tabla de información de direcciones, la dirección MAC de encapsulación y la dirección IP de encapsulación que se requieren para realizar la encapsulación de VxLAN sobre el primer paquete se puede implementar de múltiples maneras. La dirección MAC de encapsulación y la dirección IP de encapsulación se pueden registrar en una tabla, o se pueden registrar en dos tablas. Esta realización de la presente invención no impone ninguna limitación de un formato específico de una tabla para registrar una correspondencia, siempre que el procesador 2021 de adaptador de red en el adaptador 202 de red pueda obtener, según la tabla, una dirección MAC de encapsulación y una dirección IP de encapsulación que sean correspondientes a una dirección MAC de destino de un paquete a ser encapsulado. Lo siguiente usa por separado una tabla y dos tablas para describir la manera en que el adaptador 202 de red almacena la dirección MAC de encapsulación y la dirección IP de encapsulación que se requieren para realizar la encapsulación de VxLAN sobre el primer paquete.
Cuando se usa una tabla, como se muestra en la Tabla 1, el adaptador 202 de red registra, en una tabla, un VNI y una dirección MAC de destino de paquete interna, y una dirección MAC de encapsulación y una dirección IP de encapsulación que son correspondientes al VNI y la dirección MAC de destino de paquete interna. La Tabla 1 se muestra a continuación:
Tabla 1
Figure imgf000007_0001
Cuando se usan dos tablas, el adaptador 202 de red puede usar una tabla para registrar un VNI de una VF de reenvío y una dirección MAC de destino interna, y usar la otra tabla para registrar una dirección MAC de encapsulación y una dirección IP de encapsulación. Se establece una asociación entre las dos tablas usando un identificador (como un ID de túnel). Una correspondencia entre el ID de túnel (un ejemplo en el que el identificador es un ID de túnel se usa para la descripción), y el VNI de la VF de reenvío y la dirección MAC de destino interna se pueden mostrar en la Tabla 2.
Tabla 2
Figure imgf000007_0002
Una correspondencia entre el ID de túnel y la dirección MAC de encapsulación y la dirección IP de encapsulación se muestra en la Tabla 3.
Tabla 3
Figure imgf000008_0001
La Tabla 3 es una tabla lineal, y el “ ID de túnel” se usa como índice de entrada. Cada entrada en la Tabla 3 almacena información de encapsulación, incluyendo la dirección MAC de encapsulación y la dirección IP de encapsulación. Cada vez que se añade una nueva entrada, se ocupa un ID de túnel no usado. Por ejemplo, se supone que la Tabla 3 puede almacenar 1024 entradas, y un intervalo de valores del ID de túnel es de 0 a 1023. Todo el contenido de entrada (la dirección MAC de encapsulación y la dirección IP de encapsulación) en la inicialización está vacío, y cada vez que necesita ser almacenada una parte de la información de encapsulación, se ocupa una entrada. Se usan dos tablas para registrar una correspondencia entre el VNI de la VF de reenvío y la dirección MAC de destino interna, y la dirección MAC de encapsulación y la dirección IP de encapsulación, de modo que se ahorra espacio de almacenamiento del adaptador 202 de red y se evita que las tablas de correspondencia excesiva ocupen el espacio de almacenamiento del adaptador 202 de red. Por ejemplo, para más de dos paquetes, los VNI de las VF de reenvío y direcciones MAC de destino internas de los paquetes pueden ser diferentes, mientras que las direcciones MAC de encapsulación y las direcciones IP de encapsulación pueden ser las mismas. Estableciendo una correspondencia usando un ID de túnel como índice, sólo se pueden almacenar una dirección MAC de encapsulación y una dirección IP de encapsulación. Para cada combinación de un VNI de una VF de reenvío y una dirección MAC de destino interna, se pueden obtener una dirección MAC de encapsulación y una dirección IP de encapsulación correspondientes según un ID de túnel de la combinación. Esto evita almacenar una dirección MAC de encapsulación y una dirección IP de encapsulación para cada grupo de un VNI de una VF de reenvío y una dirección MAC de destino interna, y en consecuencia ahorra espacio de almacenamiento que es del adaptador de red y que está ocupado para almacenar cada dirección MAC de encapsulación y dirección IP de encapsulación.
En esta realización de la presente invención, la Tabla 2 puede ser una tabla de reenvío de direcciones MAC. En una implementación específica, la tabla de reenvío de direcciones MAC existente se puede expandir, es decir, la salida de reenvío en la tabla de reenvío de direcciones MAC se expande, y se añade información acerca del ID de túnel. Una tabla de reenvío de direcciones MAC ampliada se muestra en la Tabla 4.
Tabla 4
Figure imgf000008_0002
La Tabla 4 registra la salida de reenvío correspondiente a la VTAG (la VTAG puede ser un ID de VLAN de la tabla MAC existente o un VNI en la presente invención) y la dirección MAC de destino. La salida de reenvío incluye el puerto de red de máquina virtual, el puerto físico o el ID de túnel. Cuando el adaptador 202 de red ha reenviado un paquete que tiene la misma dirección MAC de destino interna y el mismo VNI de la VF de reenvío que el paquete a ser reenviado (por ejemplo, el primer paquete), el procesador 2021 de adaptador de red registra un ID de túnel correspondiente en la tabla de reenvío de direcciones MAC. Es decir, si la salida de reenvío en la tabla de reenvío de direcciones MAC incluye un ID de túnel, indica que el adaptador de red ha reenviado un paquete que tiene la misma dirección MAC de destino interna y el mismo VNI de la VF de reenvío.
La Tabla 3 puede ser una tabla de información de VTEP. La tabla de información de VTEP se crea por el adaptador 202 de red. Cuando el adaptador 202 de red ha reenviado un paquete que tiene la misma dirección MAC de destino interna y el mismo VNI de la VF de reenvío que el paquete a ser reenviado, el adaptador 202 de red crea una tabla de información de VTEP que incluye un ID de túnel.
En esta realización de la presente invención, la Tabla 2, la Tabla 3, la tabla de reenvío de direcciones MAC y la tabla de información de VTEP solamente enumeran información fuertemente relacionada con esta realización de la presente invención. En una implementación específica, la tabla de reenvío de direcciones MAC y la tabla de información de VTEP pueden incluir además otra información, y esta realización de la presente invención no impone ninguna limitación específica.
Por ejemplo, la Tabla 2 es una tabla de reenvío de direcciones MAC, y la Tabla 3 es una tabla de información de VTEP. Cuando el adaptador 202 de red usa dos tablas para registrar la correspondencia entre la dirección MAC de destino interna y el VNI de la VF de reenvío, y la dirección MAC de encapsulación y la dirección IP de encapsulación, paso S104 en el que determina el procesador 2021 del adaptador de red, según el VNI obtenido de la VF de reenvío para reenviar el primer paquete y la dirección MAC de destino interna del primer paquete, si el adaptador 202 de red almacena la dirección MAC de encapsulación y la dirección IP de encapsulación que se requieren para encapsular el primer paquete incluye:
el procesador 2021 de adaptador de red busca una tabla de reenvío de direcciones MAC según el VNI obtenido correspondiente a la VF para reenviar el primer paquete y la dirección MAC de destino interna del primer paquete, y determina si hay una tabla de reenvío de direcciones MAC relacionada con el VNI obtenido de la VF para reenviar el primer paquete y la dirección MAC de destino interna del primer paquete; y si la tabla de reenvío de direcciones MAC está relacionada con el VNI de la VF para reenviar el primer paquete y se encuentra la dirección MAC de destino interna del primer paquete, y una salida de reenvío en la tabla de reenvío de direcciones MAC encontrada es un ID de túnel, el procesador 2021 de adaptador de red obtiene el ID de túnel correspondiente, busca una tabla de información de VTEP según el ID de túnel obtenido, y obtiene una dirección MAC de encapsulación y una dirección IP de encapsulación que se registran en la tabla de información de VTEP y que son correspondientes al ID de túnel.
En el paso S106, el adaptador 202 de red envía el mensaje de solicitud a la unidad 201 central de procesamiento para solicitar la dirección MAC de encapsulación y la dirección IP de encapsulación que se requieren para realizar la encapsulación de VxLAN sobre el primer paquete. Una manera en que la unidad 201 central de procesamiento obtiene la dirección MAC de encapsulación y la dirección IP de encapsulación puede ser: la unidad 201 central de procesamiento busca una entrada de f Db (Base de Datos de Reenvío, en inglés forwarding database) correspondiente según el VNI recibido de la VF de reenvío y la dirección MAC de destino interna del primer paquete, y obtiene, de la entrada de FDB encontrada, la dirección IP de encapsulación para realizar la encapsulación de VxLAN sobre el primer paquete; y busca una entrada de ARP según la dirección IP de encapsulación obtenida, y obtiene la dirección MAC de encapsulación para realizar la encapsulación de VxLAN sobre el primer paquete.
Después de obtener la dirección IP de encapsulación y la dirección MAC de encapsulación para realizar la encapsulación de VxLAN sobre el primer paquete, la unidad 201 central de procesamiento puede enviar directamente la dirección IP de encapsulación y la dirección MAC de encapsulación obtenidas al adaptador 202 de red; o puede generar una tabla de información de VTEP que incluya la dirección IP de encapsulación y la dirección MAC de encapsulación, y enviar la tabla de información de VTEP generada al adaptador 202 de red.
Con referencia a la FIG. 3, la FIG. 3 es un diagrama estructural esquemático de una implementación específica del dispositivo 200 informático según esta realización de la presente invención. Como se muestra en la FIG. 3, el procesador 2021 de adaptador de red incluye una unidad 20211 de procesamiento de paquetes y una unidad 20212 de gestión de entrada. La unidad 201 central de procesamiento incluye una unidad 2011 de recepción de paquetes y una unidad 2012 de obtención y envío. La unidad 201 central de procesamiento se conecta al adaptador 202 de red usando un canal de Interconexión de Componentes Periféricos Rápida PCIe compartida de alta velocidad.
La unidad 20211 de procesamiento de paquetes se configura para: determinar, según el primer paquete recibido, un atributo de una VF para enviar el primer paquete; si el atributo de la VF es un atributo de VxLAN, obtener un VNI de la VF para reenviar el primer paquete; determinar, según el VNI obtenido de la VF de reenvío y una dirección MAC de destino interna del primer paquete, si el adaptador 202 de red almacena una dirección MAC de encapsulación y una dirección IP de encapsulación que se requieren para encapsular el primer paquete; y cuando el adaptador 202 de red no almacena la dirección mAc de encapsulación y la dirección IP de encapsulación que se requieren para encapsular el primer paquete, enviar un mensaje de solicitud a la unidad 2011 de recepción de paquetes en la unidad 201 central de procesamiento para solicitar la dirección MAC de encapsulación y la dirección IP de encapsulación que se requieren para realizar la encapsulación de VxLAN sobre el primer paquete.
La unidad 20212 de gestión de entrada se configura para recibir y almacenar la dirección MAC de encapsulación y la dirección IP de encapsulación que se envían por la unidad 201 central de procesamiento y que se requieren para realizar la encapsulación de VxLAN sobre el primer paquete. Específicamente, la unidad 20212 de gestión de entrada recibe la dirección MAC de encapsulación y la dirección IP de encapsulación desde la unidad 2012 de obtención y envío en la unidad 201 central de procesamiento y almacena la dirección MAC de encapsulación y la dirección IP de encapsulación. En consecuencia, la unidad 20211 de procesamiento de paquetes puede realizar la encapsulación de VxLAN sobre el primer paquete según la dirección MAC de encapsulación y la dirección IP de encapsulación que se obtienen por la unidad 20212 de gestión de entrada, y enviar el primer paquete. La unidad 20211 de procesamiento de paquetes puede realizar además, según la dirección MAC de encapsulación y la dirección IP de encapsulación que se obtienen por la unidad 20212 de gestión de entrada, encapsulación de VxLAN sobre un paquete que tiene la misma dirección MAC de destino interna y el mismo VNI de la VF de reenvío que el primer paquete, y enviar el paquete.
Para diferentes entornos de aplicación, hay diferentes implementaciones en las que la unidad 201 central de procesamiento obtiene, según la solicitud del procesador 2021 de adaptador de red, la dirección MAC de encapsulación y la dirección IP de encapsulación que se requieren para realizar la encapsulación de VxLAN sobre el primer paquete. Por ejemplo, las implementaciones usadas cuando el dispositivo 200 informático ejecuta un sistema operativo Windows y ejecuta un sistema operativo Linux son ligeramente diferentes. En esta realización de la presente invención, se usa un ejemplo en el que el dispositivo 200 informático ejecuta el sistema operativo Linux para describir la manera en que la unidad 201 central de procesamiento obtiene la dirección MAC de encapsulación y la dirección IP de encapsulación que se requieren para realizar la encapsulación de VxLAN sobre el primer paquete.
Con referencia a la FIG. 4, la FIG. 4 es un diagrama estructural esquemático de una implementación específica del dispositivo 200 informático en un entorno de ejecución Linux según esta realización de la presente invención. Un adaptador 202 de red en la FIG. 4 soporta la descarga de una función de reenvío de un vSwitch y soporta una función SR-IOV. El adaptador 202 de red incluye al menos una función física PF y al menos una función virtual VF. El adaptador 202 de red se conecta a la unidad 201 central de procesamiento usando un canal PCIe, y se conecta a una red usando un puerto 2022. Un procesador 2021 en el adaptador 202 de red incluye una unidad 20211 de procesamiento de paquetes, una unidad 20212 de gestión de entrada, y el conmutador 20213 virtual. La unidad 201 central de procesamiento ejecuta un sistema operativo Linux, y un proceso de ejecución del sistema operativo Linux incluye la ejecución de un espacio de modo de usuario de Linux y un espacio de modo de núcleo de Linux. El espacio de modo de usuario de Linux ejecuta al menos una máquina virtual, y cada máquina virtual se conecta al conmutador 20213 virtual en el adaptador 202 de red usando una VF única. El espacio de modo núcleo de Linux incluye una unidad 2011 de recepción de paquetes, una unidad 2012 de obtención y envío, un dispositivo 2013 virtual, y una pila 2014 de protocolos.
Cuando la unidad 2011 de recepción de paquetes en la unidad 201 central de procesamiento recibe un VNI de la VF de reenvío y el primer paquete que se envían por la unidad 20211 de procesamiento de paquetes en el procesador 2021 de adaptador de red, la unidad 2012 de obtención y envío busca, según el VNI recibido por la unidad 2011 de recepción de paquetes, una lista vinculada de dispositivos Linux para un dispositivo VxLAN (el dispositivo VxLAN es un dispositivo virtual, por ejemplo, puede ser un dispositivo virtual creado usando una función de VxLAN del sistema operativo Linux) correspondiente al VNI; busca, según una dirección MAC de destino interna del primer paquete, una tabla de FDB en el espacio de datos del dispositivo VxLAN para una entrada de FDB correspondiente (cada dispositivo VxLAN tiene un espacio de datos exclusivo, y el espacio de datos almacena una entrada de FDB relacionada con el dispositivo); y busca la entrada de FDB según la dirección MAC para obtener una dirección IP de encapsulación correspondiente a la dirección MAC de destino interna, es decir, una dirección IP de un VTEP en un extremo de destino. La tabla de FDB se puede mostrar en la Tabla 5.
Tabla 5
Figure imgf000010_0001
Después de obtener la dirección IP de encapsulación (es decir, la dirección IP del VTEP en el extremo de destino), la unidad 2012 de obtención y envío usa la dirección IP de encapsulación como una dirección IP de destino para encapsular el primer paquete, y busca una entrada de ARP (la entrada de ARP registra una correspondencia entre la dirección IP de encapsulación y una dirección MAC de un dispositivo de siguiente salto que se pasa) en la pila 2014 de protocolos para obtener la dirección MAC que es correspondiente a la dirección IP de encapsulación y que es del dispositivo de siguiente salto que se pasa cuando se envía el primer paquete, para obtener la información completa requerida para realizar la encapsulación de VxLAN sobre el primer paquete. La entrada de ARP se puede mostrar en la Tabla 6.
Tabla 6
Figure imgf000011_0001
Cuando se envía la dirección MAC de encapsulación y la dirección IP de encapsulación obtenidas al adaptador 202 de red, la unidad 2012 de obtención y envío puede convertir la dirección MAC de encapsulación y la dirección IP de encapsulación en una forma que se puede almacenar en el adaptador 202 de red, por ejemplo, una tabla de reenvío de direcciones MAC y una tabla de información de VTEP, y luego enviar la dirección MAC de encapsulación y la dirección IP de encapsulación convertidas al adaptador 202 de red; o puede enviar directamente la dirección MAC de encapsulación y la dirección IP de encapsulación al adaptador 202 de red.
Además, la unidad 2012 de obtención y envío puede enviar, a la pila 2014 de protocolos, el primer paquete y la información de encapsulación (que incluye pero no se limita a una dirección IP de origen, la dirección IP de destino, una dirección MAC de origen, la dirección MAC de destino y el VNI, donde la dirección IP de origen y la dirección MAC de origen se configuran estáticamente por un administrador). La pila 2014 de protocolos implementa la encapsulación de VxLAN del primer paquete según la información de encapsulación, y envía el paquete VxLAN encapsulado al adaptador 202 de red. El adaptador 202 de red envía el paquete VxLAN encapsulado.
La dirección MAC de encapsulación obtenida se obtiene por la unidad 201 central de procesamiento de la tabla de ARP. Por lo tanto, cuando la información de encapsulación de VxLAN se configura estáticamente por el administrador, el administrador necesita configurar solamente la dirección IP de encapsulación, y no necesita configurar la dirección MAC de encapsulación (la dirección MAC de encapsulación cambia cuando el dispositivo de siguiente salto cambia y se mantiene dinámicamente por un ordenador central de ARP). De esta forma, la configuración por parte del administrador es más simple, y la interconexión en red es más flexible.
Se debería observar que la Tabla 5 y la Tabla 6 en esta realización de la presente invención sólo enumeran información relacionada con la presente invención para concisión. En una implementación específica, las tablas pueden incluir además otra información, y esta realización de la presente invención no impone ninguna limitación.
En esta realización de la presente invención, el adaptador 202 de red gestiona además la dirección MAC de encapsulación recibida o almacenada y la tabla de direcciones IP de encapsulación. En un ejemplo en el que el adaptador 202 de red almacena la dirección MAC de encapsulación y la dirección IP de encapsulación usando la tabla de reenvío de direcciones MAC y la tabla de información de VTEP, cada vez que el adaptador 202 de red encuentra que la tabla de reenvío de direcciones MAC se usa para encapsular un paquete VxLAN, una cantidad de veces de uso de la tabla de reenvío de direcciones MAC se aumenta en 1. Cuando el adaptador 202 de red recibe la tabla de reenvío de direcciones MAC entregada por la unidad 201 central de procesamiento y el espacio de almacenamiento de la tabla de reenvío de direcciones MAC está lleno, el adaptador 202 de red puede envejecer activamente (es decir, eliminar) una entrada con la frecuencia de uso más baja, para insertar una entrada recién entregada, asegurando por ello que el adaptador 202 de red almacene sólo una entrada de reenvío con la frecuencia de uso más alta cuando el espacio del adaptador 202 de red es limitado. La tabla de reenvío de direcciones MAC está en una correspondencia uno a uno con la tabla de información de VTEP en el adaptador de red, y la creación de la tabla de información de VTEP y la actualización de una cantidad de veces de uso de la tabla de información de VTEP siguen una entrada de dirección MAC correspondiente, de modo que una entrada con una frecuencia de uso alta se puede mantener continuamente en el adaptador de red, la utilización del espacio de un adaptador de red y la eficiencia de gestión de una entrada se pueden mejorar aún más, y se mejora la eficiencia del reenvío de un paquete VxLAN por el adaptador de red. Una cantidad de veces de uso de una entrada en la tabla de reenvío de direcciones MAC se puede registrar en la tabla de reenvío de direcciones MAC, y una cantidad de veces de uso de una entrada en la tabla de información de VTEP se puede registrar en la tabla de información de VTEP; o cantidades de veces de uso de entradas en la tabla de reenvío de direcciones MAC y la tabla de información de VTEP se puede registrar de manera independiente usando una entrada. Esta realización de la presente invención no impone ninguna limitación.
En un ejemplo de una arquitectura de un dispositivo informático mostrado en la FIG. 4, lo siguiente describe un procedimiento de un método para enviar un paquete VxLAN en esta realización de la presente invención. Cuando una máquina virtual 1 necesita enviar un primer paquete, la máquina virtual 1 envía el paquete al adaptador 202 de red usando una VF (esta realización de la presente invención usa una VF 1 como ejemplo de descripción) correspondiente a la máquina virtual 1. El conmutador 20213 virtual en el adaptador 202 de red recibe, desde la VF 1, el primer paquete enviado por la máquina virtual 1, y envía el primer paquete a la unidad 20211 de procesamiento de paquetes. La unidad 20211 de procesamiento de paquetes determina, según el primer paquete obtenido, si un atributo de la VF 1 es un atributo de VxLAN; y si el atributo es un atributo de VxLAN, consulta si la unidad 20212 de gestión de entrada almacena una dirección MAC de encapsulación y una dirección IP de encapsulación que se requieren para realizar la encapsulación de VxLAN sobre el primer paquete.
Si la unidad 20212 de gestión de entrada incluye la dirección MAC de encapsulación y la dirección IP de encapsulación que se requieren para realizar la encapsulación de VxLAN sobre el primer paquete, la unidad 20211 de procesamiento de paquetes realiza la encapsulación de VxLAN sobre el primer paquete según la dirección MAC de encapsulación y la dirección IP de encapsulación en la unidad 20212 de gestión de entrada, envía el primer paquete obtenido después de la encapsulación de VxLAN al puerto 2022 usando el conmutador 20213 virtual, y envía, usando el puerto 2022, el primer paquete obtenido después de la encapsulación de VxLAN sobre una red.
Si la unidad 20212 de gestión de entrada no incluye la dirección MAC de encapsulación y la dirección IP de encapsulación que se requieren para realizar la encapsulación de VxLAN sobre el primer paquete, la unidad 20211 de procesamiento de paquetes envía, usando una función física PF (esta realización de la presente invención usa una PF N como ejemplo para la descripción), el primer paquete y un VNI de la VF 1 a la unidad 2011 de recepción de paquetes en la unidad 201 central de procesamiento. La unidad 2011 de recepción de paquetes envía el primer paquete recibido y el VNI de la VF 1 a la unidad 2012 de obtención y envío. La unidad 2012 de obtención y envío obtiene, buscando una entrada de FDB y una entrada de ARP, la dirección MAC de encapsulación y la dirección IP de encapsulación que se requieren para realizar la encapsulación de VxLAN sobre el primer paquete, y envía, usando una PF (se usa una PF 2 como ejemplo para la descripción), la dirección MAC de encapsulación y la dirección IP de encapsulación a la unidad 20212 de gestión de entrada. La unidad 20212 de gestión de entrada almacena la dirección MAC de encapsulación y la dirección IP de encapsulación que se obtienen de la unidad 2012 de obtención y envío. Cuando la unidad 201 central de procesamiento realiza la encapsulación de VxLAN sobre el primer paquete, la pila 2014 de protocolos puede realizar la encapsulación de VxLAN sobre el primer paquete, y envía el primer paquete obtenido después la encapsulación de VxLAN al conmutador 20213 virtual usando la PF (esta realización de la presente invención usa una PF 1 como ejemplo para la descripción). El conmutador 20213 virtual envía el primer paquete obtenido después de la encapsulación de VxLAN a la red usando el puerto 2022. Cuando la encapsulación de VxLAN se ha a realizar sobre el primer paquete usando el adaptador de red, la unidad 2012 de obtención y envío envía el primer paquete a la unidad 20211 de procesamiento de paquetes usando la PF (por ejemplo, la PF N). La unidad 20211 de procesamiento de paquetes realiza la encapsulación de VxLAN sobre el primer paquete según la dirección MAC de encapsulación y la dirección IP de encapsulación que se almacenan por la unidad 20212 de gestión de entrada, y envía, usando el conmutador 20213 virtual, el primer paquete obtenido después de la encapsulación de VxLAN a la red usando el puerto 2022.
En esta realización de la presente invención, una entrada de FDB en el dispositivo 200 informático tiene dos orígenes: configuración por parte un administrador y descubrimiento de un paquete VxLAN enviado por un adaptador de red. Si todas las entradas de FDB se configuran por el administrador, cuando el dispositivo 200 informático recibe, desde la red, un paquete cuyo destino es una máquina virtual en el dispositivo 200 informático, debido a que una entrada de reenvío se configura estáticamente por parte del administrador y se entrega al adaptador 202 de red, el adaptador 202 de red puede reenviar una carga útil original a la máquina virtual de destino según la entrada de reenvío configurada después de decapsular el paquete VxLAN recibido y obtener la carga útil original interna. Si se obtiene una entrada de reenvío de FDB mediante el descubrimiento del paquete VxLAN, después de recibir un paquete VxLAN cuyo destino es una máquina virtual en el dispositivo informático, el adaptador 202 de red necesita determinar si el adaptador de red incluye información de VTEP e información de reenvío de direcciones MAC que se incluyen en el paquete. Si el adaptador de red no incluye la información de VTEP y la información de reenvío de direcciones MAC que se incluyen en el paquete, el adaptador de red envía el paquete VxLAN a la unidad 201 central de procesamiento para el descubrimiento de paquetes VxLAN. De esta forma, independientemente de si se usa configuración por parte del administrador o descubrimiento de paquetes, todas las entradas en el adaptador de red son del dispositivo 200 informático (es decir, la unidad 201 central de procesamiento en el dispositivo 200 informático), y el dispositivo 200 informático se puede gestionar de manera centralizada.
En esta realización de la presente invención, con referencia al dispositivo 200 informático mostrado en la FIG. 4, un proceso en el que el adaptador 202 de red envía el paquete VxLAN a la unidad 201 central de procesamiento para el descubrimiento de paquetes VxLAN es de la siguiente manera.
S200. El adaptador 202 de red recibe un segundo paquete que se envía, sobre la red, al dispositivo 200 informático, donde un destino del segundo paquete es una máquina virtual en el dispositivo informático.
S202. El procesador 2021 de adaptador de red en el adaptador 202 de red determina si el segundo paquete es un paquete VxLAN.
Se puede determinar si el segundo paquete es un paquete VxLAN determinando si un número de puerto de destino UDP usado en el segundo paquete es 4789. Si el número de puerto de destino UDP es 4789, se puede determinar que el segundo paquete es el paquete VxLAN. Según una estipulación de RFC 7348, el número de puerto UDP 4789 se usa como identificador del paquete VxLAN.
S204. Cuando el segundo paquete es el paquete VxLAN, el procesador 2021 de adaptador de red analiza sintácticamente el segundo paquete para obtener un VNI, una dirección MAC de origen y una dirección MAC de destino que son de un paquete interno (una carga útil original), y una dirección MAC de origen y una dirección IP de origen que son de un paquete externo (un túnel VxLAN); y determina si el adaptador 202 de red incluye una dirección MAC de encapsulación (la dirección MAC de origen del paquete externo) y una dirección IP de encapsulación (la dirección IP de origen del paquete externo) que son correspondientes al segundo paquete. Si el adaptador 202 de red no incluye la dirección MAC de encapsulación y la dirección IP de encapsulación que son correspondientes al segundo paquete, el segundo paquete se reenvía a la unidad 201 central de procesamiento; y si el adaptador 202 de red incluye la dirección MAC de encapsulación y la dirección IP de encapsulación que son correspondientes al segundo paquete, saltar directamente a S210.
En un ejemplo en el que el adaptador de red registra la dirección IP de encapsulación y la dirección MAC de encapsulación usando la tabla de información de VTEP y la tabla de reenvío de direcciones MAC, cuando se determina si el adaptador 202 de red incluye la dirección MAC de encapsulación y la dirección IP de encapsulación que se incluyen en el segundo paquete, el adaptador 202 de red primero busca la tabla de reenvío de direcciones MAC según el VNI del segundo paquete y la dirección MAC de origen del paquete interno. Si se puede encontrar la tabla de reenvío de direcciones MAC, indica que el adaptador 202 de red incluye la tabla de reenvío de direcciones MAC correspondiente al segundo paquete. El adaptador 202 de red busca la tabla de información de VTEP según un ID de túnel indicado en la tabla de reenvío de direcciones MAC encontrada, y compara una dirección IP de encapsulación y una dirección MAC de encapsulación en la tabla de información de VTEP encontrada con la dirección IP de origen y la dirección MAC de origen que son del paquete externo y que se obtienen analizando sintácticamente el segundo paquete. Si los dos son iguales, indica que el adaptador 202 de red incluye la dirección IP de encapsulación y la dirección MAC de encapsulación que se incluyen en el segundo paquete. Si no hay ninguna tabla de información de VTEP o si las dos son diferentes, se determina que el adaptador 202 de red no incluye la dirección IP de encapsulación y la dirección MAC de encapsulación que se incluyen en el segundo paquete.
S206. Después de recibir el segundo paquete enviado por el conmutador 20213 virtual, la unidad 201 central de procesamiento analiza sintácticamente el segundo paquete y, en un ejemplo de una realización mostrada en la FIG.
4, puede analizar sintácticamente el paquete en la pila 2014 de protocolos; si se determina que el paquete analizado sintácticamente es un paquete VxLAN, descubre el paquete VxLAN; y si ya existe una entrada de FDB, refresca la entrada de FDB y actualiza la dirección IP de encapsulación; o si no existe una entrada de FDB, crea una entrada de FDB, de modo que la entrada de FDB se puede usar cuando la encapsulación de VxLAN se realiza sobre un paquete enviado posteriormente por una máquina virtual en el dispositivo 200 informático.
S208. La unidad 2012 de obtención y envío de la unidad 201 central de procesamiento obtiene una carga útil original VxLAN desencapsulada, y entrega la carga útil original y el VNI al adaptador 202 de red. Es decir, la unidad 2012 de obtención y envío envía, usando una función física PF, la carga útil original obtenida y el VNI del segundo paquete a la unidad 20211 de procesamiento de paquetes en el procesador 202 de adaptador de red.
Se debería observar que la unidad 2012 de obtención y envío puede usar múltiples métodos para obtener la carga útil original desencapsulada. En un ejemplo de un dispositivo informático que ejecuta un sistema operativo Linux, un dispositivo VxLAN correspondiente para procesar el paquete VxLAN se conecta a un puente virtual establecido por Linux. De esta forma, la carga útil original decapsulada se reenvía al puente virtual, y la unidad 2012 de obtención y envío puede obtener la carga útil original en una entrada del puente virtual. Indudablemente, un procedimiento de recepción y procesamiento del dispositivo VxLAN se puede modificar, y después de que el dispositivo VxLAN completa el descubrimiento y la desencapsulación de paquetes, se obtiene la carga útil original.
S210. El adaptador 202 de red busca una tabla de reenvío según el VNI y la dirección MAC de destino interna del segundo paquete, y reenvía la carga útil original interna a una máquina virtual correspondiente. Es decir, la unidad 20211 de procesamiento de paquetes en el procesador 2021 de adaptador de red envía el segundo paquete a una máquina virtual de destino según el VNI y la dirección MAC de destino interna del segundo paquete usando el conmutador 20213 virtual.
En el paso S204, después de enviar el segundo paquete a la unidad 201 central de procesamiento, la unidad 20211 de procesamiento de paquetes en el procesador 2021 de adaptador de red puede enviar directamente el segundo paquete a la máquina virtual de destino según el VNI y la dirección MAC de destino interna del segundo paquete usando el conmutador 20213 virtual. La unidad 2012 de obtención y envío en la unidad 201 central de procesamiento no necesita enviar la carga útil original y el VNI del segundo paquete a la unidad 20211 de procesamiento de paquetes en el procesador 202 de adaptador de red usando la función física PF.
Con referencia a la FIG. 5, la FIG. 5 es un diagrama de flujo esquemático de un método para enviar un paquete VxLAN de red de área local extensible virtual según una realización de la presente invención. El método para enviar un paquete VxLAN de red de área local extensible virtual en esta realización de la presente invención se aplica a un dispositivo informático, el dispositivo informático incluye una unidad central de procesamiento, un adaptador de red y una máquina virtual, y el adaptador de red incluye un procesador de adaptador de red. Como se muestra en la FIG.
5, el método incluye los siguientes pasos:
Paso 500: El procesador de adaptador de red recibe un primer paquete enviado por la máquina virtual.
Paso 502: El procesador de adaptador de red determina si el adaptador de red almacena la información de encapsulación requerida para realizar la encapsulación de VxLAN sobre el primer paquete, donde la información de encapsulación incluye una dirección MAC de Control de Acceso al Medio de encapsulación y una dirección IP de Protocolo de Internet de encapsulación, la dirección MAC de encapsulación es una dirección MAC de un dispositivo de siguiente salto que se pasa cuando se envía el primer paquete, y la dirección IP de encapsulación es una dirección IP de un VTEP en un extremo de destino del primer paquete.
Paso 504: Cuando el adaptador de red almacena la información de encapsulación requerida para realizar la encapsulación de VxLAN sobre el primer paquete, realizar la encapsulación de VxLAN sobre el primer paquete según la información de encapsulación, y enviar el primer paquete.
Paso 506: cuando el adaptador de red no almacena la información de encapsulación requerida para realizar la encapsulación de VxLAN sobre el primer paquete, enviar una solicitud de obtención a la unidad central de procesamiento, obtener la información de encapsulación de la unidad central de procesamiento y almacenar la información de encapsulación, y enviar un paquete obtenido después de que se realiza la encapsulación de VxLAN sobre el primer paquete.
El adaptador de red es un adaptador de red que soporta la virtualización de entrada/salida de raíz única SR-IOV y soporta la función de reenvío de un conmutador virtual vSwitch. La máquina virtual en el dispositivo informático envía directamente un paquete al adaptador de red usando una VF y envía el paquete sobre una red. En consecuencia, el adaptador de red incluye al menos una PF y al menos una VF. En esta realización del método, después de recibir un primer paquete, el procesador de adaptador de red determina si un adaptador de red almacena la información de encapsulación requerida para realizar la encapsulación de VxLAN sobre el primer paquete; si el adaptador de red almacena la información de encapsulación, realiza la encapsulación de VxLAN sobre el primer paquete y envía el primer paquete; si el adaptador de red no almacena la información de encapsulación, solicita la información de encapsulación de una unidad central de procesamiento y almacena la información de encapsulación; y envía un paquete obtenido después de que se realice la encapsulación de VxLAN sobre el primer paquete, de modo que el adaptador de red implemente la encapsulación de VxLAN y el envío del paquete recibido.
Opcionalmente, antes del paso 502, el método incluye además:
Paso 501: El procesador de adaptador de red obtiene, del primer paquete recibido, un ID de una función virtual VF para reenviar el primer paquete, y consulta, según el ID de la VF, un atributo de la VF correspondiente al ID de la VF.
Cuando el atributo de la VF es un atributo de VxLAN, se obtiene un identificador de red VxLAN VNI de la VF.
En consecuencia, que el procesador de adaptador de red determine si el adaptador de red almacena la información de encapsulación requerida para realizar la encapsulación de VxLAN sobre el primer paquete incluye:
el procesador de adaptador de red consulta, según el VNI y la dirección MAC de destino interna del primer paquete, si el adaptador de red incluye información de encapsulación correspondiente al VNI de la VF y la dirección MAC de destino interna del primer paquete; y
cuando el adaptador de red incluye la información de encapsulación correspondiente al VNI de la VF y la dirección MAC de destino interna del primer paquete, determina que el adaptador de red almacena la información de encapsulación requerida para realizar la encapsulación de VxLAN sobre el primer paquete. Opcionalmente, el adaptador de red puede consultar, buscando una tabla de información de direcciones relacionada (que puede ser la Tabla 1, o puede ser la Tabla 2 y la Tabla 3), si el adaptador de red almacena la información de encapsulación requerida para realizar la encapsulación de VxLAN sobre el primer paquete. Además, el adaptador de red puede registrar además una cantidad de veces de uso de la tabla de información de direcciones. Cada vez que el adaptador de red busca en la tabla de información de direcciones y encuentra la información de encapsulación requerida para realizar la encapsulación de VxLAN sobre un paquete que necesita ser reenviado, la cantidad de veces de uso de la tabla de información de direcciones registrada se aumenta en 1.
De esta forma, cuando las entradas de la tabla de información de direcciones en el adaptador de red ocupan por completo el espacio de almacenamiento disponible del adaptador de red, se puede eliminar una entrada usada por la menor cantidad de veces, de modo que se pueda añadir una entrada recién entregada por la unidad central de procesamiento. Cuando el espacio de almacenamiento del adaptador de red es limitado, se puede almacenar una entrada más reciente, y se mejora la eficiencia de reenvío de un paquete por el adaptador de red.
Una manera en que el adaptador de red almacena la información de encapsulación requerida para realizar la encapsulación de VxLAN sobre el primer paquete puede ser una manera de la Tabla 1, o puede ser una manera de la Tabla 2 y la Tabla 3. Por ejemplo, una tabla de reenvío MAC se usa para almacenar una correspondencia entre un identificador de túnel, y el VNI de la VF para reenviar el primer paquete y la dirección MAC de destino interna del primer paquete; y una tabla de información de VTEP se usa para almacenar una correspondencia entre el identificador de túnel y la información de encapsulación. De la manera de la Tabla 2 y la Tabla 3 (o la tabla de reenvío MAC y la tabla de información de VTEP), se puede guardar el espacio de almacenamiento del adaptador de red, y se evita que las entradas excesivas ocupen el espacio de almacenamiento del adaptador de red.
En la realización del método mostrada en la FIG. 5, el adaptador de red en el dispositivo informático puede incluir además un conmutador virtual. En consecuencia, que el procesador de adaptador de red envíe un paquete obtenido después de que se realice la encapsulación de VxLAN sobre el primer paquete incluye:
el conmutador virtual en el adaptador de red recibe y envía el paquete que se envía por la unidad central de procesamiento y que se obtiene después de que se realice la encapsulación de VxLAN sobre el primer paquete; o
el procesador de adaptador de red realice la encapsulación de VxLAN sobre el primer paquete según la información de encapsulación obtenida requerida para realizar la encapsulación de VxLAN sobre el primer paquete, y envía el primer paquete usando el conmutador virtual en el adaptador de red.
Cuando el conmutador virtual en el adaptador de red recibe y envía el paquete que se envía por la unidad central de procesamiento y que se obtiene después de que se realiza la encapsulación de VxLAN sobre el primer paquete, el adaptador de red no necesita almacenar el primer paquete, de modo que se puede guardar el espacio de almacenamiento que es del adaptador de red y que se ocupa para almacenar el primer paquete, y se puede mejorar la utilización del espacio de almacenamiento del adaptador de red.
Cuando el adaptador de red recibe un segundo paquete que se envía desde el lado de la red a una máquina virtual en el dispositivo informático, el método incluye además:
el adaptador de red recibe el segundo paquete enviado a la máquina virtual, donde el segundo paquete es un paquete VxLAN; y el procesador de adaptador de red determina si el adaptador de red almacena una dirección MAC de encapsulación y una dirección IP de encapsulación en el segundo paquete, y
cuando el adaptador de red no almacena la dirección MAC de encapsulación y la dirección IP de encapsulación en el segundo paquete, envía el segundo paquete a la unidad central de procesamiento. Después de que el procesador de adaptador de red envía el segundo paquete a la unidad central de procesamiento, la unidad central de procesamiento puede obtener y almacenar la dirección AMC de encapsulación y la IP de encapsulación en el segundo paquete según el segundo paquete recibido, por ejemplo, almacenar la dirección IP de encapsulación en una entrada de FDB, y registrar la dirección MAC de encapsulación en una entrada de ARP. La unidad central de procesamiento almacena la dirección MAC de encapsulación y la dirección IP de encapsulación en el segundo paquete; y cuando se recibe posteriormente una solicitud de obtención del adaptador de red que solicita información de encapsulación de un paquete que tiene el mismo VNI y la dirección MAC de destino interna como el segundo paquete, envía la información de encapsulación al adaptador de red según la dirección MAC de encapsulación y la dirección IP de encapsulación almacenadas en el segundo paquete. Opcionalmente, la dirección IP de encapsulación y la dirección mAc de encapsulación relacionada en la unidad central de procesamiento también se pueden almacenar en la unidad central de procesamiento por medio de configuración previa por parte de un administrador.
Para la realización que implementa el método para reenviar un paquete VxLAN, se puede hacer referencia a la solución descrita en la realización relacionada con la FIG. 2, la FIG. 3 o la FIG. 4, y los detalles no se describen en la presente memoria.
Con referencia a la FIG. 6, la FIG. 6 es un diagrama estructural esquemático de un dispositivo 600 informático según una realización de la presente invención. Como se muestra en la FIG. 6, el dispositivo 600 informático incluye una unidad 601 central de procesamiento, un adaptador 602 de red y una máquina 603 virtual. El adaptador 602 de red incluye un procesador 6021 de adaptador de red, y el procesador 6021 de adaptador de red incluye una unidad 60211 de procesamiento de paquetes y una unidad 60212 de gestión de entrada.
La unidad 60211 de procesamiento de paquetes se configura para: recibir un primer paquete enviado por la máquina 603 virtual; determinar si el adaptador 602 de red almacena la información de encapsulación requerida para realizar la encapsulación de VxLAN sobre el primer paquete; y cuando el adaptador 602 de red no almacena la información de encapsulación requerida para realizar la encapsulación de VxLAN sobre el primer paquete, enviar una solicitud de obtención a la unidad 601 central de procesamiento. La información de encapsulación incluye una dirección MAC de encapsulación y una dirección IP de encapsulación, la dirección MAC de encapsulación es una dirección MAC de un dispositivo de siguiente salto que se pasa cuando se envía el primer paquete, y la dirección IP de encapsulación es una dirección IP de un VTEP en un extremo de destino del primer paquete.
La unidad 60212 de gestión de entrada se configura para recibir y almacenar la dirección MAC de encapsulación y la dirección IP de encapsulación que se envían por la unidad 601 central de procesamiento y que se requieren para realizar la encapsulación de VxLAN sobre el primer paquete.
El procesador 6021 de adaptador de red se configura para enviar un paquete obtenido después de que se realice la encapsulación de VxLAN sobre el primer paquete.
El adaptador 602 de red soporta virtualización de entrada/salida de raíz única SR-IOV y soporta una función de reenvío de un conmutador virtual vSwitch. La máquina 603 virtual en el dispositivo 600 informático envía directamente un paquete al adaptador 602 de red usando una VF y envía el paquete sobre una red. En consecuencia, el adaptador de red incluye al menos una PF y al menos una VF. El adaptador 602 de red se conecta a la unidad 601 central de procesamiento usando un enlace PCIe.
En el dispositivo 600 informático, la unidad 60211 de procesamiento de paquetes recibe un primer paquete enviado por la máquina 603 virtual; determina si el adaptador 602 de red almacena la información de encapsulación requerida para realizar la encapsulación de VxLAN sobre el primer paquete; si el adaptador 602 de red almacena la información de encapsulación, realiza la encapsulación de VxLAN sobre el primer paquete y envía el primer paquete; o si el adaptador de red no almacena la información de encapsulación, solicita la información de encapsulación de una unidad 601 central de procesamiento y almacena la información de encapsulación; y envía un paquete obtenido después de que se realice la encapsulación de VxLAN sobre el primer paquete, de modo que el adaptador 602 de red implementa la encapsulación de VxLAN y el envío del paquete recibido.
Con referencia a la FIG. 7, la FIG. 7 es un diagrama estructural esquemático de una implementación específica del dispositivo 600 informático según una realización de la presente invención. Como se muestra en la FIG. 7, la unidad 601 central de procesamiento incluye una unidad 6011 de recepción de paquetes y una unidad 6012 de obtención y envío.
La unidad 6011 de recepción de paquetes se configura para recibir la solicitud de obtención enviada por la unidad 60211 de procesamiento de paquetes. La solicitud de obtención incluye el primer paquete y un VNI de una VF para reenviar el primer paquete.
La unidad 6012 de obtención y envío se configura para: obtener, según la solicitud de obtención recibida por la unidad 6011 de recepción de paquetes, la información de encapsulación requerida para realizar la encapsulación de VxLAN sobre el primer paquete, y enviar la información de encapsulación a la unidad 60212 de gestión de entrada. Opcionalmente, la unidad 60211 de procesamiento de paquetes está configurada además para: obtener, del primer paquete recibido, un ID de la VF para reenviar el primer paquete; consultar, según el ID de la VF, para un atributo de la VF correspondiente al ID de la VF; y
cuando el atributo de la VF es un atributo de VxLAN, obtener el VNI de la VF.
La unidad 60211 de procesamiento de paquetes puede consultar, según el VNI obtenido de la VF y el MAC de destino interno del primer paquete, si el adaptador 602 de red almacena la información de encapsulación requerida para realizar la encapsulación de VxLAN sobre el primer paquete.
En consecuencia, que la unidad 60211 de procesamiento de paquetes determine si el adaptador 602 de red almacena la información de encapsulación requerida para realizar la encapsulación de VxLAN sobre el primer paquete incluye:
la unidad 60211 de procesamiento de paquetes consulta, según el VNI y la dirección MAC de destino interna del primer paquete, si el adaptador 602 de red incluye información de encapsulación correspondiente al VNI de la VF y la dirección MAC de destino interna del primer paquete; y
cuando el adaptador de red incluya la información de encapsulación correspondiente al VNI de la VF y la dirección MAC de destino interna del primer paquete, determina que el adaptador de red incluye la información de encapsulación requerida para realizar la encapsulación de VxLAN sobre el primer paquete. Específicamente, la unidad 60211 de procesamiento de paquetes puede consultar, en la unidad 60212 de gestión de entrada, si hay una tabla de información de direcciones relacionada, tal como la Tabla 1 en la realización precedente, o la Tabla 2 y la Tabla 3 en la realización precedente; y consultar, según la tabla de información de direcciones relacionada, si la unidad 60212 de gestión de entrada del adaptador 602 de red incluye la información de encapsulación requerida para realizar la encapsulación de VxLAN sobre el primer paquete.
Opcionalmente, en esta realización de la presente invención, se puede registrar una cantidad de veces de uso de la tabla de información de direcciones (que puede ser la Tabla 1, o puede ser la Tabla 2 y la Tabla 3). Cada vez que la unidad 60211 de procesamiento de paquetes busca la tabla de información de direcciones en la unidad 60212 de gestión de entrada y encuentra la información de encapsulación requerida para realizar la encapsulación de VxLAN sobre un paquete que necesita ser reenviado, la cantidad de veces de uso de la tabla de información de direcciones registrada se aumenta en 1. De esta forma, cuando las entradas de la tabla de información de direcciones en la unidad 60212 de gestión de entrada ocupan por completo el espacio de almacenamiento disponible del adaptador 602 de red, se puede eliminar una entrada usada para la menor cantidad de veces, de modo que se pueda añadir una entrada recién entregada por la unidad 601 central de procesamiento. Cuando el espacio de almacenamiento del adaptador de red es limitado, se puede almacenar una entrada más reciente, y se mejora la eficiencia de reenviar un paquete por el adaptador de red.
En esta realización de la presente invención, que la unidad 60212 de gestión de entrada almacene la información de encapsulación requerida para realizar la encapsulación de VxLAN sobre el primer paquete incluye:
la unidad 60212 de gestión de entrada almacena una correspondencia entre un identificador de túnel, y el VNI de la VF para reenviar el primer paquete y la dirección MAC de destino interna del primer paquete, y almacena una correspondencia entre el identificador de túnel y la información de encapsulación.
Una manera en que el adaptador 602 de red almacena la información de encapsulación requerida para realizar la encapsulación de VxLAN sobre el primer paquete puede ser una manera de la Tabla 1, o puede ser una manera de la Tabla 2 y la Tabla 3. Por ejemplo, se usa una tabla de reenvío MAC para almacenar la correspondencia entre el identificador de túnel, y el VNI de la VF para reenviar el primer paquete y la dirección MAC de destino interna del primer paquete; y una tabla de información de VTEP se usa para almacenar la correspondencia entre el identificador de túnel y la información de encapsulación. De la manera de la Tabla 2 y la Tabla 3 (o la tabla de reenvío MAC y la tabla de información de VTEP), se puede guardar el espacio de almacenamiento del adaptador de red, y se evita que entradas excesivas ocupen el espacio de almacenamiento del adaptador de red.
Opcionalmente, el procesador 6021 de adaptador de red incluye además un conmutador 60213 virtual. Que el procesador 6021 de adaptador de red envíe un paquete obtenido después de que se realice la encapsulación de VxLAN sobre el primer paquete incluye:
la unidad 60211 de procesamiento de paquetes en el procesador 6021 de adaptador de red realiza la encapsulación de VxLAN sobre el primer paquete según la dirección MAC de encapsulación y la dirección IP de encapsulación que se obtienen por la unidad 60212 de gestión de entrada, y envía el primer paquete usando el conmutador 60213 virtual; o
el conmutador 60213 virtual en el procesador 60211 de adaptador de red recibe y envía el paquete que se envía por la unidad 601 central de procesamiento y se obtiene después de que se realiza la encapsulación de VxLAN sobre el primer paquete.
Cuando el conmutador 60213 virtual en el adaptador 602 de red recibe y envía el paquete que se envía por la unidad 601 central de procesamiento y que se obtiene después de que se realice la encapsulación de VxLAN sobre el primer paquete, y después de que la unidad 60211 de procesamiento de paquetes envía el primer paquete y el VNI a la unidad 601 central de procesamiento, el adaptador 602 de red no necesita almacenar el primer paquete, de modo que se puede guardar el espacio de almacenamiento que es del adaptador de red y que se ocupa para almacenar el primer paquete, y se puede mejorar la utilización del espacio del adaptador de red.
Opcionalmente, la unidad 60211 de procesamiento de paquetes se configura además para: recibir un segundo paquete enviado a la máquina 603 virtual, donde el segundo paquete es un paquete VxLAN; determinar si la unidad 60212 de gestión de entrada almacena una dirección MAC de encapsulación y una dirección IP de encapsulación en el segundo paquete; y cuando la unidad 60212 de gestión de entrada no almacena la dirección MAC de encapsulación y la dirección IP de encapsulación en el segundo paquete, enviar el segundo paquete a la unidad 6011 de recepción de paquetes.
La unidad 6012 de obtención y envío se configura además para: recibir el segundo paquete de la unidad 6011 de recepción de paquetes, y obtener la dirección MAC de encapsulación y la dirección IP de encapsulación en el segundo paquete.
Después de que el procesador 6021 de adaptador de red envía el segundo paquete a la unidad central de procesamiento, la unidad 601 central de procesamiento puede obtener y almacenar la dirección AMC de encapsulación y la IP de encapsulación en el segundo paquete según el segundo paquete recibido, por ejemplo, almacenar la dirección IP de encapsulación en una entrada de FDB, y registrar la dirección MAC de encapsulación en una entrada de ARP. La unidad 601 central de procesamiento almacena la dirección MAC de encapsulación y la dirección IP de encapsulación en el segundo paquete; y cuando se recibe posteriormente una solicitud de obtención del adaptador 602 de red que solicita información de encapsulación de un paquete que tiene el mismo VNI y la misma dirección MAC de destino interna que el segundo paquete, envía la información de encapsulación al adaptador 602 de red según la dirección MAC de encapsulación y la dirección IP de encapsulación almacenadas en el segundo paquete. Opcionalmente, la dirección IP de encapsulación y la dirección MAC de encapsulación relacionadas en la unidad 601 central de procesamiento también se pueden almacenar en la unidad 601 central de procesamiento por medio de configuración previa por parte de un administrador.
Para una implementación específica del dispositivo 600 informático, se puede hacer referencia a la solución descrita en la realización relacionada con la FIG. 2, la FIG. 3 o la FIG. 4, y los detalles no se describen de nuevo. Las realizaciones de la presente invención proporcionan además un medio legible por ordenador, donde el medio legible por ordenador almacena una instrucción legible por ordenador, y cuando la instrucción legible por ordenador se ejecuta por un procesador en un dispositivo informático, el procesador realiza los siguientes pasos:
recibir un primer paquete enviado por una máquina virtual a un adaptador de red;
determinar si el adaptador de red almacena la información de encapsulación requerida para realizar la encapsulación de VxLAN de red de área local extensible virtual sobre el primer paquete, donde la información de encapsulación incluye una dirección MAC de Control de Acceso al Medio de encapsulación y una dirección IP de Protocolo de Internet de encapsulación, la dirección MAC de encapsulación es una dirección MAC de un dispositivo de siguiente salto que se pasa cuando se envía el primer paquete, y la dirección IP de encapsulación es una dirección IP de un VTEP sobre un extremo de destino del primer paquete ; y cuando el adaptador de red almacena la información de encapsulación requerida para realizar la encapsulación de VxLAN sobre el primer paquete, realizar la encapsulación de VxLAN sobre el primer paquete según la dirección MAC de encapsulación y la dirección IP de encapsulación, y enviar el primer paquete; o
cuando el adaptador de red no almacena la información de encapsulación requerida para realizar la encapsulación de VxLAN sobre el primer paquete, enviar una solicitud de obtención a una unidad central de procesamiento en el dispositivo informático, obtener la información de encapsulación de la unidad central de procesamiento y almacenar la información de encapsulación, y enviar un paquete obtenido después de que se realice la encapsulación de VxLAN sobre el primer paquete.
El adaptador de red incluye al menos una PF y al menos una VF, y la máquina virtual en el dispositivo informático envía directamente un paquete al adaptador de red usando la VF y envía el paquete sobre una red. Opcionalmente, cada máquina virtual en el dispositivo informático es correspondiente exclusivamente a una VF, y la máquina virtual reenvía un paquete al adaptador de red usando la VF única correspondiente.
En la realización del medio legible por ordenador, después de recibir un primer paquete, un procesador determina si un adaptador de red almacena la información de encapsulación requerida para realizar la encapsulación de VxLAN sobre el primer paquete; si el adaptador de red almacena la información de encapsulación, realiza la encapsulación de VxLAN sobre el primer paquete y envía el primer paquete; si el adaptador de red no almacena la información de encapsulación, solicita la información de encapsulación de una unidad central de procesamiento y almacena la información de encapsulación; y envía un paquete obtenido después de que se realice la encapsulación de VxLAN sobre el primer paquete, de modo que el adaptador de red implemente la encapsulación de VxLAN y el envío del paquete recibido.
Opcionalmente, antes de que el procesador determine si el adaptador de red almacena la información de encapsulación requerida para realizar la encapsulación de VxLAN sobre el primer paquete, el procesador se configura además para:
obtener, del primer paquete recibido, un ID de una función virtual VF para reenviar el primer paquete, y consultar, según el ID de la VF, un atributo de la VF correspondiente al ID de la VF; y
cuando el atributo de la VF es un atributo de VxLAN, obtener un identificador de red VxLAN VNI de la VF. Después de que se obtiene el VNI de la VF, el procesador puede buscar una tabla de reenvío de direcciones en el adaptador de red según el VNI de la VF y una dirección MAC de destino interna del primer paquete, y determinar si la tabla de reenvío de direcciones incluye la información de encapsulación correspondiente al VNI de la VF y la dirección MAC de destino interna del primer paquete.
La determinación de si el adaptador de red incluye la información de encapsulación requerida para realizar la encapsulación de VxLAN sobre el primer paquete incluye:
obtener el identificador de red VxLAN VNI de la VF para reenviar el primer paquete;
consultar, según el VNI y la dirección MAC de destino interna del primer paquete, si el adaptador de red incluye información de encapsulación correspondiente al VNI de la VF y la dirección MAC de destino interna del primer paquete; y
cuando el adaptador de red incluye la información de encapsulación correspondiente a la VNI de la VF y la dirección MAC de destino interna del primer paquete, determinar que el adaptador de red incluye la información de encapsulación requerida para realizar la encapsulación de VxLAN sobre el primer paquete. En esta realización de la presente invención, el procesador puede registrar además, según la instrucción legible por ordenador en el medio legible por ordenador, una cantidad de veces de consulta de la información de encapsulación. Cada vez que se encuentra con éxito la información de encapsulación, la cantidad de veces registrada se aumenta en 1. De esta forma, cuando el espacio de almacenamiento del adaptador de red es limitado, se puede eliminar un registro de información de encapsulación usado para la menor cantidad de veces, de modo que se pueda añadir un registro de la información de encapsulación recién entregada por la unidad central de procesamiento. Cuando el espacio de almacenamiento del adaptador de red es limitado, se puede almacenar una entrada más reciente, y se mejora la eficiencia de reenvío de un paquete por el adaptador de red.
En el medio legible por ordenador en esta realización de la presente invención, una manera de almacenamiento de la información de encapsulación requerida para realizar la encapsulación de VxLAN sobre el primer paquete incluye:
almacenar una correspondencia entre un identificador de túnel, y el VNI de la VF para reenviar el primer paquete y la dirección MAC de destino interna del primer paquete, y almacenar una correspondencia entre el identificador de túnel y la información de encapsulación. Opcionalmente, se puede almacenar directamente una correspondencia entre la información de encapsulación, y el VNI de la VF para reenviar el primer paquete y la dirección MAC de destino interna del primer paquete.
En la realización del medio legible por ordenador, el envío de un paquete obtenido después de que se realice la encapsulación de VxLAN sobre el primer paquete incluye:
recibir y enviar el paquete que se envía por la unidad central de procesamiento y que se obtiene después de que se realice la encapsulación de VxLAN en el primer paquete; o
realizar la encapsulación de VxLAN sobre el primer paquete según la información de encapsulación obtenida requerida para realizar la encapsulación de VxLAN sobre el primer paquete, y enviar el primer paquete. Cuando el procesador recibe y envía el paquete que se envía por la unidad central de procesamiento y que se obtiene después de que se realice la encapsulación de VxLAN sobre el primer paquete, y después de que el procesador envíe el primer paquete y el v Ni a la unidad central de procesamiento, el procesador no necesita almacenar el primer paquete, de modo que se puede guardar el espacio de almacenamiento que es del adaptador de red y que se ocupa para almacenar el primer paquete, y se puede mejorar la utilización del espacio de almacenamiento del adaptador de red.
En la realización del medio legible por ordenador, el procesador está configurado además para realizar los siguientes pasos:
recibir un segundo paquete enviado a la máquina virtual, donde el segundo paquete es un paquete VxLAN; determinar si el adaptador de red almacena una dirección MAC de encapsulación y una dirección IP de encapsulación en el segundo paquete; y
cuando el adaptador de red no almacena la dirección MAC de encapsulación y la dirección IP de encapsulación en el segundo paquete, enviar el segundo paquete a la unidad central de procesamiento. Un experto en la técnica puede ser consciente de que, en combinación con los ejemplos descritos en las realizaciones descritas en esta especificación, las unidades y los pasos de algoritmo se pueden implementar mediante hardware electrónico, software informático o una combinación de los mismos. Para describir claramente capacidad de intercambio entre el hardware y el software, lo precedente ha descrito en general las composiciones y los pasos de cada ejemplo según las funciones. Si las funciones se realizan por hardware o software depende de las aplicaciones particulares y las condiciones de restricción de diseño de las soluciones técnicas. Un experto en la técnica puede usar diferentes métodos para implementar las funciones descritas para cada aplicación en particular, pero no se debería considerar que la implementación vaya más allá del alcance de la presente invención.
Se puede entender claramente por un experto en la técnica que, con el propósito de una descripción conveniente y breve, para un proceso de trabajo detallado del sistema, aparato y unidad precedentes, se puede hacer referencia a un proceso correspondiente en las realizaciones del método precedente, y los detalles no se describen en la presente memoria de nuevo.
En las diversas realizaciones proporcionadas en esta solicitud, se debería entender que el sistema, el aparato y el método descritos se pueden implementar de otras maneras. Por ejemplo, la realización del aparato descrito es meramente un ejemplo. Por ejemplo, la división de unidades es meramente una división de función lógica y puede ser otra división en la implementación real. Por ejemplo, una pluralidad de unidades o componentes se pueden combinar o integrar en otro sistema, o algunas características se pueden ignorar o no realizar. Además, los acoplamientos mutuos mostrados o tratados o los acoplamientos directos o las conexiones de comunicación se pueden implementar a través de algunas interfaces, acoplamientos indirectos o conexiones de comunicación entre los aparatos o unidades, o conexiones eléctricas, conexiones mecánicas o conexiones de otras formas.
Las unidades descritas como partes separadas pueden estar o no físicamente separadas, y las partes mostradas como unidades pueden ser o no unidades físicas, se pueden situar en una posición o se pueden distribuir en una pluralidad de unidades de red. Una parte o todas las unidades se pueden seleccionar según las necesidades reales para lograr los objetivos de las soluciones de las realizaciones de la presente invención.
Además, las unidades funcionales en las realizaciones de la presente invención se pueden integrar en una unidad de procesamiento, o cada una de las unidades puede existir sólo físicamente, o dos o más unidades están integradas en una unidad. La unidad integrada se puede implementar en forma de hardware, o se puede implementar en forma de una unidad funcional de software.
Cuando la unidad integrada se implementa en forma de una unidad funcional de software y se vende o usa como un producto independiente, la unidad integrada se puede almacenar en un medio de almacenamiento legible por ordenador. En base a tal comprensión, las soluciones técnicas de la presente invención esencialmente, o la parte que contribuye a la técnica anterior, o todas o una parte de las soluciones técnicas se pueden implementar en forma de un producto de software. El producto de software se almacena en un medio de almacenamiento e incluye varias instrucciones para instruir a un dispositivo informático (que puede ser un ordenador personal, un servidor o un dispositivo de red) para realizar todos o parte de los pasos de los métodos descritos en las realizaciones de la presente invención. El medio de almacenamiento precedente incluye: cualquier medio que pueda almacenar un código de programa, tal como una unidad rápida USB, un disco duro extraíble, una memoria de sólo lectura (ROM, en inglés Read-Only Memory), una memoria de acceso aleatorio (RAM, en inglés Random Access Memory), un disco magnético, o un disco óptico.
Las descripciones precedentes son meramente realizaciones específicas de la presente invención, pero no se pretende que limiten la presente invención.

Claims (13)

REIVINDICACIONES
1. Un método para enviar un paquete de red de área local extensible virtual, VxLAN, en donde el método comprende los pasos de:
operar un dispositivo informático, el dispositivo informático que comprende una unidad central de procesamiento, un adaptador de red y una máquina virtual, y el adaptador de red comprende un procesador de adaptador de red;
recibir (500), por el procesador de adaptador de red, un primer paquete enviado por la máquina virtual; obtener, por el procesador de adaptador de red del primer paquete recibido, un ID de una función virtual, VF, para reenviar el primer paquete, y consultar, según el ID de la VF, para un atributo de la VF correspondiente al ID de la VF; y cuando el atributo de la VF es un atributo de VxLAN, obtener un identificador de red de VxLAN, VNI, de la VF;
determinar (502), por el procesador de adaptador de red, si el adaptador de red almacena la información de encapsulación requerida para realizar la encapsulación de VxLAN sobre el primer paquete, en donde la información de encapsulación comprende una dirección de Control de Acceso al Medio, MAC, de encapsulación y una dirección de Protocolo de Internet, IP, de encapsulación, la dirección MAC de encapsulación es una dirección MAC de un dispositivo de siguiente salto que se pasa cuando se envía el primer paquete, y la dirección IP de encapsulación es una dirección IP de un punto final de túnel de red de área local extensible virtual, VTEP, en un extremo de destino del primer paquete; y
cuando el adaptador de red almacena la información de encapsulación requerida para realizar la encapsulación de VxLAN sobre el primer paquete, realizar (504) la encapsulación de VxLAN sobre el primer paquete según la información de encapsulación, y enviar el primer paquete encapsulado; o
cuando el adaptador de red no almacena la información de encapsulación requerida para realizar la encapsulación de VxLAN sobre el primer paquete, enviar (506) una solicitud de obtención a la unidad central de procesamiento, obtener la información de encapsulación de la unidad central de procesamiento y almacenar la información de encapsulación, y enviar un paquete obtenido después de que se realice la encapsulación de VxLAN sobre el primer paquete; en donde la solicitud de obtención lleva el primer paquete y el VNI de la VF para reenviar el primer paquete.
2. El método para enviar un paquete VxLAN según la reivindicación 1, en donde el paso de determinar (502), por el procesador de adaptador de red, si el adaptador de red almacena información de encapsulación requerida para realizar la encapsulación de VxLAN sobre el primer paquete, comprende los pasos de:
consultar, por el procesador de adaptador de red según el VNI y una dirección MAC de destino interna del primer paquete, si el adaptador de red comprende información de encapsulación correspondiente al VNI de la VF y la dirección MAC de destino interna del primer paquete; y
cuando el adaptador de red comprende la información de encapsulación correspondiente al VNI de la VF y la dirección MAC de destino interna del primer paquete, determinar que el adaptador de red almacena la información de encapsulación requerida para realizar la encapsulación de VxLAN sobre el primer paquete.
3. El método para enviar un paquete VxLAN según una cualquiera de las reivindicaciones 1 a 2, en donde el paso de almacenar, por el adaptador de red, la información de encapsulación requerida para realizar la encapsulación de VxLAN sobre el primer paquete, comprende los pasos de:
almacenar, por el adaptador de red, una correspondencia entre un identificador de túnel, y el VNI de la VF para reenviar el primer paquete y la dirección MAC de destino interna del primer paquete, y almacenar una correspondencia entre el identificador de túnel y la información de encapsulación.
4. El método para enviar un paquete VxLAN según una cualquiera de las reivindicaciones 1 a 3, en donde el paso de enviar, por el procesador de adaptador de red, un paquete obtenido después de que se realice la encapsulación de VxLAN sobre el primer paquete, comprende los pasos de:
recibir y enviar, por un conmutador virtual en el adaptador de red, el paquete que se envía por la unidad central de procesamiento y que se obtiene después de que se realice la encapsulación de VxLAN sobre el primer paquete; o
realizar, por el procesador de adaptador de red, la encapsulación de VxLAN sobre el primer paquete según la información de encapsulación obtenida requerida para realizar la encapsulación de VxLAN sobre el primer paquete, y enviar el primer paquete usando un conmutador virtual en el adaptador de red.
5. El método para enviar un paquete VxLAN según una cualquiera de las reivindicaciones 1 a 4, en donde el método además comprende los pasos de:
recibir, por el adaptador de red, un segundo paquete enviado a la máquina virtual, en donde el segundo paquete es un paquete VxLAN;
determinar, por el procesador de adaptador de red, si el adaptador de red almacena una dirección MAC de encapsulación y una dirección IP de encapsulación en el segundo paquete; y
cuando el adaptador de red no almacena la dirección MAC de encapsulación y la dirección IP de encapsulación en el segundo paquete, enviar el segundo paquete a la unidad central de procesamiento.
6. El método para enviar un paquete VxLAN según una cualquiera de las reivindicaciones 1 a 5, en donde el adaptador de red soporta la virtualización de entrada/salida de raíz única, SR-IOV, y soporta una función de reenvío de un conmutador virtual, vSwitch.
7. Un dispositivo (200, 600) informático, que comprende una unidad (201, 601) central de procesamiento, una adaptador (202, ,602) de red, y una máquina (603) virtual, en donde el adaptador (202, 602) de red comprende un procesador (2021, 6021) de adaptador de red, y el procesador (2021, 6021) de adaptador de red comprende una unidad (20211, 60211) de procesamiento de paquetes y una unidad (20212, 60212) de gestión de entrada; en donde la unidad (20211, 60211) de procesamiento de paquetes se configura para: recibir (500) un primer paquete enviado por la máquina (603) virtual; determinar (502) si el adaptador (202, 602) de red almacena la información de encapsulación requerida para realizar (504) encapsulación de red de área local extensible virtual, VxLAN, sobre el primer paquete; y cuando el adaptador (202, 602) de red no almacena la información de encapsulación requerida para realizar la encapsulación de VxLAN sobre el primer paquete, enviar (506) una solicitud de obtención a la unidad (201, 601) central de procesamiento, en donde la información de encapsulación comprende una dirección de Control de Acceso al Medio, MAC, de encapsulación y una dirección de Protocolo de Internet, IP, de encapsulación, la dirección MAC de encapsulación es una dirección MAC de un dispositivo de siguiente salto que se pasa cuando se envía el primer paquete, y la dirección IP de encapsulación es una dirección IP de un punto final de túnel de red de área local extensible virtual, VTEP, en un extremo de destino del primer paquete; en donde la solicitud de obtención lleva el primer paquete y el VNI de la VF para reenviar el primer paquete;
la unidad (201, 601) central de procesamiento comprende una unidad (2011, 6011) de recepción de paquetes y una unidad (2012, 6012) de obtención y envío; en donde
la unidad (2011, 6011) de recepción de paquetes está configurada para recibir la solicitud de obtención enviada por la unidad (20211, 60211) de procesamiento de paquetes, en donde la solicitud de obtención comprende el primer paquete y un identificador de red VxLAN, v Ni, de una función virtual, VF, para reenviar el primer paquete; y
la unidad (2012, 6012) de obtención y envío se configura para: obtener, según la solicitud de obtención recibida por la unidad (2011, 6011) de recepción de paquetes, la información de encapsulación requerida para realizar la encapsulación de VxLAN sobre el primer paquete, y enviar la información de encapsulación a la unidad (20212, 60212) de gestión de entrada;
la unidad (20212, 60212) de gestión de entrada se configura para recibir y almacenar la dirección MAC de encapsulación y la dirección IP de encapsulación que se envían por la unidad (201, 601) central de procesamiento y que se requieren para realizar la encapsulación de VxLAN sobre el primer paquete; y el procesador (2021, 6021) de adaptador de red se configura para enviar un paquete obtenido después de que se realice la encapsulación de VxLAN sobre el primer paquete.
8. El dispositivo (200, 600) informático según la reivindicación 7, en donde:
la unidad (20211, 60211) de procesamiento de paquetes se configura además para: obtener, del primer paquete recibido, un ID de la función virtual, VF, para reenviar el primer paquete; consultar, según el ID de la VF, para un atributo de la VF correspondiente al ID de la VF; y obtener el identificador de red VxLAN, VNI, de la VF cuando el atributo de la VF es un atributo de VxLAN.
9. El dispositivo informático según la reivindicación 8, en donde
la unidad (20211, 60211) de procesamiento de paquetes se configura para consultar, según el VNI y una dirección MAC de destino interna del primer paquete, si el adaptador de red comprende información de encapsulación correspondiente al VNI de la VF y la dirección MAC de destino interna del primer paquete; y determinar que el adaptador de red comprende la información de encapsulación requerida para realizar la encapsulación de VxLAN sobre el primer paquete cuando el adaptador (202, 602) de red comprende la información de encapsulación correspondiente al VNI de la VF y la dirección MAC de destino interna del primer paquete.
10. El dispositivo (200, 600) informático según una cualquiera de las reivindicaciones 7 a 9, en donde
la unidad (20212, 60212) de gestión de entrada se configura para almacenar una correspondencia entre un identificador de túnel, y el VNI de la VF para reenviar el primer paquete y la dirección MAC de destino interna del primer paquete, y almacenar una correspondencia entre el identificador de túnel y la información de encapsulación.
11. El dispositivo (200, 600) informático según una cualquiera de las reivindicaciones 7 a 10, en donde el procesador (2021, 6021) de adaptador de red comprende además un conmutador (20213, 60213) virtual; y que el procesador (2021, 6021) de adaptador de red envía el paquete obtenido después de que se realice la encapsulación de VxLAN sobre el primer paquete comprende:
la unidad (20211, 60211) de procesamiento de paquetes en el procesador (2021, 6021) de adaptador de red realiza la encapsulación de VxLAN sobre el primer paquete según la dirección MAC de encapsulación y la dirección IP de encapsulación que se obtienen por la unidad (20212, 60212) de gestión de entrada, y envía el primer paquete usando el conmutador (20213, 60213) virtual; o
el conmutador (20213, 60213) virtual en el procesador (2021, 6021) de adaptador de red recibe y envía el paquete que se envía por la unidad (201, 601) central de procesamiento y que se obtiene después de que se realice la encapsulación de VxLAN sobre el primer paquete.
12. Un medio legible por ordenador, en donde el medio legible por ordenador almacena una instrucción legible por ordenador, y cuando la instrucción legible por ordenador se ejecuta por un procesador en un dispositivo informático, el procesador se configura para:
recibir un primer paquete enviado por una máquina virtual a un adaptador de red;
obtener, del primer paquete recibido, un ID de una función virtual, VF, para reenviar el primer paquete, y consultar, según el ID de la VF, un atributo de la VF correspondiente al ID de la VF; y cuando el atributo de la VF es un atributo de VxLAN, obtener un identificador de red VxLAN, VNI, de la VF;
determinar si el adaptador de red almacena la información de encapsulación requerida para realizar una encapsulación de red de área local extensible virtual, VxLAN, sobre el primer paquete, en donde la información de encapsulación comprende una dirección de Control de Acceso al Medio, MAC, de encapsulación y una dirección de Protocolo de Internet, IP, de encapsulación, la dirección MAC de encapsulación es una dirección MAC de un dispositivo de siguiente salto que se pasa cuando se envía el primer paquete, y la dirección IP de encapsulación es una dirección IP de un punto final de túnel de red de área local extensible virtual, VTEP, en un extremo de destino del primer paquete; y
cuando el adaptador de red almacena la información de encapsulación requerida para realizar la encapsulación de VxLAN sobre el primer paquete, realizar la encapsulación de VxLAN sobre el primer paquete según la dirección MAC de encapsulación y la dirección IP de encapsulación, y enviar el primer paquete; o
cuando el adaptador de red no almacena la información de encapsulación requerida para realizar la encapsulación de VxLAN sobre el primer paquete, enviar una solicitud de obtención a una unidad central de procesamiento en el dispositivo informático, obtener la información de encapsulación de la unidad central de procesamiento y almacenar la información de encapsulación, y enviar un paquete obtenido después de que se realice la encapsulación de VxLAN sobre el primer paquete; en donde la solicitud de obtención lleva el primer paquete y el VNI de la VF para reenviar el primer paquete.
13. El medio legible por ordenador según la reivindicación 12, en donde el procesador se configura además para:
obtener el identificador de red VxLAN, VNI, de la VF para reenviar el primer paquete;
consultar, según el VNI y una dirección MAC de destino interna del primer paquete, si el adaptador de red comprende información de encapsulación correspondiente al VNI de la VF y la dirección MAC de destino interna del primer paquete; y
determinar que el adaptador de red comprende la información de encapsulación requerida para realizar la encapsulación de VxLAN sobre el primer paquete cuando el adaptador de red comprende la información de encapsulación correspondiente al VNI de la VF y la dirección MAC de destino interna del primer paquete.
ES15911932T 2015-12-31 2015-12-31 Método para enviar un paquete de red de área local extensible virtual, dispositivo informático y medio legible por ordenador Active ES2750778T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2015/100150 WO2017113306A1 (zh) 2015-12-31 2015-12-31 可扩展虚拟局域网报文发送方法、计算机设备和可读介质

Publications (1)

Publication Number Publication Date
ES2750778T3 true ES2750778T3 (es) 2020-03-27

Family

ID=59224325

Family Applications (2)

Application Number Title Priority Date Filing Date
ES19181136T Active ES2926345T3 (es) 2015-12-31 2015-12-31 Método para enviar un paquete de red de área local extensible virtual, dispositivo informático y medio legible por ordenador
ES15911932T Active ES2750778T3 (es) 2015-12-31 2015-12-31 Método para enviar un paquete de red de área local extensible virtual, dispositivo informático y medio legible por ordenador

Family Applications Before (1)

Application Number Title Priority Date Filing Date
ES19181136T Active ES2926345T3 (es) 2015-12-31 2015-12-31 Método para enviar un paquete de red de área local extensible virtual, dispositivo informático y medio legible por ordenador

Country Status (5)

Country Link
US (3) US10771286B2 (es)
EP (3) EP3633929B1 (es)
CN (2) CN107113240B (es)
ES (2) ES2926345T3 (es)
WO (1) WO2017113306A1 (es)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017113306A1 (zh) * 2015-12-31 2017-07-06 华为技术有限公司 可扩展虚拟局域网报文发送方法、计算机设备和可读介质
CN107770031A (zh) * 2017-10-26 2018-03-06 郑州云海信息技术有限公司 一种可扩展虚拟局域网vxlan报文处理方法和装置
CN109992405B (zh) * 2017-12-29 2021-10-15 西安华为技术有限公司 一种处理数据报文的方法和网卡
CN108989248B (zh) * 2018-06-11 2020-07-07 华为技术有限公司 传输报文的方法、网络边缘设备与报文传输系统
US11012259B1 (en) * 2018-09-13 2021-05-18 Ca, Inc. Systems and methods for preserving system contextual information in an encapsulated packet
CN111147369B (zh) * 2018-11-05 2022-02-08 中国电信股份有限公司 路由系统、路由方法和服务器
EP3899742A4 (en) 2018-12-21 2022-09-14 Cylera, Inc. SYSTEM AND PROCEDURE FOR NON-INVASIVE NETWORKED DEVICE TESTING BASED ON PASSIVELY DETECTED DEVICE TRAFFIC
US11206243B2 (en) * 2019-03-04 2021-12-21 Cyxtera Cybersecurity, Inc. Multiple gateway controllers to establish network access
US10880211B2 (en) * 2019-05-06 2020-12-29 Seth Gregory Friedman Transaction encoding and verification by way of data-link layer fields
CN110688237B (zh) 2019-06-25 2024-02-09 华为技术有限公司 转发报文的方法、中间设备和计算机设备
US11005806B1 (en) * 2019-08-16 2021-05-11 Cylera, Inc. Methods and apparatus for deep packet inspection to identify intermediate network devices
CN110955517B (zh) * 2019-09-03 2021-08-20 华为技术有限公司 报文转发的方法、计算机设备和中间设备
US10868707B1 (en) 2019-09-16 2020-12-15 Liquid-Markets-Holdings, Incorporated Zero-latency message processing with validity checks
EP4144048A1 (en) 2020-06-08 2023-03-08 Liquid-Markets GmbH Hardware-based transaction exchange
US11811559B2 (en) 2020-07-21 2023-11-07 Vmware, Inc. Logical network packet handling on physical network interface controller (PNIC)
US11750532B2 (en) * 2020-07-21 2023-09-05 Vmware, Inc. Logical network packet handling on physical network interface controller (PNIC)
CN112152900A (zh) * 2020-09-24 2020-12-29 盛科网络(苏州)有限公司 VxLAN场景中的报文转发方法和装置
CN112311680B (zh) * 2020-10-30 2022-07-12 新华三技术有限公司合肥分公司 一种报文转发方法及装置
CN112737915B (zh) * 2020-12-29 2022-10-25 优刻得科技股份有限公司 基于智能网卡的内网隧道跨域网关转发方法、系统、设备和介质
US11895027B2 (en) * 2021-05-20 2024-02-06 Pensando Systems Inc. Methods and systems for service distribution using data path state replication and intermediate device mapping
US11902184B2 (en) 2021-05-20 2024-02-13 Pensando Systems Inc. Methods and systems for providing a virtualized NVMe over fabric service
US11949589B2 (en) 2021-05-20 2024-04-02 Pensando Systems Inc. Methods and systems for service state replication using original data packets
US11593294B2 (en) 2021-05-20 2023-02-28 Pensando Systems Inc. Methods and systems for loosely coupled PCIe service proxy over an IP network
CN113259220B (zh) * 2021-07-14 2021-09-10 武汉绿色网络信息服务有限责任公司 共享报文中私有信息的方法和服务器
CN116455704B (zh) * 2023-06-15 2023-08-11 北京城建智控科技股份有限公司 基于vxlan的报文发送方法、接收方法及装置

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101696472B1 (ko) * 2010-06-18 2017-01-16 삼성전자주식회사 이동 통신 시스템에서 로컬 라우팅 장치 및 방법
US8923149B2 (en) * 2012-04-09 2014-12-30 Futurewei Technologies, Inc. L3 gateway for VXLAN
US9736211B2 (en) * 2012-08-27 2017-08-15 Vmware, Inc. Method and system for enabling multi-core processing of VXLAN traffic
WO2014052485A1 (en) * 2012-09-26 2014-04-03 Huawei Technologies Co. Ltd. Overlay virtual gateway for overlay networks
US9036639B2 (en) * 2012-11-29 2015-05-19 Futurewei Technologies, Inc. System and method for VXLAN inter-domain communications
CN103905283B (zh) * 2012-12-25 2017-12-15 华为技术有限公司 基于可扩展虚拟局域网的通信方法及装置
CN103905309A (zh) * 2012-12-28 2014-07-02 中国电信股份有限公司 虚拟机之间的数据交换方法和系统
US9008097B2 (en) * 2012-12-31 2015-04-14 Mellanox Technologies Ltd. Network interface controller supporting network virtualization
US9112801B2 (en) * 2013-03-15 2015-08-18 International Business Machines Corporation Quantized congestion notification in a virtual networking system
CN104468358B (zh) * 2013-09-25 2018-05-11 新华三技术有限公司 分布式虚拟交换机系统的报文转发方法及设备
CN104601427B (zh) 2013-10-31 2018-03-06 新华三技术有限公司 数据中心网络中的报文转发方法及装置
CN103814554B (zh) * 2013-12-11 2015-12-30 华为技术有限公司 一种虚拟可扩展局域网的通信方法、装置和系统
CN103873374B (zh) * 2014-03-27 2017-08-11 新华三技术有限公司 虚拟化系统中的报文处理方法及装置
EP2966815A4 (en) * 2014-05-29 2016-04-13 Huawei Tech Co Ltd PACKET PROCESSING AND VXLAN GATEWAY
US9515931B2 (en) * 2014-05-30 2016-12-06 International Business Machines Corporation Virtual network data control with network interface card
US9692698B2 (en) * 2014-06-30 2017-06-27 Nicira, Inc. Methods and systems to offload overlay network packet encapsulation to hardware
CN104506408B (zh) * 2014-12-31 2018-02-06 新华三技术有限公司 基于sdn的数据传输的方法及装置
CN105162647A (zh) * 2015-07-31 2015-12-16 上海斐讯数据通信技术有限公司 一种检测adsl语音分离器系统性能的方法及系统
CN105207873B (zh) * 2015-08-31 2019-02-26 华为技术有限公司 一种报文处理方法和装置
CN105162674A (zh) * 2015-10-16 2015-12-16 上海斐讯数据通信技术有限公司 一种物理机访问虚拟网络的方法及网卡
WO2017113306A1 (zh) * 2015-12-31 2017-07-06 华为技术有限公司 可扩展虚拟局域网报文发送方法、计算机设备和可读介质

Also Published As

Publication number Publication date
CN112422393A (zh) 2021-02-26
EP3273643A1 (en) 2018-01-24
CN107113240B (zh) 2020-09-29
ES2926345T3 (es) 2022-10-25
US20180309595A1 (en) 2018-10-25
CN112422393B (zh) 2022-03-25
EP4102780A1 (en) 2022-12-14
US10771286B2 (en) 2020-09-08
CN107113240A (zh) 2017-08-29
EP3273643A4 (en) 2018-02-07
US20220191064A1 (en) 2022-06-16
WO2017113306A1 (zh) 2017-07-06
US11283650B2 (en) 2022-03-22
US20200112457A1 (en) 2020-04-09
EP3633929A1 (en) 2020-04-08
EP3633929B1 (en) 2022-06-08
EP3273643B1 (en) 2019-08-21

Similar Documents

Publication Publication Date Title
ES2750778T3 (es) Método para enviar un paquete de red de área local extensible virtual, dispositivo informático y medio legible por ordenador
US11656900B2 (en) Frameworks and interfaces for offload device-based packet processing
US11095557B2 (en) L3 underlay routing in a cloud environment using hybrid distributed logical router
US10237177B2 (en) Transfer device and transfer system
KR101371993B1 (ko) 가상화 네트워크 인프라구조를 갖는 투명 클라우드 컴퓨팅을 위한 방법 및 장치
US20150358232A1 (en) Packet Forwarding Method and VXLAN Gateway
US7876765B2 (en) Method for supporting IP network interconnectivity between partitions in a virtualized environment
US10367733B2 (en) Identifier-based virtual networking
CN110999265B (zh) 管理云计算服务端点和虚拟机之间的网络连接性
AU2012236513B2 (en) Frameworks and interfaces for offload device-based packet processing
WO2016062169A1 (zh) 一种报文传输方法及装置
EP4109830A1 (en) Packet processing method, device, system, and storage medium
WO2014079005A1 (zh) Mac地址强制转发装置及方法
WO2017113300A1 (zh) 路由确定方法、网络配置方法以及相关装置
US11343190B2 (en) TCAM-based load balancing on a switch
WO2014154124A1 (en) Packet forwarding
US20220345422A1 (en) Adjustable bit mask for high-speed native load balancing on a switch
CN109218258B (zh) 数据包传输方法及网关设备