Introducción
Este documento describe cómo verificar la reescritura de Nexus MAC en switches basados en Tahoe.
Prerequisites
Requirements
Cisco recomienda que tenga conocimiento sobre estos temas:
- Plataforma NXOS
- Ruteo
- ELAM
Componentes Utilizados
Nombre |
Plataforma |
Versión |
N9K1 |
N9K-C93108TC-EX |
9.3(10) |
N9K2 |
N9K-C93108TC-EX |
9.3(10) |
N9K3 |
N9K-C93108TC-EX |
9.3(10) |
La información que contiene este documento se creó a partir de los dispositivos en un ambiente de laboratorio específico. Todos los dispositivos que se utilizan en este documento se pusieron en funcionamiento con una configuración verificada (predeterminada). Si tiene una red en vivo, asegúrese de entender el posible impacto de cualquier comando.
Topología

Background
En el proceso de ruteo IP, a medida que los paquetes atraviesan la red desde el origen hasta el destino, las direcciones MAC de origen y destino se actualizan en cada salto, mientras que las direcciones IP de origen y destino permanecen sin cambios. Cuando un paquete llega a un router, el router examina la dirección IP de destino para determinar el salto siguiente en la trayectoria a su destino final. A continuación, el router reenvía el paquete al salto siguiente intercambiando la dirección mac de destino con la dirección mac de la interfaz de saltos siguiente y actualizando la dirección mac de origen a su propia dirección mac de interfaces salientes.
Este intercambio garantiza que el paquete se pueda entregar correctamente al router siguiente o al destino final en la red local. Mientras tanto, las direcciones IP de origen y destino permanecen constantes durante todo el viaje, ya que se utilizan para mantener la ruta de extremo a extremo y garantizar que el paquete llega al destino correcto a través de varios segmentos de red potencialmente.
Verificar reescritura de MAC
Para verificar si la reescritura de mac se realiza correctamente en switches basados en Nexus 9K Tahoe, se deben verificar dos componentes: la dirección mac del siguiente salto y la decisión de reenvío de Nexus.
Para este ejemplo, Nexus recibe el paquete con las macs de origen y destino mostradas, estas macs se reescriben para alcanzar el 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 MAC de siguiente salto
En este documento, para verificar la dirección MAC del siguiente salto , se pueden verificar las tablas de ruteo y ARP.
Para este ejemplo, en N9K2 va a ser examinado sobre cómo su reescritura de la dirección MAC para el destino 172.16.1.2.
Verificar tabla de routing
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
La ruta hacia el siguiente salto debe ser verificada hasta que se encuentre una interfaz física como interfaz de egreso.
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
Una vez que se observa y se aprende una ruta conectada a través del Administrador de adyacencias (AM), puede continuar verificando la entrada ARP para ese salto siguiente
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 es el mac que Nexus debe utilizar como MAC de destino para la reescritura de ruteo.
Verificar decisión de reenvío de Nexus (reescritura de MAC)
Para verificar la decisión de reenvío de Nexus, debe realizarse una captura de ELAM. En concreto, el informe detallado se utiliza en la sección 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
Se debe realizar un ping hacia el destino
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
Una vez que el paquete alcanzó el N9K2, Nexus debe realizar una búsqueda (lu) en la tabla de adyacencia de capa 3 para recopilar el mac de destino, Nexus debe colocar este mac en la reescritura (rw).
N9K2(TAH-elam-insel6)# report detail | i i lurw_vec.dst_addr
GBL_C++: [MSG] sug_lurw_vec.dst_addr: 0x700F6A5E6D5B
Nexus decide utilizar mac 700F6A5E6D5B como dirección mac de destino para la reescritura de paquetes. Con esta información, se puede confirmar que Nexus está realizando la reescritura correcta, ya que coincide con la dirección mac de destino tomada de salidas anteriores (70:0f:6a:5e:6d:5b).
Verificar MAC de origen siguiente
Para la dirección MAC de origen del paquete, Nexus debe utilizar la dirección MAC de la interfaz de salida que se utiliza para alcanzar 172.16.1.2; en este ejemplo, Nexus va a utilizar la dirección MAC Ethernet 1/2 de la interfaz.
N9K2# show interface ethernet 1/2 mac-address
--------------------------------------------------------------------------------
Interface mac-Address Burn-in mac-Address
--------------------------------------------------------------------------------
Ethernet1/2 700f.6a95.1cf9 700f.6a95.1cfb
Verificación final
La verificación se puede realizar en el dispositivo de salto siguiente; para este ejemplo, se puede ejecutar un ELAM en N9K3
Para este ejemplo con salidas anteriores, se espera que Nexus utilice:
Mac de origen: 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