Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Configuración de EVPN y VXLAN

Contrail admite VPN Ethernet (EVPN) y redes de área local extensible virtual (VXLAN).

EVPN es una solución flexible que usa superposiciones de capa 2 para interconectar varios bordes (máquinas virtuales) dentro de un centro de datos. Tradicionalmente, el centro de datos se construye como una red plana de capa 2 con problemas como inundaciones, limitaciones en la redundancia y el aprovisionamiento, y altos volúmenes de aprendizaje de direcciones MAC, que causan abandono durante las fallas de los nodos. Los EVPN están diseñados para abordar estos problemas sin perturbar la conectividad MAC plana.

En las EVPN, el aprendizaje de direcciones MAC es impulsado por el plano de control, en lugar de por el plano de datos, lo que ayuda a controlar las direcciones MAC aprendidas a través de reenviadores virtuales, evitando así inundaciones. Los reenviadores anuncian direcciones MAC aprendidas localmente a los controladores. Los controladores utilizan MP-BGP para comunicarse con los pares. El emparejamiento de controladores mediante BGP para EVPN da como resultado una convergencia mejor y más rápida.

Con EVPN, el aprendizaje de MAC se limita a las redes virtuales a las que pertenece la máquina virtual, aislando así el tráfico entre varias redes virtuales. De esta manera, las redes virtuales pueden compartir las mismas direcciones MAC sin ningún cruce de tráfico.

Unidifusión en EVPN

El reenvío de unidifusión se basa en direcciones MAC donde el tráfico puede terminar en un punto de conexión local o se encapsula para llegar al punto de conexión remoto. La encapsulación puede ser MPLS/UDP, MPLS/GRE o VXLAN.

Tráfico de BUM en EVPN

El tráfico de multidifusión y difusión se inunda en una red virtual. El plano de control construye el árbol de replicación basándose en los anuncios de los nodos finales (máquinas virtuales) enviados por los reenviadores. Cada red virtual tiene un árbol de distribución, un método que evita mantener estados de multidifusión en los nodos de estructura, de modo que la multidifusión no afecte a los nodos. La replicación tiene lugar en los reenviadores de borde. No se proporciona una suscripción por grupo. El tráfico de difusión, unidifusión desconocida y multidifusión (BUM) se maneja de la misma manera y se inunda en la red virtual a la que pertenece la máquina virtual.

VXLAN

VXLAN es una tecnología de superposición que encapsula tramas MAC en un encabezado UDP en la capa 2. La comunicación se establece entre dos puntos finales de túnel virtual (VTEP). Los VTEP encapsulan el tráfico de la máquina virtual en un encabezado VXLAN y eliminan la encapsulación. Las máquinas virtuales solo pueden comunicarse entre sí cuando pertenecen al mismo segmento de VXLAN. Un identificador de red virtual (VNID) de 24 bits identifica de forma exclusiva el segmento de VXLAN. Esto permite tener las mismas tramas MAC en múltiples segmentos VXLAN sin cruce de tráfico. La multidifusión en VXLAN se implementa como multidifusión de capa 3, en la que los puntos de conexión se suscriben a grupos.

Detalles de diseño de EVPN y VXLAN

En Contrail versión 1.03 y posteriores, EVPN está habilitado de forma predeterminada. Los modos de reenvío admitidos incluyen:

  • Puente de reserva: la búsqueda de tráfico IPv4 se realiza mediante la FIB IP. Todo el tráfico que no es IPv4 se dirige a un FIB de MAC.

  • Solo capa 2: todo el tráfico se reenvía mediante una búsqueda MAC FIB.

Puede configurar el modo de reenvío individualmente en cada red virtual.

EVPN se utiliza para compartir direcciones MAC en diferentes planos de control en ambos modelos de reenvío. El resultado de una búsqueda de dirección MAC es un salto siguiente que, de manera similar al reenvío de IP, apunta a una máquina virtual local o a un túnel para llegar a la máquina virtual en un servidor remoto. Los métodos de encapsulación de túnel admitidos para EVPN son MPLSoGRE, MPLSoUDP y VXLAN. El método de encapsulación seleccionado se basa en una prioridad configurada por el usuario.

