O Ethernet Virtual Private Network (EVPN) é uma tecnologia
VPN de Camada 2 VPN que fornece conectividade entre dispositivos tanto em
Camada 2 como para Camada 3 através de uma rede IP. A tecnologia EVPN utiliza o
MP-BGP como plano de controle (control plane) e o VXLAN como plano de
dados/encaminhamento (data plane) de um switch/roteador. A tecnologia é
geralmente utilizada em data centers em ambiente multitenant ( com
múltiplos clientes e serviços) com grande tráfego leste-oeste.
A configuração do EVPN permite ao MP-BGP automatizar a
descoberta de VTEPs, assim como o estabelecimento de tuneis VXLAN de forma
dinâmica, a utilização de IRB (Integrated Routing and Bridging) anuncia
tanto as informações de Camada 2 e 3
para acesso ao host, fornecendo a utilização do melhor caminho através do ECMP
e minimizando flood do trafego multidestination (BUM: broadcast,unicast
unknown e multicast) .
Em resumo o EVPN possui um address Family que permite
que as informações de MAC, IP, VRF e VTEP sejam transportadas sobre o MP-BGP, que
assim permitem aos VTEPs aprender informações sobre os hosts (via ARP/ND/DHCP
etc.).
O BGP EVPN distribui e fornece essa informação para todos os
outros pares BGP-EVPN dentro da rede.
Relembrando o VXLAN
O VXLAN prove uma rede de camada 2 sobreposta (overlay) em
uma rede de camada 3 (underlay). Cada rede sobreposta é chamada de segmento
VXLAN e é identificada por um ID único de 24 bits chamado VNI – VXLAN
Network Identifier ou VXLAN ID.
A identificação de um host vem da combinação do endereço MAC
e o VNI. Os hosts situados em VXLANs
diferentes não podem comunicar entre si (sem a utilização de um roteador). O
pacote original enviado por um host na camada 2 é encapsulado em um cabeçalho
VXLAN que inclui o VNI associado ao segmento VXLAN que aquele host pertence.
Os equipamentos que transportam os tuneis VXLAN são chamados
de VTEP (VXLAN tunnel endpoints).
Quando um VXLAN VTEP ou tunnel endpoint comunica-se
com outros VXLAN VTEP, um túnel VXLAN é estabelecido. Um túnel é meramente um
mecanismo de transporte através de uma rede IP.
Todo o processamento VXLAN é executado nos VTEPs. O VTEP de
entrada encapsula o tráfego com cabeçalho VXLAN, mais um cabeçalho UDP externo ,
mais um cabeçalhos IP externo, e então encaminha o tráfego por meio de túneis
VXLAN. O VTEP do destino remove o encapsulamento VXLAN e encaminha o tráfego
para o destino.
Os dispositivos da rede IP de transporte encaminham o
tráfego VXLAN apenas com base no cabeçalho IP externo dos pacotes VXLAN (eles
não precisam ter suporte à tecnologia VXLAN).
Um outro ponto importante é que a tecnologia VXLAN supera as
limitações de apenas 4 mil domínios de broadcast fornecido por VLANs para até
16 milhões de domínios de broadcast com VNIs. Já para as limitações do Spanning-Tree
que coloca os caminhos redundantes em estado de bloqueio, a tecnologia VXLAN
permite a construção de todos os uplinks como parte de um backbone IP
(rede underlay), utilizando protocolos de roteamento dinâmico para
escolha do melhor caminho ao destino, assim fazendo uso do ECMP (Equal Cost
Multipath) em uma topologia Spine-Leaf, por exemplo.
BGP EVPN
O BGP EVPN difere do comportamento “Flood and Learn”
executado por tuneis VXLANs em diversas maneiras. Enquanto o tráfego multidestination
(BUM: broadcast,unicast unknown e multicast) encaminhado pelo
VXLAN sem o BGP EVPN necessita de utilizar grupos multicast, o EVPN permite a
replicação da identificação dos dispositivos finais com o MP-BGP , assim como
as informações do VTEP que ele está associado. As comunicações ARP para IPv4
também pode ser suprimida, aprimorando assim a eficiência do transporte dos
dados.
LAB
No laboratório abaixo utilizamos os roteadores HP VSR no release
R0621P18-X64, no EVE-NG.
Ambos os Spines estão configurados como VTEP e encaminharão
o tráfego do VXLAN VNI 10. A instancia criada para esse cliente, chamamos de ‘clientea’.
O Spine está configurado como BGP Router Reflector
fechando peerring com ambos Leafs. Nenhum Leaf fecha peering
BGP entre si, somente como Spine.
Esses dias navegando na web, encontrei um lab sobre VXLAN no blog http://www.nullzero.co.uk/lab-on-a-laptop/ utilizando o Roteador Virtual HP VSR 1000 na versão E0321. O post simula um cenário Spine/Leaf com a configuração manual de túneis VXLAN. Acredito que o mesmo cenário possa ser replicado em Switches físicos da HP que possuam foco em Datacenter.
O padrão VXLAN (Virtual eXtensible Local Area Network) trabalha em cima da limitação da quantidade de VLANs em um Data Center que é a de 4K VLANs. O Protocolo VXLAN emprega MAC sobre IP/UDP, e permite assim aumentar o número de domínios de Broadcast para 16 milhões.
O VXLAN prove uma rede de camada 2 sobreposta em uma rede de camada 3. Cada rede sobreposta é chamada de segmento VXLAN e é identificada por um ID único de 24 bits chamado VNI – VXLAN Network Identifier ou VXLAN ID. A identificação de um host é uma combinação do endereço MAC e o VNI. Os hosts situados em VXLAN diferentes não podem comunicar entre si (sem a utilização de um roteador). O pacote original enviado por um host na camada 2 é encapsulado em um cabeçalho VXLAN que inclui o VNI associado ao segmento VXLAN que aquele host pertence.
Os equipamentos que transportam os tuneis VXLAN são chamados de VTEP (VXLAN tunnel endpoints).
Parte teórica da configuração no Comware
Os equipamentos HP com suporte ao VTEP utilizam VSIs e VXLAN tunnels para prover os serviços VXLAN.
O VSI é uma instancia virtual de comutação (virtual switching instance) que serve para criar o encaminhamento de quadros, utilizando diversos protocolos, incluindo o VXLAN. Os VSIs aprendem endereços MAC e encaminham quadros de forma independente sobre uma infraestrutura L3 emulando um cenário de switches diretamente conectados, mesmo que separadas por um backbone IP.
Um VXLAN tunnel é um túnel lógico, ponto-a-ponto entre VTEPs sobre a rede de transporte, rede IP por exemplo. Cada VXLAN tunnel pode encaminhar multiplos VXLANs, assim como uma interface trunk que transporta multiplas VLANs.
Configuração
Em nosso cenário os equipamentos estão conectados conforme topologia spine/leaf utilizando interfaces no modo route com IPv4 e OSPF como IGP para anuncio das interfaces, incluindo interfaces loopback. Toda a configuração para criação do Tunnel e atribuição da VXLAN será efetuada nos equipamentos Leaf.
A configuração das interfaces de trânsito, loopback e OSPF foram omitidas na configuração abaixo.
Segue abaixo a configuração do VXLAN tunnel e o VXLAN Id 10000:
Configuração do LEAF 3
#
interface Tunnel1 mode vxlan
source 10.1.1.3
destination 10.1.1.4
! Criando a interface Tunnel 1 no modo VXLAN
#
l2vpn enable
! Ativando o serviço L2VPN
#
vsi cliente_a
vxlan 10000
tunnel 1
! Criando a instancia VSI Cliente A, com o VXLAN ID 10000 atribuído ao tunnel1
#
interface GigabitEthernet4/0
port link-mode route
description host-A
xconnect vsi cliente_a
! Atribuindo o VSI a interface 4/0 conectada a máquina host-A
#
#
Configuração do LEAF 4
#
interface Tunnel1 mode vxlan
source 10.1.1.4
destination 10.1.1.3
#
l2vpn enable
#
vsi cliente_a
vxlan 10000
tunnel 1
#
interface GigabitEthernet4/0
port link-mode route
description host-B
xconnect vsi cliente_a
Validando a configuração
[VSR LEAF 3]display vxlan tunnel
Total number of VXLANs: 1
VXLAN ID: 10000, VSI name: cliente_a, Total tunnels: 1 (1 up, 0 down)
Tunnel name Link ID State Type
Tunnel1 0x5000001 Up Manual
[VSR LEAF 3]display l2vpn mac-address vsi cliente_a
MAC Address State VSI Name Link ID/Name Aging
000c-290b-dcc5 Dynamic cliente_a Tunnel1 Aging
000c-29c5-5e8a Dynamic cliente_a 0 Aging
--- 2 mac address(es) found ---