SAVI C. An Internet-Draft J. Yang Intended status: Standards Track J. Wu Expires: July 22, 2019 J. Bi Tsinghua University January 18, 2019 Definition of Managed Objects for SAVI Protocol draft-an-savi-mib-16 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 defines objects for managing SAVI (Source Address Validation Improvements) protocol instance. 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 https://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 22, 2019. Copyright Notice Copyright (c) 2019 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 (https://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 An, et al. Expires July 22, 2019 [Page 1] Internet-Draft SAVI-MIB January 2019 the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 2. The Internet-Standard Management Framework . . . . . . . . . 3 3. Conventions . . . . . . . . . . . . . . . . . . . . . . . . . 3 4. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 3 5. Structure of the MIB Module . . . . . . . . . . . . . . . . . 4 5.1. The SAVI System Table . . . . . . . . . . . . . . . . . . 4 5.2. The SAVI Port Table . . . . . . . . . . . . . . . . . . . 5 5.3. The SAVI Binding Table . . . . . . . . . . . . . . . . . 6 5.4. The SAVI Filtering Table . . . . . . . . . . . . . . . . 7 5.5. The SAVI Counting Table . . . . . . . . . . . . . . . . . 7 6. Textual Conventions . . . . . . . . . . . . . . . . . . . . . 8 7. Relationship to Other MIB Modules . . . . . . . . . . . . . . 8 7.1. Relationship to the INET-ADDRESS-MIB . . . . . . . . . . 8 7.2. Relationship to the IF-MIB . . . . . . . . . . . . . . . 8 7.3. MIB modules required for IMPORTS . . . . . . . . . . . . 9 8. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 9 9. Security Considerations . . . . . . . . . . . . . . . . . . . 22 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 23 11. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 23 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 23 12.1. Normative References . . . . . . . . . . . . . . . . . . 24 12.2. Informative References . . . . . . . . . . . . . . . . . 25 12.3. URL References . . . . . . . . . . . . . . . . . . . . . 25 Appendix A. Change Log . . . . . . . . . . . . . . . . . . . . . 27 Appendix B. Open Issues . . . . . . . . . . . . . . . . . . . . 28 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 29 1. Introduction The Source Address Validation Improvement protocol was developed to complement ingress filtering with finer-grained, standardized IP source address validation(refer to [RFC7039]).A SAVI protocol instance is located on the path of hosts' packets, enforcing the hosts' use of legitimate IP source addresses. SAVI protocol determines whether the IP address obtaining process is legitimate according to IP address assignment method. For links with Stateless Address Auto Configuration (SLAAC), Dynamic Host Configuration Protocol (DHCP), and Secure Neighbor Discovery (SEND), the process is defined in separate documents of SAVI Working Group (refer to [RFC6620], [RFC7513], [RFC7219].) An, et al. Expires July 22, 2019 [Page 2] Internet-Draft SAVI-MIB January 2019 This document defines a MIB module that can be used to manage the SAVI protocol instance. It covers both configuration and status monitoring aspects of SAVI implementations. This document uses terminology from the SAVI Protocol specification. 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 RFC 3410 [RFC3410]. Managed objects are accessed via a virtual information store, termed the Management Information Base or 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 STD 58, RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and STD 58, RFC 2580 [RFC2580]. 3. Conventions 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 RFC 2119 [RFC2119]. 4. Overview The SAVI Protocol MIB module (SAVI-MIB) is conformant to SAVI protocol, and is designed to: o Support centralized management and monitoring of SAVI protocol instance by standard SNMP protocol. o Support configuration and querying of SAVI protocol parameters. o Support configuration and querying of binding entries. Operators may insert and delete manual binding entries. o Support querying of filtering entries. o Support querying of the count of packets dropped because of validation failure for each interface. Based on SAVI protocol, attributes and objects of a SAVI protocol instance can be classified into five categories: An, et al. Expires July 22, 2019 [Page 3] Internet-Draft SAVI-MIB January 2019 o System attributes. These attributes are corresponding to a SAVI protocol instance, such as IP Address Assignment Methods and some constants. o Anchor attributes. These attributes are corresponding to a SAVI anchor. Anchor is defined in [RFC7039]. o Binding Status Table. This table contains the state of binding between source address and binding anchor (refer to [RFC6620], [RFC7513], [RFC7219]). o Filtering Table. This table contains the bindings between binding anchor and address, which is used to filter packets (refer to [RFC6620], [RFC7513], [RFC7219]). o Counting Table. This table contains the count of fail packets for each interface. A table is designed for each category of objects. 5. Structure of the MIB Module This section presents the structure of the SAVI-MIB module. The MIB objects are derived from the SAVI protocol specification. This MIB is composed of a series of tables meant to form the base for managing SAVI entities. The following subsections describe all tables in the SAVI MIB module. 5.1. The SAVI System Table The SAVI System Table (saviObjectsSystemTable) contains the objects which are corresponding to SAVI system-wide parameters. It supports the configuration and collection of SAVI system-wide parameters. There is an entry for each IP stack, IPv4 and IPv6. The table is indexed by: o saviObjectsSystemIPVersion - The IP Version. A textual convention InetVersion defined in RFC4001 is used to represent the different version of IP protocol. o saviObjectsSystemMethod - IP address assignment method. It contains the following objects: o saviObjectsSystemMethodName - Name of IP address assignment method. An, et al. Expires July 22, 2019 [Page 4] Internet-Draft SAVI-MIB January 2019 o saviObjectsSystemMethodEnable - If the method is enabled. o saviObjectsSystemMethodPreference - Preference of the method. The MAX-ACCESS of these objects is READ-WRITE. Network Operators may do configuration by setting these objects. 5.2. The SAVI Port Table The SAVI Port Table (saviObjectsPortTable) contains the objects which are corresponding to SAVI running parameters of each anchor. It supports the configuration and collection of SAVI parameters of each anchor. There is an entry for each IP stack, IPv4 and IPv6. The table is indexed by: o saviObjectsPortIPVersion - The IP Version. o saviObjectsPortIfIndex - The index value that uniquely identifies the interface to which this entry is applicable. It contains the following objects: o saviObjectsPortValidatingAttr - An attribute defined in SAVI protocol (refer to [RFC7513]). o saviObjectsPortDhcpTrustAttr - An attribute defined in SAVI protocol (refer to [RFC7513]). o saviObjectsPortTrustAttr - An attribute defined in SAVI protocol (refer to [RFC7513]). o saviObjectsPortDhcpSnoopingAttr - An attribute defined in SAVI protocol (refer to [RFC7513]). o saviObjectsPortDataSnoopingAttr - An attribute defined in SAVI protocol (refer to [RFC7513]). o saviObjectsPortFilteringNum - The max filtering number of the Port. The MAX-ACCESS of these objects is READ-WRITE. Network Operators may configure by setting these objects. An, et al. Expires July 22, 2019 [Page 5] Internet-Draft SAVI-MIB January 2019 5.3. The SAVI Binding Table The SAVI Binding Table (saviObjectsBindingTable) contains the objects which are corresponding to Binding State Table (BST) defined in SAVI protocol. It contains the binding parameters and state of each binding entry. It supports the collection of binding entries. And an entry can be inserted or deleted if it is a manual binding entry. The table is indexed by: o saviObjectsBindingIpAddressType - IP address type. A textual convention InetAddressType defined in RFC4001 is used to represent the different kind of IP address. o saviObjectsBindingMethod - which IP address assignment method is used to create the binding entry - manual(1), slaac(2), dhcp(3), send(4). o saviObjectsBindingIfIndex - The index value that uniquely identifies the interface to which this entry is applicable. o saviObjectsBindingIpAddress - The binding source IP address. A textual convention InetAddress defined in RFC4001 is used to define this object. The SAVI Binding Table contains the following objects: o saviObjectsBindingMacAddr - The binding source mac address. o saviObjectsBindingLifetime - The remaining lifetime of the entry. o saviObjectsBindingCreationtime - The value of the local clock when the entry was firstly created. o saviObjectsBindingRowStatus - The status of this row, by which new entries may be created, or old entries be deleted from this table. As defined in RFC2579, the RowStatus textual convention is used to manage the creation and deletion of conceptual rows. For SAVI Binding Table, an entry can be created or deleted only when saviObjectsBindingMethod=manual. The MAX-ACCESS of these objects is READ-CREATE. Network Operators may create or delete an entry by setting these objects. An, et al. Expires July 22, 2019 [Page 6] Internet-Draft SAVI-MIB January 2019 5.4. The SAVI Filtering Table The SAVI Filtering Table (saviObjectsFilteringTable) contains the objects which are corresponding to Filtering Table (FT) defined in SAVI protocol. It supports the collection of filtering entries. The table is indexed by: o saviObjectsFilteringIpAddressType - IP address type. o saviObjectsFilteringIfIndex - The index value that uniquely identifies the interface to which this entry is applicable. o saviObjectsFilteringIpAddress - The source IP address. It contains the following objects: o saviObjectsFilteringMacAddr - The source mac address. The MAX-ACCESS of the object is READ-ONLY. 5.5. The SAVI Counting Table The SAVI Counting Table (saviObjectsCountTable) contains the objects counting packets dropped because of validation failure for each interface. The table is indexed by: o saviObjectsCountIPVersion - IP Version. o saviObjectsCountIfIndex - The index value that uniquely identifies the interface to which this entry is applicable. It contains the following objects: o saviObjectsCountFilterPkts - The count of packets dropped because of validation failure. o saviObjectsCountFilterOctets - The count of octets dropped because of validation failure. The MAX-ACCESS of the object is READ-ONLY. An, et al. Expires July 22, 2019 [Page 7] Internet-Draft SAVI-MIB January 2019 6. Textual Conventions The textual conventions used in the SAVI-MIB are as follows. The MODULE-COMPLIANCE,OBJECT-GROUP textual convention is imported from SNMPv2-CONF [RFC2580]. The MODULE-IDENTITY, OBJECT-IDENTITY, OBJECT-TYPE, Unsigned32 textual convention is imported from SNMPv2-SMI [RFC2578]. The MacAddress,TimeInterval,RowStatus textual convention is imported from SNMPv2-TC [RFC2579]. The InetVersion,InetAddressType,InetAddress textual convention is imported from INET-ADDRESS-MIB [RFC4001]. The InterfaceIndex textual convention is imported from IF-MIB [RFC2863]. The ip textual convention is imported from IP-MIB [RFC4293]. 7. Relationship to Other MIB Modules 7.1. Relationship to the INET-ADDRESS-MIB To support extensibility, IETF defined new textual conventions to represent different IP protocol and different IP address in a unified formation in RFC4001. To support different IP version, a textual convention InetVersion is defined to represent the different version of IP protocol. To support different IP address, a generic Internet address is defined. It consists of two objects: The first one has the syntax InetAddressType, and the second object have the syntax InetAddress. The value of the first object determines how the value of the second is encoded. Since SAVI running mode and parameter is independent of IPv4 and IPv6, so different OID instances should be defined for each protocol. In SAVI-MIB definition, when IP address is used as a part of binding table, it is defined using textual conventions described in INET- ADDRESS-MIB. 7.2. Relationship to the IF-MIB The Interfaces MIB [RFC2863] defines generic managed objects for managing interfaces. This document contains the interface-specific extensions for managing SAVI anchors that are modeled as interfaces. An, et al. Expires July 22, 2019 [Page 8] Internet-Draft SAVI-MIB January 2019 The IF-MIB module is required to be supported on the SAVI device. The interface MUST be modeled as an ifEntry, and ifEntry objects such as ifIndex are to be used as per [RFC2863]. An ifIndex [RFC2863] is used as a common index for interfaces in the SAVI-MIB modules. 7.3. MIB modules required for IMPORTS The SAVI MIB module IMPORTS objects from SNMPv2-SMI [RFC2578], SNMPv2-TC [RFC2579],SNMPv2-CONF [RFC2580], IF-MIB [RFC2863] and INET- ADDRESS-MIB [RFC4001] . 8. Definitions SAVI-MIB DEFINITIONS ::=BEGIN IMPORTS MODULE-COMPLIANCE,OBJECT-GROUP FROM SNMPv2-CONF --RFC2580 MODULE-IDENTITY, OBJECT-IDENTITY, OBJECT-TYPE, Unsigned32 FROM SNMPv2-SMI --RFC2578 TEXTUAL-CONVENTION,MacAddress,TimeInterval,RowStatus FROM SNMPv2-TC --RFC2579 InterfaceIndex FROM IF-MIB --RFC2863 InetVersion,InetAddressType,InetAddress FROM INET-ADDRESS-MIB --RFC4001 ip FROM IP-MIB --RFC4293 ; saviMIB MODULE-IDENTITY LAST-UPDATED "201901180000Z" ORGANIZATION "IETF SAVI Working Group" CONTACT-INFO "WG charter: http://datatracker.ietf.org/wg/savi/charter/ Editor: Changqing An CERNET Postal: Institute for Network Sciences and Cyberspace, Tsinghua University Beijing 100084 China Email: acq@tsinghua.edu.cn " An, et al. Expires July 22, 2019 [Page 9] Internet-Draft SAVI-MIB January 2019 DESCRIPTION "This MIB Module is designed to support configuration and monitoring of SAVI protocol. " REVISION "201901180000Z" DESCRIPTION "Initial version" ::= {ip XXX} saviObjects OBJECT IDENTIFIER ::= { saviMIB 1 } -- System parameters for SAVI protocol saviObjectsSystemTable OBJECT-TYPE SYNTAX SEQUENCE OF SaviObjectsSystemEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The table containing savi system-wide parameters." ::= { saviObjects 1 } saviObjectsSystemEntry OBJECT-TYPE SYNTAX SaviObjectsSystemEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry containing savi system-wide parameters for a particular IP version. " INDEX { saviObjectsSystemIPVersion,saviObjectsSystemMethod } ::= { saviObjectsSystemTable 1 } SaviObjectsSystemEntry ::= SEQUENCE { saviObjectsSystemIPVersion InetVersion, saviObjectsSystemMethod INTEGER, saviObjectsSystemMethodName DisplayString (SIZE (0..255)), saviObjectsSystemMethodEnable INTEGER, saviObjectsSystemMethodPreference INTEGER } saviObjectsSystemIPVersion OBJECT-TYPE SYNTAX InetVersion MAX-ACCESS not-accessible STATUS current DESCRIPTION "The IP version " ::= { saviObjectsSystemEntry 1 } An, et al. Expires July 22, 2019 [Page 10] Internet-Draft SAVI-MIB January 2019 saviObjectsSystemMethod OBJECT-TYPE SYNTAX INTEGER { manual(1), slaac(2), dhcp(3), send(4) } MAX-ACCESS not-accessible STATUS current DESCRIPTION "IP address assignment methods." ::= { saviObjectsSystemEntry 2 } saviObjectsSystemMethodName OBJECT-TYPE SYNTAX DisplayString (SIZE (0..255)) MAX-ACCESS read-only STATUS current DESCRIPTION "Name of IP address assignment methods. " ::= { saviObjectsSystemEntry 3 } saviObjectsSystemMethodEnable OBJECT-TYPE SYNTAX INTEGER { enable(1), disable(2) } MAX-ACCESS read-write STATUS current DESCRIPTION "If the method is enabled. " ::= { saviObjectsSystemEntry 4 } saviObjectsSystemMethodPreference OBJECT-TYPE SYNTAX INTEGER { enable(1), disable(2) } MAX-ACCESS read-write STATUS current DESCRIPTION "Preference of the method. " ::= { saviObjectsSystemEntry 5 } -- Port parameters for SAVI protocol An, et al. Expires July 22, 2019 [Page 11] Internet-Draft SAVI-MIB January 2019 saviObjectsPortTable OBJECT-TYPE SYNTAX SEQUENCE OF SaviObjectsPortEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The table containing SAVI parameters of each anchor." ::= { saviObjects 2 } saviObjectsPortEntry OBJECT-TYPE SYNTAX SaviObjectsPortEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry containing SAVI running parameters of an anchor." INDEX { saviObjectsPortIPVersion, saviObjectsPortIfIndex } ::= { saviObjectsPortTable 1 } SaviObjectsPortEntry ::= SEQUENCE { saviObjectsPortIPVersion InetVersion, saviObjectsPortIfIndex InterfaceIndex, saviObjectsPortValidatingAttr INTEGER, saviObjectsPortDhcpTrustAttr INTEGER, saviObjectsPortTrustAttr INTEGER, saviObjectsPortDhcpSnoopingAttr INTEGER, saviObjectsPortDataSnoopingAttr INTEGER, saviObjectsPortFilteringNum Unsigned32 } saviObjectsPortIPVersion OBJECT-TYPE SYNTAX InetVersion MAX-ACCESS not-accessible STATUS current DESCRIPTION "The IP version " ::= { saviObjectsPortEntry 1 } saviObjectsPortIfIndex OBJECT-TYPE SYNTAX InterfaceIndex MAX-ACCESS not-accessible STATUS current DESCRIPTION "The index value that uniquely identifies the interface to An, et al. Expires July 22, 2019 [Page 12] Internet-Draft SAVI-MIB January 2019 which this entry is applicable. The interface identified by a particular value of this index is the same interface as identified by the same value of the IF-MIB's ifIndex. " ::= { saviObjectsPortEntry 2 } saviObjectsPortValidatingAttr OBJECT-TYPE SYNTAX INTEGER { enable(1), disable(2) } MAX-ACCESS read-write STATUS current DESCRIPTION "An attribute defined in SAVI protocol. enable(1), the attribute is set. disable(2), the attribute is not set. " ::= { saviObjectsPortEntry 3 } saviObjectsPortDhcpTrustAttr OBJECT-TYPE SYNTAX INTEGER { enable(1), disable(2) } MAX-ACCESS read-write STATUS current DESCRIPTION "An attribute defined in SAVI protocol. enable(1), the attribute is set. disable(2), the attribute is not set. " ::= { saviObjectsPortEntry 4 } saviObjectsPortTrustAttr OBJECT-TYPE SYNTAX INTEGER { enable(1), disable(2) } MAX-ACCESS read-write STATUS current DESCRIPTION "An attribute defined in SAVI protocol. enable(1), the attribute is set. disable(2), the attribute is not set. " ::= { saviObjectsPortEntry 5 } An, et al. Expires July 22, 2019 [Page 13] Internet-Draft SAVI-MIB January 2019 saviObjectsPortDhcpSnoopingAttr OBJECT-TYPE SYNTAX INTEGER { enable(1), disable(2) } MAX-ACCESS read-write STATUS current DESCRIPTION "An attribute defined in SAVI protocol. enable(1), the attribute is set. disable(2), the attribute is not set. " ::= { saviObjectsPortEntry 6 } saviObjectsPortDataSnoopingAttr OBJECT-TYPE SYNTAX INTEGER { enable(1), disable(2) } MAX-ACCESS read-write STATUS current DESCRIPTION "An attribute defined in SAVI protocol. enable(1), the attribute is set. disable(2), the attribute is not set. " ::= { saviObjectsPortEntry 7 } saviObjectsPortFilteringNum OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-write STATUS current DESCRIPTION "The max filtering number of the Port." ::= { saviObjectsPortEntry 8 } -- Binding Status Table for SAVI protocol saviObjectsBindingTable OBJECT-TYPE SYNTAX SEQUENCE OF SaviObjectsBindingEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The table containing the state of binding between source address and anchor. " ::= { saviObjects 3 } An, et al. Expires July 22, 2019 [Page 14] Internet-Draft SAVI-MIB January 2019 saviObjectsBindingEntry OBJECT-TYPE SYNTAX SaviObjectsBindingEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry containing the state of binding between source address and anchor. Entries are keyed on the source IP address type, binding type, anchor, and source IP address. " INDEX { saviObjectsBindingIpAddressType, saviObjectsBindingMethod, saviObjectsBindingIfIndex, saviObjectsBindingIpAddress } ::= { saviObjectsBindingTable 1 } SaviObjectsBindingEntry ::= SEQUENCE { saviObjectsBindingIpAddressType InetAddressType, saviObjectsBindingMethod INTEGER, saviObjectsBindingIfIndex InterfaceIndex, saviObjectsBindingIpAddress InetAddress, saviObjectsBindingMacAddr MacAddress, saviObjectsBindingState INTEGER, saviObjectsBindingLifetime TimeInterval, saviObjectsBindingCreationtime DateAndTime, saviObjectsBindingRowStatus RowStatus } saviObjectsBindingIpAddressType OBJECT-TYPE SYNTAX InetAddressType MAX-ACCESS not-accessible STATUS current DESCRIPTION "IP address type of the binding source IP." ::= { saviObjectsBindingEntry 1 } saviObjectsBindingMethod OBJECT-TYPE SYNTAX INTEGER { manual(1), slaac(2), dhcp(3), send(4) } MAX-ACCESS not-accessible STATUS current An, et al. Expires July 22, 2019 [Page 15] Internet-Draft SAVI-MIB January 2019 DESCRIPTION "IP address assignment methods." ::= { saviObjectsBindingEntry 2 } saviObjectsBindingIfIndex OBJECT-TYPE SYNTAX InterfaceIndex MAX-ACCESS not-accessible STATUS current DESCRIPTION "The index value that uniquely identifies the interface to which this entry is applicable. The interface identified by a particular value of this index is the same interface as identified by the same value of the IF-MIB's ifIndex. " ::= { saviObjectsBindingEntry 3 } saviObjectsBindingIpAddress OBJECT-TYPE SYNTAX InetAddress MAX-ACCESS not-accessible STATUS current DESCRIPTION "The binding source IP address" ::= { saviObjectsBindingEntry 4 } saviObjectsBindingMacAddr OBJECT-TYPE SYNTAX MacAddress MAX-ACCESS read-create STATUS current DESCRIPTION "The binding source mac address." ::= { saviObjectsBindingEntry 5 } saviObjectsBindingState OBJECT-TYPE SYNTAX INTEGER { NO_BIND(1), INIT_BIND(2), BOUND(3), DETECTION(4), RECOVERY(5), VERIFY(6), TENTATIVE(7), VALID(8), TESTING_TP-LT(9), TESTING_VP(10), TESTING_VP-1(11), TENTATIVE_NUD(12), TENTATIVE_DAD(13) } An, et al. Expires July 22, 2019 [Page 16] Internet-Draft SAVI-MIB January 2019 MAX-ACCESS read-create STATUS current DESCRIPTION "The state of the binding entry. " ::= { saviObjectsBindingEntry 6 } saviObjectsBindingLifetime OBJECT-TYPE SYNTAX TimeInterval MAX-ACCESS read-create STATUS current DESCRIPTION "The remaining lifetime of the entry. TimeInterval is defined in RFC 2579, it's a period of time, measured in units of 0.01 seconds, and the value is (0..2147483647). If saviObjectsBindingMethod=manual, a value of 2147483647 represents infinity. " ::= { saviObjectsBindingEntry 7 } saviObjectsBindingCreationtime OBJECT-TYPE SYNTAX DateAndTime MAX-ACCESS read-create STATUS current DESCRIPTION "The value of the local clock when the entry was firstly created. " ::= { saviObjectsBindingEntry 8 } saviObjectsBindingRowStatus 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. An Entry can be created or deleted only when saviObjectsBindingMethod=manual. " ::= { saviObjectsBindingEntry 9 } -- Filtering Table for SAVI protocol saviObjectsFilteringTable OBJECT-TYPE SYNTAX SEQUENCE OF SaviObjectsFilteringEntry MAX-ACCESS not-accessible An, et al. Expires July 22, 2019 [Page 17] Internet-Draft SAVI-MIB January 2019 STATUS current DESCRIPTION "The table containing the filtering entries." ::= { saviObjects 4 } saviObjectsFilteringEntry OBJECT-TYPE SYNTAX SaviObjectsFilteringEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry containing the filtering parameters. Entries are keyed on the source IP address type, anchor, and source IP address. " INDEX { saviObjectsFilteringIpAddressType, saviObjectsFilteringIfIndex, saviObjectsFilteringIpAddress } ::= { saviObjectsFilteringTable 1 } SaviObjectsFilteringEntry ::= SEQUENCE { saviObjectsFilteringIpAddressType InetAddressType, saviObjectsFilteringIfIndex InterfaceIndex, saviObjectsFilteringIpAddress InetAddress, saviObjectsFilteringMacAddr MacAddress } saviObjectsFilteringIpAddressType OBJECT-TYPE SYNTAX InetAddressType MAX-ACCESS not-accessible STATUS current DESCRIPTION "IP address type of the filtering source IP" ::= { saviObjectsFilteringEntry 1 } saviObjectsFilteringIfIndex OBJECT-TYPE SYNTAX InterfaceIndex MAX-ACCESS not-accessible STATUS current DESCRIPTION "The index value that uniquely identifies the interface to which this entry is applicable. The interface identified by a particular value of this index is the same interface as identified by the same value of the IF-MIB's ifIndex. " ::= { saviObjectsFilteringEntry 2 } An, et al. Expires July 22, 2019 [Page 18] Internet-Draft SAVI-MIB January 2019 saviObjectsFilteringIpAddress OBJECT-TYPE SYNTAX InetAddress MAX-ACCESS not-accessible STATUS current DESCRIPTION "The filtering source IP address." ::= { saviObjectsFilteringEntry 3 } saviObjectsFilteringMacAddr OBJECT-TYPE SYNTAX MacAddress MAX-ACCESS read-only STATUS current DESCRIPTION "The filtering source mac address." ::= { saviObjectsFilteringEntry 4 } --Count of packets dropped because of validation failure for each interface. saviObjectsCountTable OBJECT-TYPE SYNTAX SEQUENCE OF saviObjectsCountEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The table containing count of packets dropped because of validation failure." ::= { saviObjects 5 } saviObjectsCountEntry OBJECT-TYPE SYNTAX saviObjectsCountEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry containing count of packets dropped because of validation failure for each interface." INDEX { saviObjectsCountIPVersion, saviObjectsCountIfIndex } ::= { saviObjectsCountTable 1 } saviObjectsCountEntry ::= SEQUENCE { saviObjectsCountIPVersion InetVersion, saviObjectsCountIfIndex InterfaceIndex, saviObjectsCountFilterPkts Counter64, saviObjectsCountFilterOctets Counter64 } An, et al. Expires July 22, 2019 [Page 19] Internet-Draft SAVI-MIB January 2019 saviObjectsCountIPVersion OBJECT-TYPE SYNTAX InetVersion MAX-ACCESS not-accessible STATUS current DESCRIPTION "The IP version " ::= { saviObjectsCountEntry 1 } saviObjectsCountIfIndex OBJECT-TYPE SYNTAX InterfaceIndex MAX-ACCESS not-accessible STATUS current DESCRIPTION "The Interface." ::= { saviObjectsCountEntry 2 } saviObjectsCountFilterPkts OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "The count of Pkts dropped." ::= { saviObjectsCountEntry 3 } saviObjectsCountFilterOctets OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "The count of Octets dropped." ::= { saviObjectsCountEntry 4 } -- Conformance information saviConformance OBJECT IDENTIFIER ::= { saviMIB 2 } saviCompliances OBJECT IDENTIFIER ::= { saviConformance 1 } -- Compliance statements saviCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "The compliance statement for entities which implement SAVI protocol. " MODULE MANDATORY-GROUPS { systemGroup, An, et al. Expires July 22, 2019 [Page 20] Internet-Draft SAVI-MIB January 2019 portGroup, bindingGroup, filteringGroup } ::= { saviCompliances 1} saviGroups OBJECT IDENTIFIER ::= { saviConformance 2 } --Units of conformance systemGroup OBJECT-GROUP OBJECTS { saviObjectsSystemMethod, saviObjectsSystemMethodName, saviObjectsSystemMethodEnable, saviObjectsSystemMethodPreference } STATUS current DESCRIPTION "The system group contains objects corrsponding to savi system parameters. " ::= {saviGroups 1} portGroup OBJECT-GROUP OBJECTS { saviObjectsPortValidatingAttr, saviObjectsPortDhcpTrustAttr, saviObjectsPortTrustAttr, saviObjectsPortDhcpSnoopingAttr, saviObjectsPortDataSnoopingAttr, saviObjectsPortFilteringNum } STATUS current DESCRIPTION "The if group contains objects corresponding to the savi running parameters of each anchor. " ::= {saviGroups 2} bindingGroup OBJECT-GROUP OBJECTS { saviObjectsBindingMacAddr, saviObjectsBindingLifetime, saviObjectsBindingCreationtime, saviObjectsBindingRowStatus } STATUS current An, et al. Expires July 22, 2019 [Page 21] Internet-Draft SAVI-MIB January 2019 DESCRIPTION "The binding group contains the binding information of anchor and source ip address. " ::= {saviGroups 3} filteringGroup OBJECT-GROUP OBJECTS { saviObjectsFilteringMacAddr } STATUS current DESCRIPTION "The filtering group contains the filtering information of anchor and source ip address. " ::= {saviGroups 4} END 9. Security Considerations There are a number of management objects defined in this MIB module with a MAX-ACCESS clause of read-write and/or read-create. Such objects may be considered sensitive or vulnerable in some network environments. The support for SET operations in a non-secure environment without proper protection can have a negative effect on network operations. These are the tables and objects and their sensitivity/vulnerability: o saviObjectsSystemTable - Unauthorized changes to the writable objects under saviObjectsSystemTable MAY disrupt allocation of resources in the network. For example, a device's SAVI system mode be changed by set operation to SAVI-DISABLE will give chance to IP source address spoofing. o saviObjectsPortTable - Unauthorized changes to the writable objects under saviObjectsPortTable MAY disrupt allocation of resources in the network. For example, an anchor's ValidatingAttr be changed by set operation to DISABLE will give chance to IP source address spoofing. o saviObjectsBindingTable - Unauthorized changes to the writable objects under this table MAY disrupt allocation of resources in the network. For example, a manual binding entry is inserted to the BST will give chance to IP source address spoofing. An, et al. Expires July 22, 2019 [Page 22] Internet-Draft SAVI-MIB January 2019 Some of the readable objects in this MIB module (i.e., objects with a MAX-ACCESS other than not-accessible) may be considered sensitive or vulnerable in some network environments. It is thus important to control even GET and/or NOTIFY access to these objects and possibly to even encrypt the values of these objects when sending them over the network via SNMP. These are the tables and objects and their sensitivity/vulnerability: o saviObjectsBindingTable, saviObjectsFilteringTable - The IP address and binding anchor information will be helpful to some attacks. SNMP versions prior to SNMPv3 did not include adequate security. Even if the network itself is secure (for example by using IPsec), 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. 10. IANA Considerations The MIB module in this document uses the following IANA-assigned OBJECT IDENTIFIER values recorded in the SMI Numbers registry: Descriptor OBJECT IDENTIFIER value ---------- ----------------------- SAVI-MIB { ip XXX } 11. Contributors 12. References An, et al. Expires July 22, 2019 [Page 23] Internet-Draft SAVI-MIB January 2019 12.1. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, . [RFC2131] Droms, R., "Dynamic Host Configuration Protocol", RFC 2131, DOI 10.17487/RFC2131, March 1997, . [RFC2578] McCloghrie, K., Ed., Perkins, D., Ed., and J. Schoenwaelder, Ed., "Structure of Management Information Version 2 (SMIv2)", STD 58, RFC 2578, DOI 10.17487/RFC2578, April 1999, . [RFC2579] McCloghrie, K., Ed., Perkins, D., Ed., and J. Schoenwaelder, Ed., "Textual Conventions for SMIv2", STD 58, RFC 2579, DOI 10.17487/RFC2579, April 1999, . [RFC2580] McCloghrie, K., Ed., Perkins, D., Ed., and J. Schoenwaelder, Ed., "Conformance Statements for SMIv2", STD 58, RFC 2580, DOI 10.17487/RFC2580, April 1999, . [RFC3315] Droms, R., Ed., Bound, J., Volz, B., Lemon, T., Perkins, C., and M. Carney, "Dynamic Host Configuration Protocol for IPv6 (DHCPv6)", RFC 3315, DOI 10.17487/RFC3315, July 2003, . [RFC4001] Daniele, M., Haberman, B., Routhier, S., and J. Schoenwaelder, "Textual Conventions for Internet Network Addresses", RFC 4001, DOI 10.17487/RFC4001, February 2005, . [RFC6620] Nordmark, E., Bagnulo, M., and E. Levy-Abegnoli, "FCFS SAVI: First-Come, First-Served Source Address Validation Improvement for Locally Assigned IPv6 Addresses", RFC 6620, DOI 10.17487/RFC6620, May 2012, . [RFC7039] Wu, J., Bi, J., Bagnulo, M., Baker, F., and C. Vogt, Ed., "Source Address Validation Improvement (SAVI) Framework", RFC 7039, DOI 10.17487/RFC7039, October 2013, . An, et al. Expires July 22, 2019 [Page 24] Internet-Draft SAVI-MIB January 2019 [RFC7219] Bagnulo, M. and A. Garcia-Martinez, "SEcure Neighbor Discovery (SEND) Source Address Validation Improvement (SAVI)", RFC 7219, DOI 10.17487/RFC7219, May 2014, . [RFC7513] Bi, J., Wu, J., Yao, G., and F. Baker, "Source Address Validation Improvement (SAVI) Solution for DHCP", RFC 7513, DOI 10.17487/RFC7513, May 2015, . 12.2. Informative References [RFC2223] Postel, J. and J. Reynolds, "Instructions to RFC Authors", RFC 2223, DOI 10.17487/RFC2223, October 1997, . [RFC2629] Rose, M., "Writing I-Ds and RFCs using XML", RFC 2629, DOI 10.17487/RFC2629, June 1999, . [RFC2863] McCloghrie, K. and F. Kastenholz, "The Interfaces Group MIB", RFC 2863, DOI 10.17487/RFC2863, June 2000, . [RFC3410] Case, J., Mundy, R., Partain, D., and B. Stewart, "Introduction and Applicability Statements for Internet- Standard Management Framework", RFC 3410, DOI 10.17487/RFC3410, December 2002, . [RFC4181] Heard, C., Ed., "Guidelines for Authors and Reviewers of MIB Documents", BCP 111, RFC 4181, DOI 10.17487/RFC4181, September 2005, . [RFC4293] Routhier, S., Ed., "Management Information Base for the Internet Protocol (IP)", RFC 4293, DOI 10.17487/RFC4293, April 2006, . 12.3. URL References [idguidelines] IETF Internet Drafts editor, "http://www.ietf.org/ietf/1id-guidelines.txt". [idnits] IETF Internet Drafts editor, "http://www.ietf.org/ID-Checklist.html". [ietf] IETF Tools Team, "http://tools.ietf.org". An, et al. Expires July 22, 2019 [Page 25] Internet-Draft SAVI-MIB January 2019 [ops] the IETF OPS Area, "http://www.ops.ietf.org". [xml2rfc] XML2RFC tools and documentation, "http://xml.resource.org". An, et al. Expires July 22, 2019 [Page 26] Internet-Draft SAVI-MIB January 2019 Appendix A. Change Log From draft 00 to draft 01 o Change the value range of object saviObjectsSystemMode and add a new value savi-send(6). From draft 01 to draft 02 o Change saviObjectsTrustStatus into two booleans, one is saviObjectsDhcpTrustStatus, another is saviObjectsRaTrustStatus. o Change the character string saviObjectsIf to saviObjectsPort globally. o Change saviObjectsBindingState according to the latest version of solution drafts. From draft 02 to draft 03 o Add a new object saviObjectsPortBindRecoveryAttr, and change the object saviObjectsPortRaTrustStatus to saviObjectsPortTrustAttr according to the latest version of solution drafts and RFC. o Change the value range and meaning of saviObjectsBindingState according to the latest version of solution drafts and RFC. o Change the value range of object saviObjectsBindingType, add a new value send(4), and change the value static(1) to manual(1). From draft 03 to draft 04 o Add three new objects according to the latest version of solution drafts and RFC, i.e. saviObjectsSystemTentLT, saviObjectsSystemDefaultLT, saviObjectsSystemTWAIT. From draft 04 to draft 05 o Add two new objects according to the latest version of solution drafts and RFC, i.e. saviObjectsBindingCreationtime, saviObjectsBindingTID. From draft 05 to draft 06 o Add three new objects, saviObjectsSystemDadTimeout, saviObjectsPortDhcpSnoopingAttr and saviObjectsPortDataSnoopingAttr. An, et al. Expires July 22, 2019 [Page 27] Internet-Draft SAVI-MIB January 2019 o Replace object saviObjectsSystemBindRecoveryInterval with saviObjectsSystemDataSnoopingInterval. o Replace object saviObjectsPortSAVISAVIAttr with saviObjectsPortTrustAttr. o Delete object saviObjectsPortBindRecoveryAttr. From draft 06 to draft 07 o Replace object saviObjectsSystemDadTimeout with saviObjectsSystemDetectionTimeout. From draft 07 to draft 08 o Add a new table to count the fail packets of each interface. From draft 08 to draft 09 o Change the value range and meaning of saviObjectsBindingState according to the latest version of solution RFC. From draft 09 to draft 10 o Replace object saviObjectsSystemMode with saviObjectsSystemSlaacEnable, saviObjectsSystemDhcpEnable, saviObjectsSystemSendEnable, saviObjectsManualEnable. From draft 10 to draft 11 o Add a new table SaviObjectsPreferenceTable to reflect the preference of each savi method. From draft 11 to draft 12 o Replace object saviObjectsBindingType with saviObjectsBindingMethod. From draft 12 to draft 13 o Add a new object saviObjectsCountFilterOctets to count the octets dropped by SAVI protocol. Appendix B. Open Issues Note to RFC Editor: please remove this appendix before publication as an RFC. An, et al. Expires July 22, 2019 [Page 28] Internet-Draft SAVI-MIB January 2019 Authors' Addresses Changqing An Tsinghua University Institute for Network Sciences and Cyberspace, Tsinghua University Beijing 100084 China Phone: +86 10 62603113 EMail: acq@cernet.edu.cn Jiahai Yang Tsinghua University Institute for Network Sciences and Cyberspace, Tsinghua University Beijing 100084 China Phone: +86 10 62783492 EMail: yang@cernet.edu.cn Jianping Wu Tsinghua University Institute for Network Sciences and Cyberspace, Tsinghua University Beijing 100084 China EMail: jianping@cernet.edu.cn Jun Bi Tsinghua University Institute for Network Sciences and Cyberspace, Tsinghua University Beijing 100084 China EMail: junbi@cernet.edu.cn An, et al. Expires July 22, 2019 [Page 29]