Multicast traceroute (mtrace) is a diagnostic
tool that traces the multicast path from a specified destination to a source for a
multicast group. It runs over the IGMP protocol.
The unicast traceroute program allows the
tracing of a path from one device to another. The key mechanism for unicast traceroute
is the ICMP TTL exceeded message, which is specifically excluded as a response to
multicast packets. The mtrace facility allows the tracing of an IP multicast routing
path. Mtrace also requires special implementations on the part of routers.
Mtrace uses any information available in the
router to determine a previous hop to forward the trace toward the source. Multicast
routing protocols vary in the type and amount of state they keep. Mtrace endeavors to
work with all of them by using whatever is available. For example, if a PIM-SM router is
on the (*,G) tree, mtrace chooses the parent toward the RP as the previous hop. In such
a case, no source or group-specific state is available, but the path can still be
traced.
Primary components of an mtrace implementation
Mtrace query
The party requesting the traceroute sends a traceroute query packet to the
last-hop (LH) multicast router for the given destination. The query and
request have the same opcode. The receiving router can distinguish between a
query and a request by checking the size of the packet. A query is a request
packet with none of the response fields filled up.
Mtrace request
The LH router changes the query packet into a request packet by adding a
response data block containing its interface addresses and packet
statistics. The LH router then forwards the request packet by unicast to the
router that it believes is the proper previous hop for the given source and
group. Each hop adds its response data to the end of the request packet,
then forwards it by unicast to the previous hop.
Mtrace response
The first hop (FH) router is the router that believes that packets from the
source originate on one of its directly connected networks. The FH router
changes the packet type to a response packet and sends the completed
response to the response destination address. The response may be returned
before reaching the FH router if a fatal error condition, such as "no
route," is encountered along the path.