DNSOP Working Group L. Lhotka
Internet-Draft P. Spacek
Intended status: Standards Track CZ.NIC
Expires: December 29, 2019 June 27, 2019

YANG Types for DNS Classes and Resource Record Types
draft-lhotka-dnsop-iana-class-type-yang-02

Abstract

This document contains the initial revision of the YANG module iana-dns-class-rr-type that contains derived types reflecting two IANA registries: DNS CLASSes and Resource Record (RR) TYPEs. These YANG types are intended as a minimum basis for future data modeling work.

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 December 29, 2019.

Copyright Notice

Copyright (c) 2019 IETF Trust and the persons identified as the document authors. All rights reserved.

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.


Table of Contents

1. Introduction

YANG [RFC7950] has become a de facto standard as a language for modeling configuration and state data, as well as specifying management operations and asynchronous notifications. It is reasonable to expect that the approach based on utilizing such data models along with standard management protocols such as NETCONF and RESTCONF can be effectively used in DNS operations, too. In fact, several efforts are currently underway that attempt to use NETCONF or RESTCONF for configuring and managing

While it is possible to use the management protocols mentioned above with ad hoc or proprietary data models, their real potential can be realized only if there is a (completely or partly) unified data model supported by multiple DNS software implementations. Operators can then, for instance, run several different DNS servers in parallel, and use a common configuration and management interface and data for all of them. Also, it becomes considerably easier to migrate to another implementation.

Based on the previous experience from the IETF Routing Area, it is to be expected that the development of unified data models for DNS will be a lengthy and complicated process that will require active cooperation and compromises from the vendors and developers of major DNS server platforms. Nevertheless, it is likely that any DNS-related data modeling effort will need to use various DNS parameters and enumerations that are specified in several IANA registries. For use with YANG, these parameters and enumerations have to be translated into corresponding YANG types or other structures. Such translations should be straightforward and relatively uncontroversial.

This document is a first step in translating DNS-related IANA registries to YANG. It contains the initial revision of the YANG module "iana-dns-class-rr-type" that defines derived types for the common parameters of DNS resource records (RR): class and type. These YANG types, "dns-class" and "rr-type", reflect the IANA registries "DNS CLASSes" and "Resource Record (RR) TYPEs" [IANA-DNS-PARAMETERS].

It is worth emphasizing that the role of the DNSOP Working Group is only in preparing and publishing this initial revision of the YANG module. Subsequently, whenever a new class or RR type is added to the above registries, IANA will also update the iana-dns-class-rr-type YANG module, following the instructions in Section 4 below.

2. YANG Design Considerations

The IANA document "Domain Name System (DNS) Parameters" [IANA-DNS-PARAMETERS] contains altogether thirteen registries. The YANG module iana-dns-class-rr-type defines derived types corresponding to only two of the registries that are essential for data models involving zone data, namely "DNS CLASSes" and "Resource Record (RR) TYPEs". It is expected that the remaining registries in [IANA-DNS-PARAMETERS], as well as other DNS-related IANA registries, will be analogically reflected in future YANG modules as necessary. This way, an appropriate combination of YANG modules can be chosen depending on which YANG types are needed for a given data modeling purpose.

[RFC3597] introduced the option of specifying a class or type via its assigned decimal number, as an alternative to the mnemonic name. For example, the "IN" class can be equivalently written as "CLASS1", and "AAAA" type as "TYPE28".

Accordingly, the derived types "dns-class" and "rr-type" are defined in the YANG module as a union of two member types:

As unassigned and reserved class and types values are not included in the mnemonic name enumerations, they can be used only via their decimal codes.

3. YANG Module

RFC Editor: In this section, replace all occurrences of "XXXX" with the actual RFC number and all occurrences of the revision date below with the date of RFC publication (and remove this note).

<CODE BEGINS> file "ietf-iana-dns-class-rr-type@2019-06-27.yang"

module iana-dns-class-rr-type {

  yang-version 1.1;

  namespace "urn:ietf:params:xml:ns:yang:iana-dns-class-rr-type";

