Contenido

Introducción

Prerequisites

Requirements

Componentes Utilizados

Comparación de mtrace v1 y mtrace v2

detalles de mtrace v2

mtrace v2 en IOS-XR

Sintaxis del comando

Examples

Notas

Introducción

Este documento describe mtrace versión 2 en Cisco IOS®XR.

Prerequisites

Requirements

No hay requisitos específicos para este documento.

Componentes Utilizados

Este documento es específico de Cisco IOS®XR, pero no se limita a una versión de software o hardware específicos.

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). If your network is live, make sure that you understand the potential impact of any command.

Comparación de mtrace v1 y mtrace v2

- mtrace v2 Reply message es equivalente a mTrace v1 Response message.

- mtrace v1 sólo admite multidifusión IPv4. mTrace v2 admite multidifusión IPv4 e IPv6.

- mtrace v1 Query and Response messages son mensajes IGMP. Todos los paquetes de mTrace v2 son UDP.

- mtrace v1 tenía un campo para el protocolo de routing, que es el protocolo de routing multidifusión utilizado para RPF hacia el router ascendente. mTrace v2 tiene dos campos: uno para el protocolo de routing unidifusión utilizado para RPF y otro para el protocolo de routing multidifusión que se ejecuta en el router ascendente.

- El objetivo de mtrace v1 y v2 es el mismo y la sintaxis del paquete es muy similar.

- mtrace v1 y v2 utilizan diferentes conjuntos de códigos para los protocolos de routing y los códigos de reenvío.

- mtrace v2 admite IPv6 de la familia de direcciones y un número de puerto UDP específico (33435).

detalles de mtrace v2

- La herramienta permite trazar la trayectoria desde un origen hasta un destino. Comprueba la ruta tomada y también puede indicar cualquier problema, por ejemplo, con el tiempo de vida (TTL) o el reenvío de ruta inversa (RPF).

- El objetivo de mtrace v2 y v1 es el mismo. La manera en que mtrace verifica la trayectoria es enviar un paquete al destino (router de último salto o LHR) y rastrear la trayectoria hacia atrás hacia el origen (árbol de origen) o el router de punto Rendez-Vous (RP). Esto significa que debe especificar el destino (dirección de unidifusión), el origen (dirección de unidifusión) y el grupo de multidifusión.

- La verdadera potencia de la función mtrace es que el comando mtrace se puede ejecutar desde cualquier router (originador) de la red. No es necesario que sea el router de primer salto (FHR) o el RP.

- mtrace v2 se especifica en RFC 8487: mtrace versión 2: Traceroute Facility for IP Multicast

- mtrace v1on IOS-XR se basa en un borrador: draft-ietf-idmr-traceroute-ipm

- mtrace v2 no admite mVPN

Existen tres tipos de paquetes que se utilizan para mtrace. Estos tres paquetes juntos hacen que mtrace funcione. El originador envía un paquete de consulta mtrace hacia el router de último salto. Este LHR convierte la consulta en un paquete de solicitud. Este paquete es luego reenviado unicast, salto por salto, hacia el router ascendente. El LHR y cada router ascendente agregan un bloque de datos de respuesta que contiene información útil como la dirección de la interfaz, el protocolo de ruteo, el código de reenvío, etc. Cuando la solicitud llega al FHR, convierte la solicitud en un paquete de respuesta y la reenvía al creador. Si el seguimiento no se completa, un router intermedio también podría devolver la respuesta al originador, si, por ejemplo, se produce un error fatal como "no route".

Eche un vistazo a esta imagen para conocer el procedimiento y la gestión de los tres tipos de paquetes mtrace.

El creador es R-10. El LHR es LHR-4. El FHR es FHR-3. El RP es RP-5. La red está ejecutando el modo disperso de PIM o Cualquier multidifusión de origen (ASM).

El mensaje de solicitud mtrace tiene este aspecto.

0                   1                   2                   3

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|     Type      |           Length              |    # Hops     |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|                                                               |