En VXLAN, el VNID se asigna de forma exclusiva para cada red virtual que se lleva en el encabezado VXLAN. El VNID identifica de forma exclusiva una red virtual. Cuando se recibe el encabezado VXLAN de la estructura en un servidor remoto, la búsqueda de VNID proporciona el VRF de la máquina virtual. Este VRF se usa para la búsqueda de MAC desde el encabezado interno, que luego proporciona la máquina virtual de destino.

El tráfico de multidifusión no IP utiliza el mismo árbol de multidifusión que para la multidifusión IP (255.255.255.255). La multidifusión se compara con el prefijo de toda la difusión de la tabla puente (FF:FF:FF:FF:FF:FF). VXLAN no es compatible con el tráfico de multidifusión IP/no IP.

En la tabla siguiente se resumen los tipos de tráfico y encapsulación admitidos por EVPN.

 

Encapsulación

MPLS-GRE

MPLS-UDP

VXLAN

Tipo de tráfico

unidifusión IP

No

IP-BUM

No

unidifusión no IP

sin IP-BUM

No

Configuración del modo de identificador de VXLAN

Puede configurar el modo de identificador de VXLAN global para seleccionar un VNID generado automáticamente o un ID de VXLAN generado por el usuario, ya sea a través de la interfaz de usuario de Contrail Web o modificando un archivo de Python.

Para configurar el modo de identificador de VXLAN global:

  1. En la interfaz de usuario de Contrail Web, seleccione Configurar > infraestructura > configuración global.

    Las opciones y valores de Configuración global se muestran en la ventana Configuración global.

    Figura 1: Ventana de configuración global para ID de Global Config Window for VXLAN ID VXLAN
  2. Haga clic en el icono de edición .

    La ventana Editar configuración global se muestra como se muestra en la figura 2.

    Figura 2: Editar ventana de configuración global para el modo de identificador VXLAN Edit Global Config Window for VXLAN Identifier Mode
  3. Seleccione una de las siguientes opciones:
    • Configuración automática: el identificador de VXLAN se asigna automáticamente para la red virtual.

    • Usuario configurado: debe proporcionar el identificador VXLAN para la red virtual.

    Nota:

    Cuando se selecciona Usuario configurado , si no proporciona un identificador, no se utiliza la encapsulación VXLAN y el modo vuelve a MPLS.

Como alternativa, puede establecer el modo de identificador VXLAN mediante Python para modificar el /opt/contrail/utils/encap.py archivo de la siguiente manera:

python encap.py <add | update | delete > <username > < password > < tenant_name > < config_node_ip >

Configuración del reenvío

En Contrail, el modo de reenvío predeterminado está habilitado para el puente de reserva (IP FIB y MAC FIB). El modo se puede cambiar, ya sea a través de la interfaz de usuario de Contrail Web o mediante el uso de comandos de aprovisionamiento de Python.

Para cambiar el modo de reenvío:

  1. En la interfaz de usuario web de Contrail, seleccione Configurar redes > redes >.
  2. Seleccione la red virtual para la que desea cambiar el modo de reenvío.
  3. Haga clic en el icono de engranaje y seleccione Editar.

    La ventana Editar red se muestra como se muestra en la figura 3.

    Figura 3: Ventana Editar red Edit Network Window

    En Opciones avanzadas, seleccione el modo de reenvío entre las siguientes opciones:

    • Seleccione Predeterminado para habilitar el modo de reenvío predeterminado.

    • Seleccione L2 y L3 para habilitar IP y MAC FIB (puente de reserva).

    • Seleccione Sólo L2 para activar sólo MAC FIB.

    • Seleccione Solo L3 para habilitar solo IP.

Nota:

La lista completa de modos de reenvío solo se muestra si cambia las entradas en el archivo / usr/src/contrail/contrail-web-core/config/config.global.js. Por ejemplo:

  1. Para que la selección L2 esté disponible, busque lo siguiente:

  2. Cambie la entrada a lo siguiente:

  3. Para que las demás selecciones estén disponibles, modifique las entradas correspondientes.

  4. Guarde el archivo y salga del editor.

  5. Reinicie el proceso de interfaz de usuario (webui) de Contrail Web.

Como alternativa, puede utilizar el siguiente comando de aprovisionamiento de Python para cambiar el modo de reenvío:

python provisioning_forwarding_mode --project_fq_name 'defaultdomain: admin' --vn_name vn1 --forwarding_mode < l2_l3| l2 >

Opciones:

l2_l3 = Habilitar IP FIB y MAC FIB (puente de reserva)

l2 = Habilitar solo FIB de MAC (solo capa 2)

Configuración del identificador de VXLAN

El identificador VXLAN solo se puede establecer si el modo de identificador de red VXLAN se ha establecido en Usuario configurado. A continuación, puede establecer el ID de VXLAN mediante la interfaz de usuario web de Contrail o mediante comandos de Python.

Para configurar el identificador global de VXLAN:

  1. En la interfaz de usuario web de Contrail, seleccione Configurar redes > redes >.
  2. Seleccione la red virtual para la que desea cambiar el modo de reenvío.
  3. Haga clic en el icono de engranaje y seleccione Editar.

    Aparecerá la ventana Editar red. Seleccione las Opciones avanzadas como se muestra en la Figura 4.

    Figura 4: Ventana de edición de red para el identificador Edit Network Window for VXLAN Identifier VXLAN
  4. Escriba el identificador VXLAN.
  5. Haga clic en Guardar.

Como alternativa, puede utilizar el siguiente comando de aprovisionamiento de Python para configurar el identificador de VXLAN:

python provisioning_forwarding_mode --project_fq_name 'defaultdomain: admin' --vn_name vn1 --forwarding_mode < vxlan_id >

Configuración de métodos de encapsulación

El modo de encapsulación predeterminado para EVPN es MPLS sobre UDP. Todos los paquetes de la estructura se encapsulan con la etiqueta asignada para la interfaz de máquina virtual. La codificación y decodificación de etiquetas es la misma que para el reenvío de IP. Los métodos de encapsulación adicionales admitidos para EVPN incluyen MPLS sobre GRE y VXLAN. MPLS sobre UDP es diferente de MPLS sobre GRE solo en el método de encapsulación de encabezado de túnel.

VXLAN tiene su propio encabezado y utiliza una etiqueta VNID para transportar el tráfico a través de la estructura. Se asigna un VNID con cada red virtual y es compartido por todas las máquinas virtuales de la red virtual. El VNID se asigna al VRF de la red virtual a la que pertenece.

El orden de prioridad en el que se aplican los métodos de encapsulación viene determinado por la secuencia de métodos establecida desde la interfaz de usuario de Contrail Web o en el archivo encap.py .

Para configurar el modo de identificador de VXLAN global:

  • En la interfaz de usuario de Contrail Web, seleccione Configurar > infraestructura > configuración global.

  • Se muestran las opciones de configuración global.

  • Haga clic en el icono de edición .

La ventana Editar configuración global se muestra como se muestra en la figura 5.

Figura 5: Editar ventana de configuración global para el orden Edit Global Config Window for Encapsulation Priority Order de prioridad de encapsulación

En Orden de prioridad de encapsulación, seleccione una de las siguientes opciones:

  • MPLS sobre UDP

  • MPLS sobre GRE

  • VxLAN

Haga clic en el símbolo + más a la derecha de la primera prioridad para agregar una segunda prioridad o tercera prioridad.

Use el siguiente procedimiento para cambiar el método de encapsulación predeterminado a VXLAN editando el archivo encap.py .

Nota:

VXLAN solo es compatible con la unidifusión EVPN. No es compatible con el tráfico IP ni con el tráfico de multidifusión. La prioridad y la presencia de VXLAN en el archivo encap.py o configurado en la interfaz de usuario web se omiten para el tráfico no admitido por VXLAN.

Para establecer la prioridad de los métodos de encapsulación en VXLAN:

  1. Modifique el archivo encap.py que se encuentra en el directorio / opt/contrail/utils/.

    La línea de encapsulación predeterminada es:

    encap_obj=EncapsulationPrioritiesType(encapsulation=['MPLSoUDP','M PLSoGRE'])

    Modifique la línea a:

    encap_obj=EncapsulationPrioritiesType(encapsulation=['VXLAN', 'MPLSoUDP','MPLSoGRE'])

  2. Después de modificar el estado, ejecute el siguiente script:

    python encap_set.py <add|update|delete> <username> <password> <tenant_name> <config_node_ip>

    La configuración se aplica globalmente para todas las redes virtuales.