The traceroute utility is well known for displaying the unicast forwarding path. However, in a multicast environment, you can use a different tool to display the multicast forwarding path.
This article demonstrates how to use the mtrace utility in a multicast environment.
Example output of the mtrace utility in a multicast VPN setup
[edit] labroot@pe1# run mtrace from-source routing-instance red source 60.8.9.9 group 239.1.1.1 Sep 26 14:50:17 Mtrace from 60.8.9.9 to 10.0.0.1 via group 239.1.1.1 Querying full reverse path... * * 0 ? (10.0.0.1) -1 ? (192.168.0.1) PIM thresh^ 1 -2 ? (60.8.11.8) PIM thresh^ 1 -3 ? (60.8.9.9) Round trip time 11 ms; total ttl of 2 required. Waiting to accumulate statistics...Results after 10 seconds: Source Response Dest Overall Packet Statistics For Traffic From 60.8.9.9 10.0.0.1 Packet 60.8.9.9 To 239.1.1.1 v __/ rtt 1 ms Rate Lost/Sent = Pct Rate 60.8.9.88 60.8.11.8 ? v ^ ttl 2 0/0 = -- 0 pps 60.8.11.11 192.168.0.1 ? v \__ ttl 3 ?/0 0 pps 10.0.0.1 10.0.0.1 Receiver Query Source
The output shows the forwarding path from multicast source 60.8.9.9 to the mtrace querier 10.0.0.1.
\ / customer site1 \ / customer site2 mcast mcast | | source DR | PE MVPN backbone PE | 60.8.9.x/24 60.8.11.x/24 192.168.0.1 10.0.0.1 | SRC ----------------DR ------------ PE -------------//------------- PE ------------------ .9 .88 .8 .1 mtrace | | querier | | | / \ / \
Example packet capture showing the mtrace "traceroute querier" and "traceroute response" messages that the mtrace tool sent and received
traceroute querier
traceroute response
15 2021-09-26 14:50:23.211529 10.0.0.1 224.0.0.2 IGMP 114 Traceroute Query Frame 15: 114 bytes on wire (912 bits), 114 bytes captured (912 bits) Juniper Ethernet Ethernet II, Src: JuniperN_b7:34:85 (2c:21:72:b7:34:85), Dst: IPv4mcast_0a:0a:0a (01:00:5e:0a:0a:0a) 802.1Q Virtual LAN, PRI: 0, DEI: 0, ID: 13 Internet Protocol Version 4, Src: 10.0.0.1, Dst: 239.10.10.10 Generic Routing Encapsulation (IP) Internet Protocol Version 4, Src: 10.0.0.1, Dst: 224.0.0.2 Internet Group Management Protocol Type: Traceroute Query (0x1f) # hops: 60 Checksum: 0xa376 [correct] [Checksum Status: Good] Multicast Address: 239.1.1.1 Source Address: 60.8.9.9 Receiver Address: 10.0.0.1 Response Address: 10.0.0.1 Response TTL: 179 Query ID: 3494143 16 2021-09-26 14:50:23.222851 60.8.11.8 10.0.0.1 IGMP 144 Traceroute Response, 2 blocks Frame 16: 144 bytes on wire (1152 bits), 144 bytes captured (1152 bits) Juniper Ethernet MultiProtocol Label Switching Header, Label: 16, Exp: 6, S: 1, TTL: 252 Internet Protocol Version 4, Src: 60.8.11.8, Dst: 10.0.0.1 Internet Group Management Protocol Type: Traceroute Response (0x1e) # hops: 60 Checksum: 0xddb8 [correct] [Checksum Status: Good] Multicast Address: 239.1.1.1 Source Address: 60.8.9.9 Receiver Address: 10.0.0.1 Response Address: 10.0.0.1 Response TTL: 179 Query ID: 3494143 Response data block: 60.8.11.11 -> 192.168.0.1, Proto: PIM, Forwarding Code: NO_ERROR Response data block: 60.8.9.88 -> 60.8.11.8, Proto: PIM, Forwarding Code: NO_ERROR Query Arrival: 2463178173 In itf addr: 60.8.9.88 Out itf addr: 60.8.11.8 Previous rtr addr: 0.0.0.0 In pkts: 4294967295 Out pkts: 4294967295 S,G pkt count: 4294967295 Rtg Protocol: PIM (3) FwdTTL: 1 0... .... = MBZ: 0x0 .0.. .... = S: 0x0 ..01 1000 = Src Mask: 0x18 Forwarding Code: NO_ERROR (0x00)
2022-11-02 Updated non-compliant IP addresses to RFC standards