draft-ietf-i2nsf-registration-interface-dm-01.txt | draft-ietf-i2nsf-registration-interface-dm-02.txt | |||
---|---|---|---|---|
I2NSF Working Group S. Hyun | I2NSF Working Group S. Hyun | |||
Internet-Draft Chosun University | Internet-Draft Chosun University | |||
Intended status: Standards Track J. Jeong | Intended status: Standards Track J. Jeong | |||
Expires: May 8, 2019 T. Roh | Expires: September 12, 2019 T. Roh | |||
S. Wi | S. Wi | |||
Sungkyunkwan University | Sungkyunkwan University | |||
J. Park | J. Park | |||
ETRI | ETRI | |||
November 4, 2018 | March 11, 2019 | |||
I2NSF Registration Interface YANG Data Model | I2NSF Registration Interface YANG Data Model | |||
draft-ietf-i2nsf-registration-interface-dm-01 | draft-ietf-i2nsf-registration-interface-dm-02 | |||
Abstract | Abstract | |||
This document defines an information model and a YANG data model for | This document defines an information model and a YANG data model for | |||
Interface to Network Security Functions (I2NSF) Registration | Interface to Network Security Functions (I2NSF) Registration | |||
Interface between Security Controller and Developer's Management | Interface between Security Controller and Developer's Management | |||
System (DMS). The objective of these information and data models is | System (DMS). The objective of these information and data models is | |||
to support NSF search, instantiation and registration according to | to support NSF capability registration and query via I2NSF | |||
required security capabilities via I2NSF Registration Interface. | Registration Interface. | |||
Editorial Note (To be removed by RFC Editor) | ||||
Please update these statements within the document with the RFC | ||||
number to be assigned to this document: | ||||
"This version of this YANG module is part of RFC XXXX;" | ||||
"RFC XXXX: I2NSF Registration Interface YANG Data Model" | ||||
"reference: RFC XXXX" | ||||
Please update the "revision" date of the YANG module. | ||||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on May 8, 2019. | This Internet-Draft will expire on September 12, 2019. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2018 IETF Trust and the persons identified as the | Copyright (c) 2019 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2. Requirements Language . . . . . . . . . . . . . . . . . . . . 3 | 2. Requirements Language . . . . . . . . . . . . . . . . . . . . 3 | |||
3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
4. Objectives . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 4. Objectives . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
5. Information Model . . . . . . . . . . . . . . . . . . . . . . 5 | 5. Information Model . . . . . . . . . . . . . . . . . . . . . . 5 | |||
5.1. NSF Registration Mechanism . . . . . . . . . . . . . . . 5 | 5.1. NSF Capability Registration . . . . . . . . . . . . . . . 5 | |||
5.2. NSF Access Information . . . . . . . . . . . . . . . . . 6 | 5.1.1. NSF Capability Information . . . . . . . . . . . . . 6 | |||
5.3. NSF Capability Information (Capabilities of an NSF | 5.1.2. NSF Access Information . . . . . . . . . . . . . . . 8 | |||
Instance) . . . . . . . . . . . . . . . . . . . . . . . . 6 | 5.2. NSF Capability Query . . . . . . . . . . . . . . . . . . 8 | |||
5.3.1. Performance Capabilities . . . . . . . . . . . . . . 7 | 6. Data Model . . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
5.4. Role-based Access Control List . . . . . . . . . . . . . 8 | 6.1. YANG Tree Diagram . . . . . . . . . . . . . . . . . . . . 8 | |||
6. Data Model . . . . . . . . . . . . . . . . . . . . . . . . . 9 | ||||
6.1. High-Level YANG . . . . . . . . . . . . . . . . . . . . . 9 | ||||
6.1.1. Definition of Symbols in Tree Diagrams . . . . . . . 9 | 6.1.1. Definition of Symbols in Tree Diagrams . . . . . . . 9 | |||
6.1.2. Registration Interface . . . . . . . . . . . . . . . 10 | 6.1.2. I2NSF Registration Interface . . . . . . . . . . . . 9 | |||
6.1.3. Registration Request . . . . . . . . . . . . . . . . 10 | 6.1.3. NSF Capability Information . . . . . . . . . . . . . 11 | |||
6.1.4. Instance Management Request . . . . . . . . . . . . . 10 | 6.1.4. NSF Access Information . . . . . . . . . . . . . . . 11 | |||
6.1.5. NSF Capability Information . . . . . . . . . . . . . 11 | 6.2. YANG Data Modules . . . . . . . . . . . . . . . . . . . . 12 | |||
6.1.6. NSF Access Information . . . . . . . . . . . . . . . 12 | 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 | |||
6.1.7. NSF Performance Capability . . . . . . . . . . . . . 12 | 8. Security Considerations . . . . . . . . . . . . . . . . . . . 17 | |||
6.1.8. Role-Based ACL(Access Control List) . . . . . . . . . 12 | 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
6.2. YANG Modules . . . . . . . . . . . . . . . . . . . . . . 13 | 9.1. Normative References . . . . . . . . . . . . . . . . . . 17 | |||
6.2.1. XML Example of Registration Interface Data Model . . 17 | 9.2. Informative References . . . . . . . . . . . . . . . . . 17 | |||
7. Security Considerations . . . . . . . . . . . . . . . . . . . 19 | Appendix A. XML Example of Registration Interface Data Model . . 19 | |||
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 19 | A.1. Example 1: Registration for Capabilities of General | |||
8.1. Normative References . . . . . . . . . . . . . . . . . . 19 | Firewall . . . . . . . . . . . . . . . . . . . . . . . . 19 | |||
8.2. Informative References . . . . . . . . . . . . . . . . . 19 | A.2. Example 2: Registration for Capabilities of Time based | |||
Appendix A. NSF Lifecycle Managmenet in NFV Environments . . . . 21 | Firewall . . . . . . . . . . . . . . . . . . . . . . . . 20 | |||
Appendix B. Changes from draft-ietf-i2nsf-registration- | ||||
interface-dm-00 . . . . . . . . . . . . . . . . . . 21 | A.3. Example 3: Registration for Capabilities of Web Filter . 22 | |||
Appendix C. Acknowledgments . . . . . . . . . . . . . . . . . . 21 | A.4. Example 4: Registration for Capabilities of VoIP/VoLTE | |||
Appendix D. Contributors . . . . . . . . . . . . . . . . . . . . 21 | Filter . . . . . . . . . . . . . . . . . . . . . . . . . 24 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 22 | A.5. Example 5: Registration for Capabilities of HTTP and | |||
HTTPS Flood Mitigation . . . . . . . . . . . . . . . . . 26 | ||||
A.6. Example 6: Query for Capabilities of Time based Firewall 28 | ||||
Appendix B. NSF Lifecycle Managmenet in NFV Environments . . . . 29 | ||||
Appendix C. Changes from draft-ietf-i2nsf-registration- | ||||
interface-dm-01 . . . . . . . . . . . . . . . . . . 29 | ||||
Appendix D. Acknowledgments . . . . . . . . . . . . . . . . . . 29 | ||||
Appendix E. Contributors . . . . . . . . . . . . . . . . . . . . 30 | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 30 | ||||
1. Introduction | 1. Introduction | |||
A number of virtual network security function instances typically | A number of network security functions may exist in Interface to | |||
exist in Interface to Network Security Functions (I2NSF) framework | Network Security Functions (I2NSF) framework [RFC8329]. Since these | |||
[RFC8329]. Since these NSF instances may have different security | NSFs likely have different security capabilities, it is important to | |||
capabilities, it is important to register the security capabilities | register the security capabilities of each NSF into the security | |||
of each NSF instance into the security controller after they have | controller. In addition, it is required to search NSFs of some | |||
been created. In addition, it is required to search or instantiate | required security capabilities on demand. As an example, if | |||
NSFs of some required security capabilities on demand. As an | additional security capabilities are required to serve some security | |||
example, if additional security capabilities are required to meet the | service request(s) from an I2NSF user, the security controller should | |||
new security requirements that an I2NSF user requests, the security | be able to request the DMS for NSFs that have the required security | |||
controller should be able to request the DMS for NSFs that have the | capabilities. | |||
required security capabilities. | ||||
This document describes an information model (see Section 5) and a | This document describes an information model (see Section 5) and a | |||
YANG [RFC6020] data model (see Section 6) for the I2NSF Registration | YANG [RFC7950] data model (see Section 6) for the I2NSF Registration | |||
Interface [RFC8329] between the security controller and the | Interface [RFC8329] between the security controller and the | |||
developer's management system (DMS) to support NSF search, | developer's management system (DMS) to support NSF capability | |||
instantiation and registration according to required security | registration and query and NSF initiation request via the | |||
capabilities. It also describes the procedure which should be | registration interface. It also describes the operations which | |||
performed by the security controller and the DMS via the Registration | should be performed by the security controller and the DMS via the | |||
Interface using the defined model. | Registration Interface using the defined model. | |||
2. Requirements Language | 2. Requirements Language | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
document are to be interpreted as described in [RFC2119]. | document are to be interpreted as described in [RFC2119]. | |||
3. Terminology | 3. Terminology | |||
This document uses the following terms defined in | This document uses the following terms defined in | |||
skipping to change at page 3, line 46 ¶ | skipping to change at page 4, line 15 ¶ | |||
for specific treatment of received packets. A Network Security | for specific treatment of received packets. A Network Security | |||
Function can act at various layers of a protocol stack (e.g., at | Function can act at various layers of a protocol stack (e.g., at | |||
the network layer or other OSI layers). Sample Network Security | the network layer or other OSI layers). Sample Network Security | |||
Service Functions are as follows: Firewall, Intrusion Prevention/ | Service Functions are as follows: Firewall, Intrusion Prevention/ | |||
Detection System (IPS/IDS), Deep Packet Inspection (DPI), | Detection System (IPS/IDS), Deep Packet Inspection (DPI), | |||
Application Visibility and Control (AVC), network virus and | Application Visibility and Control (AVC), network virus and | |||
malware scanning, sandbox, Data Loss Prevention (DLP), Distributed | malware scanning, sandbox, Data Loss Prevention (DLP), Distributed | |||
Denial of Service (DDoS) mitigation and TLS proxy. | Denial of Service (DDoS) mitigation and TLS proxy. | |||
[nsf-triggered-steering] | [nsf-triggered-steering] | |||
o Advanced Inspection/Action: As like the I2NSF information model | ||||
for NSF facing interface [capability-im], Advanced Inspection/ | ||||
Action means that a security function calls another security | ||||
function for further inspection based on its own inspection | ||||
result. [nsf-triggered-steering] | ||||
o NSF Profile (NSF Capability Information): NSF Capability | ||||
Information specifies the inspection capabilities of the | ||||
associated NSF instance. Each NSF instance has its own NSF | ||||
Capability Information to specify the type of security service it | ||||
provides and its resource capacity etc. [nsf-triggered-steering] | ||||
o Data Model: A data model is a representation of concepts of | o Data Model: A data model is a representation of concepts of | |||
interest to an environment in a form that is dependent on data | interest to an environment in a form that is dependent on data | |||
repository, data definition language, query language, | repository, data definition language, query language, | |||
implementation language, and protocol. [supa-policy-info-model] | implementation language, and protocol. [supa-policy-info-model] | |||
o Information Model: An information model is a representation of | o Information Model: An information model is a representation of | |||
concepts of interest to an environment in a form that is | concepts of interest to an environment in a form that is | |||
independent of data repository, data definition language, query | independent of data repository, data definition language, query | |||
language, implementation language, and protocol. | language, implementation language, and protocol. | |||
[supa-policy-info-model] | [supa-policy-info-model] | |||
o YANG: This document follows the guidelines of [RFC6087], uses the | ||||
common YANG types defined in [RFC6991], and adopts the Network | ||||
Management Datastore Architecture (NMDA). The meaning of the | ||||
symbols in tree diagrams is defined in [RFC8340]. | ||||
4. Objectives | 4. Objectives | |||
o Registering NSFs to I2NSF framework: Developer's Management System | o Registering NSFs to I2NSF framework: Developer's Management System | |||
(DMS) in I2NSF framework is typically run by an NSF vendor, and | (DMS) in I2NSF framework is typically run by an NSF vendor, and | |||
uses Registration Interface to provide NSFs developed by the NSF | uses Registration Interface to provide NSFs developed by the NSF | |||
vendor to Security Controller. DMS registers NSFs and their | vendor to Security Controller. DMS registers NSFs and their | |||
capabilities to I2NSF framework through Registration Interface, so | capabilities to I2NSF framework through Registration Interface. | |||
that Security Controller can use those capabilities by | For the registered NSFs, Security Controller maintains a catalog | |||
instantiating the NSFs once they are required. Once NSFs are | of the capabilities of those NSFs. | |||
registered to I2NSF framework, a catalog of the NSFs and their | ||||
capabilities is created and provided to Security Controller. When | ||||
we consider the implementation of I2NSF framework based on NFV | ||||
technology, the catalog of the NSFs may be prepared and managed by | ||||
NFV MANO. | ||||
o Updating the capabilities of registered NSFs: After an NSF is | o Updating the capabilities of registered NSFs: After an NSF is | |||
registered into I2NSF framework, some modifications on the | registered into Security Controller, some modifications on the | |||
capability of the NSF may be required later. In this case, DMS | capability of the NSF may be required later. In this case, DMS | |||
uses Registration Interface to update the capability of the NSF, | uses Registration Interface to update the capability of the NSF, | |||
and this update should be reflected on the catalog of NSFs. | and this update should be reflected on the catalog of NSFs. | |||
o Retrieving the catalog of NSFs: Security Controller uses | o Querying DMS about some required capabilities: Security Controller | |||
Registration Interface to retrieve the catalog of available NSFs | may need some additional capabilities to serve the security | |||
and their capabilities. Enforcing security policy requires a set | service request from an I2NSF user, but none of the registered | |||
of security capabilities that is provided by a set of NSFs. Once | NSFs has the required capabilities. In this case, Security | |||
receiving a request of security policy from an I2NSF user, | Controller may query DMS about NSF(s) that can provide the | |||
Security Controller figures out what capabilities are required to | required capabilities via Registration Interface. | |||
enforce the security policy. Security Controller then searches | ||||
the catalog of NSFs for the required capabilities, and finally | ||||
determines a set of NSFs that is necessary to enforce the | ||||
requested policy. | ||||
o Requesting NSF instantiation: If some NSFs need to be instantiated | ||||
to enforce requested security policy, Security Controller makes a | ||||
request to instantiate them through Registration Interface. Or if | ||||
an NSF, running as a virtual NSF in the NFV environment, is not | ||||
used by any traffic flows for a time period, Security Controller | ||||
may request deinstantiating it through Registration Interface for | ||||
the purpose of efficient resource utilization. | ||||
5. Information Model | 5. Information Model | |||
The I2NSF registration interface is used by Security Controller and | The I2NSF registration interface is used by Security Controller and | |||
Developer's Management System (DMS) in I2NSF framework. The | Developer's Management System (DMS) in I2NSF framework. The | |||
following summarizes the process typically done through the | following summarizes the operations done through the registration | |||
registration interface: | interface: | |||
1) DMS registers NSFs to I2NSF framework through the registration | ||||
interface. DMS also uses the registration interface to update | ||||
the capabilities of the NSFs registered in the framework. | ||||
2) Once NSFs are registered to I2NSF framework, a catalog of the | 1) DMS registers NSFs and their capabilities to Security Controller | |||
NSFs and their capabilities is created and provided to Security | via the registration interface. DMS also uses the registration | |||
Controller via the registration interface. | interface to update the capabilities of the NSFs registered | |||
previously. | ||||
3) Security Controller searches the catalog of NSFs for the | 2) In case that Security Controller fails to find any registered NSF | |||
capabilities required to enforce security policies requested by | that can provide some required capabilities, Security Controller | |||
I2NSF users, and selects some of the NSFs that can provide the | queries DMS about NSF(s) having the required capabilities via the | |||
required capabilities. | registration interface. | |||
4) Security Controller requests the instantiation of the selected | Figure 1 shows the information model of the I2NSF registration | |||
NSFs via the registration interface. | interface, which consists of three submodels: NSF capability | |||
registration, and NSF capability query. Each submodel is used for | ||||
the operations listed above. The remainder of this section will | ||||
provide more in-depth explanations of each submodel. | ||||
This section clarifies the information model that is required to | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
support the process described above. | | I2NSF Registration Interface Information Model | | |||
| | | ||||
| +-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+ | | ||||
| | NSF Capability | | NSF Capability | | | ||||
| | Registration | | Query | | | ||||
| +-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+ | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
5.1. NSF Registration Mechanism | Figure 1: I2NSF Registration Interface Information Model | |||
In order to register a new NSF, DMS should generate a registration | 5.1. NSF Capability Registration | |||
message to Security Controller. A registration message consists of | ||||
an NSF capability information and an NSF Access Information. The | ||||
former describes the security capability that the new NSF can provide | ||||
and the latter is for enabling network access to the NSF from other | ||||
components. After this registration process, as explained in | ||||
[capability-im], the I2NSF capability interface can conduct | ||||
controlling and monitoring the new registered NSF. | ||||
+-+-+-+-+-+-+-+-+ | This submodel is used by DMS to register an NSF to Security | |||
| NSF | | Controller. Figure 2 shows how this submodel is constructed. The | |||
| Registration | | most important part in Figure 2 is the NSF capability, and this | |||
+-+-+-+-^-+-+-+-+ | specifies the set of capabilities that the NSF to be registered can | |||
| | offer. The NSF Name contains a unique name of this NSF with the | |||
+-------------------------------------+ | specified set of capabilities. When registering the NSF, DMS | |||
| | | | additionally includes the network access information of the NSF which | |||
| | | | is required to enable network communications with the NSF. | |||
+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+ | ||||
| NSF Capability | | NSF Access | | NSF Rold-based | | ||||
| Information | | Information | | ACL | | ||||
+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+ | ||||
Figure 1: Registration Mechanism Sub-Model Overview | The following will further explain the NSF capability information and | |||
the NSF access information in more detail. | ||||
5.2. NSF Access Information | +-+-+-+-+-+-+-+-+-+ | |||
| NSF Capability | | ||||
| Registration | | ||||
+-+-+-+-^-+-+-+-+-+ | ||||
| | ||||
+---------------------+--------------------+ | ||||
| | | | ||||
| | | | ||||
+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+ | ||||
| NSF | | NSF Capability| | NSF Access | | ||||
| Name | | Information | | Information | | ||||
+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+ | ||||
NSF Access Information contains the followings that are required to | Figure 2: NSF Capability Registration Sub-Model | |||
communicate with an NSF: IPv4 address, IPv6 address, port number, and | ||||
supported transport protocol(s) (e.g., Virtual Extensible LAN (VXLAN) | ||||
[RFC 7348], Generic Protocol Extension for VXLAN (VXLAN-GPE) | ||||
[draft-ietf-nvo3-vxlan-gpe], Generic Route Encapsulation (GRE), | ||||
Ethernet etc.). In this document, NSF Access Information is used to | ||||
identify a specific NSF instance (i.e. NSF Access Information is the | ||||
signature(unique identifier) of an NSF instance in the overall | ||||
system). | ||||
5.3. NSF Capability Information (Capabilities of an NSF Instance) | 5.1.1. NSF Capability Information | |||
NSF Profile basically describes the inspection capabilities of an NSF | NSF Capability Information basically describes the security | |||
instance. In Figure 2, we show capability objects of an NSF | capabilities of an NSF. In Figure 3, we show capability objects of | |||
instance. Following the information model of NSF capabilities | an NSF. Following the information model of NSF capabilities defiend | |||
defiend in [capability-im], we share the same security capabilities: | in [capability-im], we share the same security capabilities: Network | |||
Network-Security Capabilities, Content-Security Capabilities, and | Security Capabilities, Content Security Capabilities, and Attack | |||
Attack Mitigation Capabilities. Also, NSF Profile additionally | Mitigation Capabilities. Also, NSF Capability Information | |||
contains the performance capabilities and role-Based access control | additionally contains the performance capabilities of an NSF as shown | |||
list (ACL) as shown in Figure 2. | in Figure 3. | |||
+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+ | |||
| Capability | | | NSF Capability | | |||
| Objects | | | Information | | |||
+-+-+-+-^-+-+-+-+ | +-+-+-+-^-+-+-+-+-+ | |||
| | | | |||
| | | | |||
+---------------+-------+--------------+ | +---------------+-------+--------------+ | |||
| | | | | | | | |||
| | | | | | | | |||
+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+ | | |||
|Network-Security | |Content-Security | | | |Network Security | |Content Security | | | |||
| Capabilities | | Capabilities | | | | Capabilities | | Capabilities | | | |||
+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+ | | |||
| | | | |||
+-----------------------+--------------+ | +-----------------------+--------------+ | |||
| | | | | | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+ | |||
| Performance | |Attack Mitigation| | | Performance | |Attack Mitigation| | |||
| Capabilities | | Capabilities | | | Capabilities | | Capabilities | | |||
+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+ | |||
Figure 2: NSF Profile Overview | Figure 3: NSF Capability Information | |||
5.3.1. Performance Capabilities | 5.1.1.1. Performance Capabilities | |||
This information represents the processing capability of an NSF. | This information represents the processing capability of an NSF. | |||
This information can be used to determine whether the NSF is in | This information can be used to determine whether the NSF is in | |||
congestion by comparing this with the workload that the NSF currently | congestion by comparing this with the workload that the NSF currently | |||
undergoes. Moreover, this information can specify an available | undergoes. Moreover, this information can specify an available | |||
amount of each type of resources such as processing power which are | amount of each type of resources such as processing power which are | |||
available on the NSF. (The registration interface can control the | available on the NSF. (The registration interface can control the | |||
usages and limitations of the created instance and make the | usages and limitations of the created instance and make the | |||
appropriate request according to the status.) As illustrated in | appropriate request according to the status.) As illustrated in | |||
Figure 3, this information consists of two items: Processing and | Figure 4, this information consists of two items: Processing and | |||
Bandwidth. Processing information describes the NSF's available | Bandwidth. Processing information describes the NSF's available | |||
processing power. Bandwidth describes the information about | processing power. Bandwidth describes the information about | |||
available network amount in two cases, outbound, inbound. This two | available network amount in two cases, outbound, inbound. This two | |||
information can be used for the NSF's instance request. | information can be used for the NSF's instance request. | |||
+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+ | |||
| Performance | | | Performance | | |||
| Capabilities | | | Capabilities | | |||
+-+-+-+-^-+-+-+-+-+ | +-+-+-+-^-+-+-+-+-+ | |||
| | | | |||
+----------------------------+ | +----------------------------+ | |||
| | | | | | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+ | |||
| Processing | | Bandwidth | | | Processing | | Bandwidth | | |||
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+ | |||
Figure 3: Performance Capability Overview | ||||
5.4. Role-based Access Control List | Figure 4: Performance Capability Overview | |||
This information specifies access policies of an NSF to determine | 5.1.2. NSF Access Information | |||
whether to permit or deny the access of an entity to the NSF based on | ||||
the role given to the entity. Each NSF is associated with a role- | ||||
based access control list (ACL) so that it can determine whether to | ||||
permit or deny the access request from an entity. Figure 4 and | ||||
Figure 5 show the structure of the role-based ACL, which is composed | ||||
of role-id, access-type, and permit/deny. The role-id identifies | ||||
roles of entities (e.g., administrator, developer etc.). The access- | ||||
type identifies the specific type of access requests such as NSF rule | ||||
configuration/update and NSF monitoring. Consequently, the role- | ||||
based ACL in Figure 4 and Figure 5 specifies a set of access-types to | ||||
be permitted and to be denied by each role-id. | ||||
+-+-+-+-+-+-+-+-+ | NSF Access Information contains the followings that are required to | |||
| Role-based | | communicate with an NSF: IPv4 address, IPv6 address, port number, and | |||
| ACL | | supported transport protocol(s) (e.g., Virtual Extensible LAN (VXLAN) | |||
+-+-+-+-+-+-+-+-+ | [RFC 7348], Generic Protocol Extension for VXLAN (VXLAN-GPE) | |||
| | [draft-ietf-nvo3-vxlan-gpe], Generic Route Encapsulation (GRE), | |||
+-----------------------------------+ | Ethernet etc.). In this document, NSF Access Information is used to | |||
| | | identify a specific NSF instance (i.e. NSF Access Information is the | |||
+-+-+-+-+-+-+ +-+-+-+-+-+-+ | signature(unique identifier) of an NSF instance in the overall | |||
| Role-id 1 | ... | Role-id N | | system). | |||
+-+-+-+-+-+-+ +-+-+-+-+-+-+ | ||||
Figure 4: Role-based Access Control List | 5.2. NSF Capability Query | |||
+-+-+-+-+-+-+-+-+ | ||||
| Role-id i | | ||||
+-+-+-+-+-+-+-+-+ | ||||
| | ||||
+---------------------------------+ | ||||
| | | ||||
+-+-+-+-+-+-+ +-+-+-+-+-+-+ | ||||
| Permit | | Deny | | ||||
+-+-+-+-+-+-+ +-+-+-+-+-+-+ | ||||
| | | ||||
+------------------+ +------------------+ | ||||
| | | | | ||||
+-+-+-+-+-+-+ +-+-+-+-+-+-+ +-+-+-+-+-+-+ +-+-+-+-+-+-+ | ||||
|access-type| ... |access-type| |access-type| ... |access-type| | ||||
| p1 | | pn | | d1 | | dn | | ||||
+-+-+-+-+-+-+ +-+-+-+-+-+-+ +-+-+-+-+-+-+ +-+-+-+-+-+-+ | ||||
Figure 5: Role-id Subtree | Security Controller may require some additional capabilities to serve | |||
the security service request from an I2NSF user, but none of the | ||||
registered NSFs has the required capabilities. In this case, | ||||
Security Controller makes a description of the required capabilities | ||||
by using the NSF capability information sub-model in Section 5.1.1, | ||||
and sends DMS a query about which NSF(s) can provide these | ||||
capabilities. | ||||
6. Data Model | 6. Data Model | |||
6.1. High-Level YANG | 6.1. YANG Tree Diagram | |||
This section provides an overview of the high level YANG. | This section provides an overview of the YANG Tree diagram of the | |||
I2NSF registration interface. | ||||
6.1.1. Definition of Symbols in Tree Diagrams | 6.1.1. Definition of Symbols in Tree Diagrams | |||
A simplified graphical representation of the data model is used in | A simplified graphical representation of the data model is used in | |||
this section. The meaning of the symbols used in the following | this section. The meaning of the symbols used in the following | |||
diagrams [i2rs-rib-data-model] is as follows: | diagrams [RFC8431] is as follows: | |||
Brackets "[" and "]" enclose list keys. | Brackets "[" and "]" enclose list keys. | |||
Abbreviations before data node names: "rw" means configuration | Abbreviations before data node names: "rw" means configuration | |||
(read-write) and "ro" state data (read-only). | (read-write) and "ro" state data (read-only). | |||
Symbols after data node names: "?" means an optional node and "*" | Symbols after data node names: "?" means an optional node and "*" | |||
denotes a "list" and "leaf-list". | denotes a "list" and "leaf-list". | |||
Parentheses enclose choice and case nodes, and case nodes are also | Parentheses enclose choice and case nodes, and case nodes are also | |||
marked with a colon (":"). | marked with a colon (":"). | |||
Ellipsis ("...") stands for contents of subtrees that are not | Ellipsis ("...") stands for contents of subtrees that are not | |||
shown. | shown. | |||
6.1.2. Registration Interface | 6.1.2. I2NSF Registration Interface | |||
module : ietf-i2nsf-regs-interface-model | module : ietf-i2nsf-reg-interface | |||
+--rw regs-req | +--rw nsf-capability-registration | |||
| uses i2nsf-regs-req | | uses i2nsf-nsf-registrations | |||
+--rw instance-mgnt-req | ||||
| uses i2nsf-instance-mgnt-req | ||||
Figure 6: High-Level YANG of I2NSF Registration Interface | rpcs : | |||
+---x nsf-capability-query | ||||
| uses i2nsf-nsf-capability-query | ||||
Each of these sections mirror sections of Section 5. | Figure 5: YANG tree of I2NSF Registration Interface | |||
6.1.3. Registration Request | The I2NSF registration interface is used for the following purposes. | |||
Developer's Management System (DMS) registers NSFs and their | ||||
capabilities into Security Controller via the registration interface. | ||||
In case that Security Controller fails to find any NSF among the | ||||
registered NSFs which can provide some required capabilities, | ||||
Security Controller uses the registration interface to query DMS | ||||
about NSF(s) having the required capabilities. The following | ||||
sections describe the YANG data models to support these operations. | ||||
This section expands the i2nsf-regs-req in Figure 6. | 6.1.2.1. NSF Capability Registration | |||
Registration Request | This section expands the i2nsf-nsf-registrations in Figure 5. | |||
+--rw i2nsf-regs-req | ||||
+--rw nsf-capability-information | ||||
| uses i2nsf-nsf-capability-information | ||||
+--rw nsf-access-info | ||||
| uses i2nsf-nsf-access-info | ||||
Figure 7: High-Level YANG of I2NSF Registration Request | NSF Capability Registration | |||
+--rw i2nsf-nsf-registrations | ||||
+--rw i2nsf-nsf-capability-registration* [nsf-name] | ||||
+--rw nsf-name string | ||||
+--rw nsf-capability-info | ||||
| uses i2nsf-nsf-capability-info | ||||
+--rw nsf-access-info | ||||
| uses i2nsf-nsf-access-info | ||||
Registration Request contains the capability information of newly | Figure 6: YANG tree of NSF Capability Registration | |||
created NSF to notify its capability to Security Controller. The | ||||
request also contains Network Access Information so that the Security | ||||
Controller can access the NSF. | ||||
6.1.4. Instance Management Request | When registering an NSF to Security Controller, DMS uses this module | |||
to describe what capabilities the NSF can offer. DMS includes the | ||||
network access information of the NSF which is required to make a | ||||
network connection with the NSF as well as the capability description | ||||
of the NSF. | ||||
This section expands the i2nsf-instance-mgnt-req in Figure 6. | 6.1.2.2. NSF Capability Query | |||
Instance Management Request | This section expands the i2nsf-nsf-capability-query in Figure 5. | |||
+--rw i2nsf-instance-mgnt-req | ||||
+--rw req-level uint16 | NSF Capability Query | |||
+--rw req-id uint64 | +---x i2nsf-nsf-capability-query | |||
+--rw (req-type)? | +---w input | |||
+--rw (instanciation-request) | | +---w query-i2nsf-capability-info | |||
+--rw in-nsf-capability-information | | | uses ietf-i2nsf-capability | |||
| uses i2nsf-nsf-capability-information | +--ro output | |||
+--rw (deinstanciation-request) | +--ro nsf-access-info | |||
+--rw de-nsf-access-info | ||||
| uses i2nsf-nsf-access-info | | uses i2nsf-nsf-access-info | |||
+--rw (updating-request) | ||||
+--rw update-nsf-capability-information | ||||
| uses i2nsf-nsf-capability-information | ||||
Figure 8: High-Level YANG of I2NSF Instance Mgnt Request | Figure 7: YANG tree of NSF Capability Query | |||
Instance management request consists of two types: instanciation- | Security Controller may require some additional capabilities to | |||
request, deinstanciation-request, and updating-request. The | provide the security service requested by an I2NSF user, but none of | |||
instanciation-request is used to request generation of a new NSF | the registered NSFs has the required capabilities. In this case, | |||
instance with NSF Capability Information which specifies required NSF | Security Controller makes a description of the required capabilities | |||
capability information. The deinstanciation-request is used to | using this module and then queries DMS about which NSF(s) can provide | |||
remove an existing NSF with NSF Access Information. The updating nsf | these capabilities. Use NETCONF RPCs to send a NSF capability query. | |||
request is used to updating a existing NSf information with NSF | Input data is query-i2nsf-capability-info and output data is nsf- | |||
capabilities. | access-info. In Figure 7, the ietf-i2nsf-capability refers to the | |||
module defined in [i2nsf-capability-dm]. | ||||
6.1.5. NSF Capability Information | 6.1.3. NSF Capability Information | |||
This section expands the i2nsf-nsf-capability-information in Figure 7 | This section expands the i2nsf-nsf-capability-info in Figure 6 and | |||
and Figure 8. | Figure 7. | |||
NSF Capability Information | NSF Capability Information | |||
+--rw i2nsf-nsf-capability-information | +--rw i2nsf-nsf-capability-info | |||
+--rw i2nsf-capability | +--rw i2nsf-capability | |||
| uses ietf-i2nsf-capability | | uses ietf-i2nsf-capability | |||
+--rw performance-capability | +--rw nsf-performance-capability | |||
| uses i2nsf-nsf-performance-caps | | uses i2nsf-nsf-performance-capability | |||
Figure 9: High-Level YANG of I2NSF NSF Capability Information | Figure 8: YANG tree of I2NSF NSF Capability Information | |||
In Figure 9, ietf-i2nsf-capability refers module ietf-i2nsf- | In Figure 8, the ietf-i2nsf-capability refers to the module defined | |||
capability in [i2nsf-capability-dm]. We add the performance | in [i2nsf-capability-dm]. The i2nsf-nsf-performance-capability is | |||
capability because it is absent in [i2nsf-capability-dm] and | used to specify the performance capability of an NSF. | |||
[netmod-acl-model] | ||||
6.1.6. NSF Access Information | 6.1.3.1. NSF Performance Capability | |||
This section expands the i2nsf-nsf-access-info in Figure 7 and | This section expands the i2nsf-nsf-performance-capability in | |||
Figure 8. | Figure 8. | |||
NSF Access Information | NSF Performance Capability | |||
+--rw i2nsf-nsf-access-info | +--rw i2nsf-nsf-performance-capability | |||
+--rw nsf-address inet:ipv4-address | +--rw processing | |||
+--rw nsf-port-address inet:port-number | | +--rw processing-average uint16 | |||
| +--rw processing-peak uint16 | ||||
Figure 10: High-Level YANG of I2NSF NSF Access Informantion | +--rw bandwidth | |||
| +--rw outbound | ||||
| | +--rw outbound-average uint16 | ||||
| | +--rw outbound-peak uint16 | ||||
| +--rw inbound | ||||
| | +--rw inbound-average uint16 | ||||
| | +--rw inbound-peak uint16 | ||||
This information is used by other components to access an NSF. | Figure 9: YANG tree of I2NSF NSF Performance Capability | |||
6.1.7. NSF Performance Capability | This module is used to specify the performance capabilities of an NSF | |||
when registering or initiating the NSF. | ||||
This section expands the i2nsf-nsf-performance-caps in Figure 9. | 6.1.4. NSF Access Information | |||
NSF Performance Capability | This section expands the i2nsf-nsf-access-info in Figure 6. | |||
+--rw i2nsf-nsf-performance-caps | ||||
+--rw processing | ||||
| +--rw processing-average uint16 | ||||
| +--rw processing-peak uint16 | ||||
+--rw bandwidth | ||||
| +--rw outbound | ||||
| | +--rw outbound-average uint16 | ||||
| | +--rw outbound-peak uint16 | ||||
| +--rw inbound | ||||
| | +--rw inbound-average uint16 | ||||
| | +--rw inbound-peak uint16 | ||||
Figure 11: High-Level YANG of I2NSF NSF Performance Capability | NSF Access Information | |||
+--rw i2nsf-nsf-access-info | ||||
+--rw nsf-instance-name string | ||||
+--rw nsf-address inet:ipv4-address | ||||
+--rw nsf-port-number inet:port-number | ||||
When the Security Controller requests the Developer Management System | Figure 10: YANG tree of I2NSF NSF Access Informantion | |||
to create a new NSF instance, the performance capability is used to | ||||
specify the performance requirements of the new instance. | ||||
6.1.8. Role-Based ACL(Access Control List) | This module contains the network access information of an NSF that is | |||
required to enable network communications with the NSF. | ||||
This section expands the ietf-netmod-acl-model in [netmod-acl-model]. | 6.2. YANG Data Modules | |||
Role-Based ACL | This section introduces a YANG data module for the information model | |||
+--rw role-based-acl | of the required data for the registration interface between Security | |||
uses ietf-netmod-acl-model | Controller and Developer's Management System, as defined in | |||
Section 5. | ||||
Figure 12: Role-Based ACL | <CODE BEGINS> file "ietf-i2nsf-reg-interface@2019-03-11.yang | |||
In [netmod-acl-model], ietf-netmod-acl-model refers module ietf- | module ietf-i2nsf-reg-interface{ | |||
netmod-acl-model in [netmod-acl-model]. We add the role-based ACL | yang-version 1.1; | |||
because it is absent in [i2nsf-capability-dm]. | namespace | |||
"urn:ietf:params:xml:ns:yang:ietf-i2nsf-reg-interface"; | ||||
prefix "iiregi"; | ||||
6.2. YANG Modules | import ietf-inet-types{ | |||
prefix inet; | ||||
reference "RFC 6991"; | ||||
} | ||||
import ietf-i2nsf-capability{ | ||||
prefix capa; | ||||
reference "draft-ietf-i2nsf-capability | ||||
-data-model-02"; | ||||
} | ||||
organization | ||||
"IETF I2NSF (Interface to Network Security Functions) | ||||
Working Group"; | ||||
This section introduces a YANG module for the information model of | contact | |||
the required data for the registration interface between Security | "WG Web: <http://tools.ietf.org/wg/i2nsf> | |||
Controller and Developer's Management System, as defined in | WG List: <mailto:i2nsf@ietf.org> | |||
Section 5. | ||||
<CODE BEGINS> file "ietf-i2nsf-regs-interface@2018-11-04.yang" | WG Chair: Linda Dunbar | |||
module ietf-i2nsf-regs-interface { | <mailto:Linda.duhbar@huawei.com> | |||
namespace | ||||
"urn:ietf:params:xml:ns:yang:ietf-i2nsf-regs-interface"; | ||||
prefix | ||||
regs-interface; | ||||
import ietf-inet-types{ | ||||
prefix inet; | ||||
} | ||||
organization | Editor: Sangwon Hyun | |||
"IETF I2NSF (Interface to Network Security Functions) | <mailto:swhyun77@skku.edu> | |||
Working Group"; | Editor: Jaehoon Paul Jeong | |||
<mailto:pauljeong@skku.edu> | ||||
contact | Editor: Taekyun Roh | |||
"WG Web: <http://tools.ietf.org/wg/i2nsf> | <mailto:tkroh0198@skku.edu> | |||
WG List: <mailto:i2nsf@ietf.org> | ||||
WG Chair: Adrian Farrel | Editor: Sarang Wi | |||
<mailto:Adrain@olddog.co.uk> | <mailto:dnl9795@skku.edu> | |||
WG Chair: Linda Dunbar | Editor: Jung-Soo Park | |||
<mailto:Linda.duhbar@huawei.com> | <mailto:pjs@etri.re.kr>"; | |||
Editor: Sangwon Hyun | description | |||
<mailto:swhyun77@skku.edu> | ||||
Editor: Jaehoon Paul Jeong | "It defines a YANG data model for Registration Interface. | |||
<mailto:pauljeong@skku.edu> | Copyright (c) 2018 IETF Trust and the persons identified as | |||
authors of the code. All rights reserved. | ||||
Editor: Taekyun Roh | Redistribution and use in source and binary forms, with or | |||
<mailto:tkroh0198@skku.edu> | without modification, is permitted pursuant to, and subject | |||
to the license terms contained in, the Simplified BSD License | ||||
set forth in Section 4.c of the IETF Trust's Legal Provisions | ||||
Relating to IETF Documents | ||||
(http://trustee.ietf.org/license-info). | ||||
Editor: Sarang Wi | This version of this YANG module is part of RFC XXXX; see | |||
<mailto:dnl9795@skku.edu> | the RFC itself for full legal notices."; | |||
Editor: Jung-Soo Park | revision 2019-03-11 { | |||
<mailto:pjs@etri.re.kr>"; | description "The third revision"; | |||
reference | ||||
"RFC XXXX: I2NSF Registration Interface YANG Data Model"; | ||||
} | ||||
rpc i2nsf-nsf-capability-query { | ||||
description | ||||
"Capability information that the | ||||
Security Controller | ||||
sends to the DMS"; | ||||
input{ | ||||
container query-i2nsf-capability-info { | ||||
description | ||||
"i2nsf capability information"; | ||||
uses "capa:nsf-capabilities"; | ||||
reference | ||||
"draft-ietf-i2nsf-capability | ||||
-data-model-02"; | ||||
} | ||||
description | } | |||
"It defines a YANG data module for Registration Interface."; | output{ | |||
revision "2018-11-04"{ | container nsf-access-info { | |||
description "The second revision"; | description | |||
reference | "nsf access information"; | |||
"draft-ietf-i2nsf-capability-data-model-01"; | uses i2nsf-nsf-access-info; | |||
} | ||||
list interface-container{ | ||||
key "interface-name"; | ||||
description | ||||
"i2nsf-reg-interface-container"; | ||||
leaf interface-name{ | ||||
type string; | ||||
description | ||||
"interface name"; | ||||
} | ||||
container i2nsf-regs-req { | ||||
description | ||||
"The capability information of newly | ||||
created NSF to notify its | ||||
capability to Security Controller"; | ||||
container nsf-capability-information { | ||||
description | ||||
"nsf-capability-information"; | ||||
uses i2nsf-nsf-capability-information; | ||||
} | ||||
container nsf-access-info { | ||||
description | ||||
"nsf-access-info"; | ||||
uses i2nsf-nsf-access-info; | ||||
} | ||||
container ietf-netmod-acl-model{ | ||||
description | ||||
"netmod-acl-model"; | ||||
uses ietf-netmod-acl-model; | ||||
} | ||||
} | ||||
container i2nsf-instance-mgnt-req { | ||||
description | ||||
"Required information for instanciation-request, | ||||
deinstanciation-request and updating-request"; | ||||
leaf req-level { | ||||
type uint16; | ||||
description | ||||
"req-level"; | ||||
} | ||||
leaf req-id { | ||||
type uint64; | ||||
mandatory true; | ||||
description | ||||
"req-id"; | ||||
} | ||||
choice req-type { | ||||
description | ||||
"req-type"; | ||||
case instanciation-request { | ||||
description | ||||
"instanciation-request"; | ||||
container in-nsf-capability-information { | ||||
description | ||||
"nsf-capability-information"; | ||||
uses i2nsf-nsf-capability-information; | ||||
} | ||||
} | ||||
case deinstanciation-request { | ||||
description | ||||
"deinstanciation-request"; | ||||
container de-nsf-access-info { | ||||
description | ||||
"nsf-access-info"; | ||||
uses i2nsf-nsf-access-info; | ||||
} | ||||
} | ||||
case updating-request { | ||||
description | ||||
"updating nsf's information"; | ||||
container update-nsf-capability-information { | ||||
description | ||||
"nsf-capability-information"; | ||||
uses i2nsf-nsf-capability-information; | ||||
} | ||||
} | ||||
} | ||||
} | ||||
} | ||||
grouping i2nsf-nsf-performance-caps { | ||||
description | ||||
"NSF performance capailities"; | ||||
container processing{ | ||||
description | ||||
"processing info"; | ||||
leaf processing-average{ | ||||
type uint16; | ||||
description | ||||
"processing-average"; | ||||
} | ||||
leaf processing-peak{ | ||||
type uint16; | ||||
description | ||||
"processing peak"; | ||||
} | ||||
} | ||||
container bandwidth{ | ||||
description | ||||
"bandwidth info"; | ||||
container inbound{ | ||||
description | ||||
"inbound"; | ||||
leaf inbound-average{ | ||||
type uint16; | ||||
description | ||||
"inbound-average"; | ||||
} | ||||
leaf inbound-peak{ | ||||
type uint16; | ||||
description | ||||
"inbound-peak"; | ||||
} | ||||
} | ||||
container outbound{ | ||||
description | ||||
"outbound"; | ||||
leaf outbound-average{ | ||||
type uint16; | ||||
description | ||||
"outbound-average"; | ||||
} | ||||
leaf outbound-peak{ | ||||
type uint16; | ||||
description | ||||
"outbound-peak"; | ||||
} | ||||
} | ||||
} | ||||
} | ||||
grouping i2nsf-nsf-capability-information { | ||||
description | ||||
"Detail information of an NSF"; | ||||
container performance-capability { | ||||
uses i2nsf-nsf-performance-caps; | ||||
description | ||||
"performance-capability"; | ||||
} | } | |||
container i2nsf-capability { | } | |||
description | } | |||
"It refers draft-ietf-i2nsf-capability-data-model-01.txt | container i2nsf-nsf-registrations{ | |||
later"; | description | |||
} | "i2nsf-nsf-registrations"; | |||
} | list i2nsf-nsf-capability-registration { | |||
grouping ietf-netmod-acl-model { | key "nsf-name"; | |||
description | description | |||
"Detail information"; | "Requeired information for registration"; | |||
container role-based-acl { | leaf nsf-name { | |||
description | type string; | |||
"It refers draft-ietf-netmod-acl-model-19.txt | mandatory true; | |||
later"; | description | |||
} | "nsf-name"; | |||
} | } | |||
grouping i2nsf-nsf-access-info { | container nsf-capability-info { | |||
description | description | |||
"NSF access information"; | "nsf-capability-information"; | |||
leaf nsf-address { | uses i2nsf-nsf-capability-info; | |||
type inet:ipv4-address; | } | |||
mandatory true; | container nsf-access-info { | |||
description | description | |||
"nsf-address"; | "nsf-access-info"; | |||
} | uses i2nsf-nsf-access-info; | |||
leaf nsf-port-address { | } | |||
type inet:port-number; | } | |||
description | } | |||
"nsf-port-address"; | grouping i2nsf-nsf-performance-capability { | |||
} | description | |||
} | "NSF performance capailities"; | |||
container processing{ | ||||
description | ||||
"processing info"; | ||||
leaf processing-average{ | ||||
type uint16; | ||||
description | ||||
"processing-average"; | ||||
} | ||||
leaf processing-peak{ | ||||
type uint16; | ||||
description | ||||
"processing peak"; | ||||
} | ||||
} | ||||
container bandwidth{ | ||||
description | ||||
"bandwidth info"; | ||||
container outbound{ | ||||
description | ||||
"outbound"; | ||||
leaf outbound-average{ | ||||
type uint16; | ||||
description | ||||
"outbound-average"; | ||||
} | ||||
leaf outbound-peak{ | ||||
type uint16; | ||||
description | ||||
"outbound-peak"; | ||||
} | } | |||
} | ||||
container inbound{ | ||||
description | ||||
"inbound"; | ||||
leaf inbound-average{ | ||||
type uint16; | ||||
description | ||||
"inbound-average"; | ||||
} | ||||
leaf inbound-peak{ | ||||
type uint16; | ||||
description | ||||
"inbound-peak"; | ||||
} | ||||
} | ||||
} | ||||
} | ||||
grouping i2nsf-nsf-capability-info { | ||||
description | ||||
"Detail information of an NSF"; | ||||
container i2nsf-capability { | ||||
description | ||||
"ietf i2nsf capability information"; | ||||
uses "capa:nsf-capabilities"; | ||||
reference "draft-ietf-i2nsf-capability | ||||
-data-model-02"; | ||||
} | ||||
container nsf-performance-capability { | ||||
description | ||||
"performance capability"; | ||||
uses i2nsf-nsf-performance-capability; | ||||
} | ||||
} | ||||
<CODE ENDS> | grouping i2nsf-nsf-access-info { | |||
description | ||||
"NSF access information"; | ||||
leaf nsf-instance-name { | ||||
type string; | ||||
description | ||||
"nsf-instance-name"; | ||||
} | ||||
leaf nsf-address { | ||||
type inet:ipv4-address; | ||||
mandatory true; | ||||
description | ||||
"nsf-address"; | ||||
} | ||||
leaf nsf-port-address { | ||||
type inet:port-number; | ||||
description | ||||
"nsf-port-address"; | ||||
} | ||||
} | ||||
} | ||||
Figure 13: Data Model of I2NSF Registration Interface | <CODE ENDS> | |||
6.2.1. XML Example of Registration Interface Data Model | Figure 11: Registration Interface YANG Data Model | |||
Requirement: Registering the IDS NSF with VoIP/VoLTE security | 7. IANA Considerations | |||
capability using Registration interface. | ||||
Here is the configuration xml for this Registration Interface: | This document requests IANA to register the following URI in the | |||
"IETF XML Registry" [RFC3688]: | ||||
<?xml version="1.0" encoding="UTF-8"?> | URI: urn:ietf:params:xml:ns:yang:ietf-i2nsf-reg-interface | |||
<rpc xmlns="urn:ietf:params:netconf:base:1.0" message-id="1"> | Registrant Contact: The IESG. | |||
<edit-config> | XML: N/A; the requested URI is an XML namespace. | |||
<target> | ||||
<running/> | ||||
</target> | ||||
<config> | ||||
<i2nsf-regs-req> | ||||
<i2nsf-nsf-capability-information> | ||||
<ietf-i2nsf-capability> | ||||
<nsf-capabilities> | ||||
<nsf-capabilities-id>1</nsf-capabilities-id> | ||||
<con-sec-control-capabilities> | ||||
<content-security-control> | ||||
<ids> | ||||
<ids-support>true</ids-support> | ||||
<ids-fcn nc:operation="create"> | ||||
<ids-fcn-name>ids-service</ids-fcn-name> | ||||
</ids-fcn> | ||||
</ids> | ||||
<voip-volte> | ||||
<voip-volte-support>true</voip-volte-support> | ||||
<voip-volte-fcn nc:operation="create"> | ||||
<voip-volte-fcn-name> | ||||
ips-service | ||||
</voip-volte-fcn-name> | ||||
</voip-volte-fcn> | ||||
</voip-volte> | ||||
</content-security-control> | ||||
</con-sec-control-capabilities> | ||||
</nsf-capabilities> | ||||
</ietf-i2nsf-capability> | ||||
<i2nsf-nsf-performance-caps> | ||||
<processing> | ||||
<processing-average>1000</processing-average> | ||||
<processing-peak>5000</processing-peak> | ||||
</processing> | ||||
<bandwidth> | ||||
<outbound> | ||||
<outbound-average>1000</outbound-average> | ||||
<outbound-peak>5000</outbound-peak> | ||||
</outbound> | ||||
<inbound> | ||||
<inbound-average>1000</inbound-average> | ||||
<inbound-peak>5000</inbound-peak> | ||||
</inbound> | ||||
</bandwidth> | ||||
</i2nsf-nsf-performance-caps> | ||||
</i2nsf-nsf-capability-information> | ||||
<nsf-access-info> | ||||
<nsf-address>10.0.0.1</nsf-address> | ||||
<nsf-port-address>145</nsf-port-address> | ||||
</nsf-access-info> | This document requests IANA to register the following YANG module in | |||
</i2nsf-regs-req> | the "YANG Module Names" registry [RFC7950]. | |||
</config> | ||||
</edit-config> | ||||
</rpc> | ||||
Figure 14: Registration Interface example | Name: ietf-i2nsf-reg-interface | |||
Namespace: urn:ietf:params:xml:ns:yang:ietf-i2nsf-reg-interface | ||||
Prefix: iiregi | ||||
Reference: RFC XXXX | ||||
7. Security Considerations | 8. Security Considerations | |||
This document introduces no additional security threats and SHOULD | This document introduces no additional security threats and SHOULD | |||
follow the security requirements as stated in [RFC8329]. | follow the security requirements as stated in [RFC8329]. | |||
8. References | 9. References | |||
8.1. Normative References | 9.1. Normative References | |||
[RFC2119] Bradner, S., "Key words for use in RFCs toIndicate | [RFC2119] Bradner, S., "Key words for use in RFCs toIndicate | |||
Requirement Levels", RFC 2119, March 1997. | Requirement Levels", RFC 2119, March 1997. | |||
[RFC6020] Bjorklund, M., "YANG - A Data Modeling Language for the | [RFC3688] Mealling, M., "The IETF XML Registry", RFC 3688, January | |||
Network Configuration Protocol (NETCONF)", RFC 6020, | 2004. | |||
October 2010. | ||||
8.2. Informative References | [RFC6087] Bierman, A., "Guidelines for Authors and Reviewers of YANG | |||
Data Model Documents", RFC 6087, January 2011. | ||||
[RFC6991] Schoenwaelder, J., "Common YANG Data Types", RFC 6991, | ||||
July 2013. | ||||
[RFC7950] Bjorklund, M., "The YANG 1.1 Data Modeling Language", | ||||
RFC 7950, August 2016. | ||||
[RFC8340] Bjorklund, M. and L. Berger, "YANG Tree Diagrams", | ||||
RFC 8340, March 2018. | ||||
9.2. Informative References | ||||
[capability-im] | [capability-im] | |||
Xia, L., Strassner, J., Basile, C., and D. Lopez, | Xia, L., Strassner, J., Basile, C., and D. Lopez, | |||
"Information Model of NSFs Capabilities", draft-i2nsf- | "Information Model of NSFs Capabilities", draft-i2nsf- | |||
capability-02 (work in progress), July 2018. | capability-04 (work in progress), October 2018. | |||
[draft-ietf-nvo3-vxlan-gpe] | [draft-ietf-nvo3-vxlan-gpe] | |||
Maino, Ed., F., Kreeger, Ed., L., and U. Elzur, Ed., | Maino, Ed., F., Kreeger, Ed., L., and U. Elzur, Ed., | |||
"Generic Protocol Extension for VXLAN", draft-ietf-nvo3- | "Generic Protocol Extension for VXLAN", draft-ietf-nvo3- | |||
vxlan-gpe-06 (work in progress), April 2018. | vxlan-gpe-06 (work in progress), April 2018. | |||
[i2nsf-capability-dm] | [i2nsf-capability-dm] | |||
Hares, S., Jeong, J., Kim, J., Moskowitz, R., and Q. Lin, | Hares, S., Jeong, J., Kim, J., Moskowitz, R., and Q. Lin, | |||
"I2NSF Capability YANG Data Model", draft-ietf-i2nsf- | "I2NSF Capability YANG Data Model", draft-ietf-i2nsf- | |||
capability-data-model-01 (work in progress), July 2018. | capability-data-model-02 (work in progress), November | |||
2018. | ||||
[i2nsf-terminology] | [i2nsf-terminology] | |||
Hares, S., Strassner, J., Lopez, D., Xia, L., and H. | Hares, S., Strassner, J., Lopez, D., Xia, L., and H. | |||
Birkholz, "Interface to Network Security Functions (I2NSF) | Birkholz, "Interface to Network Security Functions (I2NSF) | |||
Terminology", draft-ietf-i2nsf-terminology-06 (work in | Terminology", draft-ietf-i2nsf-terminology-07 (work in | |||
progress), July 2018. | progress), January 2019. | |||
[i2rs-rib-data-model] | ||||
Wang, L., Chen, M., Dass, A., Ananthakrishnan, H., Kini, | ||||
S., and N. Bahadur, "A YANG Data Model for Routing | ||||
Information Base (RIB)", draft-ietf-i2rs-rib-data-model-15 | ||||
(work in progress), May 2018. | ||||
[netmod-acl-model] | ||||
Jethanandani, M., Huang, L., Agarwal, S., and D. Blair, | ||||
"Network Access Control List (ACL) YANG Data Model", | ||||
draft-ietf-netmod-acl-model-19 (work in progress), April | ||||
2018. | ||||
[nfv-framework] | [nfv-framework] | |||
"Network Functions Virtualisation (NFV); Architectureal | "Network Functions Virtualisation (NFV); Architectureal | |||
Framework", ETSI GS NFV 002 ETSI GS NFV 002 V1.1.1, | Framework", ETSI GS NFV 002 ETSI GS NFV 002 V1.1.1, | |||
October 2013. | October 2013. | |||
[nsf-triggered-steering] | [nsf-triggered-steering] | |||
Hyun, S., Jeong, J., Park, J., and S. Hares, "Service | Hyun, S., Jeong, J., Park, J., and S. Hares, "Service | |||
Function Chaining-Enabled I2NSF Architecture", draft-hyun- | Function Chaining-Enabled I2NSF Architecture", draft-hyun- | |||
i2nsf-nsf-triggered-steering-06 (work in progress), July | i2nsf-nsf-triggered-steering-06 (work in progress), July | |||
2018. | 2018. | |||
[RFC8329] Lopez, D., Lopez, E., Dunbar, L., Strassner, J., and R. | [RFC8329] Lopez, D., Lopez, E., Dunbar, L., Strassner, J., and R. | |||
Kumar, "Framework for Interface to Network Security | Kumar, "Framework for Interface to Network Security | |||
Functions", RFC 8329, February 2018. | Functions", RFC 8329, February 2018. | |||
[RFC8431] Wang, L., Chen, M., Dass, A., Ananthakrishnan, H., Kini, | ||||
S., and N. Bahadur, "A YANG Data Model for Routing | ||||
Information Base (RIB)", RFC 8431, September 2018. | ||||
[supa-policy-data-model] | [supa-policy-data-model] | |||
Halpern, J., Strassner, J., and S. van der Meer, "Generic | Halpern, J., Strassner, J., and S. van der Meer, "Generic | |||
Policy Data Model for Simplified Use of Policy | Policy Data Model for Simplified Use of Policy | |||
Abstractions (SUPA)", draft-ietf-supa-generic-policy-data- | Abstractions (SUPA)", draft-ietf-supa-generic-policy-data- | |||
model-04 (work in progress), June 2017. | model-04 (work in progress), June 2017. | |||
[supa-policy-info-model] | [supa-policy-info-model] | |||
Strassner, J., Halpern, J., and S. van der Meer, "Generic | Strassner, J., Halpern, J., and S. van der Meer, "Generic | |||
Policy Information Model for Simplified Use of Policy | Policy Information Model for Simplified Use of Policy | |||
Abstractions (SUPA)", draft-ietf-supa-generic-policy-info- | Abstractions (SUPA)", draft-ietf-supa-generic-policy-info- | |||
model-03 (work in progress), May 2017. | model-03 (work in progress), May 2017. | |||
Appendix A. NSF Lifecycle Managmenet in NFV Environments | Appendix A. XML Example of Registration Interface Data Model | |||
This section describes XML examples of the I2NSF Registration | ||||
Interface data model in five NSF Registration examples and one NSF | ||||
Capability Query example. | ||||
A.1. Example 1: Registration for Capabilities of General Firewall | ||||
This section shows a configuration example for capabilities | ||||
registration of general firewall. | ||||
<i2nsf-nsf-registrations | ||||
xmlns="urn:ietf:params:xml:ns:yang:ietf-i2nsf-reg-interface" | ||||
xmlns:capa="urn:ietf:params:xml:ns:yang:ietf-i2nsf-capability"> | ||||
<i2nsf-nsf-capability-registration> | ||||
<nsf-name>general_firewall_capability</nsf-name> | ||||
<nsf-capability-info> | ||||
<i2nsf-capability> | ||||
<condition-capabilities> | ||||
<generic-nsf-capabilities> | ||||
<ipv4-capa>capa:ipv4-protocol</ipv4-capa> | ||||
<ipv4-capa>capa:exact-ipv4-address</ipv4-capa> | ||||
<ipv4-capa>capa:range-ipv4-address</ipv4-capa> | ||||
<tcp-capa>capa:exact-tcp-port-num</tcp-capa> | ||||
<tcp-capa>capa:range-tcp-port-num</tcp-capa> | ||||
</generic-nsf-capabilities> | ||||
</condition-capabilities> | ||||
<action-capabilities> | ||||
<ingress-action-capa>capa:pass</ingress-action-capa> | ||||
<ingress-action-capa>capa:drop</ingress-action-capa> | ||||
<ingress-action-capa>capa:alert</ingress-action-capa> | ||||
<egress-action-capa>capa:pass</egress-action-capa> | ||||
<egress-action-capa>capa:drop</egress-action-capa> | ||||
<egress-action-capa>capa:alert</egress-action-capa> | ||||
</action-capabilities> | ||||
</i2nsf-capability> | ||||
<nsf-performance-capability> | ||||
<processing> | ||||
<processing-average>1000</processing-average> | ||||
<processing-peak>5000</processing-peak> | ||||
</processing> | ||||
<bandwidth> | ||||
<outbound> | ||||
<outbound-average>1000</outbound-average> | ||||
<outbound-peak>5000</outbound-peak> | ||||
</outbound> | ||||
<inbound> | ||||
<inbound-average>1000</inbound-average> | ||||
<inbound-peak>5000</inbound-peak> | ||||
</inbound> | ||||
</bandwidth> | ||||
</nsf-performance-capability> | ||||
</nsf-capability-info> | ||||
<nsf-access-info> | ||||
<nsf-instance-name>general_firewall</nsf-instance-name> | ||||
<nsf-address>221.159.112.100</nsf-address> | ||||
<nsf-port-address>3000</nsf-port-address> | ||||
</nsf-access-info> | ||||
</i2nsf-nsf-capability-registration> | ||||
</i2nsf-nsf-registrations> | ||||
Figure 12: Configuration XML for Registration of General Firewall | ||||
Figure 12 shows the configuration XML for registration of general | ||||
firewall and its capabilities are as follows. | ||||
1. The instance name of the NSF is general_firewall. | ||||
2. The NSF can inspect protocol, exact IPv4 address, and range IPv4 | ||||
address for IPv4 packets. | ||||
3. The NSF can inspect exact port number and range port number for | ||||
tcp packets. | ||||
4. The NSF can control whether the packets are allowed to pass, | ||||
drop, or alert. | ||||
5. The NSF can have processing power and bandwidth. | ||||
6. The location of the NSF is 221.159.112.100. | ||||
7. The port of the NSF is 3000. | ||||
A.2. Example 2: Registration for Capabilities of Time based Firewall | ||||
This section shows a configuration example for capabilities | ||||
registration of time based firewall. | ||||
<i2nsf-nsf-registrations | ||||
xmlns="urn:ietf:params:xml:ns:yang:ietf-i2nsf-reg-interface" | ||||
xmlns:capa="urn:ietf:params:xml:ns:yang:ietf-i2nsf-capability"> | ||||
<i2nsf-nsf-capability-registration> | ||||
<nsf-name>time_based_firewall_capability</nsf-name> | ||||
<nsf-capability-info> | ||||
<i2nsf-capability> | ||||
<time-capabilities>absolute-time</time-capabilities> | ||||
<time-capabilities>periodic-time</time-capabilities> | ||||
<condition-capabilities> | ||||
<generic-nsf-capabilities> | ||||
<ipv4-capa>capa:ipv4-protocol</ipv4-capa> | ||||
<ipv4-capa>capa:exact-ipv4-address</ipv4-capa> | ||||
<ipv4-capa>capa:range-ipv4-address</ipv4-capa> | ||||
</generic-nsf-capabilities> | ||||
</condition-capabilities> | ||||
<action-capabilities> | ||||
<ingress-action-capa>capa:pass</ingress-action-capa> | ||||
<ingress-action-capa>capa:drop</ingress-action-capa> | ||||
<ingress-action-capa>capa:alert</ingress-action-capa> | ||||
<egress-action-capa>capa:pass</egress-action-capa> | ||||
<egress-action-capa>capa:drop</egress-action-capa> | ||||
<egress-action-capa>capa:alert</egress-action-capa> | ||||
</action-capabilities> | ||||
</i2nsf-capability> | ||||
<nsf-performance-capability> | ||||
<processing> | ||||
<processing-average>1000</processing-average> | ||||
<processing-peak>5000</processing-peak> | ||||
</processing> | ||||
<bandwidth> | ||||
<outbound> | ||||
<outbound-average>1000</outbound-average> | ||||
<outbound-peak>5000</outbound-peak> | ||||
</outbound> | ||||
<inbound> | ||||
<inbound-average>1000</inbound-average> | ||||
<inbound-peak>5000</inbound-peak> | ||||
</inbound> | ||||
</bandwidth> | ||||
</nsf-performance-capability> | ||||
</nsf-capability-info> | ||||
<nsf-access-info> | ||||
<nsf-instance-name>time_based_firewall</nsf-instance-name> | ||||
<nsf-address>221.159.112.110</nsf-address> | ||||
<nsf-port-address>3000</nsf-port-address> | ||||
</nsf-access-info> | ||||
</i2nsf-nsf-capability-registration> | ||||
</i2nsf-nsf-registrations> | ||||
Figure 13: Configuration XML for Registration of Time based Firewall | ||||
Figure 13 shows the configuration XML for registration of time based | ||||
firewall and its capabilities are as follows. | ||||
1. The instance name of the NSF is time_based_firewall. | ||||
2. The NSF can execute the security policy rule according to | ||||
absolute time and periodic time. | ||||
3. The NSF can inspect protocol, exact IPv4 address, and range IPv4 | ||||
address for IPv4 packets. | ||||
4. The NSF can control whether the packets are allowed to pass, | ||||
drop, or alert. | ||||
5. The NSF can have processing power and bandwidth. | ||||
6. The location of the NSF is 221.159.112.110. | ||||
7. The port of the NSF is 3000. | ||||
A.3. Example 3: Registration for Capabilities of Web Filter | ||||
This section shows a configuration example for capabilities | ||||
registration of web filter. | ||||
<i2nsf-nsf-registrations | ||||
xmlns="urn:ietf:params:xml:ns:yang:ietf-i2nsf-reg-interface" | ||||
xmlns:capa="urn:ietf:params:xml:ns:yang:ietf-i2nsf-capability"> | ||||
<i2nsf-nsf-capability-registration> | ||||
<nsf-name>web_filter_capability</nsf-name> | ||||
<nsf-capability-info> | ||||
<i2nsf-capability> | ||||
<condition-capabilities> | ||||
<advanced-nsf-capabilities> | ||||
<http-capa>capa:url</http-capa> | ||||
</advanced-nsf-capabilities> | ||||
</condition-capabilities> | ||||
<action-capabilities> | ||||
<ingress-action-capa>capa:pass</ingress-action-capa> | ||||
<ingress-action-capa>capa:drop</ingress-action-capa> | ||||
<ingress-action-capa>capa:alert</ingress-action-capa> | ||||
<egress-action-capa>capa:pass</egress-action-capa> | ||||
<egress-action-capa>capa:drop</egress-action-capa> | ||||
<egress-action-capa>capa:alert</egress-action-capa> | ||||
</action-capabilities> | ||||
</i2nsf-capability> | ||||
<nsf-performance-capability> | ||||
<processing> | ||||
<processing-average>1000</processing-average> | ||||
<processing-peak>5000</processing-peak> | ||||
</processing> | ||||
<bandwidth> | ||||
<outbound> | ||||
<outbound-average>1000</outbound-average> | ||||
<outbound-peak>5000</outbound-peak> | ||||
</outbound> | ||||
<inbound> | ||||
<inbound-average>1000</inbound-average> | ||||
<inbound-peak>5000</inbound-peak> | ||||
</inbound> | ||||
</bandwidth> | ||||
</nsf-performance-capability> | ||||
</nsf-capability-info> | ||||
<nsf-access-info> | ||||
<nsf-instance-name>web_filter</nsf-instance-name> | ||||
<nsf-address>221.159.112.120</nsf-address> | ||||
<nsf-port-address>3000</nsf-port-address> | ||||
</nsf-access-info> | ||||
</i2nsf-nsf-capability-registration> | ||||
</i2nsf-nsf-registrations> | ||||
Figure 14: Configuration XML for Registration of Web Filter | ||||
Figure 14 shows the configuration XML for registration of web filter | ||||
and its capabilities are as follows. | ||||
1. The instance name of the NSF is web_filter. | ||||
2. The NSF can inspect url for http and https packets. | ||||
3. The NSF can control whether the packets are allowed to pass, | ||||
drop, or alert. | ||||
4. The NSF can have processing power and bandwidth. | ||||
5. The location of the NSF is 221.159.112.120. | ||||
6. The port of the NSF is 3000. | ||||
A.4. Example 4: Registration for Capabilities of VoIP/VoLTE Filter | ||||
This section shows a configuration example for capabilities | ||||
registration of VoIP/VoLTE filter. | ||||
<i2nsf-nsf-registrations | ||||
xmlns="urn:ietf:params:xml:ns:yang:ietf-i2nsf-reg-interface" | ||||
xmlns:capa="urn:ietf:params:xml:ns:yang:ietf-i2nsf-capability"> | ||||
<i2nsf-nsf-capability-registration> | ||||
<nsf-name>voip_volte_filter_capability</nsf-name> | ||||
<nsf-capability-info> | ||||
<i2nsf-capability> | ||||
<condition-capabilities> | ||||
<advanced-nsf-capabilities> | ||||
<voip-volte-capa>capa:voice-id</voip-volte-capa> | ||||
</advanced-nsf-capabilities> | ||||
</condition-capabilities> | ||||
<action-capabilities> | ||||
<ingress-action-capa>capa:pass</ingress-action-capa> | ||||
<ingress-action-capa>capa:drop</ingress-action-capa> | ||||
<ingress-action-capa>capa:alert</ingress-action-capa> | ||||
<egress-action-capa>capa:pass</egress-action-capa> | ||||
<egress-action-capa>capa:drop</egress-action-capa> | ||||
<egress-action-capa>capa:alert</egress-action-capa> | ||||
</action-capabilities> | ||||
</i2nsf-capability> | ||||
<nsf-performance-capability> | ||||
<processing> | ||||
<processing-average>1000</processing-average> | ||||
<processing-peak>5000</processing-peak> | ||||
</processing> | ||||
<bandwidth> | ||||
<outbound> | ||||
<outbound-average>1000</outbound-average> | ||||
<outbound-peak>5000</outbound-peak> | ||||
</outbound> | ||||
<inbound> | ||||
<inbound-average>1000</inbound-average> | ||||
<inbound-peak>5000</inbound-peak> | ||||
</inbound> | ||||
</bandwidth> | ||||
</nsf-performance-capability> | ||||
</nsf-capability-info> | ||||
<nsf-access-info> | ||||
<nsf-instance-name>voip_volte_filter</nsf-instance-name> | ||||
<nsf-address>221.159.112.130</nsf-address> | ||||
<nsf-port-address>3000</nsf-port-address> | ||||
</nsf-access-info> | ||||
</i2nsf-nsf-capability-registration> | ||||
</i2nsf-nsf-registrations> | ||||
Figure 15: Configuration XML for Registration of VoIP/VoLTE Filter | ||||
Figure 15 shows the configuration XML for registration of VoIP/VoLTE | ||||
filter and its capabilities are as follows. | ||||
1. The instance name of the NSF is voip_volte_filter. | ||||
2. The NSF can inspect voice id for VoIP/VoLTE packets. | ||||
3. The NSF can control whether the packets are allowed to pass, | ||||
drop, or alert. | ||||
4. The NSF can have processing power and bandwidth. | ||||
5. The location of the NSF is 221.159.112.130. | ||||
6. The port of the NSF is 3000. | ||||
A.5. Example 5: Registration for Capabilities of HTTP and HTTPS Flood | ||||
Mitigation | ||||
This section shows a configuration example for capabilities | ||||
registration of http and https flood mitigation. | ||||
<i2nsf-nsf-registrations | ||||
xmlns="urn:ietf:params:xml:ns:yang:ietf-i2nsf-reg-interface" | ||||
xmlns:capa="urn:ietf:params:xml:ns:yang:ietf-i2nsf-capability"> | ||||
<i2nsf-nsf-capability-registration> | ||||
<nsf-name> | ||||
http_and_https_flood_mitigation_capability | ||||
</nsf-name> | ||||
<nsf-capability-info> | ||||
<i2nsf-capability> | ||||
<condition-capabilities> | ||||
<advanced-nsf-capabilities> | ||||
<antiddos-capa>capa:http-flood-action</antiddos-capa> | ||||
<antiddos-capa>capa:https-flood-action</antiddos-capa> | ||||
</advanced-nsf-capabilities> | ||||
</condition-capabilities> | ||||
<action-capabilities> | ||||
<ingress-action-capa>capa:pass</ingress-action-capa> | ||||
<ingress-action-capa>capa:drop</ingress-action-capa> | ||||
<ingress-action-capa>capa:alert</ingress-action-capa> | ||||
<egress-action-capa>capa:pass</egress-action-capa> | ||||
<egress-action-capa>capa:drop</egress-action-capa> | ||||
<egress-action-capa>capa:alert</egress-action-capa> | ||||
</action-capabilities> | ||||
</i2nsf-capability> | ||||
<nsf-performance-capability> | ||||
<processing> | ||||
<processing-average>1000</processing-average> | ||||
<processing-peak>5000</processing-peak> | ||||
</processing> | ||||
<bandwidth> | ||||
<outbound> | ||||
<outbound-average>1000</outbound-average> | ||||
<outbound-peak>5000</outbound-peak> | ||||
</outbound> | ||||
<inbound> | ||||
<inbound-average>1000</inbound-average> | ||||
<inbound-peak>5000</inbound-peak> | ||||
</inbound> | ||||
</bandwidth> | ||||
</nsf-performance-capability> | ||||
</nsf-capability-info> | ||||
<nsf-access-info> | ||||
<nsf-instance-name> | ||||
http_and_https_flood_mitigation | ||||
</nsf-instance-name> | ||||
<nsf-address>221.159.112.140</nsf-address> | ||||
<nsf-port-address>3000</nsf-port-address> | ||||
</nsf-access-info> | ||||
</i2nsf-nsf-capability-registration> | ||||
</i2nsf-nsf-registrations> | ||||
Figure 16: Configuration XML for Registration of of HTTP and HTTPS | ||||
Flood Mitigation | ||||
Figure 16 shows the configuration XML for registration of VoIP/VoLTE | ||||
filter and its capabilities are as follows. | ||||
1. The instance name of the NSF is http_and_https_flood_mitigation. | ||||
2. The NSF can control the amount of packets for http and https | ||||
packets. | ||||
3. The NSF can control whether the packets are allowed to pass, | ||||
drop, or alert. | ||||
4. The NSF can have processing power and bandwidth. | ||||
5. The location of the NSF is 221.159.112.140. | ||||
6. The port of the NSF is 3000. | ||||
A.6. Example 6: Query for Capabilities of Time based Firewall | ||||
This section shows a configuration example for capabilities query of | ||||
Time based Firewall. | ||||
<rpc message-id="101" | ||||
xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> | ||||
<i2nsf-nsf-capability-query | ||||
xmlns="urn:ietf:params:xml:ns:yang:ietf-i2nsf-reg-interface" | ||||
xmlns:capa="urn:ietf:params:xml:ns:yang:ietf-i2nsf-capability"> | ||||
<query-i2nsf-capability-info> | ||||
<time-capabilities>absolute-time</time-capabilities> | ||||
<time-capabilities>periodic-time</time-capabilities> | ||||
<condition-capabilities> | ||||
<generic-nsf-capabilities> | ||||
<ipv4-capa>capa:ipv4-protocol</ipv4-capa> | ||||
<ipv4-capa>capa:exact-ipv4-address</ipv4-capa> | ||||
<ipv4-capa>capa:range-ipv4-address</ipv4-capa> | ||||
</generic-nsf-capabilities> | ||||
</condition-capabilities> | ||||
<action-capabilities> | ||||
<ingress-action-capa>capa:pass</ingress-action-capa> | ||||
<ingress-action-capa>capa:drop</ingress-action-capa> | ||||
<ingress-action-capa>capa:alert</ingress-action-capa> | ||||
<egress-action-capa>capa:pass</egress-action-capa> | ||||
<egress-action-capa>capa:drop</egress-action-capa> | ||||
<egress-action-capa>capa:alert</egress-action-capa> | ||||
</action-capabilities> | ||||
</query-i2nsf-capability-info> | ||||
</i2nsf-nsf-capability-query> | ||||
</rpc> | ||||
<rpc-reply message-id="101" | ||||
xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> | ||||
<nsf-access-info | ||||
xmlns="urn:ietf:params:xml:ns:yang:ietf-i2nsf-reg-interface"> | ||||
<nsf-instance-name>time-based-firewall</nsf-instance-name> | ||||
<nsf-address>221.159.223.250</nsf-address> | ||||
<nsf-port-address>8080</nsf-port-address> | ||||
</nsf-access-info> | ||||
</rpc-reply> | ||||
Figure 17: Configuration XML for Query of Time based Firewall | ||||
Figure 17 shows the configuration of input data and output data XML | ||||
for nsf capability query of time based firewall. | ||||
Appendix B. NSF Lifecycle Managmenet in NFV Environments | ||||
Network Functions Virtualization (NFV) can be used to implement I2NSF | Network Functions Virtualization (NFV) can be used to implement I2NSF | |||
framework. In NFV environments, NSFs are deployed as virtual network | framework. In NFV environments, NSFs are deployed as virtual network | |||
functions (VNFs). Security Controller can be implemented as an | functions (VNFs). Security Controller can be implemented as an | |||
Element Management (EM) of the NFV architecture, and is connected | Element Management (EM) of the NFV architecture, and is connected | |||
with the VNF Manager (VNFM) via the Ve-Vnfm interface | with the VNF Manager (VNFM) via the Ve-Vnfm interface | |||
[nfv-framework]. Security Controller can use this interface for the | [nfv-framework]. Security Controller can use this interface for the | |||
purpose of the lifecycle management of NSFs. If some NSFs need to be | purpose of the lifecycle management of NSFs. If some NSFs need to be | |||
instantiated to enforce security policies in the I2NSF framework, | instantiated to enforce security policies in the I2NSF framework, | |||
Security Controller could request the VNFM to instantiate them | Security Controller could request the VNFM to instantiate them | |||
through the Ve-Vnfm interface. Or if an NSF, running as a VNF, is | through the Ve-Vnfm interface. Or if an NSF, running as a VNF, is | |||
not used by any traffic flows for a time period, Security Controller | not used by any traffic flows for a time period, Security Controller | |||
may request deinstantiating it through the interface for efficient | may request deinstantiating it through the interface for efficient | |||
resource utilization. | resource utilization. | |||
Appendix B. Changes from draft-ietf-i2nsf-registration-interface-dm-00 | Appendix C. Changes from draft-ietf-i2nsf-registration-interface-dm-01 | |||
The following changes have been made from draft-ietf-i2nsf- | The following changes have been made from draft-ietf-i2nsf- | |||
registration-interface-dm-00: | registration-interface-dm-01: | |||
o Section 4 has been revised to clarify the major objectives of the | o Section 4 has been revised to clarify major objectives of the | |||
I2NSF registration interface, considering the register-select- | I2NSF registration interface: NSF capability registration, NSF | |||
instantiate operation sequence that is typically performed through | capability query. | |||
the registration interface in I2NSF framework based on NFV. | ||||
o Section 5 has been revised as well based on the register-select- | o Section 5 has been revised to describe the above-mentioned major | |||
instantiate operation sequence. | operations of the I2NSF registration interface. Section 5.1 | |||
describes the information model for registering NSFs and their | ||||
capabilities. Section 5.2 describes the information model for | ||||
querying NSFs based on a description of required capabilities. | ||||
o Appendix A has been added to clarify the lifecycle management of | o In section 6, the data model has been revised according to the | |||
NSFs in I2NSF framework based on NFV. | revised information model. | |||
Appendix C. Acknowledgments | o Appendix A. has been revised to describe the XML examples of the | |||
registration interface data model in five NSF Registration | ||||
examples and one NSF Capability Query example. | ||||
Appendix D. Acknowledgments | ||||
This work was supported by Institute for Information & communications | This work was supported by Institute for Information & communications | |||
Technology Promotion(IITP) grant funded by the Korea government(MSIP) | Technology Promotion(IITP) grant funded by the Korea government(MSIP) | |||
(No.R-20160222-002755, Cloud based Security Intelligence Technology | (No.R-20160222-002755, Cloud based Security Intelligence Technology | |||
Development for the Customized Security Service Provisioning). | Development for the Customized Security Service Provisioning). | |||
Appendix D. Contributors | Appendix E. Contributors | |||
This document is made by the group effort of I2NSF working group. | This document is made by the group effort of I2NSF working group. | |||
Many people actively contributed to this document. The following are | Many people actively contributed to this document. The following are | |||
considered co-authors: | considered co-authors: | |||
o Jinyong Tim Kim (Sungkyunkwan University) | o Jinyong Tim Kim (Sungkyunkwan University) | |||
o Susan Hares (Huawei) | o Susan Hares (Huawei) | |||
o Diego R. Lopez (Telefonica) | o Diego R. Lopez (Telefonica) | |||
o Chung, Chaehong (Sungkyunkwan University) | ||||
Authors' Addresses | Authors' Addresses | |||
Sangwon Hyun | Sangwon Hyun | |||
Department of Computer Engineering | Department of Computer Engineering | |||
Chosun University | Chosun University | |||
309, Pilmun-daero, Dong-gu | 309, Pilmun-daero, Dong-gu | |||
Gwangju, Jeollanam-do 61452 | Gwangju, Jeollanam-do 61452 | |||
Republic of Korea | Republic of Korea | |||
EMail: shyun@chosun.ac.kr | EMail: shyun@chosun.ac.kr | |||
skipping to change at page 22, line 39 ¶ | skipping to change at page 31, line 14 ¶ | |||
Taekyun Roh | Taekyun Roh | |||
Electrical Computer Engineering | Electrical Computer Engineering | |||
Sungkyunkwan University | Sungkyunkwan University | |||
2066 Seobu-Ro, Jangan-Gu | 2066 Seobu-Ro, Jangan-Gu | |||
Suwon, Gyeonggi-Do 16419 | Suwon, Gyeonggi-Do 16419 | |||
Republic of Korea | Republic of Korea | |||
Phone: +82 31 290 7222 | Phone: +82 31 290 7222 | |||
Fax: +82 31 299 6673 | Fax: +82 31 299 6673 | |||
EMail: tkroh0198@skku.edu | EMail: tkroh0198@skku.edu | |||
URI: http://imtl.skku.ac.kr/xe/index.php?mid=board_YoKq57 | ||||
Sarang Wi | Sarang Wi | |||
Electrical Computer Engineering | Electrical Computer Engineering | |||
Sungkyunkwan University | Sungkyunkwan University | |||
2066 Seobu-Ro, Jangan-Gu | 2066 Seobu-Ro, Jangan-Gu | |||
Suwon, Gyeonggi-Do 16419 | Suwon, Gyeonggi-Do 16419 | |||
Republic of Korea | Republic of Korea | |||
Phone: +82 31 290 7222 | Phone: +82 31 290 7222 | |||
Fax: +82 31 299 6673 | Fax: +82 31 299 6673 | |||
EMail: dnl9795@skku.edu | EMail: dnl9795@skku.edu | |||
URI: http://imtl.skku.ac.kr/xe/index.php?mid=board_YoKq57 | ||||
Jung-Soo Park | Jung-Soo Park | |||
Electronics and Telecommunications Research Institute | Electronics and Telecommunications Research Institute | |||
218 Gajeong-Ro, Yuseong-Gu | 218 Gajeong-Ro, Yuseong-Gu | |||
Daejeon 305-700 | Daejeon 305-700 | |||
Republic of Korea | Republic of Korea | |||
Phone: +82 42 860 6514 | Phone: +82 42 860 6514 | |||
EMail: pjs@etri.re.kr | EMail: pjs@etri.re.kr | |||
End of changes. 121 change blocks. | ||||
629 lines changed or deleted | 962 lines changed or added | |||
This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |