# 4.6.- SDN EVPN.

### ¿Qué es una EVPN?

En primer lugar, debemos aclarar que **VXLAN-BGP-EVPN** se refiere a una práctica de comunicación VXLAN basada en BGP EVPN. VXLAN-BGP-EVPN puede descubrir y establecer túneles automáticamente, lo que permite una migración ilimitada y sin problemas de las máquinas virtuales en el centro de datos sin que el usuario lo perciba.

**BGP** (Border Gateway Protocol) es el principal protocolo que soporta Internet y se utiliza para sincronizar la información de enrutamiento entre los routers.

**EVPN** es una extensión de BGP, que proporciona principalmente el reenvío de rutas múltiples a través del modelo de conexión múltiple (multi-homing). Su redundancia permite que un dispositivo se conecte a dos o más dispositivos ascendentes y utilice todos los enlaces para el reenvío de tráfico.

**Ethernet VPN** (EVPN) se basa en un modelo de VPN clásico que utiliza las extensiones de BGP MP. El concepto de una instancia VRF (enrutamiento virtual y reenvío) se hereda del mundo L3VPN/L2VPN en EVPN.

**EVPN-VXLAN** permite a las empresas conectar ubicaciones geográficamente dispersas mediante la creación de puentes virtuales de capa 2. EVPN-VXLAN proporciona la escala requerida por los proveedores de servicios de nube y, a menudo, también es la tecnología preferida para las interconexiones de centros de datos.

En el marco **VXLAN** inicial (definido en RFC 7348), no hay un plano de control, los túneles VXLAN se configuran manualmente y el descubrimiento de VTEP y el **aprendizaje de la información del host se realizan mediante inundación de tráfico en el plano de datos**. La información del host incluye direcciones IP, direcciones MAC, VNI y direcciones IP VTEP de puerta de enlace. Este marco es fácil de implementar, pero **genera una gran cantidad de tráfico en la red** y complica la expansión de la red. Para resolver los problemas anteriores, **VXLAN introduce EVPN como su plano de control**. Específicamente, después de implementar EVPN, **VXLAN usa rutas EVPN para transmitir direcciones VTEP e información del host**, moviendo el descubrimiento de VTEP y el aprendizaje de información del host desde el plano de datos al plano de control.

**EVPN** puede anunciar tanto información de dirección MAC de Capa 2 como información de ruta IP de Capa 3.

Cuando se utiliza EVPN para establecer dinámicamente un túnel VXLAN, dos VTEP establecen una relación de pares BGP EVPN e intercambian rutas de tipo 3 para transmitir información de direcciones IP VNI y VTEP para el establecimiento del túnel VXLAN.

