draft-ietf-mboned-mtrace-v2-21.txt   draft-ietf-mboned-mtrace-v2-22.txt 
MBONED Working Group H. Asaeda MBONED Working Group H. Asaeda
Internet-Draft NICT Internet-Draft NICT
Intended status: Standards Track K. Meyer Intended status: Standards Track K. Meyer
Expires: May 6, 2018 Cisco Expires: June 23, 2018
W. Lee, Ed. W. Lee, Ed.
November 2, 2017 December 20, 2017
Mtrace Version 2: Traceroute Facility for IP Multicast Mtrace Version 2: Traceroute Facility for IP Multicast
draft-ietf-mboned-mtrace-v2-21 draft-ietf-mboned-mtrace-v2-22
Abstract Abstract
This document describes the IP multicast traceroute facility, named This document describes the IP multicast traceroute facility, named
Mtrace version 2 (Mtrace2). Unlike unicast traceroute, Mtrace2 Mtrace version 2 (Mtrace2). Unlike unicast traceroute, Mtrace2
requires special implementations on the part of routers. This requires special implementations on the part of routers. This
specification describes the required functionality in multicast specification describes the required functionality in multicast
routers, as well as how an Mtrace2 client invokes a query and routers, as well as how an Mtrace2 client invokes a query and
receives a reply. receives a reply.
skipping to change at page 1, line 37 skipping to change at page 1, line 37
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on May 6, 2018. This Internet-Draft will expire on June 23, 2018.
Copyright Notice Copyright Notice
Copyright (c) 2017 IETF Trust and the persons identified as the Copyright (c) 2017 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 32 skipping to change at page 2, line 32
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 4 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 4
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 6 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1. Definitions . . . . . . . . . . . . . . . . . . . . . . . 6 2.1. Definitions . . . . . . . . . . . . . . . . . . . . . . . 6
3. Packet Formats . . . . . . . . . . . . . . . . . . . . . . . 7 3. Packet Formats . . . . . . . . . . . . . . . . . . . . . . . 7
3.1. Mtrace2 TLV format . . . . . . . . . . . . . . . . . . . 8 3.1. Mtrace2 TLV format . . . . . . . . . . . . . . . . . . . 8
3.2. Defined TLVs . . . . . . . . . . . . . . . . . . . . . . 8 3.2. Defined TLVs . . . . . . . . . . . . . . . . . . . . . . 8
3.2.1. Mtrace2 Query . . . . . . . . . . . . . . . . . . . . 9 3.2.1. Mtrace2 Query . . . . . . . . . . . . . . . . . . . . 9
3.2.2. Mtrace2 Request . . . . . . . . . . . . . . . . . . . 11 3.2.2. Mtrace2 Request . . . . . . . . . . . . . . . . . . . 11
3.2.3. Mtrace2 Reply . . . . . . . . . . . . . . . . . . . . 11 3.2.3. Mtrace2 Reply . . . . . . . . . . . . . . . . . . . . 11
3.2.4. IPv4 Mtrace2 Standard Response Block . . . . . . . . 12 3.2.4. IPv4 Mtrace2 Standard Response Block . . . . . . . . 12
3.2.5. IPv6 Mtrace2 Standard Response Block . . . . . . . . 15 3.2.5. IPv6 Mtrace2 Standard Response Block . . . . . . . . 16
3.2.6. Mtrace2 Augmented Response Block . . . . . . . . . . 18 3.2.6. Mtrace2 Augmented Response Block . . . . . . . . . . 18
3.2.7. Mtrace2 Extended Query Block . . . . . . . . . . . . 19 3.2.7. Mtrace2 Extended Query Block . . . . . . . . . . . . 19
4. Router Behavior . . . . . . . . . . . . . . . . . . . . . . . 20 4. Router Behavior . . . . . . . . . . . . . . . . . . . . . . . 20
4.1. Receiving Mtrace2 Query . . . . . . . . . . . . . . . . . 20 4.1. Receiving Mtrace2 Query . . . . . . . . . . . . . . . . . 20
4.1.1. Query Packet Verification . . . . . . . . . . . . . . 20 4.1.1. Query Packet Verification . . . . . . . . . . . . . . 20
4.1.2. Query Normal Processing . . . . . . . . . . . . . . . 21 4.1.2. Query Normal Processing . . . . . . . . . . . . . . . 21
4.2. Receiving Mtrace2 Request . . . . . . . . . . . . . . . . 21 4.2. Receiving Mtrace2 Request . . . . . . . . . . . . . . . . 21
4.2.1. Request Packet Verification . . . . . . . . . . . . . 21 4.2.1. Request Packet Verification . . . . . . . . . . . . . 21
4.2.2. Request Normal Processing . . . . . . . . . . . . . . 22 4.2.2. Request Normal Processing . . . . . . . . . . . . . . 22
4.3. Forwarding Mtrace2 Request . . . . . . . . . . . . . . . 23 4.3. Forwarding Mtrace2 Request . . . . . . . . . . . . . . . 24
4.3.1. Destination Address . . . . . . . . . . . . . . . . . 24 4.3.1. Destination Address . . . . . . . . . . . . . . . . . 24
4.3.2. Source Address . . . . . . . . . . . . . . . . . . . 24 4.3.2. Source Address . . . . . . . . . . . . . . . . . . . 24
4.3.3. Appending Standard Response Block . . . . . . . . . . 24 4.3.3. Appending Standard Response Block . . . . . . . . . . 24
4.4. Sending Mtrace2 Reply . . . . . . . . . . . . . . . . . . 25 4.4. Sending Mtrace2 Reply . . . . . . . . . . . . . . . . . . 25
4.4.1. Destination Address . . . . . . . . . . . . . . . . . 25 4.4.1. Destination Address . . . . . . . . . . . . . . . . . 25
4.4.2. Source Address . . . . . . . . . . . . . . . . . . . 25 4.4.2. Source Address . . . . . . . . . . . . . . . . . . . 25
4.4.3. Appending Standard Response Block . . . . . . . . . . 25 4.4.3. Appending Standard Response Block . . . . . . . . . . 25
4.5. Proxying Mtrace2 Query . . . . . . . . . . . . . . . . . 25 4.5. Proxying Mtrace2 Query . . . . . . . . . . . . . . . . . 25
4.6. Hiding Information . . . . . . . . . . . . . . . . . . . 26 4.6. Hiding Information . . . . . . . . . . . . . . . . . . . 26
skipping to change at page 4, line 21 skipping to change at page 4, line 21
On the other hand, walking up the tree from a receiver to a source is On the other hand, walking up the tree from a receiver to a source is
easy, as most existing multicast routing protocols know the upstream easy, as most existing multicast routing protocols know the upstream
router for each source. Tracing from a receiver to a source can router for each source. Tracing from a receiver to a source can
involve only the routers on the direct path. involve only the routers on the direct path.
This document specifies the multicast traceroute facility named This document specifies the multicast traceroute facility named
Mtrace version 2 or Mtrace2 which allows the tracing of an IP Mtrace version 2 or Mtrace2 which allows the tracing of an IP
multicast routing path. Mtrace2 is usually initiated from an Mtrace2 multicast routing path. Mtrace2 is usually initiated from an Mtrace2
client by sending an Mtrace2 Query to a Last Hop Router (LHR) or to a client by sending an Mtrace2 Query to a Last Hop Router (LHR) or to a
Rendezvous Point (RP). The RP is a special router where sources and Rendezvous Point (RP). The RP is a special router where sources and
receivers meet in PIM-SM [5]. From the LHR/RP receiving the query, receivers meet in Protocol Independent Multicast - Sparse Mode (PIM-
the tracing is directed towards a specified source if a source SM) [5]. From the LHR/RP receiving the query, the tracing is
address is specified and source specific state exists on the directed towards a specified source if a source address is specified
receiving router. If no source address is specified or if no source and source specific state exists on the receiving router. If no
specific state exists on a receiving LHR, the tracing is directed source address is specified or if no source specific state exists on
toward the RP for the specified group address. Moreover, Mtrace2 a receiving LHR, the tracing is directed toward the RP for the
provides additional information such as the packet rates and losses, specified group address. Moreover, Mtrace2 provides additional
as well as other diagnostic information. Mtrace2 is primarily information such as the packet rates and losses, as well as other
intended for the following purposes: diagnostic information. Mtrace2 is primarily intended for the
following purposes:
o To trace the path that a packet would take from a source to a o To trace the path that a packet would take from a source to a
receiver. receiver.
o To isolate packet loss problems (e.g., congestion). o To isolate packet loss problems (e.g., congestion).
o To isolate configuration problems (e.g., TTL threshold). o To isolate configuration problems (e.g., Time to live (TTL)
threshold).
Figure 1 shows a typical case on how Mtrace2 is used. FHR represents Figure 1 shows a typical case on how Mtrace2 is used. First-hop
the first-hop router, LHR represents the last-hop router, and the router (FHR) represents the first-hop router, LHR represents the
arrow lines represent the Mtrace2 messages that are sent from one last-hop router (LHR), and the arrow lines represent the Mtrace2
node to another. The numbers before the Mtrace2 messages represent messages that are sent from one node to another. The numbers before
the sequence of the messages that would happen. Source, Receiver and the Mtrace2 messages represent the sequence of the messages that
Mtrace2 client are typically hosts. would happen. Source, Receiver and Mtrace2 client are typically
hosts.
2. Request 2. Request 2. Request 2. Request
+----+ +----+ +----+ +----+
| | | | | | | |
v | v | v | v |
+--------+ +-----+ +-----+ +----------+ +--------+ +-----+ +-----+ +----------+
| Source |----| FHR |----- The Internet -----| LHR |----| Receiver | | Source |----| FHR |----- The Internet -----| LHR |----| Receiver |
+--------+ +-----+ | +-----+ +----------+ +--------+ +-----+ | +-----+ +----------+
\ | ^ \ | ^
\ | / \ | /
skipping to change at page 6, line 16 skipping to change at page 6, line 16
repeat the process until it receives an Mtrace2 Reply message. The repeat the process until it receives an Mtrace2 Reply message. The
details are Mtrace2 client specific and outside the scope of this details are Mtrace2 client specific and outside the scope of this
document. document.
Note that when a router's control plane and forwarding plane are out Note that when a router's control plane and forwarding plane are out
of sync, the Mtrace2 Requests might be forwarded based on the control of sync, the Mtrace2 Requests might be forwarded based on the control
states instead. In this case, the traced path might not represent states instead. In this case, the traced path might not represent
the real path the data packets would follow. the real path the data packets would follow.
Mtrace2 supports both IPv4 and IPv6. Unlike the previous version of Mtrace2 supports both IPv4 and IPv6. Unlike the previous version of
Mtrace, which implements its query and response as IGMP messages [8], Mtrace, which implements its query and response as Internet Group
all Mtrace2 messages are UDP-based. Although the packet formats of Management Protocol (IGMP) messages [8], all Mtrace2 messages are
IPv4 and IPv6 Mtrace2 are different because of the address families, UDP-based. Although the packet formats of IPv4 and IPv6 Mtrace2 are
the syntax between them is similar. different because of the address families, the syntax between them is
similar.
This document describes the base specification of Mtrace2 that can This document describes the base specification of Mtrace2 that can
serve as a basis for future proposals such as Mtrace2 for AMT [9] and serve as a basis for future proposals such as Mtrace2 for Automatic
Mtrace2 for MVPN [10]. They are therefore out of the scope of this Multicast Tunneling (AMT) [9] and Mtrace2 for Multicast in MPLS/BGP
IP VPNs (MVPN) [10]. They are therefore out of the scope of this
document. document.
2. Terminology 2. Terminology
In this document, the key words "MUST", "MUST NOT", "REQUIRED", In this document, the key words "MUST", "MUST NOT", "REQUIRED",
"SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY",
and "OPTIONAL" are to be interpreted as described in RFC 2119 [1], and "OPTIONAL" are to be interpreted as described in RFC 2119 [1],
and indicate requirement levels for compliant Mtrace2 and indicate requirement levels for compliant Mtrace2
implementations. implementations.
skipping to change at page 7, line 38 skipping to change at page 7, line 40
communicate with their adjacent routers that are running the same communicate with their adjacent routers that are running the same
routing protocol. For instance, the IPv4 'ALL-PIM-ROUTERS' group routing protocol. For instance, the IPv4 'ALL-PIM-ROUTERS' group
is '224.0.0.13', and the IPv6 'ALL-PIM-ROUTERS' group is 'ff02::d' is '224.0.0.13', and the IPv6 'ALL-PIM-ROUTERS' group is 'ff02::d'
[5]. [5].
3. Packet Formats 3. Packet Formats
This section describes the details of the packet formats for Mtrace2 This section describes the details of the packet formats for Mtrace2
messages. messages.
All Mtrace2 messages are encoded in TLV format (see Section 3.1). All Mtrace2 messages are encoded in the Type/Length/Value (TLV)
The first TLV of a message is a message header TLV specifying the format (see Section 3.1). The first TLV of a message is a message
type of message and additional context information required for header TLV specifying the type of message and additional context
processing of the message and for parsing of subsequent TLVs in the information required for processing of the message and for parsing of
message. Subsequent TLVs in a message, referred to as Blocks, are subsequent TLVs in the message. Subsequent TLVs in a message,
appended after the header TLV to provide additional information referred to as Blocks, are appended after the header TLV to provide
associated with the message. If an implementation receives an additional information associated with the message. If an
unknown TLV type for the first TLV in a message, it SHOULD ignore and implementation receives an unknown TLV type for the first TLV in a
silently discard the TLV and any subsequent TLVs in the packet message (i.e., the header TLV), it SHOULD ignore and silently discard
containing the TLV. If an implementation receives an unknown TLV the entire packet. If an implementation receives an unknown TLV type
type for a subsequent TLV within a message, it SHOULD ignore and for a subsequent TLV within a message, it SHOULD ignore and silently
silently discard the TLV. If the length of a TLV exceeds the discard the entire packet. If the length of a TLV exceeds the
available space in the containing packet, the implementation MUST available space in the containing packet, the implementation MUST
ignore and silently discard the TLV and any remaining portion of the ignore and silently discard the TLV and any remaining portion of the
containing packet. Any data in the packet after the specified TLV containing packet.
length is considered to be outside the boundary of the TLV and MUST
be ignored during processing of the TLV.
All Mtrace2 messages are UDP packets. For IPv4, Mtrace2 Query and All Mtrace2 messages are UDP packets. For IPv4, Mtrace2 Query and
Request messages MUST NOT be fragmented. For IPv6, the packet size Request messages MUST NOT be fragmented. For IPv6, the packet size
for the Mtrace2 messages MUST NOT exceed 1280 bytes, which is the for the Mtrace2 messages MUST NOT exceed 1280 bytes, which is the
smallest MTU for an IPv6 interface [2]. The source port is uniquely smallest Maximum Transmission Unit (MTU) for an IPv6 interface [2].
selected by the local host operating system. The destination port is The source port is uniquely selected by the local host operating
the IANA reserved Mtrace2 port number (see Section 8). All Mtrace2 system. The destination port is the IANA reserved Mtrace2 port
messages MUST have a valid UDP checksum. number (see Section 8). All Mtrace2 messages MUST have a valid UDP
checksum.
Additionally, Mtrace2 supports both IPv4 and IPv6, but not mixed. Additionally, Mtrace2 supports both IPv4 and IPv6, but not mixed.
For example, if an Mtrace2 Query or Request message arrives in as an For example, if an Mtrace2 Query or Request message arrives in as an
IPv4 packet, all addresses specified in the Mtrace2 messages MUST be IPv4 packet, all addresses specified in the Mtrace2 messages MUST be
IPv4 as well. Same rule applies to IPv6 Mtrace2 messages. IPv4 as well. Same rule applies to IPv6 Mtrace2 messages.
3.1. Mtrace2 TLV format 3.1. Mtrace2 TLV format
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
skipping to change at page 10, line 45 skipping to change at page 10, line 45
This field specifies an IPv4 or IPv6 address, which can be either: This field specifies an IPv4 or IPv6 address, which can be either:
m-1: a multicast group address to be traced; or, m-1: a multicast group address to be traced; or,
m-2: all 1's in case of IPv4 or the unspecified address (::) in m-2: all 1's in case of IPv4 or the unspecified address (::) in
case of IPv6 if no group-specific information is desired. case of IPv6 if no group-specific information is desired.
Source Address: 32 bits or 128 bits Source Address: 32 bits or 128 bits
This field specifies an IPv4 or IPv6 address, which can be either: This field specifies an IPv4 or IPv6 address, which can be either:
s-1: an unicast address of the source to be traced; or, s-1: a unicast address of the source to be traced; or,
s-2: all 1's in case of IPv4 or the unspecified address (::) in s-2: all 1's in case of IPv4 or the unspecified address (::) in
case of IPv6 if no source-specific information is desired. case of IPv6 if no source-specific information is desired.
For example, the client is tracing a (*,g) group state. For example, the client is tracing a (*,g) group state.
Note that it is invalid to have a source-group combination of Note that it is invalid to have a source-group combination of
(s-2, m-2). If a router receives such combination in an Mtrace2 (s-2, m-2). If a router receives such combination in an Mtrace2
Query, it MUST silently discard the Query. Query, it MUST silently discard the Query.
Mtrace2 Client Address: 32 bits or 128 bits Mtrace2 Client Address: 32 bits or 128 bits
skipping to change at page 12, line 45 skipping to change at page 12, line 45
| Rtg Protocol | Multicast Rtg Protocol | | Rtg Protocol | Multicast Rtg Protocol |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Fwd TTL | MBZ |S| Src Mask |Forwarding Code| | Fwd TTL | MBZ |S| Src Mask |Forwarding Code|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
MBZ: 8 bits MBZ: 8 bits
This field MUST be zeroed on transmission and ignored on This field MUST be zeroed on transmission and ignored on
reception. reception.
Query Arrival Time: 32 bits Query Arrival Time: 32 bits
The Query Arrival Time is a 32-bit NTP timestamp specifying the The Query Arrival Time is a 32-bit Network Time Protocol (NTP)
arrival time of the Mtrace2 Query or Request packet at this timestamp specifying the arrival time of the Mtrace2 Query or
router. The 32-bit form of an NTP timestamp consists of the Request packet at this router. The 32-bit form of an NTP
middle 32 bits of the full 64-bit form; that is, the low 16 bits timestamp consists of the middle 32 bits of the full 64-bit form;
of the integer part and the high 16 bits of the fractional part. that is, the low 16 bits of the integer part and the high 16 bits
of the fractional part.
The following formula converts from a UNIX timeval to a 32-bit NTP The following formula converts from a timespec (fractional part in
timestamp: nanoseconds) to a 32-bit NTP timestamp:
query_arrival_time query_arrival_time
= ((tv.tv_sec + 32384) << 16) + ((tv.tv_nsec << 7) / 1953125) = ((tv.tv_sec + 32384) << 16) + ((tv.tv_nsec << 7) / 1953125)
The constant 32384 is the number of seconds from Jan 1, 1900 to The constant 32384 is the number of seconds from Jan 1, 1900 to
Jan 1, 1970 truncated to 16 bits. ((tv.tv_nsec << 7) / 1953125) Jan 1, 1970 truncated to 16 bits. ((tv.tv_nsec << 7) / 1953125)
is a reduction of ((tv.tv_nsec / 1000000000) << 16). is a reduction of ((tv.tv_nsec / 1000000000) << 16).
Note that Mtrace2 does not require all the routers on the path to Note that Mtrace2 does not require all the routers on the path to
have synchronized clocks in order to measure one-way latency. have synchronized clocks in order to measure one-way latency.
skipping to change at page 13, line 45 skipping to change at page 13, line 48
this router expects packets from this source. This may be a this router expects packets from this source. This may be a
multicast group (e.g., ALL-[protocol]-ROUTERS group) if the multicast group (e.g., ALL-[protocol]-ROUTERS group) if the
upstream router is not known because of the workings of the upstream router is not known because of the workings of the
multicast routing protocol. However, it should be 0 if the multicast routing protocol. However, it should be 0 if the
incoming interface address is unknown or unnumbered. incoming interface address is unknown or unnumbered.
Input packet count on incoming interface: 64 bits Input packet count on incoming interface: 64 bits
This field contains the number of multicast packets received for This field contains the number of multicast packets received for
all groups and sources on the incoming interface, or all 1's if no all groups and sources on the incoming interface, or all 1's if no
count can be reported. This counter may have the same value as count can be reported. This counter may have the same value as
ifHCInMulticastPkts from the IF-MIB [12] for this interface. ifHCInMulticastPkts from the Interfaces Group MIB (IF-MIB) [12]
for this interface.
Output packet count on outgoing interface: 64 bit Output packet count on outgoing interface: 64 bit
This field contains the number of multicast packets that have been This field contains the number of multicast packets that have been
transmitted or queued for transmission for all groups and sources transmitted or queued for transmission for all groups and sources
on the outgoing interface, or all 1's if no count can be reported. on the outgoing interface, or all 1's if no count can be reported.
This counter may have the same value as ifHCOutMulticastPkts from This counter may have the same value as ifHCOutMulticastPkts from
the IF-MIB [12] for this interface. the IF-MIB [12] for this interface.
Total number of packets for this source-group pair: 64 bits Total number of packets for this source-group pair: 64 bits
This field counts the number of packets from the specified source This field counts the number of packets from the specified source
forwarded by the router to the specified group, or all 1's if no forwarded by the router to the specified group, or all 1's if no
count can be reported. If the S bit is set (see below), the count count can be reported. If the S bit is set (see below), the count
is for the source network, as specified by the Src Mask field (see is for the source network, as specified by the Src Mask field (see
below). If the S bit is set and the Src Mask field is 127, below). If the S bit is set and the Src Mask field is 127,
indicating no source-specific state, the count is for all sources indicating no source-specific state, the count is for all sources
sending to this group. This counter should have the same value as sending to this group. This counter should have the same value as
ipMcastRoutePkts from the IPMROUTE-STD-MIB [13] for this ipMcastRoutePkts from the IP Multicast MIB [13] for this
forwarding entry. forwarding entry.
Rtg Protocol: 16 bits Rtg Protocol: 16 bits
This field describes the unicast routing protocol running between This field describes the unicast routing protocol running between
this router and the upstream router, and it is used to determine this router and the upstream router, and it is used to determine
the RPF interface for the specified source or RP. This value the RPF interface for the specified source or RP. This value
should have the same value as ipMcastRouteRtProtocol from the should have the same value as ipMcastRouteRtProtocol from the IP
IPMROUTE-STD-MIB [13] for this entry. If the router is not able Multicast MIB [13] for this entry. If the router is not able to
to obtain this value, all 0's must be specified. obtain this value, all 0's must be specified.
Multicast Rtg Protocol: 16 bits Multicast Rtg Protocol: 16 bits
This field describes the multicast routing protocol in use between This field describes the multicast routing protocol in use between
the router and the upstream router. This value should have the the router and the upstream router. This value should have the
same value as ipMcastRouteProtocol from the IPMROUTE-STD-MIB [13] same value as ipMcastRouteProtocol from the IP Multicast MIB [13]
for this entry. If the router cannot obtain this value, all 0's for this entry. If the router cannot obtain this value, all 0's
must be specified. must be specified.
Fwd TTL: 8 bits Fwd TTL: 8 bits
This field contains the configured multicast TTL threshold, if This field contains the configured multicast TTL threshold, if
any, of the outgoing interface. any, of the outgoing interface.
S: 1 bit S: 1 bit
If this bit is set, it indicates that the packet count for the If this bit is set, it indicates that the packet count for the
source-group pair is for the source network, as determined by source-group pair is for the source network, as determined by
skipping to change at page 17, line 13 skipping to change at page 17, line 19
for this interface. for this interface.
Outgoing Interface ID: 32 bits Outgoing Interface ID: 32 bits
This field specifies the interface ID to which packets from the This field specifies the interface ID to which packets from the
source or RP are expected to transmit, or 0 if unknown. This ID source or RP are expected to transmit, or 0 if unknown. This ID
should be the value taken from InterfaceIndex of the IF-MIB [12] should be the value taken from InterfaceIndex of the IF-MIB [12]
for this interface for this interface
Local Address: 128 bits Local Address: 128 bits
This field specifies a global IPv6 address that uniquely This field specifies a global IPv6 address that uniquely
identifies the router. An unique local unicast address [11] identifies the router. A unique local unicast address [11] SHOULD
SHOULD NOT be used unless the router is only assigned link-local NOT be used unless the router is only assigned link-local and
and unique local addresses. If the router is only assigned link- unique local addresses. If the router is only assigned link-local
local addresses, its link-local address can be specified in this addresses, its link-local address can be specified in this field.
field.
Remote Address: 128 bits Remote Address: 128 bits
This field specifies the address of the upstream router, which, in This field specifies the address of the upstream router, which, in
most cases, is a link-local unicast address for the upstream most cases, is a link-local unicast address for the upstream
router. router.
Although a link-local address does not have enough information to Although a link-local address does not have enough information to
identify a node, it is possible to detect the upstream router with identify a node, it is possible to detect the upstream router with
the assistance of Incoming Interface ID and the current router the assistance of Incoming Interface ID and the current router
address (i.e., Local Address). address (i.e., Local Address).
skipping to change at page 17, line 47 skipping to change at page 18, line 4
Output packet count on outgoing interface: 64 bits Output packet count on outgoing interface: 64 bits
Same definition as in IPv4. Same definition as in IPv4.
Total number of packets for this source-group pair: 64 bits Total number of packets for this source-group pair: 64 bits
Same definition as in IPv4, except if the S bit is set (see Same definition as in IPv4, except if the S bit is set (see
below), the count is for the source network, as specified by the below), the count is for the source network, as specified by the
Src Prefix Len field. If the S bit is set and the Src Prefix Len Src Prefix Len field. If the S bit is set and the Src Prefix Len
field is 255, indicating no source-specific state, the count is field is 255, indicating no source-specific state, the count is
for all sources sending to this group. This counter should have for all sources sending to this group. This counter should have
the same value as ipMcastRoutePkts from the IPMROUTE-STD-MIB [13] the same value as ipMcastRoutePkts from the IP Multicast MIB [13]
for this forwarding entry. for this forwarding entry.
Rtg Protocol: 16 bits Rtg Protocol: 16 bits
Same definition as in IPv4. Same definition as in IPv4.
Multicast Rtg Protocol: 16 bits Multicast Rtg Protocol: 16 bits
Same definition as in IPv4. Same definition as in IPv4.
MBZ 2: 15 bits MBZ 2: 15 bits
This field MUST be zeroed on transmission and ignored on This field MUST be zeroed on transmission and ignored on
skipping to change at page 21, line 43 skipping to change at page 21, line 52
With the exception of the LHR, whose Request was just converted from With the exception of the LHR, whose Request was just converted from
a Query, each Request received by a router should have at least one a Query, each Request received by a router should have at least one
Standard Response Block filled in. Standard Response Block filled in.
4.2.1. Request Packet Verification 4.2.1. Request Packet Verification
If the Mtrace2 Request does not come from an adjacent router, or if If the Mtrace2 Request does not come from an adjacent router, or if
the Request is not addressed to this router, or if the Request is the Request is not addressed to this router, or if the Request is
addressed to a multicast group which is not a link-scoped group addressed to a multicast group which is not a link-scoped group
(i.e., 224.0.0.0/24 for IPv4, FFx2::/16 [3] for IPv6), it MUST be (i.e., 224.0.0.0/24 for IPv4, FFx2::/16 [3] for IPv6), it MUST be
silently ignored. GTSM [14] SHOULD be used by the router to silently ignored. The Generalized TTL Security Mechanism (GTSM) [14]
determine whether the router is adjacent or not. SHOULD be used by the router to determine whether the router is
adjacent or not.
If the sum of the number of the Standard Response Blocks in the If the sum of the number of the Standard Response Blocks in the
received Mtrace2 Request and the value of the Augmented Response Type received Mtrace2 Request and the value of the Augmented Response Type
of 0x01, if any, is equal or more than the # Hops in the Mtrace2 of 0x01, if any, is equal or more than the # Hops in the Mtrace2
Request, it MUST be silently ignored. Request, it MUST be silently ignored.
4.2.2. Request Normal Processing 4.2.2. Request Normal Processing
When a router receives an Mtrace2 Request message, it performs the When a router receives an Mtrace2 Request message, it performs the
following steps. Note that it is possible to have multiple following steps. Note that it is possible to have multiple
skipping to change at page 28, line 31 skipping to change at page 28, line 31
because a failure requires waiting for the [Mtrace Reply Timeout] because a failure requires waiting for the [Mtrace Reply Timeout]
period. period.
5.7. Non-Supported Router 5.7. Non-Supported Router
When a non-supported router receives an Mtrace2 Query or Request When a non-supported router receives an Mtrace2 Query or Request
message whose destination address is a multicast address, the router message whose destination address is a multicast address, the router
will silently discard the message. will silently discard the message.
When the router receives an Mtrace2 Query which is destined to When the router receives an Mtrace2 Query which is destined to
itself, the router would return an ICMP port unreachable to the itself, the router would return an Internet Control Message Protocol
Mtrace2 client. On the other hand, when the router receives an (ICMP) port unreachable to the Mtrace2 client. On the other hand,
Mtrace2 Request which is destined to itself, the router would return when the router receives an Mtrace2 Request which is destined to
an ICMP port unreachable to its adjacent router from which the itself, the router would return an ICMP port unreachable to its
Request receives. Therefore, the Mtrace2 client needs to terminate adjacent router from which the Request receives. Therefore, the
the trace when the [Mtrace Reply Timeout] timeout has occurred, and Mtrace2 client needs to terminate the trace when the [Mtrace Reply
may then issue another Query with a lower number of # Hops. Timeout] timeout has occurred, and may then issue another Query with
a lower number of # Hops.
5.8. Mtrace2 Termination 5.8. Mtrace2 Termination
When performing an expanding hop-by-hop trace, it is necessary to When performing an expanding hop-by-hop trace, it is necessary to
determine when to stop expanding. determine when to stop expanding.
5.8.1. Arriving at Source 5.8.1. Arriving at Source
A trace can be determined to have arrived at the source if the A trace can be determined to have arrived at the source if the
Incoming Interface of the last router in the trace is non-zero, but Incoming Interface of the last router in the trace is non-zero, but
skipping to change at page 29, line 36 skipping to change at page 29, line 36
will send back an Mtrace2 Reply to the Mtrace2 client, and continue will send back an Mtrace2 Reply to the Mtrace2 client, and continue
with a new Request (see Section 4.3.3). In this case, the Mtrace2 with a new Request (see Section 4.3.3). In this case, the Mtrace2
client may receive multiple Mtrace2 Replies from different routers client may receive multiple Mtrace2 Replies from different routers
along the path. When this happens, the client MUST treat them as a along the path. When this happens, the client MUST treat them as a
single Mtrace2 Reply message. single Mtrace2 Reply message.
If a trace times out, it is very likely that a router in the middle If a trace times out, it is very likely that a router in the middle
of the path does not support Mtrace2. That router's address will be of the path does not support Mtrace2. That router's address will be
in the Upstream Router field of the last Standard Response Block in in the Upstream Router field of the last Standard Response Block in
the last received Reply. A client may be able to determine (via the last received Reply. A client may be able to determine (via
mrinfo or SNMP [11][13]) a list of neighbors of the non-responding mrinfo or the Simple Network Management Protocol (SNMP) [11][13]) a
router. The neighbors obtained in this way could then be probed (via list of neighbors of the non-responding router. The neighbors
the multicast MIB [13]) to determine which one is the upstream (RPF) obtained in this way could then be probed (via the multicast MIB
neighbor of the non-responding router. This algorithm can identify [13]) to determine which one is the upstream neighbor (i.e., Reverse
the upstream neighbor because, even though there may be multiple Path Forwarding (RPF) neighbor) of the non-responding router. This
neighbors, the non-responding router should only have sent a "join" algorithm can identify the upstream neighbor because, even though
to the one neighbor corresponding to its selected RPF path. Because there may be multiple neighbors, the non-responding router should
of this, only the RPF neighbor should contain the non-responding only have sent a "join" to the one neighbor corresponding to its
router as a multicast next hop in its MIB output list for the selected RPF path. Because of this, only the RPF neighbor should
affected multicast route. contain the non-responding router as a multicast next hop in its MIB
output list for the affected multicast route.
6. Protocol-Specific Considerations 6. Protocol-Specific Considerations
This section describes the Mtrace2 behavior with the presence of This section describes the Mtrace2 behavior with the presence of
different multicast protocols. different multicast protocols.
6.1. PIM-SM 6.1. PIM-SM
When an Mtrace2 reaches a PIM-SM RP, and the RP does not forward the When an Mtrace2 reaches a PIM-SM RP, and the RP does not forward the
trace on, it means that the RP has not performed a source-specific trace on, it means that the RP has not performed a source-specific
skipping to change at page 30, line 50 skipping to change at page 30, line 50
appropriate last hop. appropriate last hop.
When traffic is flowing, PIM Dense Mode routers know whether or not When traffic is flowing, PIM Dense Mode routers know whether or not
they are the LHR for the link (because they won or lost an Assert they are the LHR for the link (because they won or lost an Assert
battle) and know who the upstream router is (because it won an Assert battle) and know who the upstream router is (because it won an Assert
battle). Therefore, Mtrace2 is always able to follow the proper path battle). Therefore, Mtrace2 is always able to follow the proper path
when traffic is flowing. when traffic is flowing.
6.4. IGMP/MLD Proxy 6.4. IGMP/MLD Proxy
When an IGMP/MLD Proxy [7] receives an Mtrace2 Query packet on an When an IGMP or Multicast Listener Discovery (MLD) Proxy [7] receives
incoming interface, it notes a WRONG_IF in the Forwarding Code of the an Mtrace2 Query packet on an incoming interface, it notes a WRONG_IF
last Standard Response Block (see Section 3.2.4), and sends the in the Forwarding Code of the last Standard Response Block (see
Mtrace2 Reply back to the Mtrace2 client. On the other hand, when an Section 3.2.4), and sends the Mtrace2 Reply back to the Mtrace2
Mtrace2 Query packet reaches an outgoing interface of the IGMP/MLD client. On the other hand, when an Mtrace2 Query packet reaches an
proxy, it is forwarded onto its incoming interface towards the outgoing interface of the IGMP/MLD proxy, it is forwarded onto its
upstream router. incoming interface towards the upstream router.
7. Problem Diagnosis 7. Problem Diagnosis
This section describes different scenarios Mtrace2 can be used to This section describes different scenarios Mtrace2 can be used to
diagnose the multicast problems. diagnose the multicast problems.
7.1. Forwarding Inconsistencies 7.1. Forwarding Inconsistencies
The Forwarding Error code can tell if a group is unexpectedly pruned The Forwarding Error code can tell if a group is unexpectedly pruned
or administratively scoped. or administratively scoped.
skipping to change at page 33, line 7 skipping to change at page 33, line 7
which the new Forwarding Code is used. which the new Forwarding Code is used.
8.2. "Mtrace2 TLV Types" registry 8.2. "Mtrace2 TLV Types" registry
Assignment of a TLV Type requires specification of an integer value Assignment of a TLV Type requires specification of an integer value
"Code" in the range 0-255 and a name ("Type"). Initial values for "Code" in the range 0-255 and a name ("Type"). Initial values for
the TLV Types are given in the table at the beginning of Section 3.2. the TLV Types are given in the table at the beginning of Section 3.2.
8.3. UDP Destination Port 8.3. UDP Destination Port
The Mtrace2 UDP destination port is assigned when this document is IANA has assigned UDP user port 33435 (mtrace) for use by this
published as RFC. protocol as the Mtrace2 UDP destination port.
9. Security Considerations 9. Security Considerations
This section addresses some of the security considerations related to This section addresses some of the security considerations related to
Mtrace2. Mtrace2.
9.1. Addresses in Mtrace2 Header 9.1. Addresses in Mtrace2 Header
An Mtrace2 header includes three addresses, source address, multicast An Mtrace2 header includes three addresses, source address, multicast
address, and Mtrace2 client address. These addresses MUST be address, and Mtrace2 client address. These addresses MUST be
skipping to change at page 36, line 13 skipping to change at page 36, line 13
Authors' Addresses Authors' Addresses
Hitoshi Asaeda Hitoshi Asaeda
National Institute of Information and Communications Technology National Institute of Information and Communications Technology
4-2-1 Nukui-Kitamachi 4-2-1 Nukui-Kitamachi
Koganei, Tokyo 184-8795 Koganei, Tokyo 184-8795
Japan Japan
Email: asaeda@nict.go.jp Email: asaeda@nict.go.jp
Kerry Meyer Kerry Meyer
Cisco Systems, Inc.
510 McCarthy Blvd.
Milpitas, CA 95035
USA
Email: kerrymey@cisco.com Email: kerry.meyer@me.com
WeeSan Lee (editor) WeeSan Lee (editor)
Email: weesan@weesan.com Email: weesan@weesan.com
 End of changes. 30 change blocks. 
100 lines changed or deleted 104 lines changed or added

This html diff was produced by rfcdiff 1.46. The latest version is available from http://tools.ietf.org/tools/rfcdiff/