|                      Multicast Address                        |

|                                                               |

+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

|                                                               |

|                        Source Address                         |

|                                                               |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|                                                               |

|                    Mtrace2 Client Address                     |

|                                                               |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|            Query ID           |         Client Port #         |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

La dirección del cliente es la dirección del originador, por lo que el router donde se ejecuta el comando mTrace v2.

El bloque de datos de respuesta contiene información interesante. Esta información se agrega al mensaje de solicitud. Cada router agrega un bloque de datos de respuesta al mensaje de solicitud. Este es el bloque de datos de respuesta.

0                   1                   2                   3

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|     Type      |           Length              |      MBZ      |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|                      Query Arrival Time                       |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|                  Incoming Interface Address                   |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|                  Outgoing Interface Address                   |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|                   Upstream Router Address                     |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|                                                               |

.           Input packet count on Incoming Interface            .

|                                                               |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|                                                               |

.           Output packet count on Outgoing Interface           .

|                                                               |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|                                                               |

.      Total number of packets for this source-group pair       .

|                                                               |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|          Rtg Protocol         |    Multicast Rtg Protocol     |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|    Fwd TTL    |      MBZ      |S|   Src Mask  |Forwarding Code|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Es esta información de bloque de respuesta la que se utiliza para mostrar la salida de traceroute. Cada bloque de respuesta es una línea en el resultado de mtrace.

Los números del protocolo de routing y del protocolo de routing multidifusión tienen el mismo valor que ipMcastRouteRtProtocol de IP Multicast MIB (RFC 5132). No son los mismos que los valores utilizados en mtrace v1.

IANA los enumera de la siguiente manera:

Protocolos de ruteo:

other     (1),  -- not specified

local     (2),  -- local interface

netmgmt   (3),  -- static route

icmp      (4),  -- result of ICMP Redirect

-- the following are all dynamic

-- routing protocols

egp        (5),  -- Exterior Gateway Protocol

ggp        (6),  -- Gateway-Gateway Protocol

hello      (7),  -- FuzzBall HelloSpeak

rip        (8),  -- Berkeley RIP or RIP-II

isIs       (9),  -- Dual IS-IS

esIs       (10), -- ISO 9542

ciscoIgrp  (11), -- Cisco IGRP

bbnSpfIgp  (12), -- BBN SPF IGP

ospf       (13), -- Open Shortest Path First

bgp        (14), -- Border Gateway Protocol

idpr       (15), -- InterDomain Policy Routing

ciscoEigrp (16), -- Cisco EIGRP

dvmrp      (17), -- DVMRP

rpl        (18), -- RPL [RFC-ietf-roll-rpl-19]

dhcp       (19), -- DHCP [RFC2132]

Protocolos de routing multidifusión:

other(1),          -- none of the following

local(2),          -- e.g., manually configured

netmgmt(3),        -- set via net.mgmt protocol

dvmrp(4),

mospf(5),

pimSparseDense(6), -- PIMv1, both DM and SM

cbt(7),

pimSparseMode(8),  -- PIM-SM

pimDenseMode(9),   -- PIM-DM

igmpOnly(10),

bgmp(11),

msdp(12)

Aquí se muestran los códigos de reenvío para mtrace v2. No son los mismos que en mtrace v1.

Value  Name            Description

-----  --------------  ----------------------------------------------

0x00   NO_ERROR        No error.

0x01   WRONG_IF        Mtrace2 Request arrived on an interface

for which this router does not perform

forwarding for the specified group to the

source or RP.

0x02   PRUNE_SENT      This router has sent a prune upstream that

applies to the source and group in the

Mtrace2 Request.

0x03   PRUNE_RCVD      This router has stopped forwarding for this

source and group in response to a Request

from the downstream router.

0x04   SCOPED          The group is subject to administrative

scoping at this router.

0x05   NO_ROUTE        This router has no route for the source or

group and no way to determine a potential

route.

