--- 1/draft-ietf-mboned-ip-mcast-mib-01.txt 2006-07-17 22:12:50.000000000 +0200 +++ 2/draft-ietf-mboned-ip-mcast-mib-02.txt 2006-07-17 22:12:50.000000000 +0200 @@ -1,21 +1,21 @@ MBONED WG D. McWalter Internet-Draft Data Connection Ltd -Expires: December 7, 2006 D. Thaler +Expires: January 18, 2007 D. Thaler Microsoft Corporation Obsoletes (if approved): RFC2932 A. Kessler Cisco Systems - June 5, 2006 + July 17, 2006 IP Multicast MIB - draft-ietf-mboned-ip-mcast-mib-01.txt + draft-ietf-mboned-ip-mcast-mib-02.txt Status of this Memo By submitting this Internet-Draft, each author represents that any applicable patent or other IPR claims of which he or she is aware have been or will be disclosed, and any of which he or she becomes aware will be disclosed, in accordance with Section 6 of BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that @@ -26,85 +26,87 @@ and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. - This Internet-Draft will expire on December 7, 2006. + This Internet-Draft will expire on January 18, 2007. Copyright Notice Copyright (C) The Internet Society (2006). Abstract This memo defines a portion of the Management Information Base (MIB) for use with network management protocols in the Internet community. In particular, it describes objects used for managing multicast function, independent of the specific multicast protocol(s) in use. This document obsoletes RFC 2932. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. History . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3. The Internet-Standard Management Framework . . . . . . . . . . 3 4. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 5. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 4 - 6. Security Considerations . . . . . . . . . . . . . . . . . . . 41 - 6.1 SNMPv2 . . . . . . . . . . . . . . . . . . . . . . . . . . 41 - 6.2 Writeable objects . . . . . . . . . . . . . . . . . . . . 41 - 6.3 Readable objects . . . . . . . . . . . . . . . . . . . . . 42 - 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 44 - 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 44 - 9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 45 - 9.1 Normative References . . . . . . . . . . . . . . . . . . . 45 - 9.2 Informative References . . . . . . . . . . . . . . . . . . 45 - Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 46 - Intellectual Property and Copyright Statements . . . . . . . . 48 + 6. Security Considerations . . . . . . . . . . . . . . . . . . . 45 + 6.1 SNMPv2 . . . . . . . . . . . . . . . . . . . . . . . . . . 46 + 6.2 Writeable objects . . . . . . . . . . . . . . . . . . . . 46 + 6.3 Readable objects . . . . . . . . . . . . . . . . . . . . . 47 + 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 48 + 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 48 + 9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 48 + 9.1 Normative References . . . . . . . . . . . . . . . . . . . 48 + 9.2 Informative References . . . . . . . . . . . . . . . . . . 49 + Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 50 + Intellectual Property and Copyright Statements . . . . . . . . 52 1. Introduction This MIB describes objects used for managing IP multicast function, including IP multicast routing. These objects are independent of the specific multicast routing protocol in use. Managed objects specific to particular multicast protocols are defined elsewhere. 2. History This document obsoletes [RFC2932]. The MIB module defined by this document is a re-working of the MIB module from [RFC2932], with changes that include the following. - o This MIB module is independent of address type, whereas [RFC2932] - only supported IPv4. + o This MIB module is includes support for IPv6 addressing and the + IPv6 scoped address architecture. [RFC2932] supported only IPv4. o This MIB module allows several multicast protocols to perform routing on a single interface, where [RFC2932] assumed each interface supported at most one multicast routing protocol. o This MIB module includes objects that are not specific to multicast routing. It allows management of multicast function on systems that do not perform routing, whereas RFC 2932 was restricted to multicast routing. o This MIB module includes a table of Source-Specific Multicast (SSM) address ranges to which SSM semantics [RFC3569] should be applied. o This MIB module includes a table of local applications that are receiving multicast data. + o This MIB module includes a table of multicast scope zones. + The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119]. 3. The Internet-Standard Management Framework For a detailed overview of the documents that describe the current Internet-Standard Management Framework, please refer to section 7 of [RFC3410]. @@ -161,21 +163,22 @@ RowStatus, TEXTUAL-CONVENTION, TruthValue, StorageType, TimeStamp FROM SNMPv2-TC MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF SnmpAdminString FROM SNMP-FRAMEWORK-MIB InterfaceIndexOrZero, InterfaceIndex FROM IF-MIB IANAipRouteProtocol, IANAipMRouteProtocol FROM IANA-RTPROTO-MIB InetAddress, InetAddressType, - InetAddressPrefixLength FROM INET-ADDRESS-MIB; + InetAddressPrefixLength, + InetZoneIndex FROM INET-ADDRESS-MIB; ipMcastMIB MODULE-IDENTITY ORGANIZATION "IETF MBONED Working Group" CONTACT-INFO "David McWalter Data Connection Limited 100 Church Street Enfield, EN2 6BQ UK Phone: +44 208 366 1177 @@ -329,21 +332,21 @@ "The ifIndex value of the interface for which this entry contains information." ::= { ipMcastInterfaceEntry 1 } ipMcastInterfaceTtl OBJECT-TYPE SYNTAX Unsigned32 (0..255) MAX-ACCESS read-write STATUS current DESCRIPTION "The datagram TTL threshold for the interface. Any IP - multicast datagrams with a TTL (IPv4) or Hop Count (IPv6) + multicast datagrams with a TTL (IPv4) or Hop Limit (IPv6) less than this threshold will not be forwarded out the interface. The default value of 0 means all multicast packets are forwarded out the interface." DEFVAL { 0 } ::= { ipMcastInterfaceEntry 2 } ipMcastInterfaceProtocol OBJECT-TYPE SYNTAX IANAipMRouteProtocol MAX-ACCESS read-write STATUS deprecated @@ -488,21 +491,23 @@ "This table is used to create and manage the range(s) of group addresses to which SSM semantics should be applied." REFERENCE "RFC 3569" ::= { ipMcast 8 } ipMcastSsmRangeEntry OBJECT-TYPE SYNTAX IpMcastSsmRangeEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION - "An entry (conceptual row) in the ssmRangeTable." + "An entry (conceptual row) containing a range of group + addresses to which SSM semantics should be applied." + REFERENCE "RFC 3569" INDEX { ipMcastSsmRangeAddressType, ipMcastSsmRangeAddress, ipMcastSsmRangePrefixLength } ::= { ipMcastSsmRangeTable 1 } IpMcastSsmRangeEntry ::= SEQUENCE { ipMcastSsmRangeAddressType InetAddressType, ipMcastSsmRangeAddress InetAddress, ipMcastSsmRangePrefixLength InetAddressPrefixLength, ipMcastSsmRangeRowStatus RowStatus, @@ -517,51 +522,61 @@ "The address type of the multicast group prefix." ::= { ipMcastSsmRangeEntry 1 } ipMcastSsmRangeAddress OBJECT-TYPE SYNTAX InetAddress (SIZE (4|8|16|20)) MAX-ACCESS not-accessible STATUS current DESCRIPTION "The multicast group address which, when combined with ipMcastSsmRangePrefixLength, gives the group prefix for this - SSM range. The InetAddressType is given by the - ipMcastSsmRangeAddressType object. + SSM range. The InetAddressType is given by + ipMcastSsmRangeAddressType. This address object is only significant up to ipMcastSsmRangePrefixLength bits. The remainder of the address bits are zero. This is especially important for this index field, which is part of the index of this entry. Any non-zero bits would signify an entirely different entry. - For IPv6 SSM address ranges, only ranges within the space - FF3x::/32 are permitted (where 'x' is any valid scope). + For IPv6 SSM address ranges, only ranges prefixed by + FF3x::/16 are permitted, where 'x' is a valid IPv6 RFC 4291 + multicast address scope. The syntax of the address range is + given by RFC 3306 sections 4 and 7. - To configure non-global scope SSM range entries within a - zone, consistent ipMcastBoundaryTable entries are required - on routers at the zone boundary." - REFERENCE "RFC 4291 section 2.7 and RFC 3306 section 6" + For addresses of type ipv4z or ipv6z, the appended zone + index is significant even though it lies beyond the prefix + length. The use of these address types indicate that this + SSM range entry applies only within the given zone. Zone + index zero is not valid in this table. + + If non-global scope SSM range entries are present, then + consistent ipMcastBoundaryTable entries are required on + routers at the zone boundary." + REFERENCE "RFC 2365, RFC 4291 section 2.7, RFC 3306 sections 4, 6 + and 7" ::= { ipMcastSsmRangeEntry 2 } ipMcastSsmRangePrefixLength OBJECT-TYPE SYNTAX InetAddressPrefixLength (4..128) MAX-ACCESS not-accessible STATUS current DESCRIPTION - "The multicast group prefix length, which, when combined - with ipMcastSsmRangeAddress, gives the group prefix for this - SSM range. The InetAddressType is given by the - ipMcastSsmRangeAddressType object. If - 'ipv4' or 'ipv4z', this object must be in the range 4..32. - If ipMcastSsmRangeAddressType is 'ipv6' or 'ipv6z', this - object must be in the range 8..128." + "The length in bits of the mask which, when combined with + ipMcastSsmRangeAddress, gives the group prefix for this SSM + range. The InetAddressType is given by + ipMcastSsmRangeAddressType. For values 'ipv4' and 'ipv4z', + this object must be in the range 4..32. For values 'ipv6' + and 'ipv6z', this object must be in the range 8..128." + REFERENCE "RFC 2365, RFC 4291 section 2.7, RFC 3306 sections 4, 6 + and 7" ::= { ipMcastSsmRangeEntry 3 } ipMcastSsmRangeRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "The status of this row, by which rows in this table can be created and destroyed. @@ -628,99 +643,101 @@ ipMcastRoutePkts Counter32, ipMcastRouteDifferentInIfPackets Counter32, ipMcastRouteOctets Counter32, ipMcastRouteProtocol IANAipMRouteProtocol, ipMcastRouteRtProtocol IANAipRouteProtocol, ipMcastRouteRtAddressType InetAddressType, ipMcastRouteRtAddress InetAddress, ipMcastRouteRtPrefixLength InetAddressPrefixLength, ipMcastRouteRtType INTEGER, ipMcastRouteHCOctets Counter64, - ipMcastRouteDifferentInIfOctets Counter32 + ipMcastRouteDifferentInIfOctets Counter32, + ipMcastRouteTtlDropPackets Counter32, + ipMcastRouteTtlDropOctets Counter32 } ipMcastRouteGroupAddressType OBJECT-TYPE SYNTAX InetAddressType MAX-ACCESS not-accessible STATUS current DESCRIPTION "A value indicating the address family of the address contained in ipMcastRouteGroup. Legal values correspond to the subset of address families for which multicast forwarding is supported." ::= { ipMcastRouteEntry 1 } ipMcastRouteGroup OBJECT-TYPE SYNTAX InetAddress (SIZE (0|4|8|16|20)) MAX-ACCESS not-accessible STATUS current DESCRIPTION - "The IP multicast group address which when combined with the - corresponding value specified in - ipMcastRouteGroupPrefixLength identifies the groups for + "The IP multicast group address which, when combined with + the corresponding value specified in + ipMcastRouteGroupPrefixLength, identifies the groups for which this entry contains multicast routing information. This address object is only significant up to ipMcastRouteGroupPrefixLength bits. The remainder of the address bits are zero. This is especially important for this index field, which is part of the index of this entry. Any non-zero bits would signify an entirely different entry." ::= { ipMcastRouteEntry 2 } ipMcastRouteGroupPrefixLength OBJECT-TYPE SYNTAX InetAddressPrefixLength (4..128) MAX-ACCESS not-accessible STATUS current DESCRIPTION - "The length in bits of the mask which when combined with the - corresponding value of ipMcastRouteGroup identifies the + "The length in bits of the mask which, when combined with + the corresponding value of ipMcastRouteGroup, identifies the groups for which this entry contains multicast routing information." ::= { ipMcastRouteEntry 3 } ipMcastRouteSourceAddressType OBJECT-TYPE SYNTAX InetAddressType MAX-ACCESS not-accessible STATUS current DESCRIPTION "A value indicating the address family of the address contained in ipMcastRouteSource. The value MUST be the same as the value of ipMcastRouteGroupType." ::= { ipMcastRouteEntry 4 } ipMcastRouteSource OBJECT-TYPE SYNTAX InetAddress (SIZE (0|4|8|16|20)) MAX-ACCESS not-accessible STATUS current DESCRIPTION - "The network address which when combined with the - corresponding value of ipMcastRouteSourcePrefixLength + "The network address which, when combined with the + corresponding value of ipMcastRouteSourcePrefixLength, identifies the sources for which this entry contains multicast routing information. This address object is only significant up to ipMcastRouteGroupPrefixLength bits. The remainder of the address bits are zero. This is especially important for this index field, which is part of the index of this entry. Any non-zero bits would signify an entirely different entry." ::= { ipMcastRouteEntry 5 } ipMcastRouteSourcePrefixLength OBJECT-TYPE SYNTAX InetAddressPrefixLength (4..128) MAX-ACCESS not-accessible STATUS current DESCRIPTION - "The length in bits of the mask which when combined with the - corresponding value of ipMcastRouteSource identifies the - sources for which this entry contains multicast routing + "The length in bits of the mask which, when combined with + the corresponding value of ipMcastRouteSource, identifies + the sources for which this entry contains multicast routing information." ::= { ipMcastRouteEntry 6 } ipMcastRouteUpstreamNeighborType OBJECT-TYPE SYNTAX InetAddressType MAX-ACCESS read-only STATUS current DESCRIPTION "A value indicating the address family of the address contained in ipMcastRouteUpstreamNeighbor. The value MUST @@ -792,30 +809,37 @@ the value of ipMcastRouteTimeStamp." ::= { ipMcastRouteEntry 12 } ipMcastRouteDifferentInIfPackets OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of packets which this router has received from these sources and addressed to this multicast group address, - which were dropped because they were not received on the - interface indicated by ipMcastRouteInIfIndex. Packets which - are not subject to an incoming interface check (for example, - using BIDIR-PIM) are not counted. + which were dropped because they were received on an + unexpected interface. + + For RPF checking protocols (such as PIM-SM), these packets + arrived on interfaces other than ipMcastRouteInIfIndex, and + were dropped because of this failed RPF check. (RPF paths + are 'Reverse Path Forwarding' path; the unicast routes to + the expected origin of multicast data flows). + + Other protocols may drop packets on an incoming interface + check for different reasons (for example, BIDIR-PIM performs + a DF check on receipt of packets). All packets dropped as a + result of an incoming interface check are counted here. If this counter increases rapidly, this indicates a problem. A significant quantity of multicast data is arriving at this - router on unexpected RPF paths (Reverse Path Forwarding - paths; the unicast routes to the expected origin of - multicast data flows), and is not being forwarded. + router on unexpected interfaces, and is not being forwarded. For guidance, if the rate of increase of this counter exceeds 1% of the rate of increase of ipMcastRoutePkts, then there are multicast routing problems that require investigation. Discontinuities in this monotonically increasing value occur at re-initialization of the management system. Discontinuities can also occur as a result of routes being removed and replaced, which can be detected by observing @@ -881,23 +904,23 @@ This address object is only significant up to ipMcastRouteGroupPrefixLength bits. The remainder of the address bits are zero." ::= { ipMcastRouteEntry 18 } ipMcastRouteRtPrefixLength OBJECT-TYPE SYNTAX InetAddressPrefixLength (4..128) MAX-ACCESS read-only STATUS current DESCRIPTION - "The length of the mask associated with the route used to - find the upstream or parent interface for this multicast - forwarding entry." + "The length in bits of the mask associated with the route + used to find the upstream or parent interface for this + multicast forwarding entry." ::= { ipMcastRouteEntry 19 } ipMcastRouteRtType OBJECT-TYPE SYNTAX INTEGER { unicast (1), -- Unicast route used in multicast RIB multicast (2) -- Multicast route } MAX-ACCESS read-only STATUS current DESCRIPTION @@ -929,43 +952,85 @@ ::= { ipMcastRouteEntry 21 } ipMcastRouteDifferentInIfOctets OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of octets contained in IP datagrams which this router has received from these sources and addressed to this multicast group address, which were dropped because they - were not received on the interface indicated by - ipMcastRouteInIfIndex. Octets in IP datagrams which are not - subject to an incoming interface check (for example, using - BIDIR-PIM) are not counted. + were received on an unexpected interface. + + For RPF checking protocols (such as PIM-SM), these packets + arrived on interfaces other than ipMcastRouteInIfIndex, and + were dropped because of this failed RPF check. (RPF paths + are 'Reverse Path Forwarding' path; the unicast routes to + the expected origin of multicast data flows). + + Other protocols may drop packets on an incoming interface + check for different reasons (for example, BIDIR-PIM performs + a DF check on receipt of packets). All packets dropped as a + result of an incoming interface check are counted here. If this counter increases rapidly, this indicates a problem. A significant quantity of multicast data is arriving at this - router on unexpected RPF paths (Reverse Path Forwarding - paths; the unicast routes to the expected origin of - multicast data flows), and is not being forwarded. + router on unexpected interfaces, and is not being forwarded. For guidance, if the rate of increase of this counter exceeds 1% of the rate of increase of ipMcastRouteOctets, then there are multicast routing problems that require investigation. Discontinuities in this monotonically increasing value occur at re-initialization of the management system. Discontinuities can also occur as a result of routes being removed and replaced, which can be detected by observing the value of ipMcastRouteTimeStamp." ::= { ipMcastRouteEntry 22 } +ipMcastRouteTtlDropPackets OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of packets which this router has received from + these sources and addressed to this multicast group address, + which were dropped because the TTL (IPv4) or Hop Limit + (IPv6) was decremented to zero, or to a value less than + ipMcastInterfaceTtl for all next hops. + + Discontinuities in this monotonically increasing value + occur at re-initialization of the management system. + Discontinuities can also occur as a result of routes being + removed and replaced, which can be detected by observing + the value of ipMcastRouteTimeStamp." + ::= { ipMcastRouteEntry 23 } + +ipMcastRouteTtlDropOctets OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of octets contained in IP datagrams which this + router has received from these sources and addressed to this + multicast group address, which were dropped because the TTL + (IPv4) or Hop Limit (IPv6) was decremented to zero, or to a + value less than ipMcastInterfaceTtl for all next hops. + + Discontinuities in this monotonically increasing value + occur at re-initialization of the management system. + Discontinuities can also occur as a result of routes being + removed and replaced, which can be detected by observing + the value of ipMcastRouteTimeStamp." + ::= { ipMcastRouteEntry 24 } + -- -- The IP Multicast Routing Next Hop Table -- ipMcastRouteNextHopTable OBJECT-TYPE SYNTAX SEQUENCE OF IpMcastRouteNextHopEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The (conceptual) table containing information on the @@ -1040,43 +1105,43 @@ "A value indicating the address family of the address contained in ipMcastRouteNextHopSource. The value MUST be the same as the value of ipMcastRouteNextHopGroupType." ::= { ipMcastRouteNextHopEntry 3 } ipMcastRouteNextHopSource OBJECT-TYPE SYNTAX InetAddress (SIZE (0|4|8|16|20)) MAX-ACCESS not-accessible STATUS current DESCRIPTION - "The network address which when combined with the + "The network address which, when combined with the corresponding value of the mask specified in - ipMcastRouteNextHopSourcePrefixLength identifies the sources - for which this entry specifies a next-hop on an outgoing - interface. + ipMcastRouteNextHopSourcePrefixLength, identifies the + sources for which this entry specifies a next-hop on an + outgoing interface. This address object is only significant up to ipMcastRouteNextHopSourcePrefixLength bits. The remainder of the address bits are zero. This is especially important for this index field, which is part of the index of this entry. Any non-zero bits would signify an entirely different entry." ::= { ipMcastRouteNextHopEntry 4 } ipMcastRouteNextHopSourcePrefixLength OBJECT-TYPE SYNTAX InetAddressPrefixLength (4..128) MAX-ACCESS not-accessible STATUS current DESCRIPTION - "The length in bits of the mask which when combined with the - corresponding value specified in ipMcastRouteNextHopSource - identifies the sources for which this entry specifies a - next-hop on an outgoing interface." + "The length in bits of the mask which, when combined with + the corresponding value specified in + ipMcastRouteNextHopSource, identifies the sources for which + this entry specifies a next-hop on an outgoing interface." ::= { ipMcastRouteNextHopEntry 5 } ipMcastRouteNextHopIfIndex OBJECT-TYPE SYNTAX InterfaceIndex MAX-ACCESS not-accessible STATUS current DESCRIPTION "The ifIndex value of the interface for the outgoing interface for this next-hop." ::= { ipMcastRouteNextHopEntry 6 } @@ -1198,31 +1263,33 @@ -- -- The IP Multicast Scope Boundary Table -- ipMcastBoundaryTable OBJECT-TYPE SYNTAX SEQUENCE OF IpMcastBoundaryEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION - "The (conceptual) table listing the system's scoped - multicast address boundaries." + "The (conceptual) table listing the system's multicast scope + zone boundaries." + REFERENCE "RFC 4007 section 5" ::= { ipMcast 5 } ipMcastBoundaryEntry OBJECT-TYPE SYNTAX IpMcastBoundaryEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION - "An entry (conceptual row) in the ipMcastBoundaryTable - representing a scoped boundary." + "An entry (conceptual row) describing one of this device's + multicast scope zone boundaries." + REFERENCE "RFC 2365 section 5, RFC 4007 section 5" INDEX { ipMcastBoundaryIfIndex, ipMcastBoundaryAddressType, ipMcastBoundaryAddress, ipMcastBoundaryAddressPrefixLength } ::= { ipMcastBoundaryTable 1 } IpMcastBoundaryEntry ::= SEQUENCE { ipMcastBoundaryIfIndex InterfaceIndex, ipMcastBoundaryAddressType InetAddressType, ipMcastBoundaryAddress InetAddress, @@ -1235,65 +1302,88 @@ ipMcastBoundaryHCDroppedMcastPkts Counter64 } ipMcastBoundaryIfIndex OBJECT-TYPE SYNTAX InterfaceIndex MAX-ACCESS not-accessible STATUS current DESCRIPTION "The IfIndex value for the interface to which this boundary applies. Packets with a destination address in the - associated address/mask range will not be forwarded out this - interface." + associated address/mask range will not be forwarded over + this interface. + + For IPv4, zone boundaries cut through links. Therefore this + is an external interface. This may be either a physical or + virtual interface (tunnel, encapsulation, and so forth.) + + For IPv6, zone boundaries cut through nodes. Therefore this + is a virtual interface within the node. This is not an + external interface, either real or virtual. Packets + crossing this interface neither arrive at nor leave the + node, but only move between zones within the node." + REFERENCE "RFC 2365 section 5, RFC 4007 section 5" ::= { ipMcastBoundaryEntry 1 } ipMcastBoundaryAddressType OBJECT-TYPE SYNTAX InetAddressType MAX-ACCESS not-accessible STATUS current DESCRIPTION "A value indicating the address family of the address contained in ipMcastBoundaryAddress. Legal values correspond to the subset of address families for which multicast forwarding is supported." ::= { ipMcastBoundaryEntry 2 } ipMcastBoundaryAddress OBJECT-TYPE SYNTAX InetAddress (SIZE (0|4|8|16|20)) MAX-ACCESS not-accessible STATUS current DESCRIPTION - "The group address which when combined with the - corresponding value of ipMcastBoundaryAddressPrefixLength + "The group address which, when combined with the + corresponding value of ipMcastBoundaryAddressPrefixLength, identifies the group range for which the scoped boundary - exists. Scoped IPv4 addresses must come from the range - 239.x.x.x. Scoped IPv6 addresses must come from range - ff.nn.nn.nn.nn.nn.nn.nn, where nn encodes the scope type and - group identifier. + exists. Scoped IPv4 multicast address ranges must be + prefixed by 239.0.0.0/4. Scoped IPv6 multicast address + ranges are FF0x::/16, where x is a valid RFC 4291 multicast + scope. + + An IPv6 address prefixed by FF1x::/16 is a non-permanently- + assigned address. An IPv6 address prefixed by FF3x::/16 is + a unicast-prefix based multicast addresses. A zone boundary + for FF0x::/16 implies an identical boundary for these other + prefixes. No separate FF1x::/16 or FF3x::/16 entries exist + in this table. This address object is only significant up to ipMcastBoundaryAddressPrefixLength bits. The remainder of the address bits are zero. This is especially important for this index field, which is part of the index of this entry. Any non-zero bits would signify an entirely different entry." - REFERENCE "RFC 2365, RFC 4291" + REFERENCE "RFC 2365, RFC 3306 section 4, RFC 4291 section 2.7" ::= { ipMcastBoundaryEntry 3 } ipMcastBoundaryAddressPrefixLength OBJECT-TYPE - SYNTAX InetAddressPrefixLength (4..128) + SYNTAX InetAddressPrefixLength (4..32) MAX-ACCESS not-accessible STATUS current DESCRIPTION - "The length in bits of the mask which when combined with the - corresponding value of ipMcastBoundaryAddress identifies the - group range for which the scoped boundary exists." + "The length in bits of the mask which when, combined with + the corresponding value of ipMcastBoundaryAddress, + identifies the group range for which the scoped boundary + exists. + + The InetAddressType is given by ipMcastBoundaryAddressType. + For 'ipv4' this object must be in the range 4..32. For + 'ipv6', this object must be 32." ::= { ipMcastBoundaryEntry 4 } ipMcastBoundaryStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "The status of this row, by which rows in this table can be created and destroyed. @@ -1360,29 +1450,31 @@ -- -- The IP Multicast Scope Name Table -- ipMcastScopeNameTable OBJECT-TYPE SYNTAX SEQUENCE OF IpMcastScopeNameEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The (conceptual) table listing multicast scope names." + REFERENCE "RFC 4007 section 4" ::= { ipMcast 6 } ipMcastScopeNameEntry OBJECT-TYPE SYNTAX IpMcastScopeNameEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION - "An entry (conceptual row) in the ipMcastScopeNameTable - representing a multicast scope name." + "An entry (conceptual row) that names a multicast address + scope." + REFERENCE "RFC 4007 section 4" INDEX { ipMcastScopeNameAddressType, ipMcastScopeNameAddress, ipMcastScopeNameAddressPrefixLength, IMPLIED ipMcastScopeNameLanguage } ::= { ipMcastScopeNameTable 1 } IpMcastScopeNameEntry ::= SEQUENCE { ipMcastScopeNameAddressType InetAddressType, ipMcastScopeNameAddress InetAddress, ipMcastScopeNameAddressPrefixLength InetAddressPrefixLength, @@ -1402,70 +1494,94 @@ contained in ipMcastScopeNameAddress. Legal values correspond to the subset of address families for which multicast forwarding is supported." ::= { ipMcastScopeNameEntry 1 } ipMcastScopeNameAddress OBJECT-TYPE SYNTAX InetAddress (SIZE (0|4|8|16|20)) MAX-ACCESS not-accessible STATUS current DESCRIPTION - "The group address which when combined with the - corresponding value of ipMcastScopeNameAddressPrefixLength + "The group address which, when combined with the + corresponding value of ipMcastScopeNameAddressPrefixLength, identifies the group range associated with the multicast - scope. Scoped IPv4 addresses must come from the range - 239.x.x.x. Scoped IPv6 addresses must come from the range - ff.nn.nn.nn.nn.nn.nn.nn, where nn encodes the scope type and - group identifier. + scope. Scoped IPv4 multicast address ranges must be + prefixed by 239.0.0.0/4. Scoped IPv6 multicast address + ranges are FF0x::/16, where x is a valid RFC 4291 multicast + scope. + + An IPv6 address prefixed by FF1x::/16 is a non-permanently- + assigned address. An IPv6 address prefixed by FF3x::/16 is + a unicast-prefix based multicast addresses. A scope + FF0x::/16 implies an identical scope name for these other + prefixes. No separate FF1x::/16 or FF3x::/16 entries exist + in this table. This address object is only significant up to ipMcastScopeNameAddressPrefixLength bits. The remainder of the address bits are zero. This is especially important for this index field, which is part of the index of this entry. Any non-zero bits would signify an entirely different entry." - REFERENCE "RFC 2365, RFC 4291" + REFERENCE "RFC 2365, RFC 3306 section 4, RFC 4291 section 2.7" ::= { ipMcastScopeNameEntry 2 } ipMcastScopeNameAddressPrefixLength OBJECT-TYPE - SYNTAX InetAddressPrefixLength (4..128) + SYNTAX InetAddressPrefixLength (4..32) MAX-ACCESS not-accessible STATUS current DESCRIPTION - "The length in bits of the mask which when combined with the - corresponding value of ipMcastScopeNameAddress identifies - the group range associated with the multicast scope." + "The length in bits of the mask which, when combined with + the corresponding value of ipMcastScopeNameAddress, + identifies the group range associated with the multicast + scope. + + The InetAddressType is given by ipMcastScopeNameAddressType. + For 'ipv4' this object must be in the range 4..32. For + 'ipv6', this object must be 32." ::= { ipMcastScopeNameEntry 3 } ipMcastScopeNameLanguage OBJECT-TYPE SYNTAX LanguageTag MAX-ACCESS not-accessible STATUS current DESCRIPTION "Language tag associated with the scope name." REFERENCE "RFC 3283" ::= { ipMcastScopeNameEntry 4 } ipMcastScopeNameString OBJECT-TYPE SYNTAX SnmpAdminString MAX-ACCESS read-create STATUS current DESCRIPTION "The textual name associated with the multicast scope. The value of this object should be suitable for displaying to end-users, such as when allocating a multicast address in - this scope. When no name is specified, the default value of - this object for IPv4 should be the string 239.x.x.x/y with x - and y replaced appropriately to describe the address and - mask length associated with the scope. Scoped IPv6 - addresses must come from range ff.nn.nn.nn.nn.nn.nn.nn, - where nn encodes the scope type and group identifier." + this scope. + + When no name is specified, the default value of this object + for IPv4 should is the string 239.x.x.x/y with x and y + replaced with decimal values to describe the address and + mask length associated with the scope. + + When no name is specified, the default value of this object + for IPv6 should is the string FF0x::/16, with x replaced by + the hexadecimal value for the RFC 4291 multicast scope. + + An IPv6 address prefixed by FF1x::/16 is a non-permanently- + assigned address. An IPv6 address prefixed by FF3x::/16 is + a unicast-prefix based multicast addresses. A scope + FF0x::/16 implies an identical scope name for these other + prefixes. No separate FF1x::/16 or FF3x::/16 entries exist + in this table." + REFERENCE "RFC 2365, RFC 3306 section 4, RFC 4291 section 2.7" ::= { ipMcastScopeNameEntry 5 } ipMcastScopeNameDefault OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-create STATUS current DESCRIPTION "If true, indicates a preference that the name in the following language should be used by applications if no name is available in a desired language." @@ -1510,21 +1626,22 @@ Entries exist for all addresses in the multicast range for all applications and services as they are classified on this device." ::= { ipMcast 9 } ipMcastLocalListenerEntry OBJECT-TYPE SYNTAX IpMcastLocalListenerEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION - "An entry (conceptual row) in the LocalListenerTable." + "An entry (conceptual row) identifying a local application + or service that has joined a multicast group as a listener." INDEX { ipMcastLocalListenerGroupAddressType, ipMcastLocalListenerGroupAddress, ipMcastLocalListenerSourceAddressType, ipMcastLocalListenerSourceAddress, ipMcastLocalListenerSourcePrefixLength, ipMcastLocalListenerRunIndex } ::= { ipMcastLocalListenerTable 1 } IpMcastLocalListenerEntry ::= SEQUENCE { ipMcastLocalListenerGroupAddressType InetAddressType, @@ -1563,43 +1680,43 @@ "A value indicating the address family of the address contained in ipMcastLocalListenerSource. The value MUST be the same as the value of ipMcastLocalListenerAddressType." ::= { ipMcastLocalListenerEntry 3 } ipMcastLocalListenerSourceAddress OBJECT-TYPE SYNTAX InetAddress (SIZE (0|4|8|16|20)) MAX-ACCESS not-accessible STATUS current DESCRIPTION - "The network address which when combined with the + "The network address which, when combined with the corresponding value of the mask specified in - ipMcastLocalListenerSourcePrefixLength identifies the + ipMcastLocalListenerSourcePrefixLength, identifies the sources for which this entry specifies a local listener. This address object is only significant up to ipMcastLocalListenerSourcePrefixLength bits. The remainder of the address bits are zero. This is especially important for this index field, which is part of the index of this entry. Any non-zero bits would signify an entirely different entry." ::= { ipMcastLocalListenerEntry 4 } ipMcastLocalListenerSourcePrefixLength OBJECT-TYPE SYNTAX InetAddressPrefixLength (4..128) MAX-ACCESS not-accessible STATUS current DESCRIPTION - "The length in bits of the mask which when combined with the - corresponding value specified in ipMcastLocalListenerSource - identifies the sources for which this entry specifies a - locally listener. A mask length of zero corresponds to all - sources within the group." + "The length in bits of the mask which, when combined with + the corresponding value specified in + ipMcastLocalListenerSource, identifies the sources for which + this entry specifies a local listener. A mask length of + zero corresponds to all sources within the group." ::= { ipMcastLocalListenerEntry 5 } ipMcastLocalListenerRunIndex OBJECT-TYPE SYNTAX Unsigned32 (0..2147483647) MAX-ACCESS read-only STATUS current DESCRIPTION "A unique value corresponding to a piece of software running on this router or host system. Where possible, this should be the system's native, unique identification number. @@ -1608,20 +1725,129 @@ a process ID or application instance number. A value of zero indicates that the application instance(s) cannot be identified. A value of zero indicates that one or more unidentified applications have joined the specified multicast groups (for the specified sources) as listeners." REFERENCE "RFC 2287 sysApplRunIndex" ::= { ipMcastLocalListenerEntry 6 } -- +-- The Multicast Zone Table +-- + +ipMcastZoneTable OBJECT-TYPE + SYNTAX SEQUENCE OF IpMcastZoneEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The (conceptual) table listing scope zones on this device." + REFERENCE "RFC 4007 section 5" + ::= { ipMcast 10 } + +ipMcastZoneEntry OBJECT-TYPE + SYNTAX IpMcastZoneEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An entry (conceptual row) describing a scope zone on this + device." + REFERENCE "RFC 4007 section 5" + INDEX { ipMcastZoneIndex } + ::= { ipMcastZoneTable 1 } + +IpMcastZoneEntry ::= SEQUENCE { + ipMcastZoneIndex InetZoneIndex, + ipMcastZoneScopeDefaultZoneIndex InetZoneIndex, + ipMcastZoneScopeAddressType InetAddressType, + ipMcastZoneScopeAddress InetAddress, + ipMcastZoneScopeAddressPrefixLength InetAddressPrefixLength +} + +ipMcastZoneIndex OBJECT-TYPE + SYNTAX InetZoneIndex (1..4294967295) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This zone index uniquely identifies a zone on a device. + + Each zone is for a given scope. Scope-level information in + this table is for the unique scope that corresponds to this + zone. + + Zero is a special value used to request the default zone for + a given scope. Zero is not a valid value for this object." + ::= { ipMcastZoneEntry 1 } + +ipMcastZoneScopeDefaultZoneIndex OBJECT-TYPE + SYNTAX InetZoneIndex (1..4294967295) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The default zone index for this scope. This is the zone + that this device will use if the default (zero) zone is + requested for this scope. + + Zero is not a valid value for this object." + ::= { ipMcastZoneEntry 2 } + +ipMcastZoneScopeAddressType OBJECT-TYPE + SYNTAX InetAddressType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The IP address type for which this scope zone exists." + ::= { ipMcastZoneEntry 3 } + +ipMcastZoneScopeAddress OBJECT-TYPE + SYNTAX InetAddress (SIZE (4|16)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The multicast group address which, when combined with + ipMcastZoneScopeAddressPrefixLength, gives the multicast + address range for this scope. The InetAddressType is given + given by ipMcastZoneScopeAddressType. + + Scoped IPv4 multicast address ranges are prefixed by + prefixed by 239.0.0.0/4. Scoped IPv6 multicast address + ranges are FF0x::/16, where x is a valid RFC 4291 multicast + scope. + + An IPv6 address prefixed by FF1x::/16 is a non-permanently- + assigned address. An IPv6 address prefixed by FF3x::/16 is + a unicast-prefix based multicast addresses. A scope + FF0x::/16 implies an identical scope for these other + prefixes. No separate FF1x::/16 or FF3x::/16 entries exist + in this table. + + This address object is only significant up to + ipMcastSsmRangePrefixLength bits. The remainder of the + address bits are zero." + REFERENCE "RFC 2365, RFC 3306 section 4, RFC 4291 section 2.7" + ::= { ipMcastZoneEntry 4 } + +ipMcastZoneScopeAddressPrefixLength OBJECT-TYPE + SYNTAX InetAddressPrefixLength (4..32) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The length in bits of the mask which, when combined + with ipMcastZoneScopeAddress, gives the multicast address + prefix for this scope. + + The InetAddressType is given by ipMcastZoneAddressType. + For 'ipv4' this object must be in the range 4..32. For + 'ipv6', this object must be 32." + ::= { ipMcastZoneEntry 5 } + +-- -- Conformance information -- ipMcastMIBConformance OBJECT IDENTIFIER ::= { ipMcastMIB 2 } ipMcastMIBCompliances OBJECT IDENTIFIER ::= { ipMcastMIBConformance 1 } ipMcastMIBGroups OBJECT IDENTIFIER ::= { ipMcastMIBConformance 2 } -- @@ -1826,21 +2053,23 @@ ipMcastRoutePkts, ipMcastRouteDifferentInIfPackets, ipMcastRouteOctets, ipMcastRouteNextHopState, ipMcastRouteNextHopTimeStamp, ipMcastRouteNextHopExpiryTime, ipMcastRouteNextHopProtocol, ipMcastRouteNextHopPkts, ipMcastInterfaceTtl, ipMcastInterfaceRateLimit, ipMcastInterfaceInMcastOctets, - ipMcastInterfaceOutMcastOctets + ipMcastInterfaceOutMcastOctets, + ipMcastRouteTtlDropPackets, + ipMcastRouteTtlDropOctets } STATUS current DESCRIPTION "A collection of objects to support basic management of IP Multicast routing." ::= { ipMcastMIBGroups 7 } ipMcastMIBSsmGroup OBJECT-GROUP OBJECTS { ipMcastSsmRangeRowStatus, ipMcastSsmRangeStorageType } STATUS current @@ -1854,21 +2083,26 @@ STATUS current DESCRIPTION "A collection of objects to support management of local listeners on hosts or routers." ::= { ipMcastMIBGroups 9 } ipMcastMIBBoundaryIfGroup OBJECT-GROUP OBJECTS { ipMcastBoundaryStatus, ipMcastBoundaryStorageType, ipMcastBoundaryDroppedMcastOctets, - ipMcastBoundaryDroppedMcastPkts } + ipMcastBoundaryDroppedMcastPkts, + ipMcastZoneScopeDefaultZoneIndex, + ipMcastZoneScopeAddressType, + ipMcastZoneScopeAddress, + ipMcastZoneScopeAddressPrefixLength + } STATUS current DESCRIPTION "A collection of objects to support management of scoped multicast address boundaries." ::= { ipMcastMIBGroups 10 } ipMcastMIBScopeNameGroup OBJECT-GROUP OBJECTS { ipMcastScopeNameString, ipMcastScopeNameDefault, ipMcastScopeNameStatus, ipMcastScopeNameStorageType } STATUS current @@ -1997,97 +2231,36 @@ also be used in preparation for attacks, including any of the attacks described above. o Determinion of whether multicast data is flowing in the network, or has flowed recently, as well as the locations of senders and recipients. An attacker can apply 'traffic analysis' to this data. In some cases, the information revealed by traffic analyses can be as damaging as full knowledge of the data being transported. - The following are the read-only objects defined in this MIB module. - - ipMcastRouteEntryCount - ipMcastInterfaceInMcastOctets - ipMcastInterfaceOutMcastOctets - ipMcastInterfaceInMcastPkts - ipMcastInterfaceOutMcastPkts - ipMcastInterfaceHCInMcastOctets - ipMcastInterfaceHCOutMcastOctets - ipMcastInterfaceHCInMcastPkts - ipMcastInterfaceHCOutMcastPkts - ipMcastRouteTable - ipMcastRouteEntry - ipMcastRouteGroupAddressType - ipMcastRouteGroup - ipMcastRouteGroupPrefixLength - ipMcastRouteSourceAddressType - ipMcastRouteSource - ipMcastRouteSourcePrefixLength - ipMcastRouteUpstreamNeighborType - ipMcastRouteUpstreamNeighbor - ipMcastRouteInIfIndex - ipMcastRouteTimeStamp - ipMcastRouteExpiryTime - ipMcastRoutePkts - ipMcastRouteDifferentInIfPackets - ipMcastRouteOctets - ipMcastRouteProtocol - ipMcastRouteRtProtocol - ipMcastRouteRtAddressType - ipMcastRouteRtAddress - ipMcastRouteRtPrefixLength - ipMcastRouteRtType - ipMcastRouteHCOctets - ipMcastRouteDifferentInIfOctets - ipMcastRouteNextHopTable - ipMcastRouteNextHopEntry - ipMcastRouteNextHopGroupAddressType - ipMcastRouteNextHopGroup - ipMcastRouteNextHopSourceAddressType - ipMcastRouteNextHopSource - ipMcastRouteNextHopSourcePrefixLength - ipMcastRouteNextHopIfIndex - ipMcastRouteNextHopAddressType - ipMcastRouteNextHopAddress - ipMcastRouteNextHopState - ipMcastRouteNextHopTimeStamp - ipMcastRouteNextHopExpiryTime - ipMcastRouteNextHopClosestMemberHops - ipMcastRouteNextHopProtocol - ipMcastRouteNextHopPkts - ipMcastRouteNextHopOctets - ipMcastLocalListenerTable - ipMcastLocalListenerEntry - ipMcastLocalListenerGroupAddressType - ipMcastLocalListenerGroupAddress - ipMcastLocalListenerSourceAddressType - ipMcastLocalListenerSourceAddress - ipMcastLocalListenerSourcePrefixLength - ipMcastLocalListenerRunIndex - 7. IANA Considerations IP-MCAST-MIB should be rooted under the mib-2 subtree. IANA is requested to assign { mib-2 XXX } to the IP-MCAST-MIB module specified in this document. 8. Acknowledgements This MIB module is based on the original work in [RFC2932] by K. McCloghrie, D. Farinacci and D. Thaler. Suggested IPv6 multicast MIBs by R. Sivaramu and R. Raghunarayan have been used for comparison while editing this MIB module. - The authors are also grateful to Bharat Joshi for his input and for - several corrections. + The authors are also grateful to Bill Fenner for fine ideas, and to + Bharat Joshi for input and several corrections. 9. References 9.1 Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC2365] Meyer, D., "Administratively Scoped IP Multicast", BCP 23, RFC 2365, July 1998. @@ -2110,27 +2283,28 @@ [RFC2863] McCloghrie, K. and F. Kastenholz, "The Interfaces Group MIB", RFC 2863, June 2000. [RFC3283] Mahoney, B., Babics, G., and A. Taler, "Guide to Internet Calendaring", RFC 3283, June 2002. [RFC3306] Haberman, B. and D. Thaler, "Unicast-Prefix-based IPv6 Multicast Addresses", RFC 3306, August 2002. - [RFC3569] Bhattacharyya, S., "An Overview of Source-Specific - Multicast (SSM)", RFC 3569, July 2003. - [RFC4001] Daniele, M., Haberman, B., Routhier, S., and J. Schoenwaelder, "Textual Conventions for Internet Network Addresses", RFC 4001, February 2005. + [RFC4007] Deering, S., Haberman, B., Jinmei, T., Nordmark, E., and + B. Zill, "IPv6 Scoped Address Architecture", RFC 4007, + March 2005. + [RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing Architecture", RFC 4291, February 2006. 9.2 Informative References [RFC1075] Waitzman, D., Partridge, C., and S. Deering, "Distance Vector Multicast Routing Protocol", RFC 1075, November 1988. [RFC1584] Moy, J., "Multicast Extensions to OSPF", RFC 1584, @@ -2148,20 +2322,23 @@ Multicast Routing MIB", RFC 2932, October 2000. [RFC2934] McCloghrie, K., Farinacci, D., Thaler, D., and B. Fenner, "Protocol Independent Multicast MIB for IPv4", RFC 2934, October 2000. [RFC3410] Case, J., Mundy, R., Partain, D., and B. Stewart, "Introduction and Applicability Statements for Internet- Standard Management Framework", RFC 3410, December 2002. + [RFC3569] Bhattacharyya, S., "An Overview of Source-Specific + Multicast (SSM)", RFC 3569, July 2003. + [I-D.ietf-pim-sm-v2-new] Fenner, B., Handley, M., Holbrook, H., and I. Kouvelas, "Protocol Independent Multicast - Sparse Mode PIM-SM): Protocol Specification (Revised)", draft-ietf-pim-sm-v2-new-12 (work in progress), March 2006. [I-D.ietf-pim-bidir] Handley, M., Kouvelas, I., Speakman, T., and L. Vicisano, "Bi-directional Protocol Independent Multicast (BIDIR-