A multicast trace is used for tracing both potential and actual multicast forwarding tree paths. When the multicast tree is established and traffic is flowing, this tool traces the actual traffic flow. If there is no traffic while executing the command, this tool displays the potential path for the group and source being traced.
You can direct a multicast trace to any network destination, which can be a multicast source or destination, or a node located between a source and destination. After you initiate the trace, a multicast trace query packet is sent to the last-hop multicast router for the specified destination. The query packet contains the source address, group address, destination/receiver address, response address, maximum number of hops, and TTL to be used for the multicast trace response.
The previous hop router selection is based on the multicast routing protocol and the state for the S,G entry in the processing router.
The last hop router converts the multicast trace query into a unicast traceroute request by appending response data (for the last hop router) into the received query packet, and the last hop router forwards the request packet to the router that it believes is the proper previous hop for the given source and group.
Each multicast router adds its response data to the end of the request packet, and then forwards the modified unicast request to the previous hop.
The first hop router (the router that determines that packets from the source originate on one of its directly connected networks) changes the packet type to response packet and sends the completed response to the query generator. If a router along the multicast route is unable to determine the forwarding state for a multicast group, that router sends a response back to the originator with NO ROUTE forwarding code.
To initiate a multicast trace, use the following command:
mtrace source src_address {destination dest_address} {group grp_address} {from from_address} {gateway gw_address} {timeout seconds} {maximum-hops number} {router-alert [include | exclude]} {vr vrname}