0x06   WRONG_LAST_HOP  This router is not the proper LHR.

0x07   NOT_FORWARDING  This router is not forwarding this source and

group out the Outgoing Interface for an

unspecified reason.

0x08   REACHED_RP      Reached the Rendezvous Point.

0x09   RPF_IF          Mtrace2 Request arrived on the expected

RPF interface for this source and group.

0x0A   NO_MULTICAST    Mtrace2 Request arrived on an interface

that is not enabled for multicast.

0x0B   INFO_HIDDEN     One or more hops have been hidden from this

trace.

0x0C   REACHED_GW      Mtrace2 Request arrived on a gateway (e.g.,

a NAT or firewall) that hides the

information between this router and the

Mtrace2 client.

0x0D   UNKNOWN_QUERY   A non-transitive Extended Query Type was

received by a router that does not support

the type.

0x80   FATAL_ERROR     A fatal error is one where the router may

know the upstream router but cannot forward

the message to it.

0x81   NO_SPACE        There was not enough room to insert another

Standard Response Block in the packet.

0x83   ADMIN_PROHIB    Mtrace2 is administratively prohibited.

mtrace v2 en IOS-XR

Sintaxis del comando

Uso: mtrace <src_addr> [<dest_addr>] [<group_addr>] [<resp_addr>] [<ttl>]

Asegúrese de especificar 2 para utilizar mtrace v2.

RP/0/RP0/CPU0:R-10#mtrace?

mtrace  mtrace2

RP/0/RP0/CPU0:R-10#mtrace2 ?

ipv4  IPv4 Address family

ipv6  ipv6 Address Family

RP/0/RP0/CPU0:R-10#mtrace2 ipv4 ?

Hostname or A.B.C.D  Source to trace route from

<cr>

La dirección de origen es la dirección del creador.

RP/0/RP0/CPU0:R-10#mtrace2 ipv4 10.1.3.3 ?

Hostname or A.B.C.D  Destination of route

debug                Mtrace client-side debugging(cisco-support)

<cr>

La dirección de destino es la dirección del LHR.

RP/0/RP0/CPU0:R-10#mtrace2 ipv4 10.1.3.3 10.2.4.4 ?

Hostname or A.B.C.D  Group to trace route via

debug                Mtrace client-side debugging(cisco-support)

<cr>

La dirección de grupo es la dirección de grupo de la secuencia de multidifusión objeto de seguimiento.

RP/0/RP0/CPU0:R-10#mtrace2 ipv4 10.1.3.3 10.2.4.4 225.1.1.1 ?

Hostname or A.B.C.D  response address to receive response

debug                Mtrace client-side debugging(cisco-support)

<cr>

La dirección de respuesta es la dirección a la que se devuelve la respuesta de traceroute.

RP/0/RP0/CPU0:R-10#mtrace2 ipv4 10.1.3.3 10.2.4.4 225.1.1.1 10.0.0.10 ?

<1-255>  Time-to-live for multicasted trace request

debug    Mtrace client-side debugging(cisco-support)

<cr>

Examples

Observe que el comando se puede iniciar desde cualquier router de la red, no necesariamente un router habilitado para PIM/multicast o a lo largo del árbol de origen o compartido específico que se está investigando.

RP/0/RP0/CPU0:R-10#mtrace2 ipv4 10.1.3.3 10.2.4.4 225.1.1.1 10.0.0.10

Type escape sequence to abort.

Mtrace from 10.1.3.3 to 10.2.4.4

via group 225.1.1.1

From source (?) to destination (?)

Querying full reverse path...

0  10.2.4.4

-1  10.4.7.4 PIM  [10.1.3.0/24]

-2  10.5.7.7 PIM  [10.1.3.0/24]

-3  0.0.0.0 PIM Reached RP/Core [10.1.3.0/24]