<div class="iDevice emphasis0" id="bkmrk-" ondblclick="submitLink('edit',127, 0);"><div class="block iDevice_content"></div></div>[![Esquema de una EVPN](https://doc-proxmox.datosporlasnubes.com/uploads/images/gallery/2024-05/scaled-1680-/jqtimage.png)](https://doc-proxmox.datosporlasnubes.com/uploads/images/gallery/2024-05/jqtimage.png)

<sup><span class="author">Imagen de elaboración propia</span>. <span class="title">*Esquema de una EVPN*</span> <span class="license"><span class="sep">(</span>[CC BY-NC-SA](http://creativecommons.org/licenses/?lang=es "Creative Commons BY-NC-SA")<span class="sep">)</span></span></sup>

<div class="iDevice emphasis0" id="bkmrk--2" ondblclick="submitLink('edit',127, 0);"><div class="block iDevice_content" id="bkmrk--3"></div></div>###  

### Implementación de una Zona SDN del tipo EVPN entre dos nodos Proxmox

El requisito previo es tener instalado en los nodos Proxmox el paquete para enrutamiento **FRRouting**, que utiliza el protocolo BGP:

```bash
apt install frr-pythontools
```

El ejemplo supone un dos nodos Proxmox (vm-proxmox-c01 y vm-proxmox-c02 pero podrían ser más nodos) con direcciones IP 192.168.30.221, 192.168.30.119.

Crea un controlador EVPN utilizando un número ASN privado y las direcciones de nodo anteriores como pares.

[![image.png](https://doc-proxmox.datosporlasnubes.com/uploads/images/gallery/2024-05/scaled-1680-/Q4fimage.png)](https://doc-proxmox.datosporlasnubes.com/uploads/images/gallery/2024-05/Q4fimage.png)

<sup><span class="author">Imagen de elaboración propia</span>. <span class="title">*Creación de un controlador del tipo EVPN*</span> <span class="license"><span class="sep">(</span>[CC BY-NC-SA](http://creativecommons.org/licenses/?lang=es "Creative Commons BY-NC-SA")<span class="sep">)</span></span></sup>

Crea una zona EVPN llamada CntrEVPN , asigne el controlador EVPN creado previamente con etiqueta VRF-VxLAN 10000

[![Creación de una Zona SDN del tipo EVPN](https://doc-proxmox.datosporlasnubes.com/uploads/images/gallery/2024-05/scaled-1680-/seZimage.png)](https://doc-proxmox.datosporlasnubes.com/uploads/images/gallery/2024-05/seZimage.png)

<sup><span class="author">Imagen de elaboración propia</span>. <span class="title">*Creación de una Zona SDN del tipo EVPN*</span> <span class="license"><span class="sep">(</span>[CC BY-NC-SA](http://creativecommons.org/licenses/?lang=es "Creative Commons BY-NC-SA")<span class="sep">)</span></span></sup>

Crea la primera VNet denominada sEVPN1 utilizando la zona EVPN ZonaEVPN con etiqueta 11000:

[![Crear la VNet llamada "sEVPN1"](https://doc-proxmox.datosporlasnubes.com/uploads/images/gallery/2024-05/scaled-1680-/4qrimage.png)](https://doc-proxmox.datosporlasnubes.com/uploads/images/gallery/2024-05/4qrimage.png)

<div class="block iDevice_content align-center" id="bkmrk-imagen-de-elaboraci%C3%B3-3"><sup><span class="author">Imagen de elaboración propia</span>. <span class="title">*Crear la VNet llamada "sEVPN1"*</span> <span class="license"><span class="sep">(</span>[CC BY-NC-SA](http://creativecommons.org/licenses/?lang=es "Creative Commons BY-NC-SA")<span class="sep">)</span></span></sup></div>Crea una subred en sEVPN1 10.0.1.0/24 y puerta de enlace 10.0.1.1 :

[![Creación de la subnet 10.0.1.0/24](https://doc-proxmox.datosporlasnubes.com/uploads/images/gallery/2024-05/scaled-1680-/Ol4image.png)](https://doc-proxmox.datosporlasnubes.com/uploads/images/gallery/2024-05/Ol4image.png)

<div class="block iDevice_content align-center" id="bkmrk-imagen-de-elaboraci%C3%B3-4"><sup><span class="author">Imagen de elaboración propia</span>. <span class="title">*Creación de la subnet 10.0.1.0/24*</span> <span class="license"><span class="sep">(</span>[CC BY-NC-SA](http://creativecommons.org/licenses/?lang=es "Creative Commons BY-NC-SA")<span class="sep">)</span></span></sup></div>Aplica la configuración desde SDN y repetir el proceso en el otro nodo Proxmox.

<p class="callout danger">**¡ATENCIÓN! si no habilitamos en la Subnet SNAT, como es el caso anterior, las MV y contenedores no tendrán acceso al exterior de la VNet, es decir, no tendrán acceso a Internet.**</p>

Recordar que las MV o contenedores asociados a "sEVPN" deben tener un MTU de 1450 máximo y una IP estática (nodo c01 CT10.0.1.100 y nodo del c02 CT10.0.1.2) con puerta de enlace 10.0.1.1:

[![Configuración de red del CT4001 con IP estática 10.0.1.100/24 y puerta de enlace 10.0.1.1](https://doc-proxmox.datosporlasnubes.com/uploads/images/gallery/2024-05/scaled-1680-/hNqimage.png)](https://doc-proxmox.datosporlasnubes.com/uploads/images/gallery/2024-05/hNqimage.png)

<sup><span class="author">Imagen de elaboración propia</span>. <span class="title">*Configuración de red del CT4001 con IP estática 10.0.1.100/24 y puerta de enlace 10.0.1.1*</span> <span class="license"><span class="sep">(</span>[CC BY-NC-SA](http://creativecommons.org/licenses/?lang=es "Creative Commons BY-NC-SA")<span class="sep">)</span></span></sup>

[![Los dos contenedores, de diferentes nodos Proxmox, conectados y haciendo ping por EVPN](https://doc-proxmox.datosporlasnubes.com/uploads/images/gallery/2024-05/scaled-1680-/KKzimage.png)](https://doc-proxmox.datosporlasnubes.com/uploads/images/gallery/2024-05/KKzimage.png)

<div class="block iDevice_content align-center" id="bkmrk-imagen-de-elaboraci%C3%B3-6"><sup><span class="author">Imagen de elaboración propia</span>. <span class="title">*Los dos contenedores, de diferentes nodos Proxmox, conectados y haciendo ping por EVPN*</span> <span class="license"><span class="sep">(</span>[CC BY-NC-SA](http://creativecommons.org/licenses/?lang=es "Creative Commons BY-NC-SA")<span class="sep">)</span></span></sup></div><div class="iDevice emphasis0" id="bkmrk--10" ondblclick="submitLink('edit',130, 0);"><div class="block iDevice_content" id="bkmrk--11"></div></div>