EVPN tipo 2 vs tipo 5: por que um endereço IP significa duas rotas
Uma rota de tipo 2 é indexada por um MAC mais um IP opcional; uma rota de tipo 5 é indexada por um prefixo. Leia a chave, não a máscara, antes de chamar uma rota de tamanho de host.
Duas rotas na mesma caixa podem apontar para 198.51.100.77 e ainda assim responder a perguntas diferentes. Uma descreve onde um endereço MAC é alcançável e, opcionalmente, qual IP está ligado a ele. A outra descreve um prefixo que se resolve por um próximo salto, mesmo quando esse prefixo é um único host. Confundi-las produz um ticket que parece um bug de roteamento, mas na verdade é um tipo de rota lido errado.
A forma mais rápida de distingui-las é ler a chave em torno da qual o NLRI é construído, não a máscara no final.
A chave da rota diz o que a rota afirma
O tipo 2 é a rota de anúncio MAC/IP do RFC 7432, e sua chave é o endereço MAC de 48 bits dentro do NLRI. Atrás dessa chave está um campo de endereço IP cujo campo de comprimento pode ser 0, 32 ou 128 bits, então um anúncio apenas de MAC é uma rota completa e não uma entrada de host com partes faltando. A pilha de rótulos que segue aponta para o contexto de ponte onde esse MAC vive.
Se o campo IP está preenchido muda o que a rota declara, não que tipo de rota é. Com comprimento de 32 ou 128 bits, o emissor também afirma que esse IP pertence a esse MAC dentro de uma instância EVPN. Com comprimento zero, o emissor não faz nenhuma afirmação sobre IP. Nenhuma das versões diz que um prefixo é alcançável por um roteador.
O tipo 5 é a rota de prefixo IP do RFC 9136, e sua chave é um prefixo escrito como um comprimento mais essa quantidade de bits. O comprimento vai de 0 a 32 para IPv4 e de 0 a 128 para IPv6.
As duas extremidades dessa faixa são legais, e nenhuma implica um MAC. Um prefixo de comprimento zero afirma alcançabilidade sem nomear um host, enquanto um /32 nomeia exatamente um endereço. O NLRI também carrega um endereço IP de gateway que o lado de saída usa para construir o índice overlay, mais um rótulo para o contexto de encaminhamento. Não há campo MAC sobre o qual comutar, por isso um receptor trata o tipo 5 como um destino roteado.
Uma rota de prefixo /32 não é um tipo 2 renomeado
Prefixos do tamanho de host são rotas de tipo 5 comuns. Uma rota de prefixo /32 e um tipo 2 para o mesmo endereço podem coexistir numa instância EVPN, e carregam informações de encaminhamento diferentes.
Tome 198.51.100.77 numa instância EVPN que usa VNI 10100. Um tipo 2 pode emparelhá-lo com o MAC 02:00:00:00:00:77 e um rótulo que identifica o domínio de ponte onde esse MAC foi aprendido. Um tipo 5 pode anunciar 198.51.100.0/24 para toda a sub-rede, ou 198.51.100.77/32 apenas para esse endereço, com um endereço de gateway apontando para o VTEP de saída. Os endereços se sobrepõem de propósito porque as rotas respondem a perguntas diferentes.
Uma rota diz que existe uma ligação de extremidade e que é alcançável por uma ponte específica. A outra diz que um prefixo é alcançável por um roteador específico, tenha sido aprendido ou não alguma extremidade dentro dele.
Essa diferença decide onde olhar primeiro quando o tráfego falha. Se um único host está inalcançável enquanto a rota da sua sub-rede parece correta, o tipo 5 nunca deveria carregar esse host; procure o tipo 2 que falta. Se a rota do host existe mas toda a sub-rede está inalcançável, verifique se o tipo 5 foi originado. Ler os campos em ordem é melhor do que adivinhar pelo comprimento da máscara.
Ler as duas rotas sem adivinhar
No NX-OS, show bgp l2vpn evpn route type 2 e show bgp l2vpn evpn route type 5 dividem a tabela exatamente por essa linha, e show l2route evpn mac ip mostra as ligações locais de MAC para IP atrás das rotas de tipo 2. No Junos, show evpn database lista as ligações de MAC e IP aprendidas enquanto show route table bgp.evpn.0 mostra o que foi anunciado e recebido.
Filtre por route distinguisher e rótulo Ethernet antes de tirar conclusões. O mesmo MAC ou prefixo pode aparecer em várias instâncias EVPN, e uma rota que parece errada numa instância pode estar correta noutra.
Depois leia o NLRI na ordem: tipo de rota, chave, campos de gateway ou rótulo, e então os route targets nos atributos. Um tipo 2 que carrega um ESI diferente de zero diz que o MAC é multi-homed, e é esse valor que liga os anúncios de roteadores PE diferentes. Um tipo 5 que carrega um endereço de gateway diz qual VTEP de saída deve receber o tráfego.
Se falta uma rota, verifique a origem antes da codificação. Confirme que a fonte tem a ligação ou o prefixo localmente, e depois confirme que o route target associado é importado nesta caixa. A maioria dos relatos de um tipo 5 quebrado termina numa política de importação, não no formato do NLRI.
Registe o contexto, não apenas o tipo de rota
Registe em conjunto o tipo de rota, a instância EVPN, o route distinguisher, os route targets importados e exportados e o próximo salto resolvido. Um tipo 2 sem a sua instância é ambíguo, e um próximo salto sem a família de rotas convida a uma conclusão errada.
Ambas são rotas EVPN mesmo quando a carga útil é um endereço IPv4. A família de endereços dentro do NLRI e a família de endereços da própria rota são propriedades separadas, e um tipo 5 não se torna uma rota IPv4-unicast ou VPN-IPv4 só porque carrega um prefixo IPv4.
Essa distinção aparece na fronteira entre um plano de controlo EVPN e um IP-VRF. O route target decide qual VRF importa o prefixo, enquanto o endereço de gateway e o rótulo decidem como o pacote é encapsulado em direção à saída. Leia tudo junto e a decisão de encaminhamento deixa de parecer arbitrária.
Da próxima vez que um /32 aparecer na tabela EVPN, verifique a chave antes da máscara. Uma chave MAC com um IP opcional é uma ligação de tipo 2; uma chave de prefixo é uma rota de tipo 5 qualquer que seja o seu comprimento. Escreva o route target e o próximo salto ao lado, e o próximo engenheiro não terá de deduzir toda a história outra vez.