Puede ver que mtrace se realizó para el árbol compartido (*,G). El mtrace comenzó en el router de último salto 10.2.4.4 y retrocedió en el árbol compartido al RP (10.0.0.5). La razón de esto es que el router LHR-4 no tiene una entrada MRIB (S,G) para el origen 10.1.3.3 para el Grupo 225.1.1.1.

La parte [10.1.3.0/24] es la ruta de unidifusión utilizada para la información de RPF. La información RPF en IOS-XR es siempre una entrada /32 para IPv4. Esta información se deriva de una ruta de unidifusión. Se muestra esta ruta de unidifusión.

Se muestra el protocolo de multidifusión. Aquí está PIM.

El conteo de saltos se muestra en sentido inverso, comenzando en 0 en el router del último salto y pasando a negativo hasta que se alcanza el Router del Primer Salto.

El siguiente es el caso del árbol de origen.

RP/0/RP0/CPU0:LHR-4#show mrib route 225.1.1.1

IP Multicast Routing Information Base

Entry flags: L - Domain-Local Source, E - External Source to the Domain,

C - Directly-Connected Check, S - Signal, IA - Inherit Accept,

IF - Inherit From, D - Drop, ME - MDT Encap, EID - Encap ID,

MD - MDT Decap, MT - MDT Threshold Crossed, MH - MDT interface handle

CD - Conditional Decap, MPLS - MPLS Decap, EX - Extranet

MoFE - MoFRR Enabled, MoFS - MoFRR State, MoFP - MoFRR Primary

MoFB - MoFRR Backup, RPFID - RPF ID Set, X - VXLAN

Interface flags: F - Forward, A - Accept, IC - Internal Copy,

NS - Negate Signal, DP - Don't Preserve, SP - Signal Present,

II - Internal Interest, ID - Internal Disinterest, LI - Local Interest,

LD - Local Disinterest, DI - Decapsulation Interface

EI - Encapsulation Interface, MI - MDT Interface, LVIF - MPLS Encap,

EX - Extranet, A2 - Secondary Accept, MT - MDT Threshold Crossed,

MA - Data MDT Assigned, LMI - mLDP MDT Interface, TMI - P2MP-TE MDT Interface

IRMI - IR MDT Interface, TRMI - TREE SID MDT Interface, MH - Multihome Interface

(*,225.1.1.1) RPF nbr: 10.4.7.7 Flags: C RPF

Up: 1d21h

Incoming Interface List

GigabitEthernet0/0/0/1 Flags: A NS, Up: 1d21h

Outgoing Interface List

GigabitEthernet0/0/0/0 Flags: F NS LI, Up: 1d21h

(10.1.3.1,225.1.1.1) RPF nbr: 10.4.9.9 Flags: RPF

Up: 1d18h

Incoming Interface List

GigabitEthernet0/0/0/2 Flags: A, Up: 1d18h

Outgoing Interface List

GigabitEthernet0/0/0/0 Flags: F NS, Up: 1d18h

Hay una entrada MRIB para la fuente 10.1.3.1. El comando mtrace muestra un resultado diferente cuando se realiza para ese origen.

RP/0/RP0/CPU0:R-10#mtrace2 ipv4 10.1.3.1 10.2.4.4 225.1.1.1 10.0.0.10

Type escape sequence to abort.

Mtrace from 10.1.3.1 to 10.2.4.4

via group 225.1.1.1

From source (?) to destination (?)

Querying full reverse path...

0  10.2.4.4

-1  10.4.9.4 PIM  [10.1.3.0/24]

-2  10.8.9.9 PIM  [10.1.3.0/24]

-3  10.3.8.8 PIM  [10.1.3.0/24]

-4  10.1.3.3 PIM  [10.1.3.0/24]

Observe que la ruta inversa es ahora LHR4 - IR-9 - IR-8 - FHR-3. Este es el árbol de origen de FHR-3 a LHR-4. Coincide con las entradas MRIB para (S,G).

RP/0/RP0/CPU0:FHR-3#show mrib route 225.1.1.1

IP Multicast Routing Information Base

