Network Working Group | E. Lear |
Internet-Draft | Cisco Systems |
Intended status: Standards Track | January 19, 2016 |
Expires: July 22, 2016 |
Using DNS Names in the IETF ACL Model
draft-lear-ietf-netmod-acl-dnsname-00
End points are commonly referenced by higher level functions through the DNS. This is especially the case in cloud-based functions, which might have hundreds of IP addresses for the same name. This brief memo extends the IETF-ACL model to allow access-control via domain names.
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."
This Internet-Draft will expire on July 22, 2016.
Copyright (c) 2016 IETF Trust and the persons identified as the document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.
The IETF-ACL model [I-D.ietf-netmod-acl-model] specifies a schema for access lists. That model is intentionally kept constrained to the small number of packet-passing functions that are considered ubiquitous. While that is a necessary step, there are a number of circumstances in which it will not be sufficient. In a world where load balancing and shifting commonly takes place, it may not be practical to maintain the complete list of IP addresses in all instances. Furthermore, even in more static environments, occasionally the name to address mapping needs to change. Lastly, there are resources that may not be tied to packet processing at all that may yet be well described by this augmentation. Allowing domain names in ACLs reduces the number of points within a network that need to be reconfigured when such changes take place.
This memo specifies an extension to IETF-ACL model such that domain names may be referenced by augmenting the “matches” element. Different implementations may deploy differing methods to maintain the mapping between IP address and domain name, if indeed any are needed. However, the intent is that resources that are referred to using a name should be authorized (or not) within an access list.
The structure of the change is as follows:
augment /acl:access-lists/acl:acl/acl:access-list-entries /acl:ace/acl:matches/acl:ace-type/acl:ace-ip: +--rw source-dnsname? inet:host +--rw destination-dnsname? inet:host
The choice of this particular point in the access-list model is based on the assumption that we are in some way referring to IP-related resources, as that is what the DNS returns. A domain name in our context is defined in [RFC6991].
The following elements are defined.
The argument corresponds to a domain name of a source as specified by inet:host. Depending on how the model is used, it may or may not be resolved, as required by the implementation and circumstances.
The argument corresponds to a domain name of a destination as specified by inet:host. Depending on how the model is used, it may or may not be resolved, as required by the implementation and circumstances.
<CODE BEGINS>file "ietf-acl-dnsname.yang"; module ietf-acl-dnsname { yang-version 1; namespace "urn:ietf:params:xml:ns:yang:ietf-acl-dnsname"; prefix "ietf-acl-dnsname"; import ietf-access-control-list { prefix "acl"; } import ietf-inet-types { prefix "inet"; } organization "Cisco Systems, Inc."; contact "Eliot Lear lear@cisco.com "; description "This YANG module defines a component that augments the IETF description of an access list to allow dns names as matching criteria."; revision "2016-01-14" { description "Initial revision"; reference "This document?"; } augment "/acl:access-lists/acl:acl/" + "acl:access-list-entries/acl:ace/" + "acl:matches/acl:ace-type/acl:ace-ip" { description "adding domain names to matching"; leaf source-dnsname { type inet:host; description "domain name to be matched against"; } leaf destination-dnsname { type inet:host; description "domain name to be matched against"; } } } <CODE ENDS>
The following example is taken from [I-D.ietf-netmod-acl-model] (the optional and irrelevant components have been removed). It allows traffic from www.cloud.example.com.
<?xml version='1.0' encoding='UTF-8'?> <data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <access-lists xmlns="urn:ietf:params:xml:ns:yang:ietf-access-control-list" xmlns:ietf-acl-dnsname="urn:ietf:params:xml:ns:yang:ietf-acl-dnsname"> <acl> <acl-oper-data /> <access-list-entries> <ace> <matches> <source-dnsname> www.cloud.example.com </destination-dnsname> </matches> <actions> <permit /> </actions> <rule-name>rule1<rule-name/> </ace> </access-list-entries> <acl-name>sample-dns-acl<acl-name/> <acl-type>ipv4-acl<acl-type/> </acl> </access-lists> </data>
If the mapping between a domain name and the underlying resource to which it refers becomes stale, the access list will be incorrect. It is therefore important that implementations employ some means for maintaining the mapping, if it is required. In those circumstances, when other systems are in play, those other systems would be required to indicate what domains they are attempting to connect to. Under the current circumstances, this is readily observable. However, in future such information sharing may raise privacy concerns, and the name and mapping may not be available to the system employing the ACL model.
The IANA is not requested to make any changes. The RFC Editor is requested to remove this section prior to publication.
The author wishes to acknowledge Kiran Koushik and Einar Nilsen-Nygaard for their review and contributions to this work.
[I-D.ietf-netmod-acl-model] | Bogdanovic, D., Koushik, K., Huang, L. and D. Blair, "Network Access Control List (ACL) YANG Data Model", Internet-Draft draft-ietf-netmod-acl-model-06, December 2015. |
[RFC6991] | Schoenwaelder, J., "Common YANG Data Types", RFC 6991, DOI 10.17487/RFC6991, July 2013. |