Introdução
Este documento descreve como verificar a regravação do Nexus MAC em switches baseados em Tahoe.
Pré-requisitos
Requisitos
A Cisco recomenda que você tenha conhecimento destes tópicos:
- Plataforma NXOS
- Roteamento
- ELAM
Componentes Utilizados
Nome |
Plataforma |
Versão |
N9K1 |
N9K-C93108TC-EX |
9.3(10) |
N9K2 |
N9K-C93108TC-EX |
9.3(10) |
N9K3 |
N9K-C93108TC-EX |
9.3(10) |
As informações neste documento foram criadas a partir de dispositivos em um ambiente de laboratório específico. Todos os dispositivos utilizados neste documento foram iniciados com uma configuração (padrão) inicial. Se a rede estiver ativa, certifique-se de que você entenda o impacto potencial de qualquer comando.
Topologia

Background
No processo de roteamento IP, à medida que os pacotes atravessam a rede da origem para o destino, os endereços mac origem e destino são atualizados a cada salto, enquanto os endereços IP origem e destino permanecem inalterados. Quando um pacote chega a um roteador, o roteador examina o endereço IP de destino para determinar o próximo salto no caminho para seu destino final. Em seguida, o roteador encaminha o pacote para o próximo salto, trocando o endereço mac de destino pelo endereço mac da interface de próximos saltos e atualizando o endereço mac de origem para seu próprio endereço mac de interfaces de saída.
Essa permuta garante que o pacote possa ser entregue corretamente ao próximo roteador ou ao destino final na rede local. Enquanto isso, os endereços IP origem e destino permanecem constantes durante toda a jornada, pois são usados para manter o caminho fim-a-fim e garantir que o pacote atinja o destino correto através de vários segmentos de rede potenciais.
Verificar Regravação de MAC
Para verificar se a regravação de mac é feita corretamente nos switches baseados em Tahoe do Nexus 9K, dois componentes precisam ser verificados, o endereço mac do próximo salto e a decisão de encaminhamento do Nexus.
Para este exemplo, o Nexus está recebendo o pacote com os macs de origem e destino mostrados, esses macs devem ser reescritos para chegar ao destino:
N9K2# debug platform internal tah elam
N9K2(TAH-elam)# trigger init
Slot 1: param values: start asic 0, start slice 0, lu-a2d 1, in-select 6, out-select 0
N9K2(TAH-elam-insel6)# set outer ipv4 dst_ip 172.16.1.2
N9K2(TAH-elam-insel6)# start
N9K2(TAH-elam-insel6)# report
SUGARBOWL ELAM REPORT SUMMARY
slot - 1, asic - 0, slice - 0
============================
Incoming Interface: Eth1/1
Src Idx : 0x1, Src BD : 4100
Outgoing Interface Info: dmod 1, dpid 17
Dst Idx : 0x5, Dst BD : 4101
Packet Type: IPv4
Dst mac address: 70:0F:6A:95:1C:F9
Src mac address: 70:0F:6A:5E:6A:3F
Dst IPv4 address: 172.16.1.2
Src IPv4 address: 172.16.1.1
Ver = 4, DSCP = 0, Don't Fragment = 0
Proto = 1, TTL = 255, More Fragments = 0
Hdr len = 20, Pkt len = 84, Checksum = 0x9ebb
L4 Protocol : 1
ICMP type : 8
ICMP code : 0
Verificar o MAC do próximo salto
Neste documento, para verificar o endereço MAC do próximo salto , as tabelas de roteamento e ARP podem ser verificadas.
Para este exemplo, em N9K2 será examinado como ele regrava o endereço mac para o destino 172.16.1.2.
Verificar tabela de roteamento
N9K2# show ip route 172.16.1.2
<Snipped>
172.16.1.2/32, ubest/mbest: 1/0
*via 192.168.1.2, [1/0], 00:09:30, static
A rota para o próximo salto precisa ser verificada até que uma interface física seja encontrada como interface de saída.
N9K2# show ip route 192.168.1.2
<Snipped>
192.168.1.2/32, ubest/mbest: 1/0, attached
*via 192.168.1.2, Eth1/2, [250/0], 00:12:23, am
Depois que uma rota anexada é observada e aprendida pelo Adjacency Manager (am), você pode continuar verificando a entrada ARP para o próximo salto
N9K2# show ip arp 192.168.1.2
<Snipped>
IP ARP Table
Total number of entries: 1
Address Age mac Address Interface Flags
192.168.1.2 00:14:56 700f.6a5e.6d5b Ethernet1/2
700f.6a5e.6d5b é o mac que o Nexus deve usar como Destination mac para a reescrita de roteamento.
Verificar a decisão de encaminhamento do Nexus (regravação de MAC)
Para verificar a decisão de encaminhamento do Nexus, é necessário realizar uma captura de ELAM. Especificamente, o relatório detalhado é usado na seção RW.
N9K2# debug platform internal tah elam
N9K2(TAH-elam)# trigger init
Slot 1: param values: start asic 0, start slice 0, lu-a2d 1, in-select 6, out-select 0
N9K2(TAH-elam-insel6)# set outer ipv4 dst_ip 172.16.1.2
N9K2(TAH-elam-insel6)# start
Um ping em direção ao destino precisa ser executado
N9K1# ping 172.16.1.2 source 172.16.1.1
PING 172.16.1.2 (172.16.1.2) from 172.16.1.1: 56 data bytes
64 bytes from 172.16.1.2: icmp_seq=0 ttl=253 time=0.906 ms
64 bytes from 172.16.1.2: icmp_seq=1 ttl=253 time=0.599 ms
64 bytes from 172.16.1.2: icmp_seq=2 ttl=253 time=0.589 ms
64 bytes from 172.16.1.2: icmp_seq=3 ttl=253 time=0.556 ms
64 bytes from 172.16.1.2: icmp_seq=4 ttl=253 time=0.55 ms
--- 172.16.1.2 ping statistics ---
5 packets transmitted, 5 packets received, 0.00% packet loss
round-trip min/avg/max = 0.55/0.64/0.906 ms
Uma vez que o pacote atingiu N9K2, o Nexus deve fazer uma consulta (lu) na tabela de adjacências Tah L3 para reunir o mac de destino, o Nexus deve colocar esse mac na reescrita (rw).
N9K2(TAH-elam-insel6)# report detail | i i lurw_vec.dst_addr
GBL_C++: [MSG] sug_lurw_vec.dst_addr: 0x700F6A5E6D5B
O Nexus está determinando o uso do mac 700F6A5E6D5B como o endereço mac de destino para a reescrita do pacote, com essas informações, pode-se confirmar que o Nexus está executando a reescrita correta, pois corresponde ao endereço mac de destino tomado de saídas anteriores (70:0f:6a:5e:6d:5b).
Verificar o próximo MAC de origem
Para o endereço mac de origem do pacote, o Nexus deve usar o endereço mac da interface de saída que está sendo usada para acessar 172.16.1.2. Neste exemplo, o Nexus usará o endereço mac da interface ethernet 1/2.
N9K2# show interface ethernet 1/2 mac-address
--------------------------------------------------------------------------------
Interface mac-Address Burn-in mac-Address
--------------------------------------------------------------------------------
Ethernet1/2 700f.6a95.1cf9 700f.6a95.1cfb
Verificação final
A verificação pode ser feita no dispositivo do próximo salto, por exemplo, um ELAM pode ser executado em N9K3
Para este exemplo com saídas anteriores, espera-se que o Nexus use:
Origem mac: 700f.6a95.1cf9
MAC de destino: 70:0f:6a:5e:6d:5b
N9K3# debug platform internal tah elam
N9K3(TAH-elam)# trigger init
Slot 1: param values: start asic 0, start slice 0, lu-a2d 1, in-select 6, out-select 0
N9K3(TAH-elam-insel6)# set outer ipv4 dst_ip 172.16.1.2
N9K3(TAH-elam-insel6)# start
N9K3(TAH-elam-insel6)# report
SUGARBOWL ELAM REPORT SUMMARY
slot - 1, asic - 0, slice - 0
============================
Incoming Interface: Eth1/1
Src Idx : 0x5, Src BD : 4101
Outgoing Interface Info: dmod 0, dpid 0
Dst Idx : 0x5bf, Dst BD : 4101
Packet Type: IPv4
Dst mac address: 70:0F:6A:5E:6D:5B
Src mac address: 70:0F:6A:95:1C:F9
Sup hit: 1, Sup Idx: 2788
Dst IPv4 address: 172.16.1.2
Src IPv4 address: 172.16.1.1
Ver = 4, DSCP = 0, Don't Fragment = 0
Proto = 1, TTL = 254, More Fragments = 0
Hdr len = 20, Pkt len = 84, Checksum = 0x9fc0