  prefix dnsct;

  organization
    "Internet Assigned Numbers Authority (IANA)";

  contact
    "        Internet Assigned Numbers Authority

     Postal: ICANN
             4676 Admiralty Way, Suite 330
             Marina del Rey, CA 90292

     Tel:    +1 310 823 9358

     <mailto:iana@iana.org>";

  description
    "This YANG module translates IANA registries 'DNS CLASSes' and
     'Resource Record (RR) TYPEs' to YANG derived types.

     Copyright (c) 2018 IETF Trust and the persons identified as
     authors of the code. All rights reserved.

     Redistribution and use in source and binary forms, with or
     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
     (https://trustee.ietf.org/license-info).

     This version of this YANG module is part of RFC XXXX
     (https://tools.ietf.org/html/rfcXXXX); see the RFC itself for
     full legal notices.";

  reference
    "IANA 'Domain Name System (DNS) Parameters' registry
     https://www.iana.org/assignments/dns-parameters";

  revision 2019-06-27 {
    description
      "Initial revision.";
    reference
      "RFC XXXX: YANG Types for DNS Classes and Resource Record
       Types";
  }

  /* Typedefs */

  typedef dns-class-name {
    type enumeration {
      enum IN {
        value "1";
        description
          "Internet";
        reference
          "RFC 1035: Domain Names - Implementation and
           Specification";
      }
      enum CH {
        value "3";
        description
          "Chaos";
        reference
          "Moon, D., 'Chaosnet', A. I. Memo 628, MIT Artificial
           Intelligence Laboratory, June 1981";
      }
      enum HS {
        value "4";
        description
          "Hesiod";
        reference
          "Dyer, S. and Hsu, F, 'Hesiod', Project Athena Technical
           Plan - Name Service, April 1987";
      }
      enum NONE {
        value "254";
        description
          "QCLASS NONE";
        reference
          "RFC 2136: Dynamic Updates in the Domain Name System (DNS
           UPDATE)";
      }
      enum ANY {
        value "255";
        description
          "QCLASS * (ANY)";
        reference
          "RFC 1035: Domain Names - Implementation and
           Specification";
      }
    }
    description
      "This enumeration type defines mnemonic names and corresponding
       numeric values of DNS classes.";
    reference
      "RFC 6895: Domain Name System (DNS) IANA Considerations";
  }

  typedef dns-class {
    type union {
      type uint16;
      type dns-class-name;
    }
    description
      "This type allows for referring to a DNS class using either the
       assigned mnemonic name or numeric value.";
  }

  typedef rr-type-name {
    type enumeration {
      enum A {
        value "1";
        description
          "A host address.";
        reference
          "RFC 1035: Domain Names - Implementation and
           Specification";
      }
      enum NS {
        value "2";
        description
          "An authoritative name server.";
        reference
          "RFC 1035: Domain Names - Implementation and
           Specification";
      }
      enum MD {
        value "3";
        status "obsolete";
        description
          "A mail destination (obsolete – use MX).";
        reference
          "RFC 1035: Domain Names - Implementation and
           Specification";
      }
      enum MF {
        value "4";
        status "obsolete";
        description
          "A mail forwarder (obsolete – use MX).";
        reference
          "RFC 1035: Domain Names - Implementation and
           Specification";
      }
      enum CNAME {
        value "5";
        description
          "The canonical name for an alias.";
        reference
          "RFC 1035: Domain Names - Implementation and
           Specification";
      }
      enum SOA {
        value "6";
        description
          "Start of a zone of authority.";
        reference
          "RFC 1035: Domain Names - Implementation and
           Specification";
      }
      enum MB {
        value "7";
        description
          "A mailbox domain name (experimental).";
        reference
          "RFC 1035: Domain Names - Implementation and
           Specification";
      }
      enum MG {
        value "8";
        description
          "A mail group member (experimental).";
        reference
          "RFC 1035: Domain Names - Implementation and
           Specification";
      }
      enum MR {
        value "9";
        description
          "A mail rename domain name (experimental).";
        reference
          "RFC 1035: Domain Names - Implementation and
           Specification";
      }
      enum NULL {
        value "10";
        description
          "A null RR (experimental).";
        reference
          "RFC 1035: Domain Names - Implementation and
           Specification";
      }
      enum WKS {
        value "11";
        description
          "A well known service description.";
        reference
          "RFC 1035: Domain Names - Implementation and
           Specification";
      }
      enum PTR {
        value "12";
        description
          "A domain name pointer.";
        reference
          "RFC 1035: Domain Names - Implementation and
           Specification";
      }
      enum HINFO {
        value "13";
        description
          "Host information.";
        reference
          "RFC 1035: Domain Names - Implementation and
           Specification";
      }
      enum MINFO {
        value "14";
        description
          "Mailbox or mail list information.";
        reference
          "RFC 1035: Domain Names - Implementation and
           Specification";
      }
      enum MX {
        value "15";
        description
          "Mail exchange.";
        reference
          "RFC 1035: Domain Names - Implementation and
           Specification";
      }
      enum TXT {
        value "16";
        description
          "Text strings.";
        reference
          "RFC 1035: Domain Names - Implementation and
           Specification";
      }
      enum RP {
        value "17";
        description
          "Responsible person.";
        reference
          "RFC 1183: New DNS RR Definitions";
      }
      enum AFSDB {
        value "18";
        description
          "AFS data base location.";
        reference
          "- RFC 1183: New DNS RR Definitions

           - RFC 5864: DNS SRV Resource Records for AFS";
      }
      enum X25 {
        value "19";
        description
          "X.25 PSDN address.";
        reference
          "RFC 1183: New DNS RR Definitions";
      }
      enum ISDN {
        value "20";
        description
          "ISDN address.";
        reference
          "RFC 1183: New DNS RR Definitions";
      }
      enum RT {
        value "21";
        description
          "Route through.";
        reference
          "RFC 1183: New DNS RR Definitions";
      }
      enum NSAP {
        value "22";
        description
          "NSAP address, NSAP style A record.";
        reference
          "RFC 1706: DNS NSAP Resource Records";
      }
      enum NSAP-PTR {
        value "23";
        description
          "Domain name pointer, NSAP style.";
        reference
          "- RFC 1348: DNS NSAP RRs

           - RFC 1637: DNS NSAP Resource Records

           - RFC 1706: DNS NSAP Resource Records";
      }
      enum SIG {
        value "24";
        description
          "Security signature.";
        reference
          "- RFC 4034: Resource Records for the DNS Security
             Extensions

           - RFC 3755: Legacy Resolver Compatibility for Delegation
             Signer (DS)

           - RFC 2535: Domain Name System Security Extensions

           - RFC 2536: DSA KEYs and SIGs in the Domain Name System
             (DNS)

           - RFC 2537: RSA/MD5 KEYs and SIGs in the Domain Name
             System (DNS)

           - RFC 2931: DNS Request and Transaction Signatures
             (SIG(0)s)

           - RFC 3110: RSA/SHA-1 SIGs and RSA KEYs in the Domain Name
             System (DNS)

           - RFC 3008: Domain Name System Security (DNSSEC) Signing
             Authority";
      }
      enum KEY {
        value "25";
        description
          "Security key.";
        reference
          "- RFC 4034: Resource Records for the DNS Security
             Extensions

           - RFC 3755: Legacy Resolver Compatibility for Delegation
             Signer (DS)

           - RFC 2535: Domain Name System Security Extensions

           - RFC 2536: DSA KEYs and SIGs in the Domain Name System
             (DNS)

           - RFC 2537: RSA/MD5 KEYs and SIGs in the Domain Name
             System (DNS)

           - RFC 2539: Storage of Diffie-Hellman Keys in the Domain
             Name System (DNS)

           - RFC 3008: Domain Name System Security (DNSSEC) Signing
             Authority

           - RFC 3110: RSA/SHA-1 SIGs and RSA KEYs in the Domain Name
             System (DNS)";
      }
      enum PX {
        value "26";
        description
          "X.400 mail mapping information.";
        reference
          "RFC 2163: Using the Internet DNS to Distribute MIXER
           Conformant Global Address Mapping (MCGAM)";
      }
      enum GPOS {
        value "27";
        description
          "Geographical position.";
        reference
          "RFC 1712: DNS Encoding of Geographical Location";
      }
      enum AAAA {
        value "28";
        description
          "IPv6 address.";
        reference
          "RFC 3596: DNS Extensions to Support IP Version 6";
      }
      enum LOC {
        value "29";
        description
          "Location information.";
        reference
          "RFC 1876: A Means for Expressing Location Information in
           the Domain Name System";
      }
      enum NXT {
        value "30";
        status "obsolete";
        description
          "Next domain (obsolete).";
        reference
          "- RFC 3755: Legacy Resolver Compatibility for Delegation
             Signer (DS)

           - RFC 2535: Domain Name System Security Extensions";
      }
      enum EID {
        value "31";
        description
          "Endpoint identifier.";
      }
      enum NIMLOC {
        value "32";
        description
          "Nimrod locator.";
      }
      enum SRV {
        value "33";
        description
          "Server selection.";
        reference
          "RFC 2782: A DNS RR for specifying the location of services
           (DNS SRV)";
      }
      enum ATMA {
        value "34";
        description
          "ATM address.";
        reference
          "ATM Forum Technical Committee, 'ATM Name System V2.0',
           AF-DANS-0152.00, July 2000";
      }
      enum NAPTR {
        value "35";
        description
          "Naming authority pointer.";
        reference
          "- RFC 2915: The Naming Authority Pointer (NAPTR) DNS
             Resource Record

           - RFC 2168: Resolution of Uniform Resource Identifiers
             using the Domain Name System

           - RFC 3403: Dynamic Delegation Discovery System (DDDS)
             Part Three: The Domain Name System (DNS) Database";
      }
      enum KX {
        value "36";
        description
          "Key exchanger.";
        reference
          "RFC 2230: Key Exchange Delegation Record for the DNS";
      }
      enum CERT {
        value "37";
        description
          "Certificate.";
        reference
          "RFC 4398: Storing Certificates in the Domain Name System
           (DNS)";
      }
      enum A6 {
        value "38";
        status "obsolete";
        description
          "IPv6 address (obsolete – use AAAA).";
        reference
          "- RFC 3226: DNSSEC and IPv6 A6 Aware Server/Resolver
             Message Size Requirements

           - RFC 2874: DNS Extensions to Support IPv6 Address
             Aggregation and Renumbering

           - RFC 6563: Moving A6 to Historic Status";
      }
      enum DNAME {
        value "39";
        description
          "DNAME.";
        reference
          "- RFC 2672: Non-Terminal DNS Name Redirection

           - RFC 6672: DNAME Redirection in the DNS";
      }
      enum SINK {
        value "40";
        description
          "Kitchen sink.";
      }
      enum OPT {
        value "41";
        description
          "OPT pseudo-RR.";
        reference
          "- RFC 6891: Extension Mechanisms for DNS (EDNS(0))

           - RFC 3225: Indicating Resolver Support of DNSSEC";
      }
      enum APL {
        value "42";
        description
          "Address prefix list.";
        reference
          "RFC 3123: A DNS RR Type for Lists of Address Prefixes (APL
           RR)";
      }
      enum DS {
        value "43";
        description
          "Delegation signer.";
        reference
          "- RFC 4034: Resource Records for the DNS Security
             Extensions

           - RFC 3658: Delegation Signer (DS) Resource Record (RR)";
      }
      enum SSHFP {
        value "44";
        description
          "SSH key fingerprint.";
        reference
          "RFC 4255: Using DNS to Securely Publish Secure Shell (SSH)
           Key Fingerprints";
      }
      enum IPSECKEY {
        value "45";
        description
          "IPSec key.";
        reference
          "RFC 4025: A Method for Storing IPsec Keying Material in
           DNS";
      }
      enum RRSIG {
        value "46";
        description
          "RR signature.";
        reference
          "- RFC 4034: Resource Records for the DNS Security
             Extensions

           - RFC 3755: Legacy Resolver Compatibility for Delegation
             Signer (DS)";
      }
      enum NSEC {
        value "47";
        description
          "NSEC resource record.";
        reference
          "- RFC 4034: Resource Records for the DNS Security
             Extensions

           - RFC 3755: Legacy Resolver Compatibility for Delegation
             Signer (DS)";
      }
      enum DNSKEY {
        value "48";
        description
          "DNSKEY resource record.";
        reference
          "- RFC 4034: Resource Records for the DNS Security
             Extensions

           - RFC 3755: Legacy Resolver Compatibility for Delegation
             Signer (DS)";
      }
      enum DHCID {
        value "49";
        description
          "DHCID resource record.";
        reference
          "RFC 4701: A DNS Resource Record (RR) for Encoding Dynamic
           Host Configuration Protocol (DHCP) Information (DHCID
           RR)";
      }
      enum NSEC3 {
        value "50";
        description
          "NSEC3 resource record.";
        reference
          "RFC 5155: DNS Security (DNSSEC) Hashed Authenticated
           Denial of Existence";
      }
      enum NSEC3PARAM {
        value "51";
        description
          "NSEC3PARAM resource record.";
        reference
          "RFC 5155: DNS Security (DNSSEC) Hashed Authenticated
           Denial of Existence";
      }
      enum TLSA {
        value "52";
        description
          "TLSA resource record.";
        reference
          "RFC 6698: The DNS-Based Authentication of Named Entities
           (DANE) Transport Layer Security (TLS) Protocol: TLSA";
      }
      enum SMIMEA {
        value "53";
        description
          "S​/​MIME cert association";
        reference
          "RFC 8162: Using Secure DNS to Associate Certificates with
           Domain Names for S​/​MIME";
      }
      enum HIP {
        value "55";
        description
          "Host identity protocol.";
        reference
          "RFC 5205: Host Identity Protocol (HIP) Domain Name System
           (DNS) Extension";
      }
      enum NINFO {
        value "56";
        description
          "NINFO resource record.";
      }
      enum RKEY {
        value "57";
        description
          "RKEY resource record.";
      }
      enum TALINK {
        value "58";
        description
          "Trust anchor LINK.";
      }
      enum CDS {
        value "59";
        description
          "Child DS.";
        reference
          "RFC 7344: Automating DNSSEC Delegation Trust
           Maintenance";
      }
      enum CDNSKEY {
        value "60";
        description
          "DNSKEY(s) the child wants reflected in DS.";
        reference
          "RFC 7344: Automating DNSSEC Delegation Trust
           Maintenance";
      }
      enum OPENPGPKEY {
        value "61";
        description
          "OpenPGP key.";
        reference
          "RFC 7929: DNS-Based Authentication of Named Entities
           (DANE) Bindings for OpenPGP";
      }
      enum CSYNC {
        value "62";
        description
          "Child-to-parent synchronization.";
        reference
          "RFC 7477: Child-to-Parent Synchronization in DNS";
      }
      enum SPF {
        value "99";
        description
          "SPF (sender policy framework) resource record.";
        reference
          "RFC 7208: Sender Policy Framework (SPF) for Authorizing
           Use of Domains in Email, Version 1";
      }
      enum UINFO {
        value "100";
        description
          "IANA-reserved.";
      }
      enum UID {
        value "101";
        description
          "IANA-reserved.";
      }
      enum GID {
        value "102";
        description
          "IANA-reserved.";
      }
      enum UNSPEC {
        value "103";
        description
          "IANA-reserved.";
      }
      enum NID {
        value "104";
        description
          "Node identifier.";
        reference
          "RFC 6742: DNS Resource Records for the Identifier-Locator
           Network Protocol (ILNP)";
      }
      enum L32 {
        value "105";
        description
          "L32 resource record.";
        reference
          "RFC 6742: DNS Resource Records for the Identifier-Locator
           Network Protocol (ILNP)";
      }
      enum L64 {
        value "106";
        description
          "L64 resource record.";
        reference
          "RFC 6742: DNS Resource Records for the Identifier-Locator
           Network Protocol (ILNP)";
      }
      enum LP {
        value "107";
        description
          "LP resource record.";
        reference
          "RFC 6742: DNS Resource Records for the Identifier-Locator
           Network Protocol (ILNP)";
      }
      enum EUI48 {
        value "108";
        description
          "An EUI-48 address.";
        reference
          "RFC 7043: Resource Records for EUI-48 and EUI-64 Addresses
           in the DNS";
      }
      enum EUI64 {
        value "109";
        description
          "An EUI-64 address.";
        reference
          "RFC 7043: Resource Records for EUI-48 and EUI-64 Addresses
           in the DNS";
      }
      enum TKEY {
        value "249";
        description
          "Transaction key.";
        reference
          "RFC 2930: Secret Key Establishment for DNS (TKEY RR)";
      }
      enum TSIG {
        value "250";
        description
          "Transaction signature.";
        reference
          "RFC 2845: Secret Key Transaction Authentication for DNS
           (TSIG)";
      }
      enum IXFR {
        value "251";
        description
          "Incremental transfer.";
        reference
          "RFC 1995: Incremental Zone Transfer in DNS";
      }
      enum AXFR {
        value "252";
        description
          "Transfer of an entire zone.";
        reference
          "- RFC 1035: Domain Names - Implementation and
             Specification

           - RFC 5936: DNS Zone Transfer Protocol (AXFR)";
      }
      enum MAILB {
        value "253";
        description
          "Mailbox-related RRs (MB, MG or MR).";
        reference
          "RFC 1035: Domain Names - Implementation and
           Specification";
      }
      enum MAILA {
        value "254";
        status "obsolete";
        description
          "Mail agent RRs (obsolete – see MX).";
        reference
          "RFC 1035: Domain Names - Implementation and
           Specification";
      }
      enum * {
        value "255";
        description
          "A request for all records the server/cache has
           available.";
        reference
          "- RFC 1035: Domain Names - Implementation and
             Specification

           - RFC 6895: Domain Name System (DNS) IANA
             Considerations";
      }
      enum URI {
        value "256";
        description
          "URI resource record.";
        reference
          "RFC 7553: The Uniform Resource Identifier (URI) DNS
           Resource Record";
      }
      enum CAA {
        value "257";
        description
          "Certification authority authorization.";
        reference
          "RFC 6844: DNS Certification Authority Authorization (CAA)
           Resource Record";
      }
      enum AVC {
        value "258";
        description
          "Application visibility and control.";
      }
      enum DOA {
        value "259";
        description
          "Digital object architecture";
        reference
          "draft-durand-doa-over-dns: DOA over DNS";
      }
      enum AMTRELAY {
        value "260";
        description
          "Automatic multicast tunneling relay.";
        reference
          "J. Holland: DNS Reverse IP AMT Discovery.
           draft-ietf-mboned-driad-amt-discovery.";
      }
      enum TA {
        value "32768";
        description
          "DNSSEC trust authorities.";
      }
      enum DLV {
        value "32769";
        description
          "DNSSEC lookaside validation.";
        reference
          "RFC 4431: The DNSSEC Lookaside Validation (DLV) DNS
           Resource Record";
      }
    }
    description
      "This enumeration type defines mnemonic names and corresponding
       numeric values of DNS resource record types.";
    reference
      "- RFC 6895: Domain Name System (DNS) IANA Considerations

       - RFC 1035: Domain Names - Implementation and Specification";
  }

  typedef rr-type {
    type union {
      type uint16;
      type rr-type-name;
    }
    description
      "This type allows for referring to a DNS resource record type
       using either the assigned mnemonic name or numeric value.";
  }
}

<CODE ENDS>

4. IANA Considerations

RFC Editor: In this section, replace all occurrences of "XXXX" with the actual RFC number (and remove this note).

This document defines the initial version of the IANA-maintained iana-dns-class-rr-type YANG module.

The iana-dns-class-rr-type YANG module is intended to reflect the "DNS CLASSes" and "Resource Record (RR) TYPEs" registries in [IANA-DNS-PARAMETERS].

IANA has added this new note to the "iana-dns-class-rr-type YANG Module" registry:

   Classes and types of DNS resource records must not be directly
   added to the iana-dns-class-rr-type YANG module. They must instead
   be added to the "DNS CLASSes" and "Resource Record (RR) TYPEs"
   registries, respectively.
        

When a new DNS class or RR type is added to the "DNS CLASSes" or "Resource Record (RR) TYPEs" registry, a new "enum" statement must be added to the "dns-class-name" or "rr-type-name" type, respectively. The assigned name defined by the "enum" statement is the same as the mnemonic name of the new class or type. The following substatements to the "enum" statement should be defined:

"value":
Use the decimal value from the registry.
"status":
Include only if a class or type registration has been deprecated (use the value "deprecated") or obsoleted (use the value "obsolete").
"description":
Replicate the corresponding information from the registry, namely the full name of the new DNS class, or the meaning of the new RR type, if any.
"reference":
Replicate the reference from the registry, if any, and add the title of the document, if applicable.

Unassigned or reserved values are not included in the "dns-class-name" and "rr-type-name" enumeration types.

Each time the iana-dns-class-rr-type YANG module is updated, a new "revision" statement must be added before the existing "revision" statements.

IANA has added this new note to the "DNS CLASSes" and "Resource Record (RR) TYPEs" registries:

   When this registry is modified, the YANG module
   iana-dns-class-rr-type must be updated as defined in RFC XXXX.
        

The "Reference" text in the "DNS CLASSes" registry has been updated as follows:

   OLD:
     [RFC6895]

   NEW:
     [RFC6895][RFCXXXX]
        

The "Reference" text in the "Resource Record (RR) TYPEs" registry has been updated as follows:

   OLD:
     [RFC6895][RFC1035]

   NEW:
     [RFC6895][RFC1035][RFCXXXX]
        

4.1. URI Registrations

This document registers a URI in the "IETF XML Registry" [RFC3688]. The following registration has been made:

   URI: urn:ietf:params:xml:ns:yang:iana-dns-class-rr-type
   Registrant Contact: The IESG.
   XML: N/A, the requested URI is an XML namespace.
          

4.2. YANG Module Registrations

This document registers a YANG module in the "YANG Module Names" registry [RFC6020]. The following registration has been made:

   name:      iana-dns-class-rr-type
   namespace: urn:ietf:params:xml:ns:yang:iana-dns-class-rr-type
   prefix:    dnsct
   reference: RFC XXXX
          

5. Security Considerations

This documents translates two IANA registries into YANG data types and otherwise introduces no technology or protocol. Consequently, there are no security issues to be considered for this document.

6. References

6.1. Normative References

[IANA-DNS-PARAMETERS] Internet Assigned Numbers Authority, "Domain Name System (DNS) Parameters", January 2018.
[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, DOI 10.17487/RFC3688, January 2004.
[RFC6020] Bjorklund, M., "YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)", RFC 6020, DOI 10.17487/RFC6020, October 2010.
[RFC7950] Bjorklund, M., "The YANG 1.1 Data Modeling Language", RFC 7950, DOI 10.17487/RFC7950, August 2016.

6.2. Informative References

[RFC3597] Gustafsson, A., "Handling of Unknown DNS Resource Record (RR) Types", RFC 3597, DOI 10.17487/RFC3597, September 2003.

Authors' Addresses

Ladislav Lhotka CZ.NIC EMail: lhotka@nic.cz
Petr Spacek CZ.NIC EMail: petr.spacek@nic.cz