Network Working Group O. Troan Internet-Draft cisco Intended status: Standards Track 2 April 2020 Expires: 4 October 2020 The Universal IPv6 Configuration Option (experiment) draft-troan-6man-universal-ra-option-02 Abstract One of the original intentions for the IPv6 host configuration, was to configure the network-layer parameters only with IPv6 ND, and use service discovery for other configuration information. Unfortunately that hasn't panned out quite as planned, and we are in a situation where all kinds of configuration options are added to RAs and DHCP. This document proposes a new universal option for RA and DHCP in a self-describing data format, with the list of elements maintained in an IANA registry, with greatly relaxed rules for registration. 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 4 October 2020. Copyright Notice Copyright (c) 2020 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 Troan Expires 4 October 2020 [Page 1] Internet-Draft UA RA April 2020 as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Conventions . . . . . . . . . . . . . . . . . . . . . . . . . 2 3. The Experiment . . . . . . . . . . . . . . . . . . . . . . . 3 4. The Universal IPv6 Configuration option . . . . . . . . . . . 3 5. Implementation Guidance . . . . . . . . . . . . . . . . . . . 4 6. Implementation Status . . . . . . . . . . . . . . . . . . . . 5 7. Security Considerations . . . . . . . . . . . . . . . . . . . 5 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5 8.1. Initial objects in the registry . . . . . . . . . . . . . 5 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 7 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 8 1. Introduction This document proposes a new universal option for the Router Advertisement IPv6 ND message [RFC4861] and DHCPv6 [RFC8415]. It's purpose is to use the RA or DHCP message as an opaque carrier for configuration information between an agent on a router or DHCP server and host / host application. DHCP is suited to give per-client configuration information, while the RA mechanism advertises configuration information to all hosts on the link. There is a long running history of "conflict" between the two. The arguments go; there is less fate-sharing in DHCP, DHCP doesn't deal with multiple sources of information, or make it more difficult to change information independent of the lifetimes, RA cannot be used to configure different information to different clients and so on. And of course some options are only available in RAs and some options are only available in DHCP. While this proposal does not resolve the DHCP vs RA debate, it proposes an experimental solution to the problem of a very slow process of standardizing new options, and the IETF spending an inordinate amount of time arguing over new configuration options. 2. 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]. Troan Expires 4 October 2020 [Page 2] Internet-Draft UA RA April 2020 3. The Experiment This document specifies a new "self-describing" universal configuration option. Currently new configuration option requires "standards action". The purpose of the experiment is two-fold. What are the implications of an opaque configuration option that should not require any code changes for new elements within the option? And what happens when change control is relaxed? The proposal is that no IETF document is required. The configuration option is described directly in the universal configuration IANA registry. Duration of experiment: 2 years. How to evaluate success? How many new options have been defined. Did expert review suffice to stop "harmful" options? Were any of the options implemented and deployed? On a successful experiment, the time limit of the registry will be removed and it's experimental status will be removed. If the experiment is deemed a failure, then the registry will be removed. 4. The Universal IPv6 Configuration option The option data is described using the schema language CDDL [RFC8610], encoded in CBOR [RFC7049]. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | Data ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 1: Universal IPv6 Configuration Option Format Fields: Type 42 for Universal IPv6 Configuration Option Length The length of the option (including the type and length fields) in units of 8 octets. Data CBOR encoded data. Padding Option zero-padded to nearest 8-octet boundary Example: Troan Expires 4 October 2020 [Page 3] Internet-Draft UA RA April 2020 { "ietf": { "dns": { "dnssl": [ "example.com" ], "rdnss": [ "2001:db8::1", "2001:db8::2" ] }, "nat64": { "prefix": "64:ff9b::/96" } "rio": { "routes": [ "rio_routes": { "prefix": "::/0", "next-hop": "fe80::1" } ] } } } Figure 2 The universal IPv6 Configuration option MUST be small enough to fit within a single IPv6 ND or DHCPv6 packet. It then follows that a single element in the dictionary cannot be larger than what fits within a single option. Different elements can be split across multiple universal configuration options (in separate ND RA packets). All IANA registered elements are under the "ietf" key in the dictionary. Private configuration information can be included in the option using different keys. 5. Implementation Guidance The purpose of this option is to allow users to use the RA or DHCP as an opaque carrier for configuration information without requiring code changes in the option carrying infrastructure. On the router or DHCP server side there should be an API allowing a user to add an element, e.g. a JSON object [RFC8259] or a pre-encoded CBOR string to RAs sent on a given interface or to DHCP messages sent to a client. Troan Expires 4 October 2020 [Page 4] Internet-Draft UA RA April 2020 On the host side, an API should be available allowing applications to subscribe to received configuration elements. It should be possible to subscribe to configuration object by dictionary key. The contents of any elements that are not recognized, either in whole or in part, by the receiving host MUST be ignored and the remainder of option's contents processed as normal. 6. Implementation Status The Universal IPv6 configuration option sending side is implemented in VPP (https://wiki.fd.io/view/VPP). The implementation is a prototype released under Apache license and available at: https://github.com/vpp-dev/vpp/ commit/156db316565e77de30890f6e9b2630bd97b0d61d. 7. Security Considerations Unless there is a security relationship between the host and the router (e.g. SEND), and even then, the consumer of configuration information can put no trust in the information received. 8. IANA Considerations IANA is requested to add a new registry for the Universal IPv6 Configuration option. The registry should be named "IPv6 ND RA Universal option (experimental)". Changes and additions to the registry require expert review [RFC8126]. The schema field follows the CDDL schema definition in [RFC8610]. The IANA is requested to add the universal option to the "IPv6 Neighbor Discovery Option Formats" registry with the value of 42. The IANA is requested to add the universal option to the "Dynamic Host Configuration Protocol for IPv6 (DHCPv6) Option Codes" registry. 8.1. Initial objects in the registry The PVD [I-D.ietf-intarea-provisioning-domains] elements (and PIO, RIO [RFC4191]) are included to provide an alternative representation for the proposed new options in that draft. Troan Expires 4 October 2020 [Page 5] Internet-Draft UA RA April 2020 +-------------------------------------------------+-----------+ | CDDL Description | Reference | +---------------+---------------------------------+-----------+ | ietf = { | | | ? dns : dns | | | ? nat64: nat64 | | | ? ipv6-only: bool | | | ? pvd : pvd | | | ? mtu : uint .size 4 | | | ? rio : rio | | | } | | | | | | pio = { | [RFC4861] | | prefix : tstr | | | ? preferred-lifetime : uint | | | ? valid-lifetime : uint | | | ? a-flag : bool | | | ? l-flag : bool | | | } | | | | | | rio_route = { | [RFC4191] | | prefix : tstr | | | ? preference : (0..3) | | | ? lifetime : uint | | | ? mtu : uint .size 4 | [this] | | ? nexthop: tstr | | | } | | | rio = { | | | routes : [+ rio_route] | | | } | | | | | | dns = { | [RFC8106] | | dnssl : [* tstr] | | | rdnss : ipv6-addresses : [* tstr] | | | ? lifetime : uint | | | } | | | | | | nat64 = { | [RFC7050] | | prefix : tstr | | | } | | | ipv6-only : bool | [v6only] | | | | | pvd = { | [pvd] | | fqdn : tstr | | | uri : tstr | | | ? dns : dns | | | ? nat64: nat64 | | | ? pio : pio | | Troan Expires 4 October 2020 [Page 6] Internet-Draft UA RA April 2020 | ? rio : rio | | | } | | +---------------+---------------------------------+-----------+ Figure 3 9. References [I-D.ietf-intarea-provisioning-domains] Pfister, P., Vyncke, E., Pauly, T., Schinazi, D., and W. Shao, "Discovering Provisioning Domain Names and Data", Work in Progress, Internet-Draft, draft-ietf-intarea- provisioning-domains-11, 31 January 2020, . [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, . [RFC4191] Draves, R. and D. Thaler, "Default Router Preferences and More-Specific Routes", RFC 4191, DOI 10.17487/RFC4191, November 2005, . [RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman, "Neighbor Discovery for IP version 6 (IPv6)", RFC 4861, DOI 10.17487/RFC4861, September 2007, . [RFC7049] Bormann, C. and P. Hoffman, "Concise Binary Object Representation (CBOR)", RFC 7049, DOI 10.17487/RFC7049, October 2013, . [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for Writing an IANA Considerations Section in RFCs", BCP 26, RFC 8126, DOI 10.17487/RFC8126, June 2017, . [RFC8259] Bray, T., Ed., "The JavaScript Object Notation (JSON) Data Interchange Format", STD 90, RFC 8259, DOI 10.17487/RFC8259, December 2017, . [RFC8415] Mrugalski, T., Siodelski, M., Volz, B., Yourtchenko, A., Richardson, M., Jiang, S., Lemon, T., and T. Winters, "Dynamic Host Configuration Protocol for IPv6 (DHCPv6)", Troan Expires 4 October 2020 [Page 7] Internet-Draft UA RA April 2020 RFC 8415, DOI 10.17487/RFC8415, November 2018, . [RFC8610] Birkholz, H., Vigano, C., and C. Bormann, "Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures", RFC 8610, DOI 10.17487/RFC8610, June 2019, . Author's Address Ole Troan cisco Philip Pedersens vei 1 1366 Lysaker Norway Email: ot@cisco.com Troan Expires 4 October 2020 [Page 8]