Entry flags: L - Domain-Local Source, E - External Source to the Domain,

C - Directly-Connected Check, S - Signal, IA - Inherit Accept,

IF - Inherit From, D - Drop, ME - MDT Encap, EID - Encap ID,

MD - MDT Decap, MT - MDT Threshold Crossed, MH - MDT interface handle

CD - Conditional Decap, MPLS - MPLS Decap, EX - Extranet

MoFE - MoFRR Enabled, MoFS - MoFRR State, MoFP - MoFRR Primary

MoFB - MoFRR Backup, RPFID - RPF ID Set, X - VXLAN

Interface flags: F - Forward, A - Accept, IC - Internal Copy,

NS - Negate Signal, DP - Don't Preserve, SP - Signal Present,

II - Internal Interest, ID - Internal Disinterest, LI - Local Interest,

LD - Local Disinterest, DI - Decapsulation Interface

EI - Encapsulation Interface, MI - MDT Interface, LVIF - MPLS Encap,

EX - Extranet, A2 - Secondary Accept, MT - MDT Threshold Crossed,

MA - Data MDT Assigned, LMI - mLDP MDT Interface, TMI - P2MP-TE MDT Interface

IRMI - IR MDT Interface, TRMI - TREE SID MDT Interface, MH - Multihome Interface

(10.1.3.1,225.1.1.1) RPF nbr: 10.1.3.1 Flags: RPF

Up: 1d21h

Incoming Interface List

GigabitEthernet0/0/0/0 Flags: A, Up: 1d21h

Outgoing Interface List

GigabitEthernet0/0/0/2 Flags: F NS, Up: 1d18h

Puede utilizar debug IGMP con mtrace v1 para mostrar los paquetes mTrace en cualquier router a lo largo de la ruta de seguimiento. mtrace v2 utiliza paquetes UDP, por lo que el debug IGMP no se puede utilizar para mtrace v2.

Sin embargo, puede centrarse en el puerto UDP 33433 que utilizan los paquetes mtrace v2 en IOS-XR.

Ejemplo:

Debug UDP mtracev2 packets en el router intermedio.

IR-9:

RP/0/RP0/CPU0:IR-9#show access-lists

ipv4 access-list mtracev2

10 permit udp any eq 33433 any eq 33433

RP/0/RP0/CPU0:IR-9#debug udp packet v4-access-list mtracev2 location 0/RP0/CPU0

RP/0/RP0/CPU0:IR-9#show debug

####  debug flags set from tty 'con0_RP0_CPU0'  ####

udp packet flag is ON with value '0x1:0x0:0x4:mtracev2:0x0:::'

RP/0/RP0/CPU0:IR-9#RP/0/RP0/CPU0:IR-9#

RP/0/RP0/CPU0:IR-9#

RP/0/RP0/CPU0:Jun 19 07:20:13.123 UTC: syslog_dev[115]: udp[214] PID-22001: R 42469 ms LEN 60    10.4.9.4:33433 <-> 10.4.9.9:33433

RP/0/RP0/CPU0:Jun 19 07:20:13.123 UTC: syslog_dev[115]: udp[214] PID-22001:

RP/0/RP0/CPU0:Jun 19 07:20:13.139 UTC: syslog_dev[115]: udp[214] PID-22062: S    15 ms LEN 100   10.8.9.9:33433 <-> 10.8.9.8:33433

RP/0/RP0/CPU0:Jun 19 07:20:13.139 UTC: syslog_dev[115]: udp[214] PID-22062:

El router intermedio recibe y envía un mensaje mtrace v2.

Notas

Asegúrese de saber qué routers son el FHR y el LHR. Otros routers no pueden completar el mtrace.

Si los routers tienen relojes sincronizados, puede medir el tiempo que toma propagar los mensajes mtrace, debido a la presencia de las marcas de tiempo. Este tiempo es solo una indicación, ya que estos mensajes se tratan como mensajes de control en cada salto.