RFC 9463
DHCP and Router Advertisement Options for the Discovery of Network-designated Resolvers (DNR)
RFC 9463: DHCP and Router Advertisement Options for the Discovery of Network-designated Resolvers (DNR) ๐ฆ
Request for Comments: 9463 ๐ Series: ISSN 2070-1721 Category: Standards Track ๐ Date: November 2023 ๐ Publisher: Internet Engineering Task Force (IETF) ๐ Obsoletes / Updates: the title block doesn't list anything this RFC obsoletes or updates ๐คทโโ๏ธ
Authors: M. Boucadair, Ed. (Orange), T. Reddy.K, Ed. (Nokia), D. Wing (Cloud Software Group), N. Cook (Open-Xchange), and T. Jensen (Microsoft) ๐ฏโโ๏ธโจ
Abstract ๐
okay so this doc defines new DHCP and IPv6 Router Advertisement options ๐ that let a device find encrypted DNS resolvers on its local network. the examples are DNS over HTTPS, DNS over TLS, and DNS over QUIC ๐. the big win is that a host can learn an Authentication Domain Name, a list of IP addresses, and a set of service parameters, all it needs to reach those encrypted resolvers ๐
Status of This Memo ๐
this one is an Internet Standards Track document ๐ฅ
it's a product of the IETF, so it represents the consensus of the IETF community. it got public review and was approved for publication by the Internet Engineering Steering Group (IESG). if you want more on Internet Standards, check Section 2 of RFC 7841 ๐ง
for the current status, any errata, and how to send feedback, head to https://www.rfc-editor.org/info/rfc9463 ๐ฆ
Copyright Notice ยฉ๏ธ
copyright is 2023, held by the IETF Trust and the people listed as authors. all rights reserved ๐
this doc is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info), as they were on the publication date. please read those carefully, because they spell out your rights and restrictions ๐
one more thing: any Code Components pulled out of this doc must include Revised BSD License text, as described in Section 4.e of the Trust Legal Provisions. they come with no warranty, same as the Revised BSD License says ๐ซถ
Table of Contents ๐๏ธ
1. Introduction
2. Terminology
3. Overview
3.1. Configuration Data for Encrypted DNS
3.1.1. ADN as Reference Identifier for DNS Authentication
3.1.2. Avoiding Dependency on External Resolvers
3.1.3. Single vs. Multiple IP Addresses
3.1.4. Why Not Separate Options for the ADN and IP Addresses?
3.1.5. Service Parameters
3.1.6. ADN-Only Mode
3.1.7. Ordering of Encrypted DNS Options
3.1.8. DNR Validation Checks
3.1.9. DNR Information Using Other Provisioning Mechanisms
3.2. Handling Configuration Data Conflicts
3.3. Validating Discovered Resolvers
3.4. Multihoming Considerations
4. DHCPv6 Encrypted DNS Option
4.1. Option Format
4.2. DHCPv6 Client Behavior
5. DHCPv4 Encrypted DNS Option
5.1. Option Format
5.2. DHCPv4 Client Behavior
6. IPv6 RA Encrypted DNS Option
6.1. Option Format
6.2. IPv6 Host Behavior
7. Security Considerations
7.1. Spoofing Attacks
7.2. Deletion Attacks
7.3. Passive Attacks
7.4. Wireless Security - Authentication Attacks
8. Privacy Considerations
9. IANA Considerations
9.1. DHCPv6 Option
9.2. DHCPv4 Option
9.3. Neighbor Discovery Option
10. References
10.1. Normative References
10.2. Informative References
Acknowledgments
Contributors
Authors' Addresses
1. Introduction ๐
this doc is all about finding encrypted DNS resolvers that run protocols like DNS over HTTPS (DoH) [RFC8484], DNS over TLS (DoT) [RFC7858], or DNS over QUIC (DoQ) [RFC9250] on a local network ๐
specifically, it explains how connected hosts can discover a local encrypted DNS resolver through DHCPv4 [RFC2132], DHCPv6 [RFC8415], and IPv6 Router Advertisement (RA) options [RFC4861] ๐ the options carry three things: the DNS Authentication Domain Name (ADN), a list of IP addresses, and a set of service parameters. the whole procedure is called Discovery of Network-designated Resolvers (DNR) โจ
these options fit lots of setups, like local networks with Customer Premises Equipment (CPEs) that an Internet Service Provider (ISP) may or may not manage, or local networks with or without DNS forwarders ๐ธ making an inventory of those deployments is beyond the scope of this doc, so we're skipping it ๐
resolver selection considerations are out of scope too. and so are policies, including anything about interacting with users ๐
2. Terminology ๐ง
here's the BCP 14 part, so pay attention ๐ the key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be read as described in BCP 14 [RFC2119] [RFC8174], but only when they appear in all capitals, exactly as shown here ๐ฅ
this doc uses terms defined in [RFC8499]. it also adds a few of its own:
- Authentication Domain Name (ADN): a domain name a DNS client uses to authenticate a DNS resolver ๐
- ADN-only mode: a DNS discovery mode where only the ADN of the DNS resolver gets retrieved. see Section 3.1.6 ๐ท
- Do53: unencrypted DNS ๐
- DNR: the procedure called Discovery of Network-designated Resolvers ๐ฆ
- Encrypted DNS: a scheme where DNS exchanges travel over an encrypted channel. examples are DoT, DoH, and DoQ ๐
- Encrypted DNS resolver: a DNS resolver that supports any encrypted DNS scheme ๐
- Encrypted DNS options: the options defined in Sections 4, 5, and 6 ๐
- DHCP: refers to both DHCPv4 and DHCPv6 ๐
3. Overview ๐ธ
this section explains how a DNS client can discover local encrypted DNS resolvers. it uses the DHCP Encrypted DNS options (Sections 4 and 5) and the Neighbor Discovery protocol Encrypted DNS option (Section 6) ๐ง
these options configure an ADN, a list of IP addresses, and a set of service parameters for the encrypted DNS resolver. the subsections below dig into the design ๐ค
3.1. Configuration Data for Encrypted DNS ๐
3.1.1. ADN as Reference Identifier for DNS Authentication ๐ชช
so, to let the client do PKIX-based authentication of the encrypted DNS resolver, the Encrypted DNS options always include an ADN. that ADN is the reference identifier used for DNS authentication ๐ this matches today's best practices for issuing certificates, per Section 1.7.2 of [RFC6125]. the RFC6125 text says:
| Some certification authorities issue server certificates based
| on IP addresses, but preliminary evidence indicates that such
| certificates are a very small percentage (less than 1%) of
| issued certificates.
3.1.2. Avoiding Dependency on External Resolvers ๐ โโ๏ธ
we don't want to add a dependency on another server just to resolve the ADN ๐ so the Encrypted DNS options return the IP address(es) used to locate an encrypted DNS resolver. those resolvers might sit on the same IP address or on different ones, and that's up to the deployment ๐
early drafts of this doc thought about using the discovery mechanisms from [RFC2132], [RFC3646], and [RFC8106] to fetch a list of IP addresses for the DNS resolvers. but that means a client supporting more than one encrypted DNS protocol (like DoH and DoT) would have to probe that list, which is messy ๐ฉ so the options in Sections 4, 5, and 6 link each encrypted DNS protocol to an IP address directly. no probing needed โจ
3.1.3. Single vs. Multiple IP Addresses ๐
an Encrypted DNS option can carry a list of IP addresses for an encrypted DNS resolver. that covers current deployments that use primary and backup resolvers ๐ DNR also works where other DNS redundancy schemes are in play, like anycast as discussed in BCP 126 [RFC4786] ๐
whether you get one IP address or several is up to the deployment. for example, a router that embeds a recursive server or a forwarder has to include one single IP address that points to one of its LAN-facing interfaces. that address is typically a private IPv4 address, a Link-Local address, an IPv6 Unique Local Address (ULA), or a Global Unicast Address (GUA) ๐ก
if multiple IP addresses go into one Encrypted DNS option, they're listed in order of preference for the client to use ๐ฅ
3.1.4. Why Not Separate Options for the ADN and IP Addresses? ๐ค
short answer: one option carries both the ADN and the IP addresses ๐ the reason is that if the ADN and IP addresses lived in separate options, you'd need a way to match an IP address in one option with an ADN in another. that gets necessary fast if the network supports more than one ADN ๐
3.1.5. Service Parameters ๐๏ธ
distinct encrypted DNS protocols, like DoT, DoH, and DoQ, may be provisioned by a network. some of them might use custom port numbers instead of the default ones. that's why the Encrypted DNS options return a set of service parameters ๐ these parameters are encoded using the same rules for encoding SvcParams, with the wire format from Section 2.2 of [RFC9460] ๐งฉ yes, this makes the options a bit bigger. but the upside is it relies on an existing IANA registry, so new encrypted DNS protocols and service parameters defined later can slide right in ๐ฆ
the following service parameters MUST be supported by a DNR implementation:
alpn: indicates the set of supported protocols (Section 7.1 of [RFC9460]) ๐ฃ๏ธport: indicates the target port number for the encrypted DNS connection (Section 7.2 of [RFC9460]) ๐
and the following service parameter is RECOMMENDED to be supported by a DNR implementation:
dohpath: supplies a relative DoH URI Template (Section 5.1 of [RFC9461]) ๐ท
that's the end of part 1! ๐โจ hang tight, part 2 is coming and it's going to be even more iconic ๐
3.1.6. ADN-Only Mode ๐ฆ
okay so the provisioning mode where you get an ADN, a list of IP addresses, and a set of service parameters for the encrypted DNS resolver all in one go is the one you SHOULD use ๐ because the Encrypted DNS options are totally self-contained, so no extra DNS queries are needed. if you want the deep dive on the fancy stuff DHCP servers can do to fill in config data (like issuing DNS queries), peep [RFC7969] ๐ค
if it's cool for requesting hosts to take on extra complexity, returning just an ADN is also an option ๐ง the supplied ADN gets passed to a local resolution library (usually a DNS client), which then issues Service Binding (SVCB) queries [RFC9461]. those SVCB queries can go to the discovered encrypted DNS resolver itself or to the network-designated Do53 resolver. heads up though: this mode may be subject to active attacks, which can be mitigated by DNSSEC ๐
How an ADN is passed to a local resolution library is implementation specific. ๐ธ
3.1.7. Ordering of Encrypted DNS Options ๐
the DHCP options defined in Sections 4 and 5 follow the option ordering guidelines in Section 17 of [RFC7227] โจ
likewise, the RA option (Section 6) sticks to the recommendations in Section 9 of [RFC4861] ๐
3.1.8. DNR Validation Checks ๐
okay bestie, when a DHCP client (or IPv6 host) receives an Encrypted DNS option, it runs these validation checks:
- The ADN is present and encoded as per Section 10 of [RFC8415].
- If additional data is supplied:
- The service parameters are encoded following the rules specified in Section 2.2 of [RFC9460].
- The option includes at least one valid IP address.
- The service parameters do not include
ipv4hintoripv6hintparameters.
if any of the checks fail, the receiver discards the received Encrypted DNS option ๐ no second chances!!
3.1.9. DNR Information Using Other Provisioning Mechanisms ๐
the provisioning mechanisms in this document may not be available on every network (for example, some cellular networks exclusively use Protocol Configuration Options (PCOs) [TS.24008]), or they may not be suitable in some contexts (like where secure discovery is needed). other mechanisms may be considered in these contexts for provisioning encrypted DNS resolvers ๐ซถ it is RECOMMENDED that at least the following DNR information be made available to a requesting host:
- A service priority whenever the discovery mechanism does not rely on implicit ordering if multiple instances of the encrypted DNS are used.
- An ADN. This parameter is mandatory.
- A list of IP addresses to locate the encrypted DNS resolver.
- A set of service parameters.
3.2. Handling Configuration Data Conflicts ๐ค
if a host discovers encrypted DNS resolvers using both RA and DHCP, the rules discussed in Section 5.3.1 of [RFC8106] MUST be followed. no drama, just follow the rules ๐
DHCP/RA options to discover encrypted DNS resolvers (including DoH URI Templates) takes precedence over Discovery of Designated Resolvers (DDR) [RFC9462]. the reason is giving main character energy ๐ DDR uses Do53 to an external DNS resolver, which is susceptible to both internal and external attacks, whereas DHCP/RA is typically protected using the mechanisms discussed in Section 7.1.
if a client learns both Do53 and encrypted DNS resolvers from the same network, and there's no explicit configuration saying otherwise, it is RECOMMENDED that the client use the encrypted DNS resolvers for that network ๐ if the client cannot establish an authenticated and encrypted connection with the encrypted DNS resolver, it may fall back to using the Do53 resolver.
3.3. Validating Discovered Resolvers โ
this section describes a set of validation checks to confirm that an encrypted DNS resolver matches what was provided using DNR (for example, DHCP or RA). these checks are not meant to validate the security of the DNR provisioning mechanisms or the user's trust relationship to the network, so don't get it twisted ๐
if the local DNS client supports one of the discovered encrypted DNS protocols identified by Application-Layer Protocol Negotiation (ALPN) protocol identifiers (or another service parameter that indicates some other protocol disambiguation mechanism), the DNS client establishes an encrypted DNS session following the service priority of the discovered encrypted resolvers ๐ฆ
the DNS client verifies the connection based on PKIX validation [RFC5280] of the DNS resolver certificate. it uses the validation techniques described in [RFC6125] to compare the ADN conveyed in the Encrypted DNS options to the certificate provided (see Section 8.1 of [RFC8310] for more details). the DNS client uses the default system or application PKI trust anchors unless it's configured otherwise to use explicit trust anchors ๐ง ALPN-related considerations can be found in Section 7.1 of [RFC9460]. operational considerations related to checking the revocation status of the certificate of an encrypted DNS resolver are discussed in Section 10 of [RFC8484].
3.4. Multihoming Considerations ๐
devices may be connected to multiple networks, each providing their own DNS configuration using the discovery mechanisms specified in this document. still, discussing DNS selection for multi-interfaced devices is beyond the scope of this specification. those considerations fall under the generic issue of handling multiple provisioning sources and should not be processed in each option separately, as per the recommendation in Section 12 of [RFC7227] ๐ซ
the reader may refer to [RFC6731] for a discussion of DNS selection issues and an example of DNS resolver selection for multi-interfaced devices. also, the reader may refer to [Local-DNS-Authority] for a discussion on how DNR and Provisioning Domain (PvD) key "dnsZones" (Section 4.3 of [RFC8801]) can be used in "split DNS" environments (Section 6 of [RFC8499]) ๐
4. DHCPv6 Encrypted DNS Option โจ
4.1. Option Format ๐
the format of the DHCPv6 Encrypted DNS option is shown in Figure 1 ๐
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| OPTION_V6_DNR | Option-length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Service Priority | ADN Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ authentication-domain-name ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Addr Length | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
~ ipv6-address(es) ~
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
~ Service Parameters (SvcParams) ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 1: DHCPv6 Encrypted DNS Option
here's how each field in Figure 1 works ๐ง
Option-code:OPTION_V6_DNR(144; see Section 9.1).Option-length: length of the enclosed data in octets. the option length is('ADN Length' + 4)when only an ADN is included in the option.Service Priority: the priority of thisOPTION_V6_DNRinstance compared to other instances. this 16-bit unsigned integer is interpreted following the rules specified in Section 2.4.1 of [RFC9460].ADN Length: length of theauthentication-domain-namefield in octets.authentication-domain-name(variable length): a Fully Qualified Domain Name (FQDN) of the encrypted DNS resolver. this field is formatted as specified in Section 10 of [RFC8415].
an example of the authentication-domain-name encoding is shown in Figure 2. this example conveys the FQDN "doh1.example.com.", and the resulting ADN Length field is 18 ๐ธ
+------+------+------+------+------+------+------+------+------+
| 0x04 | d | o | h | 1 | 0x07 | e | x | a |
+------+------+------+------+------+------+------+------+------+
| m | p | l | e | 0x03 | c | o | m | 0x00 |
+------+------+------+------+------+------+------+------+------+
Figure 2: An Example of the DNS authentication-domain-name Encoding
Addr Length: length of enclosed IPv6 addresses in octets. when present, it MUST be a multiple of 16 ๐งฎipv6-address(es)(variable length): indicates one or more IPv6 addresses to reach the encrypted DNS resolver. an address can be a Link-Local address, a ULA, or a GUA. the format of this field is shown in Figure 3 ๐ฆ
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| ipv6-address |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 3: Format of the ipv6-address(es) Field
Service Parameters (SvcParams)(variable length): specifies a set of service parameters that are encoded following the rules in Section 2.2 of [RFC9460]. service parameters may include, for example, a list of ALPN protocol identifiers or alternate port numbers. this field SHOULD include at least thealpnSvcParam. thealpnSvcParam may not be required in contexts such as a variant of DNS over the Constrained Application Protocol (CoAP) where messages are encrypted using Object Security for Constrained RESTful Environments (OSCORE) [RFC8613]. the service parameters MUST NOT includeipv4hintoripv6hintSvcParams, as they are superseded by the included IP addresses ๐ซ
if no port service parameter is included, this indicates that default port numbers should be used. as a reminder, the default port number is 853 for DoT, 443 for DoH, and 853 for DoQ ๐ข
the length of this field is ('Option-length' - 6 - 'ADN Length' - 'Addr Length') ๐ง
note that the Addr Length, ipv6-address(es), and Service Parameters (SvcParams) fields are not present if the ADN-only mode is used (Section 3.1.6) ๐
4.2. DHCPv6 Client Behavior ๐
okay so bestie, the DHCPv6 client is the one doing the hunting ๐ฏ to find an encrypted DNS resolver. It MUST include OPTION_V6_DNR in an Option Request Option (ORO), per Sections 18.2.1, 18.2.2, 18.2.4, 18.2.5, 18.2.6, and 21.7 of [RFC8415] โจ.
The client MUST be prepared to receive multiple instances of OPTION_V6_DNR ๐ธ. Each one counts as its own separate encrypted DNS resolver. They MUST be processed in service priority order, where a smaller service priority value means a higher preference ๐.
The DHCPv6 client MUST silently discard any OPTION_V6_DNR that fails the validation steps in Section 3.1.8 ๐.
The DHCPv6 client MUST silently discard multicast and host loopback addresses conveyed in OPTION_V6_DNR ๐.
5. DHCPv4 Encrypted DNS Option ๐
5.1. Option Format
Here's the DHCPv4 Encrypted DNS option, shown in Figure 4 ๐ง:
0 1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| OPTION_V4_DNR | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ DNR Instance Data #1 ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ---
. ... . |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ optional
~ DNR Instance Data #n ~ |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ---
Figure 4: DHCPv4 Encrypted DNS Option
Here's what each field does:
Code: OPTION_V4_DNR (162; see Section 9.2).
Length: how many octets of enclosed data there are.
DNR Instance Data: the configuration data for an encrypted DNS resolver. Its format is shown in Figure 5 ๐.
0 1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| DNR Instance Data Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Service Priority |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ADN Length | |
+-+-+-+-+-+-+-+-+ |
~ authentication-domain-name ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Addr Length | |
+-+-+-+-+-+-+-+-+ |
~ IPv4 Address(es) ~
| +-+-+-+-+-+-+-+-+
| | |
+-+-+-+-+-+-+-+-+ |
~Service Parameters (SvcParams) ~
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 5: DNR Instance Data Format
When several encrypted DNS resolvers are included, the "DNR Instance Data" field gets repeated ๐.
The fields in Figure 5 work like this:
DNR Instance Data Length: the length of all the data that follows, in octets. It's set to ('ADN Length' + 3) when only an ADN is provided for a DNR instance ๐.
Service Priority: how this instance ranks against other DNR instances. It's a 16-bit unsigned integer, interpreted using the rules in Section 2.4.1 of [RFC9460].
ADN Length: the length of the authentication-domain-name field, in octets.
authentication-domain-name (variable length): the ADN of the encrypted DNS resolver. It's formatted as specified in Section 10 of [RFC8415], and there's an example in Figure 2.
Addr Length: the length of the included IPv4 addresses, in octets. When it's present, it MUST be a multiple of 4 ๐ข.
IPv4 Address(es) (variable length): one or more IPv4 addresses for reaching the encrypted DNS resolver. Both private and public IPv4 addresses can be included here ๐. The format is shown in Figure 6, which assumes an IPv4 address is encoded as a1.a2.a3.a4.
0 8 16 24 32 40 48
+-----+-----+-----+-----+-----+-----+--
| a1 | a2 | a3 | a4 | a1 | a2 | ...
+-----+-----+-----+-----+-----+-----+--
IPv4 Address 1 IPv4 Address 2 ...
Figure 6: Format of the IPv4 Address(es) Field
Service Parameters (SvcParams) (variable length): a set of service parameters encoded using the rules in Section 2.2 of [RFC9460]. These can include things like a list of ALPN protocol identifiers or alternate port numbers โจ. This field SHOULD include at least the "alpn" SvcParam. The "alpn" SvcParam may not be required in contexts such as a variant of DNS over CoAP where messages are encrypted using OSCORE. The service parameters MUST NOT include "ipv4hint" or "ipv6hint" SvcParams, because the included IP addresses supersede them ๐ซ.
If there's no port service parameter, default port numbers should be used ๐ฆ.
The length of this field is ('DNR Instance Data Length' - 4 - 'ADN Length' - 'Addr Length').
Heads up: the "Addr Length", "IPv4 Address(es)", and "Service Parameters (SvcParams)" fields are NOT present if ADN-only mode is used (Section 3.1.6). Don't go looking for them! ๐
OPTION_V4_DNR is a concatenation-requiring option ๐งต. That means the mechanism in [RFC3396] MUST be used if OPTION_V4_DNR exceeds the maximum DHCPv4 option size of 255 octets.
5.2. DHCPv4 Client Behavior
To find an encrypted DNS resolver, the DHCPv4 client asks for it by including OPTION_V4_DNR in a Parameter Request List option [RFC2132] ๐ฏ.
The DHCPv4 client MUST be prepared to receive multiple "DNR Instance Data" field entries in the OPTION_V4_DNR option ๐ธ. Each instance is treated as a separate encrypted DNS resolver. These instances MUST be processed following their service priority, where a smaller service priority value indicates a higher preference ๐.
The DHCPv4 client MUST silently discard any OPTION_V4_DNR that fails the validation steps in Section 3.1.8 ๐.
The DHCPv4 client MUST silently discard multicast and host loopback addresses conveyed in OPTION_V4_DNR ๐.
6. IPv6 RA Encrypted DNS Option ๐ฆ
6.1. Option Format
This section defines a brand new Neighbor Discovery option [RFC4861]: the IPv6 RA Encrypted DNS option ๐. It's useful in the kinds of contexts discussed in Section 1.1 of [RFC8106].
The format is shown in Figure 7 ๐:
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 | Service Priority |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Lifetime |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ADN Length | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
~ authentication-domain-name ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Addr Length | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
~ ipv6-address(es) ~
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | SvcParams Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ Service Parameters (SvcParams) ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 7: RA Encrypted DNS Option
Here's what each field does:
Type: an 8-bit identifier for the Encrypted DNS option, as assigned by IANA (144; see Section 9.3) ๐.
Length: an 8-bit unsigned integer. The length of the option, including the Type and Length fields, is measured in units of 8 octets.
Service Priority: a 16-bit unsigned integer showing how this Encrypted DNS option instance ranks against other instances. It's interpreted using the rules in Section 2.4.1 of [RFC9460].
Lifetime: a 32-bit unsigned integer. It's the maximum time in seconds (counted from when the packet is received) during which the discovered ADN is valid โณ.
The value of Lifetime SHOULD by default be at least 3 * MaxRtrAdvInterval, where MaxRtrAdvInterval is the maximum RA interval defined in [RFC4861].
A value of all one bits (0xffffffff) means infinity โพ๏ธ.
A value of zero means this ADN MUST no longer be used ๐.
ADN Length: a 16-bit unsigned integer giving the length of the authentication-domain-name field, in octets.
authentication-domain-name (variable length): the ADN of the encrypted DNS resolver. It's formatted as specified in Section 10 of [RFC8415].
Addr Length: a 16-bit unsigned integer giving the length of the enclosed IPv6 addresses, in octets. When it's present, it MUST be a multiple of 16 ๐งฎ.
ipv6-address(es) (variable length): one or more IPv6 addresses of the encrypted DNS resolver. An address can be a Link-Local address, a ULA, or a GUA ๐.
All of the addresses share the same Lifetime value. As also discussed in [RFC8106], if you want different Lifetime values per IP address, you can use multiple Encrypted DNS options ๐. The format of this field is shown in Figure 3.
SvcParams Length: a 16-bit unsigned integer giving the length of the "Service Parameters (SvcParams)" field, in octets.
Service Parameters (SvcParams) (variable length): a set of service parameters encoded using the rules in Section 2.2 of [RFC9460]. These can include things like a list of ALPN protocol identifiers or alternate port numbers โจ. This field SHOULD include at least the "alpn" SvcParam. The "alpn" SvcParam may not be required in contexts such as a variant of DNS over CoAP where messages are encrypted using OSCORE. The service parameters MUST NOT include "ipv4hint" or "ipv6hint" SvcParams, because the included IP addresses supersede them ๐ซ.
If there's no port service parameter, default port numbers should be used ๐ฆ.
Note that the "Addr Length", "ipv6-address(es)", and "Service Parameters (SvcParams)" fields are NOT present if ADN-only mode is used (Section 3.1.6). ๐
The option MUST be padded with zeros so that the full enclosed data is a multiple of 8 octets (Section 4.6 of [RFC4861]) ๐.
6.2. IPv6 Host Behavior
Okay so the DNS configuration procedure is the same as it is for any other Neighbor Discovery option [RFC4861] ๐ซถ. On top of that, the host follows the same procedure as Section 5.3.1 of [RFC8106] for processing received Encrypted DNS options ๐ . The difference is that the formatting requirements from Section 6.1 and the validation checks from Section 3.1.8 get swapped in for the length and field validations โจ.
The host MUST be prepared to receive multiple Encrypted DNS options in RAs ๐. These instances MUST be processed following their service priority, i.e., a smaller service priority value indicates a higher preference ๐.
The host MUST silently discard multicast and host loopback addresses conveyed in the Encrypted DNS options ๐.
7. Security Considerations ๐ฅ
7.1. Spoofing Attacks
Okay, this section is serious, bestie ๐ญ. DHCP and RA messages are NOT encrypted or protected against modification within the LAN ๐. Unless spoofing attacks are mitigated as described below, the content of DHCP and RA messages can be spoofed or modified by active attackers, like compromised devices sitting on the local network ๐. An active attacker (Section 3.3 of [RFC3552]) can spoof the DHCP/RA response to hand out the attacker's own encrypted DNS resolver ๐. Note that this kind of attacker can launch other attacks too, as discussed in Section 22 of [RFC8415] ๐จ. The attacker can also get a domain name with a domain-validated public certificate from a Certificate Authority (CA) and host an encrypted DNS resolver ๐ฅ.
Attacks using spoofed or modified DHCP responses and RA messages from attackers within the local network may be mitigated by using the following mechanisms ๐ก๏ธ:
- DHCPv6-Shield [RFC7610]: The network access node (e.g., a border router, a CPE, an Access Point (AP)) discards DHCP response messages received from any local endpoint ๐ซ.
- RA-Guard [RFC7113]: The network access node discards RA messages received from any local endpoint ๐ซ.
- Source Address Validation Improvement (SAVI) solution for DHCP [RFC7513]: The network access node filters packets with forged source IP addresses ๐งน.
The above mechanisms would ensure that the endpoint receives the correct configuration information of the encrypted DNS resolvers selected by the DHCP server (or RA sender). BUT these mechanisms cannot provide any information about the DHCP server or the entity hosting the DHCP server (or RA sender) ๐ซ .
Encrypted DNS sessions with rogue resolvers that spoof the IP address of a DNS resolver will fail, because the DNS client will fail to authenticate that rogue resolver based upon PKIX authentication [RFC6125], particularly the ADN in the Encrypted DNS option ๐. DNS clients that ignore authentication failures and accept spoofed certificates will be subject to attacks, like attacks that redirect to malicious resolvers or intercept sensitive data ๐ฑ.
7.2. Deletion Attacks
If the DHCP responses or RAs are dropped by the attacker, the client can fall back to using a preconfigured encrypted DNS resolver ๐ธ. However, the use of policies to select resolvers is beyond the scope of this document ๐คทโโ๏ธ.
Note that deletion attacks are not specific to DHCP/RA ๐.
7.3. Passive Attacks
A passive attacker (Section 3.2 of [RFC3552]) can determine that a host is using DHCP/RA to discover an encrypted DNS resolver, and can infer that the host is capable of using DoH/DoT/DoQ to encrypt DNS messages ๐. HOWEVER, a passive attacker cannot spoof or modify DHCP/RA messages ๐.
7.4. Wireless Security - Authentication Attacks
Wireless LANs (WLANs), which are frequently deployed in local networks (e.g., home networks), are vulnerable to various attacks (e.g., [Evil-Twin], [Krack], [Dragonblood]) ๐ถ๐ฅ. Because of these attacks, only cryptographically authenticated communications are trusted on WLANs ๐. This means that any information (e.g., regarding NTP servers, DNS resolvers, or domain search lists) provided by such networks via DHCP, DHCPv6, or RA is untrusted, because DHCP and RA messages are not authenticated ๐ฉ.
If the pre-shared key (PSK) is the same for all clients that connect to the same WLAN (e.g., Wi-Fi Protected Access Pre-Shared Key (WPA-PSK)), the shared key will be available to all nodes, attackers included ๐ฌ. So it is possible to mount an active on-path attack ๐ต๏ธ. On-path attacks are possible within local networks because this form of WLAN authentication lacks peer entity authentication ๐.
This leads to the need for provisioning unique credentials for different clients ๐๏ธ. Endpoints can be provisioned with unique credentials (username and password, typically) provided by the local network administrator, so they can mutually authenticate to the local WLAN AP (e.g., 802.1x Wireless User Authentication on OpenWrt [dot1x], EAP-pwd [RFC8146] ("EAP" stands for "Extensible Authentication Protocol")) โจ. Not all endpoint devices (e.g., Internet of Things (IoT) devices) support 802.1x supplicants, and they need an alternate mechanism to connect to the local network ๐. To address this limitation, unique PSKs can be created for each such device, and WPA-PSK is used (e.g., [IPSK]) ๐งฉ.
8. Privacy Considerations ๐๏ธ
Privacy considerations that are also specific to DNR provisioning mechanisms are discussed in Section 23 of [RFC8415] and in [RFC7824] ๐. Anonymity profiles for DHCP clients are discussed in [RFC7844] ๐ญ. The mechanisms defined in this document can be used to infer that a DHCP client or IPv6 host supports Encrypted DNS options, BUT these mechanisms do not explicitly reveal whether local DNS clients are able to consume these options, or infer their encryption capabilities ๐. Other than that, this document does not expose more privacy information compared to Do53 discovery options ๐.
As discussed in [RFC9076], the use of encrypted DNS does not reduce the data available in the DNS resolver ๐ง . For example, the reader may refer to Section 8 of [RFC8484] or Section 7 of [RFC9250] for a discussion on specific privacy considerations for encrypted DNS ๐.
9. IANA Considerations ๐
9.1. DHCPv6 Option
IANA has assigned the following new DHCPv6 Option Code in the "Option Codes" registry maintained at [DHCPV6] ๐.
+=======+===============+============+==================+===========+
| Value | Description | Client ORO | Singleton | Reference |
| | | | Option | |
+=======+===============+============+==================+===========+
| 144 | OPTION_V6_DNR | Yes | No | RFC 9463 |
+-------+---------------+------------+------------------+-----------+
Table 1: DHCPv6 Encrypted DNS Option
9.2. DHCPv4 Option
IANA has assigned the following new DHCP Option Code in the "BOOTP Vendor Extensions and DHCP Options" registry maintained at [BOOTP] ๐ฆ.
+=====+===============+=============+============+===========+
| Tag | Name | Data Length | Meaning | Reference |
+=====+===============+=============+============+===========+
| 162 | OPTION_V4_DNR | N | Encrypted | RFC 9463 |
| | | | DNS Server | |
+-----+---------------+-------------+------------+-----------+
Table 2: DHCPv4 Encrypted DNS Option
9.3. Neighbor Discovery Option
IANA has assigned the following new IPv6 Neighbor Discovery Option type in the "IPv6 Neighbor Discovery Option Formats" subregistry under the "Internet Control Message Protocol version 6 (ICMPv6) Parameters" registry maintained at [ND] ๐ง.
+======+======================+===========+
| Type | Description | Reference |
+======+======================+===========+
| 144 | Encrypted DNS Option | RFC 9463 |
+------+----------------------+-----------+
Table 3: Neighbor Discovery Encrypted
DNS Option
10. References ๐
10.1. Normative References
- [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997,
https://www.rfc-editor.org/info/rfc2119. - [RFC2132] Alexander, S. and R. Droms, "DHCP Options and BOOTP Vendor Extensions", RFC 2132, DOI 10.17487/RFC2132, March 1997,
https://www.rfc-editor.org/info/rfc2132. - [RFC3396] Lemon, T. and S. Cheshire, "Encoding Long Options in the Dynamic Host Configuration Protocol (DHCPv4)", RFC 3396, DOI 10.17487/RFC3396, November 2002,
https://www.rfc-editor.org/info/rfc3396. - [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,
https://www.rfc-editor.org/info/rfc4861. - [RFC8106] Jeong, J., Park, S., Beloeil, L., and S. Madanapalli, "IPv6 Router Advertisement Options for DNS Configuration", RFC 8106, DOI 10.17487/RFC8106, March 2017,
https://www.rfc-editor.org/info/rfc8106. - [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017,
https://www.rfc-editor.org/info/rfc8174. - [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)", RFC 8415, DOI 10.17487/RFC8415, November 2018,
https://www.rfc-editor.org/info/rfc8415. - [RFC9460] Schwartz, B., Bishop, M., and E. Nygren, "Service Binding and Parameter Specification via the DNS (SVCB and HTTPS Resource Records)", RFC 9460, DOI 10.17487/RFC9460, November 2023,
https://www.rfc-editor.org/info/rfc9460. - [RFC9461] Schwartz, B., "Service Binding Mapping for DNS Servers", RFC 9461, DOI 10.17487/RFC9461, November 2023,
https://www.rfc-editor.org/info/rfc9461.
10.2. Informative References โจ
okay bestie, these are the "go read this if you want the deep dive" sources ๐๐ซถ everything below is a reference, so every label, title, and link is copied exactly as written
[BOOTP]IANA, "BOOTP Vendor Extensions and DHCP Options",https://www.iana.org/assignments/bootp-dhcp-parameters/.[DHCPV6]IANA, "Option Codes",https://www.iana.org/assignments/dhcpv6-parameters/.[DNS-TLS-DHCPv6-Opt]Pusateri, T. and W. Toorop, "DHCPv6 Options for private DNS Discovery", Work in Progress, Internet-Draft, draft-pusateri-dhc-dns-driu-00, 2 July 2018,https://datatracker.ietf.org/doc/html/draft-pusateri-dhc-dns-driu-00.[dot1x]OpenWrt, "Introduction to 802.1X", December 2021,https://openwrt.org/docs/guide-user/network/wifi/wireless.security.8021x.[Dragonblood]Vanhoef, M. and E. Ronen, "Dragonblood: Analyzing the Dragonfly Handshake of WPA3 and EAP-pwd", 2020 IEEE Symposium on Security and Privacy (SP), San Francisco, pp. 517-533, DOI 10.1109/SP40000.2020.00031, May 2020,https://ieeexplore.ieee.org/document/9152782.[Evil-Twin]Wikipedia, "Evil twin (wireless networks)", November 2022,https://en.wikipedia.org/wiki/Evil_twin_(wireless_networks).[IPSK]Cisco, "8.5 Identity PSK Feature Deployment Guide", December 2021,https://www.cisco.com/c/en/us/td/docs/wireless/controller/technotes/8-5/b_Identity_PSK_Feature_Deployment_Guide.html.[Krack]Vanhoef, M. and F. Piessens, "Key Reinstallation Attacks: Forcing Nonce Reuse in WPA2", CCS '17: Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security, pp. 1313-1328, DOI 10.1145/3133956.3134027, October 2017,https://dl.acm.org/doi/10.1145/3133956.3134027.[Local-DNS-Authority]Reddy, T., Wing, D., Smith, K., and B. Schwartz, "Establishing Local DNS Authority in Validated Split-Horizon Environments", Work in Progress, Internet-Draft, draft-ietf-add-split-horizon-authority-04, 8 March 2023,https://datatracker.ietf.org/doc/html/draft-ietf-add-split-horizon-authority-04.[ND]IANA, "IPv6 Neighbor Discovery Option Formats",https://www.iana.org/assignments/icmpv6-parameters/.[RFC3552]Rescorla, E. and B. Korver, "Guidelines for Writing RFC Text on Security Considerations", BCP 72, RFC 3552, DOI 10.17487/RFC3552, July 2003,https://www.rfc-editor.org/info/rfc3552.[RFC3646]Droms, R., Ed., "DNS Configuration options for Dynamic Host Configuration Protocol for IPv6 (DHCPv6)", RFC 3646, DOI 10.17487/RFC3646, December 2003,https://www.rfc-editor.org/info/rfc3646.[RFC4786]Abley, J. and K. Lindqvist, "Operation of Anycast Services", BCP 126, RFC 4786, DOI 10.17487/RFC4786, December 2006,https://www.rfc-editor.org/info/rfc4786.[RFC5280]Cooper, D., Santesson, S., Farrell, S., Boeyen, S., Housley, R., and W. Polk, "Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile", RFC 5280, DOI 10.17487/RFC5280, May 2008,https://www.rfc-editor.org/info/rfc5280.[RFC6125]Saint-Andre, P. and J. Hodges, "Representation and Verification of Domain-Based Application Service Identity within Internet Public Key Infrastructure Using X.509 (PKIX) Certificates in the Context of Transport Layer Security (TLS)", RFC 6125, DOI 10.17487/RFC6125, March 2011,https://www.rfc-editor.org/info/rfc6125.[RFC6731]Savolainen, T., Kato, J., and T. Lemon, "Improved Recursive DNS Server Selection for Multi-Interfaced Nodes", RFC 6731, DOI 10.17487/RFC6731, December 2012,https://www.rfc-editor.org/info/rfc6731.[RFC7113]Gont, F., "Implementation Advice for IPv6 Router Advertisement Guard (RA-Guard)", RFC 7113, DOI 10.17487/RFC7113, February 2014,https://www.rfc-editor.org/info/rfc7113.[RFC7227]Hankins, D., Mrugalski, T., Siodelski, M., Jiang, S., and S. Krishnan, "Guidelines for Creating New DHCPv6 Options", BCP 187, RFC 7227, DOI 10.17487/RFC7227, May 2014,https://www.rfc-editor.org/info/rfc7227.[RFC7513]Bi, J., Wu, J., Yao, G., and F. Baker, "Source Address Validation Improvement (SAVI) Solution for DHCP", RFC 7513, DOI 10.17487/RFC7513, May 2015,https://www.rfc-editor.org/info/rfc7513.[RFC7610]Gont, F., Liu, W., and G. Van de Velde, "DHCPv6-Shield: Protecting against Rogue DHCPv6 Servers", BCP 199, RFC 7610, DOI 10.17487/RFC7610, August 2015,https://www.rfc-editor.org/info/rfc7610.[RFC7824]Krishnan, S., Mrugalski, T., and S. Jiang, "Privacy Considerations for DHCPv6", RFC 7824, DOI 10.17487/RFC7824, May 2016,https://www.rfc-editor.org/info/rfc7824.[RFC7844]Huitema, C., Mrugalski, T., and S. Krishnan, "Anonymity Profiles for DHCP Clients", RFC 7844, DOI 10.17487/RFC7844, May 2016,https://www.rfc-editor.org/info/rfc7844.[RFC7858]Hu, Z., Zhu, L., Heidemann, J., Mankin, A., Wessels, D., and P. Hoffman, "Specification for DNS over Transport Layer Security (TLS)", RFC 7858, DOI 10.17487/RFC7858, May 2016,https://www.rfc-editor.org/info/rfc7858.[RFC7969]Lemon, T. and T. Mrugalski, "Customizing DHCP Configuration on the Basis of Network Topology", RFC 7969, DOI 10.17487/RFC7969, October 2016,https://www.rfc-editor.org/info/rfc7969.[RFC8146]Harkins, D., "Adding Support for Salted Password Databases to EAP-pwd", RFC 8146, DOI 10.17487/RFC8146, April 2017,https://www.rfc-editor.org/info/rfc8146.[RFC8310]Dickinson, S., Gillmor, D., and T. Reddy, "Usage Profiles for DNS over TLS and DNS over DTLS", RFC 8310, DOI 10.17487/RFC8310, March 2018,https://www.rfc-editor.org/info/rfc8310.[RFC8484]Hoffman, P. and P. McManus, "DNS Queries over HTTPS (DoH)", RFC 8484, DOI 10.17487/RFC8484, October 2018,https://www.rfc-editor.org/info/rfc8484.[RFC8499]Hoffman, P., Sullivan, A., and K. Fujiwara, "DNS Terminology", BCP 219, RFC 8499, DOI 10.17487/RFC8499, January 2019,https://www.rfc-editor.org/info/rfc8499.[RFC8613]Selander, G., Mattsson, J., Palombini, F., and L. Seitz, "Object Security for Constrained RESTful Environments (OSCORE)", RFC 8613, DOI 10.17487/RFC8613, July 2019,https://www.rfc-editor.org/info/rfc8613.[RFC8801]Pfister, P., Vyncke, ร., Pauly, T., Schinazi, D., and W. Shao, "Discovering Provisioning Domain Names and Data", RFC 8801, DOI 10.17487/RFC8801, July 2020,https://www.rfc-editor.org/info/rfc8801.[RFC9076]Wicinski, T., Ed., "DNS Privacy Considerations", RFC 9076, DOI 10.17487/RFC9076, July 2021,https://www.rfc-editor.org/info/rfc9076.[RFC9250]Huitema, C., Dickinson, S., and A. Mankin, "DNS over Dedicated QUIC Connections", RFC 9250, DOI 10.17487/RFC9250, May 2022,https://www.rfc-editor.org/info/rfc9250.[RFC9462]Pauly, T., Kinnear, E., Wood, C. A., McManus, P., and T. Jensen, "Discovery of Designated Resolvers", RFC 9462, DOI 10.17487/RFC9462, November 2023,https://www.rfc-editor.org/info/rfc9462.[TS.24008]3GPP, "Technical Specification Group Core Network and Terminals; Mobile radio interface Layer 3 specification; Core network protocols; Stage 3 (Release 18)", version 18.4.0, September 2023,https://www.3gpp.org/DynaReport/24008.htm.
Acknowledgments
Many thanks to Christian Jacquenet and Michael Richardson for their reviews. ๐
Thanks to Stephen Farrell, Martin Thomson, Vittorio Bertola, Stรฉphane Bortzmeyer, Ben Schwartz, Iain Sharp, and Chris Box for their comments. ๐
Thanks to Mark Nottingham for the feedback on HTTP redirection that was discussed in previous draft versions of this specification. ๐ธ
The use of DHCP as a candidate protocol to retrieve an ADN was mentioned in Section 7.3.1 of [RFC8310] and in an Internet-Draft authored by Tom Pusateri and Willem Toorop [DNS-TLS-DHCPv6-Opt]. ๐ฆ
Thanks to Bernie Volz for the review of the DHCP part. ๐
Christian Amsรผss reported a case where the ALPN service parameter cannot be used. ๐ฅ
Thanks to Andrew Campling for the Shepherd review and รric Vyncke for the AD review. โจ
Thanks to Rich Salz for the secdir reviews, Joe Clarke for the opsdir review, Robert Sparks for the artart review, and David Blacka for the dnsdir review. ๐
Thanks to Lars Eggert, Roman Danyliw, Erik Kline, Martin Duke, Robert Wilton, Paul Wouters, and Zaheduzzaman Sarker for the IESG review. The whole review squad is iconic ๐๐
Contributors
Nicolai Leymann
Deutsche Telekom
Germany
Email: n.leymann@telekom.de
Zhiwei Yan
CNNIC
No.4 South 4th Street, Zhongguancun
Beijing
100190
China
Email: yan@cnnic.cn
Authors' Addresses
These are the brilliant people who wrote the thing, so here's where to find them ๐
Mohamed Boucadair (editor)
Orange
35000 Rennes
France
Email: mohamed.boucadair@orange.com
Tirumaleswar Reddy.K (editor)
Nokia
India
Email: kondtir@gmail.com
Dan Wing
Cloud Software Group Holdings, Inc.
United States of America
Email: dwing-ietf@fuggles.com
Neil Cook
Open-Xchange
United Kingdom
Email: neil.cook@noware.co.uk
Tommy Jensen
Microsoft
United States of America
Email: tojens@microsoft.com
๐ฆ where this page comes from
- ietf: rfc9463 2023-11
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms