Multicast Traceroute (=mtrace=)
The original traceroute idea of sending probe packets with increasing TTLs and evaluating the generated ICMP "destination unreachable - TTL expired" packets cannot be applied to multicast, since ICMP messages are not generated in response to multicast traffic. Therefore a different approach was chosen to obtain traceroute-like functionality for multicast. That approach consists of a simple protocol that is used between end-systems and routers to obtain path information. The disadvantage of this approach is that routers (preferably all along a multicast path) have to support the protocol. Advantages are that if all routers support it, multicast traceroutes can be very efficient, and provide additional information above and beyond the typical loss and RTT information provided by classic (unicast) traceroutes. In particular, the multicast traceroute protocol includes useful traffic statistics information - but note that not all routers that implement the multicast traceroute protocol fill in this information.
We believe that the original idea for the multicast traceroute protocol as well as its first implementations (client and router side) are from Bill Fenner. Router vendors such as Cisco and Juniper have implemented the router side of the protocol for IPv4 to various degrees. The original client implementation for Unix-like systems has been made available on the SourceForge site by Bill Fenner. As the code stands right now, it seems somewhat difficult to make it work at least on non-BSD systems, although it should not be too difficult to fix this.
The protocol specification for IPv4 was written up as an Internet-Draft and revised a few times, but never published as an RFC. The Internet-Drafts have expired but can still be found on the Internet with some effort. In early 2007, there has been a proposal for an IPv6 variant of the multicast traceroute protocol. In July 2007, an IPv4/IPv6 mtrace specification ("mtrace version 2") became available as an Internet-Draft. This is being discussed and revised within the IETF
mboned working group.
The following is an
mtrace from a Cisco router. The multicast traceroute implementation in Cisco IOS has two commands:
mtrace simply performs a trace and outputs the path with some routing/tree-building-specific information. The
mstat command also retrieves statistics information. In contrast, the Unix
mtrace client does something similar to IOS
mstat by default. The choice of the name
mstat is somewhat unfortunate, because there is a completely different multicast debugging tool named
mstat , also mentioned in the Multicast Debugging Handbook.
mtraceproject on SourceForge: http://sourceforge.net/projects/mtrace/
- A "traceroute" facility for IP Multicast, W. Fenner, S. Casner, July 2000. Expired Internet-Draft ("work no longer in progress"?) - last-known draft specification of the mtrace protocol: http://www3.ietf.org/proceedings/00jul/I-D/idmr-traceroute-ipm-07.txt
- Mtrace6: Traceroute Facility for IPv6 Multicast, H. Asaeda, T. Jinmei, February 2007 (work in progress), Internet-Draft draft-asaeda-mboned-mtrace6-00.txt
- Multicast Debugging Handbook (MDH), Kevin Almeroth, A. Kanwar, 2000-?, includes a section on
- Mtrace Version 2: Traceroute Facility for IP Multicast, H. Asaeda, T. Jinmei, W. Fenner, S. Casner, January 2010. Internet-Draft (work in progress) draft-ietf-mboned-mtrace-v2-06.txt
– Main.SimonLeinen - 28 Feb 2007 - 23 Jan 2010