--- 1/draft-ietf-ipsecme-split-dns-05.txt 2018-02-09 09:13:47.729722295 -0800 +++ 2/draft-ietf-ipsecme-split-dns-06.txt 2018-02-09 09:13:47.825724570 -0800 @@ -1,19 +1,19 @@ Network T. Pauly Internet-Draft Apple Inc. Intended status: Standards Track P. Wouters -Expires: August 10, 2018 Red Hat - February 6, 2018 +Expires: August 13, 2018 Red Hat + February 9, 2018 Split DNS Configuration for IKEv2 - draft-ietf-ipsecme-split-dns-05 + draft-ietf-ipsecme-split-dns-06 Abstract This document defines two Configuration Payload Attribute Types for the IKEv2 protocol that add support for private DNS domains. These domains should be resolved using DNS servers reachable through an IPsec connection, while leaving all other DNS resolution unchanged. This approach of resolving a subset of domains using non-public DNS servers is referred to as "Split DNS". @@ -25,21 +25,21 @@ 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 August 10, 2018. + This Internet-Draft will expire on August 13, 2018. Copyright Notice Copyright (c) 2018 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 @@ -55,28 +55,29 @@ 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 2. Background . . . . . . . . . . . . . . . . . . . . . . . . . 3 3. Protocol Exchange . . . . . . . . . . . . . . . . . . . . . . 3 3.1. Configuration Request . . . . . . . . . . . . . . . . . . 4 3.2. Configuration Reply . . . . . . . . . . . . . . . . . . . 4 3.3. Mapping DNS Servers to Domains . . . . . . . . . . . . . 5 3.4. Example Exchanges . . . . . . . . . . . . . . . . . . . . 5 3.4.1. Simple Case . . . . . . . . . . . . . . . . . . . . . 5 3.4.2. Requesting Domains and DNSSEC trust anchors . . . . . 6 4. Payload Formats . . . . . . . . . . . . . . . . . . . . . . . 6 - 4.1. INTERNAL_DNS_DOMAIN Configuration Attribute Type . . . . 6 + 4.1. INTERNAL_DNS_DOMAIN Configuration Attribute Type Request + and Reply . . . . . . . . . . . . . . . . . . . . . . . . 6 4.2. INTERNAL_DNSSEC_TA Configuration Attribute . . . . . . . 7 - 5. Split DNS Usage Guidelines . . . . . . . . . . . . . . . . . 7 + 5. Split DNS Usage Guidelines . . . . . . . . . . . . . . . . . 8 6. Security Considerations . . . . . . . . . . . . . . . . . . . 9 - 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 + 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 8.1. Normative References . . . . . . . . . . . . . . . . . . 10 - 8.2. Informative References . . . . . . . . . . . . . . . . . 10 + 8.2. Informative References . . . . . . . . . . . . . . . . . 11 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 11 1. Introduction Split DNS is a common configuration for secure tunnels, such as Virtual Private Networks in which host machines private to an organization can only be resolved using internal DNS resolvers [RFC2775]. In such configurations, it is often desirable to only resolve hosts within a set of private domains using the tunnel, while letting resolutions for public hosts be handled by a device's default @@ -259,21 +260,25 @@ INTERNAL_IP4_ADDRESS(198.51.100.234) INTERNAL_IP4_DNS(198.51.100.2) INTERNAL_IP4_DNS(198.51.100.4) INTERNAL_DNS_DOMAIN(example.com) INTERNAL_DNSSEC_TA(43547,8,1,B6225AB2CC613E0DCA7962BDC2342EA4F1B56083) INTERNAL_DNSSEC_TA(31406,8,2,F78CF3344F72137235098ECBBD08947C2C90....) INTERNAL_DNS_DOMAIN(city.other.com) 4. Payload Formats -4.1. INTERNAL_DNS_DOMAIN Configuration Attribute Type + All multi-octet fields representing integers are laid out in big + endian order (also known as "most significant byte first", or + "network byte order"). + +4.1. INTERNAL_DNS_DOMAIN Configuration Attribute Type Request and Reply 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 +-+-----------------------------+-------------------------------+ |R| Attribute Type | Length | +-+-----------------------------+-------------------------------+ | | ~ Domain Name in DNS presentation format ~ | | +---------------------------------------------------------------+ @@ -270,65 +275,79 @@ 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 +-+-----------------------------+-------------------------------+ |R| Attribute Type | Length | +-+-----------------------------+-------------------------------+ | | ~ Domain Name in DNS presentation format ~ | | +---------------------------------------------------------------+ - o Reserved (1 bit) - Defined in IKEv2 RFC [RFC7296]. - o Attribute Type (15 bits) 25 - INTERNAL_DNS_DOMAIN. + o Attribute Type (15 bits) set to value 25 for INTERNAL_DNS_DOMAIN. - o Length (2 octets, unsigned integer) - Length of domain name. + o Length (2 octets) - Length of domain name. o Domain Name (0 or more octets) - A Fully Qualified Domain Name used for Split DNS rules, such as "example.com", in DNS presentation format and optionally using IDNA [RFC5890] for Internationalized Domain Names. Implementors need to be careful that this value is not null-terminated. 4.2. INTERNAL_DNSSEC_TA Configuration Attribute + An INTERNAL_DNSSEC_TA Configuration Attribute can either be empty, or + it can contain one Trust Anchor by containing a non-zero Length with + a DNSKEY Key Tag, DNSKEY Algorithm, Digest Type and Digest Data + fields. + + An empty INTERNAL_DNSSEC_TA CFG attribute: + + 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 + +-+-----------------------------+-------------------------------+ + |R| Attribute Type | Length (set to 0) | + +-+-----------------------------+-------------------------------+ + + A non-empty INTERNAL_DNSSEC_TA CFG attribute: + 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 +-+-----------------------------+-------------------------------+ |R| Attribute Type | Length | +-+-----------------------------+---------------+---------------+ | DNSKEY Key Tag | DNSKEY Alg | Digest Type | +-------------------------------+---------------+---------------+ | | ~ Digest Data ~ | | +---------------------------------------------------------------+ o Reserved (1 bit) - Defined in IKEv2 RFC [RFC7296]. - o Attribute Type (15 bits) [TBD IANA] - INTERNAL_DNSSEC_TA. + o Attribute Type (15 bits) set to value 26 for INTERNAL_DNSSEC_TA. - o Length (2 octets, unsigned integer) - Length of DNSSEC Trust - Anchor data. + o Length (0 or 2 octets) - Length of DNSSEC Trust Anchor data (4 + octets plus the length of the Digest Data) - o DNSKEY Key Tag value (2 octets) - Delegation Signer (DS) Key Tag - as specified in [RFC4034] Section 5.1 + o DNSKEY Key Tag value (0 or 2 octets) - Delegation Signer (DS) Key + Tag as specified in [RFC4034] Section 5.1 - o DNSKEY Algorithm (1 octet) - DNSKEY algorithm value from the IANA - DNS Security Algorithm Numbers Registry + o DNSKEY Algorithm (0 or 1 octet) - DNSKEY algorithm value from the + IANA DNS Security Algorithm Numbers Registry - o Digest Type (1 octet) - DS algorithm value from the IANA + o Digest Type (0 or 1 octet) - DS algorithm value from the IANA Delegation Signer (DS) Resource Record (RR) Type Digest Algorithms Registry - o Digest Data (2 or more octets) - The DNSKEY digest as specified in + o Digest Data (0 or more octets) - The DNSKEY digest as specified in [RFC4034] Section 5.1 in presentation format. 5. Split DNS Usage Guidelines If a CFG_REPLY payload contains no INTERNAL_DNS_DOMAIN attributes, the client MAY use the provided INTERNAL_IP4_DNS or INTERNAL_IP6_DNS servers as the default DNS server(s) for all queries. If a client is configured by local policy to only accept a limited number of INTERNAL_DNS_DOMAIN values, the client MUST ignore any @@ -420,21 +439,21 @@ 7. IANA Considerations This document defines two new IKEv2 Configuration Payload Attribute Types, which are allocated from the "IKEv2 Configuration Payload Attribute Types" namespace. Multi- Value Attribute Type Valued Length Reference ------ ------------------- ------ ---------- --------------- 25 INTERNAL_DNS_DOMAIN YES 0 or more [this document] - [TBD] INTERNAL_DNSSEC_TA YES 0 or more [this document] + 26 INTERNAL_DNSSEC_TA YES 0 or more [this document] Figure 1 8. References 8.1. Normative References [RFC1918] Rekhter, Y., Moskowitz, B., Karrenberg, D., de Groot, G., and E. Lear, "Address Allocation for Private Internets", BCP 5, RFC 1918, DOI 10.17487/RFC1918, February 1996,