Description

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.

Solution

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

    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) 

Modification History

2022-11-02 Updated non-compliant IP addresses to RFC standards