Softwire Y. Fu Internet Draft S. Jiang Intended status: Standards Track Huawei Technologies Co., Ltd Expires: July 13, 2013 J. Dong Y. Chen Tsinghua University January 10, 2013 DS-Lite Management Information Base (MIB) draft-ietf-softwire-dslite-mib-01 Status of this Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at http://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months 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." This Internet-Draft will expire on July 13, 2013. Copyright Notice Copyright (c) 2013 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Fu, et al. Expires July 13, 2013 [Page 1] Internet-Draft draft-ietf-softwire-dslite-mib-01.txt January 2013 Abstract This memo defines a portion of the Management Information Base (MIB) for using with network management protocols in the Internet community. In particular, it defines managed objects for DS-Lite. Table of Contents 1. Introduction ................................................. 3 2. The Internet-Standard Management Framework ................... 3 3. Terminology .................................................. 3 4. Difference from the IP tunnel MIB and NAT MIB ................ 3 5. Relationship to the IF-MIB ................................... 5 6. Structure of the MIB Module .................................. 5 6.1. The dsliteTunnel Subtree ................................ 5 6.2. The dsliteNAT Subtree ................................... 5 6.3. The dsliteInfo Subtree .................................. 6 6.4. The dsliteTrap Subtree .................................. 6 6.5. The dsliteConformance Subtree ........................... 6 7. MIB modules required for IMPORTS ............................. 6 8. Definitions .................................................. 6 9. Extending this MIB for Gateway Initiated Dual-Stack Lite .....27 10. IANA Considerations......................................... 27 11. Security Considerations .................................... 28 12. References ................................................. 28 12.1. Normative References .................................. 28 12.2. Informative References ................................ 29 Author's Addresses ............................................. 30 Fu, et al. Expires July 13, 2013 [Page 2] Internet-Draft draft-ietf-softwire-dslite-mib-01.txt January 2013 1. Introduction Dual-Stack Lite [RFC 6333] is a solution to offer both IPv4 and IPv6 connectivity to customers crossing IPv6 only infrastructure. One of its key components is an IPv4-over-IPv6 tunnel, which is used to provide IPv4 connection across service provider's IPv6 network. Another key component is a carrier-grade IPv4-IPv4 NAT to share service provider IPv4 addresses among customers. This document defines a portion of the Management Information Base (MIB) for using with network management protocols in the Internet community. This MIB module may be used for configuration and monitoring the devices in the Dual-Stack Lite scenario. This MIB also can be extended to the application for Gateway Initiated Dual-Stack Lite [RFC 6674]. 2. 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]. Managed objects are accessed via a virtual information store, termed the MIB. MIB objects are generally accessed through the Simple Network Management Protocol (SNMP). Objects in the MIB are defined using the mechanisms defined in the Structure of Management Information (SMI). This memo specifies a MIB module that is compliant to the SMIv2, which is described in [RFC2578], [RFC2579] and [RFC2580]. 3. Terminology 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]. 4. Difference from the IP tunnel MIB and NAT MIB The key technologies for DS-Lite are IP in IP (IPv4-in-IPv6) tunnel and NAT (IPv4 to IPv4 translation). Notes: According to the section 5.2 of RFC6333, DS-Lite only defines IPv4 in IPv6 tunnels at this moment, but other types of encapsulation could be defined in the future. So this DS-Lite MIB only support IP Fu, et al. Expires July 13, 2013 [Page 3] Internet-Draft draft-ietf-softwire-dslite-mib-01.txt January 2013 in IP encapsulation, if the RFC6333 defined other tunnel types in the future, this DS-Lite MIB will be updated then. The NAT-MIB [RFC4008] is designed to carry translation from any address family to any address family, therefore supports IPv4 to IPv4 translation. The tunnel MIB [RFC4087] is designed for managing tunnels of any type over IPv4 and IPv6 networks, therefore supports IP in IP tunnels. However, NAT MIB and tunnel MIB together are not sufficient to support DS-Lite. This document describes the specific MIB requirements for DS-Lite, as below. In DS-Lite scenario, the tunnel type is IP in IP, more precisely, is IPv4 in IPv6. Therefore, it is unnecessary to describe tunnel type in DS-Lite MIB. In DS-Lite scenario, the translation type is IPv4 private address to IPv4 public address. Therefore, it is unnecessary to describe the type of address in the corresponding tunnelIfLocalInetAddress and tunnelIfRemoteInetAddress objects which are defined in tunnel MIB in DS-Lite MIB. In DS-Lite scenario, the AFTR is not only the tunnel end concentrator, but also a 4-4 translator. Within the AFTR, tunnel information and translation information MUST be mapped each other. Two independent MIB is not able to reflect this mapping relationship. Therefore, a combined MIB is necessary. If the Gateway Initiated Dual-Stack Lite scenario[RFC 6674] is required, the MIB defined in this document could be easily extended for GI-DS-Lite. CID (Context Identifier) can be extended to the tunnel MIB to identifier the access devices which have the same IPv4 address. And both CID and SWID (Softwire Identifier) can be extended to the NAT MIB for performing the NAT binding look up. The implementation of the IP Tunnel MIB is required for DS-Lite. The tunnelIfEncapsMethod in the tunnelIfEntry should be set to dsLite("xx"), and corresponding entry in the DS-Lite module will exist for every tunnelIfEntry with this tunnelIfEncapsMethod. The tunnelIfRemoteInetAddress must be set to "::". Fu, et al. Expires July 13, 2013 [Page 4] Internet-Draft draft-ietf-softwire-dslite-mib-01.txt January 2013 5. Relationship to the IF-MIB The Interfaces MIB [RFC2863] defines generic managed objects for managing interfaces. Each logical interface (physical or virtual)has an ifEntry. Tunnels are handled by creating a logical interface (ifEntry) for each tunnel. DS-Lite tunnel also acts as a virtual interface, which has corresponding entries in IP Tunnel MIB and Interface MIB. Those corresponding entries are indexed by ifIndex. The ifOperStatus in ifTable would be used to represent whether the DS-Lite tunnel function has been originated. The ifInUcastPkts defined in ifTabel will represent the number of IPv4 packets which have been encapsulated into IPv6 packets sent to B4. The ifOutUcastPkts defined in ifTabel contains the number of IPv6 packets which can be decapsulated to IPv4 in the virtual interface. Also, the IF-MIB defines ifMtu for the MTU of this tunnel interface, so DS-Lite MIB does not need to define the MTU for tunnel. 6. Structure of the MIB Module The DS-Lite MIB provides a way to configure and manage the devices (AFTRs)in DS-Lite scenario through SNMP. DS-Lite MIB is configurable on a per-interface basis. It depends on several parts of the IF-MIB [RFC2863], tunnel MIB [RFC4087], and NAT MIB [RFC4008]. 6.1. The dsliteTunnel Subtree The dsliteTunnel subtree describes managed objects used for managing tunnels in the DS-Lite scenario. Because some objects defined in Tunnel MIB are not access, a few new objects are defined in DS-Lite MIB. 6.2. The dsliteNAT Subtree The dsliteNAT Subtree describes managed objects used for configuration as well as monitoring of AFTR which is capable of NAT function. Because the NAT MIB supports the NAT management function in DS-Lite, we may reuse it in DS-Lite MIB. The dsliteNAT Subtree also provides the information of mapping relationship between the tunnel MIB and NAT MIB by extending the IPv6 address of B4 to the bind table in NAT MIB. Fu, et al. Expires July 13, 2013 [Page 5] Internet-Draft draft-ietf-softwire-dslite-mib-01.txt January 2013 6.3. The dsliteInfo Subtree The dsliteInfo Subtree provides the statistical information for DS- lite. 6.4. The dsliteTrap Subtree The dsliteTrap Subtree provides trap information in DS-lite instance. 6.5. The dsliteConformance Subtree The Subtree provides conformance information of MIB objects. 7. MIB modules required for IMPORTS This MIB module IMPORTs objects from [RFC4008], [RFC2580], [RFC2578], [RFC2863], [RFC4001], [RFC3411]. 8. Definitions DSLite-MIB DEFFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-TYPE, mib-2, transmission, Gauge32, Integer32, Counter64 FROM SNMPv2-SMI RowStatus, StorageType, DisplayString FROM SNMPv2-TC ifIndex, InterfaceIndexOrZero FROM IF-MIB IANAtunnelType FROM IANAifType-MIB InetAddress, InetAddressIPv6, InetPortNumber FROM INET-ADDRESS-MIB NatAddrMapId, natAddrMapName, natAddrMapEntryType, natAddrMapLocalAddrFrom, natAddrMapLocalAddrTo, natAddrMapLocalPortFrom, natAddrMapLocalPortTo, natAddrMapGlobalAddrFrom, natAddrMapGlobalAddrTo, natAddrMapGlobalPortFrom, natAddrMapGlobalPortTo natAddrPortBindGlobalAddr, natAddrPortBindGlobalPort, NatBindId, natAddrPortBindSessions, natAddrPortBindMaxIdleTime, natAddrPortBindCurrentIdleTime, Fu, et al. Expires July 13, 2013 [Page 6] Internet-Draft draft-ietf-softwire-dslite-mib-01.txt January 2013 natAddrPortBindInTranslates, natAddrPortBindOutTranslates FROM natMIB dsliteMIB MODULE-IDENTITY LAST-UPDATED "201307100000Z" -- January 10, 2013 ORGANIZATION "IETF Softwire Working Group" CONTACT-INFO "Yu Fu Huawei Technologies Co., Ltd Huawei Building, 156 Beiqing Rd., Hai-Dian District Beijing, P.R. China 100095 EMail: eleven.fuyu@huawei.com Sheng Jiang Huawei Technologies Co., Ltd Huawei Building, 156 Beiqing Rd., Hai-Dian District Beijing, P.R. China 100095 EMail: jiangsheng@huawei.com Jiang Dong Tsinghua University Department of Computer Science, Tsinghua University Beijing 100084 P.R. China Email: dongjiang @csnet1.cs.tsinghua.edu.cn Yuchi Chen Tsinghua University Department of Computer Science, Tsinghua University Beijing 100084 P.R. China Email: flashfoxmx@gmail.com " DESCRIPTION "The MIB module is defined for management of object in the DS-Lite scenario. " ::= { transmission xxx } --xxx to be replaced with correct value dsliteTunnel OBJECT IDENTIFIER :: = { dsliteMIB 1 } dsliteNAT OBJECT IDENTIFIER :: = { dsliteMIB 2 } dsliteInfo OBJECT IDENTIFIER :: = { dsliteMIB 3 } Fu, et al. Expires July 13, 2013 [Page 7] Internet-Draft draft-ietf-softwire-dslite-mib-01.txt January 2013 dsliteTraps OBJECT IDENTIFIER ::= { dsliteMIB 4 } --Conformance dsliteConformance OBJECT IDENTIFIER :: = { dsliteMIB 5 } --dsliteTunnel --dsliteTunnelTable dsliteTunnelTable OBJECT-TYPE SYNTAX SEQUENCE OF dsliteTunnelEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The (conceptual) table containing information on configured tunnels. This table can be used to map CPE address to the associated AFTR address. It can also be used for row creation." :: = { dsliteTunnel 1 } dsliteTunnelEntry OBJECT-TYPE SYNTAX dsliteTunnelEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Each entry in this table contains the information on a particular configured tunnel." INDEX { dsliteTunnelStartAddress, dsliteTunnelEndAddress, ifIndex } :: = { dsliteTunnelTable 1 } dsliteTunnelEntry :: = SEQUENCE { dsliteTunnelStartAddress InetAddressIPv6, dsliteTunnelStartAddPreLen Integer32, dsliteTunnelEndAddress InetAddressIPv6, dsliteTunnelStatus RowStatus, dsliteTunnelStorageType StorageType } dsliteTunnelStartAddress OBJECT-TYPE SYNTAX InetAddressIPv6 MAX-ACCESS read-create STATUS current DESCRIPTION Fu, et al. Expires July 13, 2013 [Page 8] Internet-Draft draft-ietf-softwire-dslite-mib-01.txt January 2013 "The address of the start point of the tunnel." ::= { dsliteTunnelEntry 1 } dsliteTunnelStartAddPreLen OBJECT-TYPE SYNTAX Integer32 (0..128) MAX-ACCESS read-create STATUS current DESCRIPTION "IPv6 prefix length of the IP address of the start point of the tunnel." ::= { dsliteTunnelEntry 2 } dsliteTunnelEndAddress OBJECT-TYPE SYNTAX InetAddressIPv6 MAX-ACCESS read-create STATUS current DESCRIPTION "The address of the endpoint of the tunnel." ::= { dsliteTunnelEntry 3 } dsliteTunnelStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "The status of this row, by which new entries may be created, or old entries deleted from this table. ::= { dsliteTunnelEntry 4 } dsliteTunnelStorageType OBJECT-TYPE SYNTAX StorageType MAX-ACCESS read-create STATUS current DESCRIPTION "The storage type of this row. If the row is permanent(4), no objects in the row need be writable." ::= { dsliteTunnelEntry 5 } --dsliteNAT --dsliteNATMapTable(define address pool) --dsliteNATBindTable dsliteNATMapTable OBJECT-TYPE SYNTAX SEQUENCE OF dsliteNATMapEntry MAX-ACCESS not-accessible Fu, et al. Expires July 13, 2013 [Page 9] Internet-Draft draft-ietf-softwire-dslite-mib-01.txt January 2013 STATUS current DESCRIPTION "This table contains information about address map parameters." :: = { dsliteNAT 1 } dsliteNATMapEntry OBJECT-TYPE SYNTAX dsliteNATMapEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION " This entry represents an address map to be used for NAT and contributes to the address mapping tables of AFTR." INDEX { ifIndex, dsliteNATMapIndex } :: = { dsliteNATMapTable 1 } dsliteNATMapEntry :: = SEQUENCE { dsliteNATMapIndex NatAddrMapId, dsliteNATMapAddrName natAddrMapName, dsliteNATMapEntryType natAddrMapEntryType, dsliteNATMapLocalAddrFrom natAddrMapLocalAddrFrom, dsliteNATMapLocalAddrTo natAddrMapLocalAddrTo, dsliteNATMapLocalPortFrom natAddrMapLocalPortFrom, dsliteNATMapLocalPortTo natAddrMapLocalPortTo, dsliteNATMapGlobalAddrFrom natAddrMapGlobalAddrFrom, dsliteNATMapGlobalAddrTo natAddrMapGlobalAddrTo, dsliteNATMapGlobalPortFrom natAddrMapGlobalPortFrom, dsliteNATMapGlobalPortTo natAddrMapGlobalPortTo, dsliteNATMapAddrUsed natAddrMapAddrUsed, dsliteNATMapStorageType StorageType, dsliteNATMapRowStatus RowStatus } dsliteNATMapIndex OBJECT-TYPE SYNTAX NatAddrMapId MAX-ACCESS not-accessible STATUS current DESCRIPTION "Along with ifIndex, this object uniquely identifies an entry in the dsliteNATMapTable. Address map entries are applied in the order specified by dsliteNATMapIndex." ::= { dsliteNATMapEntry 1 } Fu, et al. Expires July 13, 2013 [Page 10] Internet-Draft draft-ietf-softwire-dslite-mib-01.txt January 2013 dsliteNATMapAddrName OBJECT-TYPE SYNTAX natAddrMapName MAX-ACCESS read-create STATUS current DESCRIPTION "Name identifying all map entries in the table associated with the same interface. All map entries with the same ifIndex MUST have the same map name." ::= { dsliteNATMapEntry 2 } dsliteNATMapEntryType OBJECT-TYPE SYNTAX natAddrMapEntryType MAX-ACCESS read-create STATUS current DESCRIPTION "This parameter can be used to set up static or dynamic address maps." ::= { dsliteNATMapEntry 3 } dsliteNATMapLocalAddrFrom OBJECT-TYPE SYNTAX natAddrMapLocalAddrFrom MAX-ACCESS read-create STATUS current DESCRIPTION "This object specifies the first IP address of the range of IP addresses mapped by this translation entry. The value of this object must be less than or equal to the value of the dsliteNATMapLocalAddrTo object." ::= { dsliteNATMapEntry 4 } dsliteNATMapLocalAddrTo OBJECT-TYPE SYNTAX natAddrMapLocalAddrTo MAX-ACCESS read-create STATUS current DESCRIPTION "This object specifies the last IP address of the range of IP addresses mapped by this translation entry. If only a single address is being mapped, the value of this object is equal to the value of natAddrMapLocalAddrFrom. The value of this object must be greater than or equal to the value of the natAddrMapLocalAddrFrom object." ::= { dsliteNATMapEntry 5 } dsliteNATMapLocalPortFrom OBJECT-TYPE SYNTAX natAddrMapLocalPortFrom MAX-ACCESS read-create Fu, et al. Expires July 13, 2013 [Page 11] Internet-Draft draft-ietf-softwire-dslite-mib-01.txt January 2013 STATUS current DESCRIPTION "The value of this object must be less than or equal to the value of the dsliteNATMapLocalPortTo object. If the translation specifies a single port, then the value of this object is equal to the value of dsliteNATMapLocalPortTo." DEFVAL { 0 } ::= { dsliteNATMapEntry 6 } dsliteNATMapLocalPortTo OBJECT-TYPE SYNTAX natAddrMapLocalPortTo MAX-ACCESS read-create STATUS current DESCRIPTION "The value of this object must be greater than or equal to the value of the dsliteNATMapLocalPortFrom object. If the translation specifies a single port, then the value of this object is equal to the value of dsliteNATMapLocalPortFrom." DEFVAL { 0 } ::= { dsliteNATMapEntry 7 } dsliteNATMapGlobalAddrFrom OBJECT-TYPE SYNTAX natAddrMapGlobalAddrFrom MAX-ACCESS read-create STATUS current DESCRIPTION "This object specifies the first IP address of the range of IP addresses being mapped to. The value of this object must be less than or equal to the value of the dsliteNATMapGlobalAddrTo object. ::= { dsliteNATMapEntry 8 } dsliteNATMapGlobalAddrTo OBJECT-TYPE SYNTAX natAddrMapGlobalAddrTo MAX-ACCESS read-create STATUS current DESCRIPTION "This object specifies the last IP address of the range of IP addresses being mapped to. If only a single address is being mapped to, the value of this object is equal to the value of dsliteNATMapGlobalAddrFrom. The value of this object must be greater than or equal to the value of the dsliteNATMapGlobalAddrFrom object. ::= { dsliteNATMapEntry 9 } Fu, et al. Expires July 13, 2013 [Page 12] Internet-Draft draft-ietf-softwire-dslite-mib-01.txt January 2013 dsliteNATMapGlobalPortFrom OBJECT-TYPE SYNTAX natAddrMapGlobalPortFrom MAX-ACCESS read-create STATUS current DESCRIPTION "The value of this object must be less than or equal to the value of the dsliteNATMapGlobalPortTo object. If the translation specifies a single port, then the value of this object is equal to the value dsliteNATMapGlobalPortTo." DEFVAL { 0 } ::= { dsliteNATMapEntry 10 } dsliteNATMapGlobalPortTo OBJECT-TYPE SYNTAX natAddrMapGlobalPortTo MAX-ACCESS read-create STATUS current DESCRIPTION "The value of this object must be greater than or equal to the value of the dsliteNATMapGlobalPortFrom object. If the translation specifies a single port, then the value of this object is equal to the value of dsliteNATMapGlobalPortFrom." DEFVAL { 0 } ::= { dsliteNATMapEntry 11 } dsliteNATMapAddrUsed OBJECT-TYPE SYNTAX natAddrMapAddrUsed MAX-ACCESS read-only STATUS current DESCRIPTION "The number of addresses pertaining to this address map that are currently being used from the NAT pool." ::= { dsliteNATMapEntry 12 } dsliteNATMapStorageType OBJECT-TYPE SYNTAX StorageType MAX-ACCESS read-create STATUS current DESCRIPTION "The storage type for this conceptual row. Conceptual rows having the value 'permanent' need not allow write-access to any columnar objects in the row." REFERENCE "Textual Conventions for SMIv2, Section 2." Fu, et al. Expires July 13, 2013 [Page 13] Internet-Draft draft-ietf-softwire-dslite-mib-01.txt January 2013 DEFVAL { nonVolatile } ::= { dsliteNATMapEntry 13 } dsliteNATMapRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "The status of this conceptual row." REFERENCE "Textual Conventions for SMIv2, Section 2." ::= { dsliteNATMapEntry 14 } dsliteNATBindTable OBJECT-TYPE SYNTAX SEQUENCE OF dsliteNATBindEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains information about currently active NAT binds in AFTR. This table extends the natAddrPortBindTable designed in NAT MIB (RFC 4008) by IPv6 address of B4." :: = { dsliteNAT 2 } dsliteNATBindEntry OBJECT-TYPE SYNTAX dsliteNATBindEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Each entry in this table holds the relationship between tunnel information and nat bind information. These entries are lost upon agent restart." INDEX { ifIndex, dsliteNATBindLocalAddr, dsliteNATBindLocalPort, dsliteB4Addr } :: = { dsliteNATBindTable 1 } dsliteNATBindEntry :: = SEQUENCE { dsliteNATBindLocalAddr InetAddress, dsliteNATBindLocalPort InetPortNumber, dsliteNATBindGlobalAddr natAddrPortBindGlobalAddr, dsliteNATBindGlobalPort natAddrPortBindGlobalPort, dsliteNATBindId NatBindId, dsliteB4Addr dsliteTunnelStartAddress, dsliteB4PreLen dsliteTunnelStartAddPreLen, Fu, et al. Expires July 13, 2013 [Page 14] Internet-Draft draft-ietf-softwire-dslite-mib-01.txt January 2013 dsliteNATBindMapIndex NatAddrMapId, dsliteNATBindSessions natAddrPortBindSessions, dsliteNATBindMaxIdleTime natAddrPortBindMaxIdleTime, dsliteNATBindCurrentIdleTime natAddrPortBindCurrentIdleTime, dsliteNATBindInTranslates natAddrPortBindInTranslates, dsliteNATBindOutTranslates natAddrPortBindOutTranslates } dsliteNATBindLocalAddr OBJECT-TYPE SYNTAX InetAddress MAX-ACCESS read-create STATUS current DESCRIPTION "This object represents the private IP address of host." ::= { dsliteNATBindEntry 1 } dsliteNATBindLocalPort OBJECT-TYPE SYNTAX InetPortNumber MAX-ACCESS read-create STATUS current DESCRIPTION "This object represents the private-realm Port number of host." ::= { dsliteNATBindEntry 2 } dsliteNATBindGlobalAddr OBJECT-TYPE SYNTAX natAddrPortBindGlobalAddr MAX-ACCESS read-only STATUS current DESCRIPTION "This object represents the public-realm IP address of host." ::= { dsliteNATBindEntry 3 } dsliteNATBindGlobalPort OBJECT-TYPE SYNTAX natAddrPortBindGlobalPort MAX-ACCESS read-only STATUS current DESCRIPTION "This object represents the public-realm Port number of host." ::= { dsliteNATBindEntry 4 } dsliteNATBindId OBJECT-TYPE SYNTAX NatBindId MAX-ACCESS read-only STATUS current Fu, et al. Expires July 13, 2013 [Page 15] Internet-Draft draft-ietf-softwire-dslite-mib-01.txt January 2013 DESCRIPTION "This object represents a bind id that is dynamically assigned to each bind by AFTR. Each bind is represented by a unique bind id across the dsliteNATBindTable." ::= { dsliteNATBindEntry 5 } dsliteB4Addr OBJECT-TYPE SYNTAX dsliteTunnelStartAddress MAX-ACCESS read-only STATUS current DESCRIPTION "This object represents the relationship between tunnel start point to the Bind entry, which extends the source IPv6 address of packet to the Bind table." ::= { dsliteNATBindEntry 6 } dsliteB4PreLen OBJECT-TYPE SYNTAX dsliteTunnelStartAddPreLen MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates the IPv6 prefix length of the start point of tunnel, which is also need to extend to the Bind table." ::= { dsliteNATBindEntry 7 } dsliteNATBindMapIndex OBJECT-TYPE SYNTAX NatAddrMapId MAX-ACCESS read-only STATUS current DESCRIPTION "This object is a pointer to the dsliteNATMapTable entry used in creating this BIND." ::= { dsliteNATBindEntry 8 } dsliteNATBindSessions OBJECT-TYPE SYNTAX natAddrPortBindSessions MAX-ACCESS read-only STATUS current DESCRIPTION " This object represents the number of sessions currently using this BIND." ::= { dsliteNATBindEntry 9 } dsliteNATBindMaxIdleTime OBJECT-TYPE SYNTAX natAddrPortBindMaxIdleTime Fu, et al. Expires July 13, 2013 [Page 16] Internet-Draft draft-ietf-softwire-dslite-mib-01.txt January 2013 MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates the maximum time for which this bind can be idle without any sessions attached to it." ::= { dsliteNATBindEntry 10 } dsliteNATBindCurrentIdleTime OBJECT-TYPE SYNTAX natAddrPortBindCurrentIdleTime MAX-ACCESS read-only STATUS current DESCRIPTION "At any given instance, this object indicates the time that this bind has been idle without any sessions attached to it." ::= { dsliteNATBindEntry 11 } dsliteNATBindInTranslates OBJECT-TYPE SYNTAX natAddrPortBindInTranslates MAX-ACCESS read-only STATUS current DESCRIPTION "The number of inbound packets that were translated as per this bind entry." ::= { dsliteNATBindEntry 12 } dsliteNATBindOutTranslates OBJECT-TYPE SYNTAX natAddrPortBindOutTranslates MAX-ACCESS read-only STATUS current DESCRIPTION "The number of outbound packets that were translated as per this bind entry." ::= { dsliteNATBindEntry 13 } --dsliteInfo dsliteSessionLimitTable OBJECT-TYPE SYNTAX SEQUENCE OF dsliteSessionLimitEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The (conceptual) table containing information about session limit. It can also be used for row creation." :: = { dsliteInfo 1 } Fu, et al. Expires July 13, 2013 [Page 17] Internet-Draft draft-ietf-softwire-dslite-mib-01.txt January 2013 dsliteSessionLimitEntry OBJECT-TYPE SYNTAX dsliteSessionLimitEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Each entry in this table contains the information to be used for configuring session limits for DS-lite." INDEX { dsliteInstanceName, dsliteSessionLimitaType } :: = { dsliteSessionLimitTable 1 } dsliteSessionLimitEntry :: = SEQUENCE { dsliteSessionLimitInstanceName DisplayString, dsliteSessionLimitType INTEGER, dsliteSessionLimitNumber Integer32, dsliteSessionLimitStorageType StorageType, dsliteSessionLimitRowStatus RowStatus } dsliteSessionLimitInstanceName OBJECT-TYPE SYNTAX DisplayString (SIZE (1..31)) MAX-ACCESS read-only STATUS current DESCRIPTION " This object represents the instance name that is limited." ::= { dsliteSessionLimitEntry 1 } dsliteSessionLimitType OBJECT-TYPE SYNTAX INTEGER { tcp(0), udp(1), icmp(2), total(3) } MAX-ACCESS read-only STATUS current DESCRIPTION "This object represents the session limit type : tcp or udp or totally." ::= { dsliteSessionLimitEntry 2 } dsliteSessionLimitNumber OBJECT-TYPE SYNTAX Integer32 (1..65535) MAX-ACCESS read-create Fu, et al. Expires July 13, 2013 [Page 18] Internet-Draft draft-ietf-softwire-dslite-mib-01.txt January 2013 STATUS current DESCRIPTION " This table represents the limit number of the session." ::= { dsliteSessionLimitEntry 3 } dsliteSessionLimitStorageType OBJECT-TYPE SYNTAX StorageType MAX-ACCESS read-create STATUS current DESCRIPTION "The storage type for this conceptual row. Conceptual rows having the value 'permanent' need not allow write-access to any columnar objects in the row." ::= { dsliteSessionLimitEntry 4 } dsliteSessionLimitRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION " The status of this conceptual row." REFERENCE "Textual Conventions for SMIv2, Section 2." DEFVAL { nonVolatile } ::= { dsliteSessionLimitEntry 5 } dslitePortLimitTable OBJECT-TYPE SYNTAX SEQUENCE OF dslitePortLimitEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table is used to configure port limits for a DS-Lite instance." ::= { dsliteInfo 2 } dslitePortLimitEntry OBJECT-TYPE SYNTAX dslitePortLimitEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Each entry in this table contains the information to be used for configuring port limits for DS-lite." INDEX { dslitePortLimitInstanceName, dslitePortLimitType } ::= { dslitePortLimitTable 1 } Fu, et al. Expires July 13, 2013 [Page 19] Internet-Draft draft-ietf-softwire-dslite-mib-01.txt January 2013 dslitePortLimitEntry ::= SEQUENCE { dslitePortLimitInstanceName DisplayString, dslitePortLimitType INTEGER, dslitePortLimitNumber Integer32, dslitePortLimitStorageType StorageType, dslitePortLimitRowStatus RowStatus } dslitePortLimitInstanceName OBJECT-TYPE SYNTAX DisplayString (SIZE (1..31)) MAX-ACCESS read-only STATUS current DESCRIPTION " This object represents the instance name that is limited." ::= { dslitePortLimitEntry 1 } dslitePortLimitType OBJECT-TYPE SYNTAX INTEGER { tcp(0), udp(1), icmp(2), total(3) } MAX-ACCESS read-only STATUS current DESCRIPTION "This object represents the port limit type: tcp or udp or totally." ::= { dslitePortLimitEntry 2 } dslitePortLimitNumber OBJECT-TYPE SYNTAX Integer32 (1..300000) MAX-ACCESS read-create STATUS current DESCRIPTION "This object represents the limit number of the port usage." ::= { dslitePortLimitEntry 3 } dslitePortLimitStorageType OBJECT-TYPE SYNTAX StorageType MAX-ACCESS read-create STATUS current DESCRIPTION Fu, et al. Expires July 13, 2013 [Page 20] Internet-Draft draft-ietf-softwire-dslite-mib-01.txt January 2013 "The storage type for this conceptual row. Conceptual rows having the value 'permanent' need not allow write-access to any columnar objects in the row." ::= { dslitePortLimitEntry 4 } dslitePortLimitRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "Create or delete table row." ::= { dslitePortLimitEntry 5 } dsliteAFTRAlarmScalar OBJECT IDENTIFIER ::= { dsliteInfo 3 } dsliteAFTRAlarmB4Addr OBJECT-TYPE SYNTAX dsliteTunnelStartAddress MAX-ACCESS accessible-for-notify STATUS current DESCRIPTION "This object indicate the IP address of B4 that send alarm " ::= { dsliteAFTRAlarmScalar 1 } dsliteAFTRAlarmProtocolType OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS accessible-for-notify STATUS current DESCRIPTION "This object indicate the procotol type of alarm, 0:tcp,1:udp,2:icmp,3:total " ::= { dsliteAFTRAlarmScalar 2 } dsliteAFTRAlarmMapAddrName OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS accessible-for-notify STATUS current DESCRIPTION "This object indicate the name of dsliteNATMapAddrName " ::= { dsliteAFTRAlarmScalar 3 } dsliteAFTRAlarmSpecificIP OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS accessible-for-notify STATUS current DESCRIPTION " This object indicate the IP address whose port usage Fu, et al. Expires July 13, 2013 [Page 21] Internet-Draft draft-ietf-softwire-dslite-mib-01.txt January 2013 reach threshold " ::= { dsliteAFTRAlarmScalar 4 } dsliteAFTRAlarmConnectNumber OBJECT-TYPE SYNTAX Integer32 (60..90) MAX-ACCESS read-write STATUS current DESCRIPTION " This object indicate the threshold of DS-Lite connections alarm." ::= { dsliteAFTRAlarmScalar 5 } dsliteStatisticTable OBJECT-TYPE SYNTAX SEQUENCE OF dsliteStatisticEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table provides statistical information of DS-Lite." ::= { dsliteInfo 4 } dsliteStatisticEntry OBJECT-TYPE SYNTAX dsliteStatisticEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table provides statistical information of DS-Lite." INDEX { dsliteStatisticInstanceName } ::= { dsliteStatisticTable 1 } dsliteStatisticEntry ::= SEQUENCE { dsliteStatisticInstanceName DisplayString, dsliteStatisticDiscard Counter64, dsliteStatisticReceived Counter64, dsliteStatisticTransmitted Counter64, dsliteStatisticIpv4Session Counter64, dsliteStatisticIpv6Session Counter64, dsliteStatisticStorageType StorageType, dsliteStatisticRowStatus RowStatus } dsliteStatisticInstanceName OBJECT-TYPE SYNTAX DisplayString (SIZE (1..31)) MAX-ACCESS read-only STATUS current Fu, et al. Expires July 13, 2013 [Page 22] Internet-Draft draft-ietf-softwire-dslite-mib-01.txt January 2013 DESCRIPTION " This object indicate the instance name that is limited." ::= { dsliteStatisticEntry 1 } dsliteStatisticDiscard OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-create STATUS current DESCRIPTION " This object indicate the count number of the discarded packet." ::= { dsliteStatisticEntry 2 } dsliteStatisticReceived OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-create STATUS current DESCRIPTION "This object indicate the count number of received packet count." ::= { dsliteStatisticEntry 3 } dsliteStatisticTransmitted OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-create STATUS current DESCRIPTION "This object indicate the count number of transmitted packet count." ::= { dsliteStatisticEntry 4 } dsliteStatisticIpv4Session OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-create STATUS current DESCRIPTION " This object indicate the number of the current IPv4 Session." ::= { dsliteStatisticEntry 5 } dsliteStatisticIpv6Session OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-create STATUS current DESCRIPTION Fu, et al. Expires July 13, 2013 [Page 23] Internet-Draft draft-ietf-softwire-dslite-mib-01.txt January 2013 " This object indicate the number of the current IPv6 Session." ::= { dsliteStatisticEntry 6 } dsliteStatisticRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "Create or delete table row." ::= { dsliteStatisticEntry 7 } ---dslite trap dsliteTunnelNumAlarm NOTIFICATION-TYPE STATUS current DESCRIPTION "This trap is triggered when dslite tunnel reach the threshold." ::= { dsliteTraps 1 } dsliteAFTRUserSessionNumAlarm NOTIFICATION-TYPE OBJECTS { dsliteAFTRAlarmProtocolType, dsliteAFTRAlarmB4Addr } STATUS current DESCRIPTION " This trap is triggered when sessions of user reach the threshold." ::= { dsliteTraps 2 } dsliteAFTRPortUsageOfSpecificIpAlarm NOTIFICATION-TYPE OBJECTS { dsliteAFTRAlarmMapAddrName, dsliteAFTRAlarmSpecificIP } STATUS current DESCRIPTION "This trap is triggered when used NAT ports of map address reach the threshold." ::= { dsliteTraps 3 } --Module Conformance statement dsliteCompliances OBJECT IDENTIFIER ::= { dsliteConformance 1 } dsliteCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "Description." Fu, et al. Expires July 13, 2013 [Page 24] Internet-Draft draft-ietf-softwire-dslite-mib-01.txt January 2013 MODULE -- this module MANDATORY-GROUPS { dsliteNATMapGroup, dsliteTunnelGroup } ::= { dsliteCompliances 1 } dsliteGroups OBJECT IDENTIFIER ::= { dsliteConformance 2 } dsliteAFTRAlarmScalarGroup OBJECT-GROUP OBJECTS { dsliteAFTRAlarmB4Addr, dsliteAFTRAlarmProtocolType, dsliteAFTRAlarmMapAddrName, dsliteAFTRAlarmSpecificIP, dsliteAFTRAlarmConnectNumber } STATUS current DESCRIPTION " The collection of this objects are used to give the information about AFTR alarming Scalar." ::= { dsliteGroups 1 } dsliteNATMapGroup OBJECT-GROUP OBJECTS { dsliteNATMapIndex, dsliteNATMapAddrName, dsliteNATMapEntryType, dsliteNATMapLocalAddrFrom, dsliteNATMapLocalAddrTo, dsliteNATMapLocalPortFrom, dsliteNATMapLocalPortTo, dsliteNATMapGlobalAddrFrom, dsliteNATMapGlobalAddrTo, dsliteNATMapGlobalPortFrom, dsliteNATMapGlobalPortTo, dsliteNATMapAddrUsed, dsliteNATMapStorageType, dsliteNATMapRowStatu } STATUS current DESCRIPTION " The collection of this objects are used to give the information about NAT address mapping." ::= { dsliteGroups 2 } dsliteTunnelGroup OBJECT-GROUP OBJECTS { dsliteTunnelStartAddress, dsliteTunnelStartAddPreLen, dsliteTunnelEndAddress, dsliteTunnelStatus, dsliteTunnelStorageType } STATUS current DESCRIPTION " The collection of this objects are used to give the information of tunnel in ds-lite." ::= { dsliteGroups 3 } dsliteNATBindGroup OBJECT-GROUP OBJECTS { dsliteNATBindLocalAddr, dsliteNATBindLocalPort, dsliteNATBindGlobalAddr, dsliteNATBindGlobalPort, dsliteNATBindId, dsliteB4Addr, dsliteB4PreLen, dsliteNATBindMapIndex, dsliteNATBindSessions, Fu, et al. Expires July 13, 2013 [Page 25] Internet-Draft draft-ietf-softwire-dslite-mib-01.txt January 2013 dsliteNATBindMaxIdleTime, dsliteNATBindCurrentIdleTime, dsliteNATBindInTranslates, dsliteNATBindOutTranslates } STATUS current DESCRIPTION " The collection of this objects are used to give the information about NAT Bind." ::= { dsliteGroups 4 } dsliteSessionLimitGroup OBJECT-GROUP OBJECTS { dsliteSessionLimitInstanceName, dsliteSessionLimitType, dsliteSessionLimitNumber, dsliteSessionLimitStorageType, dsliteSessionLimitRowStatus } STATUS current DESCRIPTION " The collection of this objects are used to give the information about port limit." ::= { dsliteGroups 5 } dslitePortLimitGroup OBJECT-GROUP OBJECTS { dslitePortLimitInstanceName, dslitePortLimitType, dslitePortLimitNumber, dslitePortLimitStorageType, dslitePortLimitRowStatus } STATUS current DESCRIPTION " The collection of this objects are used to give the information about port limit." ::= { dsliteGroups 6 } dsliteStatisticGroup OBJECT-GROUP OBJECTS { dsliteStatisticInstanceName, dsliteStatisticDiscard, dsliteStatisticReceived, dsliteStatisticTransmitted, dsliteStatisticIpv4Session, dsliteStatisticIpv6Session, dsliteStatisticStorageType, dsliteStatisticRowStatus } STATUS current DESCRIPTION " The collection of this objects are used to give the statistical information of ds-lite." ::= { dsliteGroups 7 } Fu, et al. Expires July 13, 2013 [Page 26] Internet-Draft draft-ietf-softwire-dslite-mib-01.txt January 2013 dsliteTrapsGroup NOTIFICATION-GROUP NOTIFICATIONS { dsliteTunnelNumAlarm, dsliteAFTRUserSessionNumAlarm, dsliteAFTRPortUsageOfSpecificIpAlarm } STATUS current DESCRIPTION "The collection of this objects are used to give the trap information of ds-lite." ::= { dsliteGroups 8 } END 9. Extending this MIB for Gateway Initiated Dual-Stack Lite Similar to DS-lite, GI-DS-lite enables the service provider to share public IPv4 addresses among different customers by combining tunneling and NAT. GI-DS-lite extends existing access tunnels beyond the access gateway to an IPv4-IPv4 NAT using softwires with an embedded context identifier that uniquely identifies the end host the tunneled packets belong to. The MIB defined in this document can easily extended to use for GI-DS-Lite scenario. New object as CID SHOULD be extended to the dsliteTunnelTable. And a new object as dsliteTunnelID can be defined in DS-Lite MIB as SWID in GI-DS-Lite. Both CID and SWID SHOULD be extended to the dsliteNATBindTable.The combination of CID and SWID will be used as the unique identifier for the end host and store it in the NAT binding entry. 10. IANA Considerations The MIB module in this document uses the following IANA-assigned OBJECT IDENTIFIER values recorded in the SMI Numbers registry, and the following IANA-assigned tunnelType values recorded in the IANAtunnelType-MIB registry: Descriptor OBJECT IDENTIFIER value ---------- ----------------------- DSLite-MIB { transmission XXX } IANAtunnelType ::= TEXTUAL-CONVENTION SYNTAX INTEGER { dsLite ("XX") -- dslite tunnel } Fu, et al. Expires July 13, 2013 [Page 27] Internet-Draft draft-ietf-softwire-dslite-mib-01.txt January 2013 Notes: As the Appendix A of the IP Tunnel MIB[RFC4087] described that it has already assigned the value direct(2) to indicate the tunnel type is IP in ip tunnel, but it is still difficult to distinguish the DS-Lite tunnel packets and the normal IP in IP tunnel packets in the scenario of the AFTR connecting to both the DS-lite tunnel and IP in IP tunnel. 11. Security Considerations The DS-Lite MIB module can be used for configuration of certain objects, and anything that can be incorrectly configured, with potentially disastrous results. Because this MIB module reuses the IP tunnel MIB and nat MIB, the security considerations for these MIBs are also applicable to the DS-Lite MIB. Unauthorized read access todsliteTunnelEndAddress, or any object in the dsliteBindRelationTable or dslitePortBindRelationTable would reveal information about the mapping information. SNMP versions prior to SNMPv3 did not include adequate security. Even if the network itself is secure (for example by using IPSec), even then, there is no control as to who on the secure network is allowed to access and GET/SET (read/change/create/delete) the objects in this MIB module. It is RECOMMENDED that implementers consider the security features as provided by the SNMPv3 framework (see [RFC3410], section 8), including full support for the SNMPv3 cryptographic mechanisms (for authentication and privacy). Further, deployment of SNMP versions prior to SNMPv3 is NOT RECOMMENDED. Instead, it is RECOMMENDED to deploy SNMPv3 and to enable cryptographic security. It is then a customer/operator responsibility to ensure that the SNMP entity giving access to an instance of this MIB module is properly configured to give access to the objects only to those principals (users) that have legitimate rights to indeed GET or SET (change/create/delete) them. 12. References 12.1. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. Fu, et al. Expires July 13, 2013 [Page 28] Internet-Draft draft-ietf-softwire-dslite-mib-01.txt January 2013 [RFC2578] McCloghrie, K., Perkins, D., and J. Schoenwaelder, "Structure of Management Information Version 2 (SMIv2)", RFC 2578, April 1999. [RFC2579] McCloghrie, K., Perkins, D., and J. Schoenwaelder, "Textual Conventions for SMIv2", RFC 2579, April 1999. [RFC2580] McCloghrie, K., Perkins, D., and J. Schoenwaelder, "Conformance Statements for SMIv2", RFC 2580, April 1999. [RFC2863] McCloghrie, K. and F. Kastenholz. "The Interfaces Group MIB", RFC 2863, June 2000. [RFC3411] Harrington, D., Presuhn, R., and B. Wijnen, "An Architecture for Describing Simple Network Management Protocol (SNMP) Management Frameworks", RFC 3411, December 2002. [RFC4001] Daniele, M., Haberman, B., Routhier, S., and J. Schoenwaelder, "Textual Conventions for Internet Network Addresses", RFC 4001, February 2005. [RFC4008] Rohit, R., Srisuresh, P., Raghunarayan,R., Pai, N., and Wang, C., "Definitions of Managed Objects for Network Address Translators (NAT)", RFC 4008, March 2005. [RFC4087] Thaler, D., "IP Tunnel MIB", RFC 4087, June 2005. [RFC6333] Durand, A., Droms, R., Woodyatt, J., and Y. Lee, "Dual- Stack Lite Broadband Deployments Following IPv4 Exhaustion", RFC6333, August 2011. [RFC6674] Brockners, F., Gundavelli, S., Speicher, S., Ward, D. "Gateway-Initiated Dual-Stack Lite Deployment", RFC 6674, July 2012. 12.2. Informative References [I-D.ietf-softwire-gateway-init-ds-lite] Brockners, F., Gundavelli, S., Speicher, S., and D. Ward, "Gateway Initiated Dual-Stack Lite Deployment", draft-ietf-softwire-gateway-init-ds-lite-08 (work in progress), July 2011. [RFC3410] Case, J., Mundy, R., Partain, D., and B. Stewart, "Introduction and Applicability Statements for Internet- Standard Management Framework", RFC 3410, December 2002. Fu, et al. Expires July 13, 2013 [Page 29] Internet-Draft draft-ietf-softwire-dslite-mib-01.txt January 2013 Author's Addresses Yu Fu Huawei Technologies Co., Ltd Huawei Building, 156 Beiqing Rd., Hai-Dian District, Beijing 100095 P.R. China Email: eleven.fuyu@huawei.com Sheng Jiang Huawei Technologies Co., Ltd Huawei Building, 156 Beiqing Rd., Hai-Dian District, Beijing 100095 P.R. China Email: jiangsheng@huawei.com Jiang Dong Tsinghua University Department of Computer Science, Tsinghua University Beijing 100084 P.R. China Email: dongjiang@csnet1.cs.tsinghua.edu.cn Yuchi Chen Tsinghua University Department of Computer Science, Tsinghua University Beijing 100084 P.R. China Email: flashfoxmx@gmail.com Fu, et al. Expires July 13, 2013 [Page 30]