RFC 9526

Simple Provisioning of Public Names for Residential Networks

๐Ÿ“… published January 2024, from ietf

RFC 9526: Simple Provisioning of Public Names for Residential Networks ๐Ÿ โœจ

Okay bestie, here's the vibe check on this doc ๐Ÿ’…

  • Number and title: RFC 9526, Simple Provisioning of Public Names for Residential Networks ๐ŸŽ€
  • Publisher: Internet Engineering Task Force (IETF) ๐ŸŒ
  • Authors: D. Migault (Ericsson), R. Weber (Nominum), M. Richardson (Sandelman Software Works), and R. Hunter (Globis Consulting BV) ๐Ÿ‘‘
  • Category: Experimental ๐Ÿงช
  • Date: January 2024 ๐Ÿ“…
  • ISSN: 2070-1721
  • Obsoletes / Updates: the title block doesn't list any RFCs as obsoleted or updated ๐Ÿฆ‹

Abstract ๐ŸŒธ

So home network owners want to reach their stuff from the Internet (aka from outside the house) ๐Ÿกโžก๏ธ๐ŸŒ. Like, a device or service sitting on their home network that they want to get to from anywhere. Home networks are getting more and more numbered with IPv6 addresses, which in theory makes this easier, but the Internet can only get to those devices if their names and IP addresses are published in the public DNS ๐Ÿ”.

This document describes how a Home Naming Authority (NHA) tells the outsourced infrastructure to publish all that info in the public DNS ๐Ÿ’Œ. The names and IP addresses of the home network are set in the Public Homenet Zone by the Homenet Naming Authority (HNA). The HNA then tells an outsourced infrastructure to publish that zone on behalf of the home network owner ๐Ÿซถ.

Status of This Memo ๐Ÿ“

This document is not an Internet Standards Track specification. It's published so people can examine it, try experimental implementations, and evaluate it ๐Ÿงช.

It defines an Experimental Protocol for the Internet community. It's a product of the Internet Engineering Task Force (IETF) and represents the consensus of the IETF community ๐Ÿค. It has had public review and was approved for publication by the Internet Engineering Steering Group (IESG). Not every document the IESG approves is a candidate for any level of Internet Standard, so see Section 2 of RFC 7841 for the details ๐Ÿ’….

Info about the current status of this document, any errata, and how to send feedback can be found at https://www.rfc-editor.org/info/rfc9526 ๐Ÿ”—.

Copyright (c) 2024 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) as they're in effect on the date of publication. Please read these carefully, because they describe your rights and restrictions for this document ๐Ÿ“œ. Code Components extracted from this document must include the Revised BSD License text described in Section 4.e of the Trust Legal Provisions, and they come without warranty as described in the Revised BSD License โš–๏ธ.

Table of Contents ๐Ÿ“š

   1.  Introduction
   2.  Terminology
   3.  Selecting Names and Addresses to Publish
   4.  Envisioned Deployment Scenarios
     4.1.  CPE Vendor
     4.2.  Agnostic CPE
   5.  Architecture Description
     5.1.  Architecture Overview
     5.2.  Distribution Manager (DM) Communication Channels
   6.  Control Channel
     6.1.  Building the Public Homenet Zone
     6.2.  Building the DNSSEC Chain of Trust
     6.3.  Setting Up the Synchronization Channel
     6.4.  Deleting the Delegation
     6.5.  Message Exchange Description
       6.5.1.  Retrieving Information for the Public Homenet Zone
       6.5.2.  Providing Information for the DNSSEC Chain of Trust
       6.5.3.  Providing Information for the Synchronization Channel
       6.5.4.  Initiating Deletion of the Delegation
     6.6.  Securing the Control Channel
   7.  Synchronization Channel
     7.1.  Securing the Synchronization Channel
   8.  DM Distribution Channel
   9.  HNA Security Policies
   10. Public Homenet Reverse Zone
   11. DNSSEC-Compliant Homenet Architecture
   12. Renumbering
   13. Privacy Considerations
   14. Security Considerations
     14.1.  Registered Homenet Domain
     14.2.  HNA DM Channels
     14.3.  Names Are Less Secure than IP Addresses
     14.4.  Names Are Less Volatile than IP Addresses
     14.5.  Deployment Considerations
     14.6.  Operational Considerations
   15. IANA Considerations
   16. References
     16.1.  Normative References
     16.2.  Informative References
   Appendix A.  HNA Channel Configurations
     A.1.  Public Homenet Zone
   Appendix B.  Information Model for Outsourced Information
   Appendix C.  Example: A Manufacturer-Provisioned HNA Product Flow
   Acknowledgments
   Contributors
   Authors' Addresses

1. Introduction โœจ

Okay so home network owners want to reach devices or services on their home network from the Internet, meaning from a network outside the home ๐Ÿก๐ŸŒ. Using IPv6 addresses at home makes the actual network access simpler, in principle. But the addresses are super hard to remember and get renumbered regularly ๐Ÿ˜ญ. So to make life easier for regular home owners, there needs to be a simple way for the names and IP addresses of these devices and services to get published in the public DNS ๐Ÿ’–.

As shown in Figure 1, the names and IP address of the home network are made available in the Public Homenet Zone by the Homenet Naming Authority (HNA). The HNA then tells the DNS Outsourcing Infrastructure (DOI) to publish the zone on its behalf. This document describes how an HNA can instruct a DOI to publish a Public Homenet Zone on its behalf ๐Ÿฆ‹.

This document introduces the Synchronization Channel and the Control Channel between the HNA and the Distribution Manager (DM), which is the main interface to the DOI ๐ŸŽ€.

The Synchronization Channel (see Section 7) is used to synchronize the Public Homenet Zone ๐Ÿ”„.

                                        Internet
         .---------------------.           .-------------------.
         |      Home Network   | Control   |        DOI        |
         |.-------------------.| Channel   |.-----------------.|
         ||         HNA       |<----------->|  Distribution   ||
         ||.-----------------.||           ||  Manager        ||
         |||  Public Homenet |||           ||                 ||
         |||       Zone      ||<----------->|                 ||
         ||| myhome.example  ||| Synchron- |'-----------------'|
         ||'-----------------'|| ization   |         |         |
         |'-------------------'| Channel   |         V         |
         |                     |           |.-----------------.|
         |                     |           ||  Public Homenet ||
         '---------------------'           ||       Zone      ||
                                           || myhome.example  ||
                                           |'-----------------'|
                                           '---^--^--^--^--^---'
                                               |  |  |  |  |
                                          (served on the Internet)

       Figure 1: High-Level Architecture Overview of Outsourcing the
                            Public Homenet Zone

The Synchronization Channel is a zone transfer. The HNA is set up as a primary server and the Distribution Manager is set up as a secondary server. Some operators call this kind of setup a "hidden primary," but this document doesn't use that term. It isn't precisely defined anywhere, and it means slightly different things to different people ๐Ÿคทโ€โ™€๏ธ.

The Control Channel (see Section 6) is used to set up the Synchronization Channel ๐Ÿ› ๏ธ. It's a dynamic DNS update process, and it's authenticated by TLS ๐Ÿ”.

For example, to build the Public Homenet Zone, the HNA needs the authoritative servers (and their associated IP addresses) of the DOI's servers, which are the visible primaries actually serving the zone ๐Ÿ‘€. Similarly, the DOI needs to know the IP address of the (hidden) primary, which is the HNA. It may also need the hash of the Key Signing Key (KSK) in the DS RRset to secure the DNSSEC delegation with the parent zone ๐Ÿ”‘. Main character energy for sure ๐Ÿ‘‘.

The rest of the document is laid out like this ๐Ÿ—บ๏ธ. Section 2 defines the terminology. Section 3 presents the general problem of publishing names and IP addresses. Section 4 briefly describes some potential deployment scenarios. Section 5 gives an architectural view of the HNA, DM, and DOI, plus their different communication channels (Control Channel, Synchronization Channel, and DM Distribution Channel), which are described in Sections 6, 7, and 8 respectively ๐Ÿงš.

Sections 6 and 7 cover the two channels that interface with the home. Section 8 lays out a set of requirements and expectations for how the distribution system works. This section is non-normative and not subject to standardization, but it reflects how many scalable DNS distribution systems operate ๐Ÿ“.

Sections 9 and 11 detail HNA security policies and DNSSEC compliance within the home network respectively ๐Ÿ”’. Section 12 talks about how renumbering should be handled ๐Ÿ”. Finally, Sections 13 and 14 discuss privacy and security considerations when outsourcing the Public Homenet Zone ๐Ÿ™ˆ๐Ÿ’€.

The appendices cover the following: management (see Section 10), provisioning (see Section 10), configurations (see Appendix B), and deployment (see Section 4 and Appendix C) ๐ŸŒˆ.

2. Terminology โœจ

okay bestie, first things first ๐Ÿ’… the key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this doc are to be read as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they show up in all capitals, just like here ๐ŸŽ€

Customer Premises Equipment (CPE): a router that provides connectivity to the home network ๐Ÿ 

Homenet Zone: the DNS zone for use within the boundaries of the home network: home.arpa (see [RFC8375]). This zone is not considered public and is out of scope for this document ๐Ÿ™ˆ

Registered Homenet Domain: the domain name that's associated with the home network. A given home network may have multiple Registered Homenet Domains ๐ŸŒธ

Public Homenet Zone: holds the names in the home network that are expected to be publicly resolvable on the Internet. A home network can have multiple Public Homenet Zones โœจ

Homenet Naming Authority (HNA): a function responsible for managing the Public Homenet Zone. This includes populating the Public Homenet Zone, signing the zone for DNSSEC, as well as managing the distribution of that Homenet Zone to the DOI ๐Ÿ‘‘

DNS Outsourcing Infrastructure (DOI): the infrastructure responsible for receiving the Public Homenet Zone and publishing it on the Internet. It's mainly composed of a Distribution Manager and Public Authoritative Servers ๐Ÿฆ‹

Public Authoritative Servers: the authoritative name servers for the Public Homenet Zone. Name resolution requests for the Registered Homenet Domain are sent to these servers. Some DNS operators refer to these as public secondaries, and higher resiliency networks are often implemented in an anycast fashion ๐ŸŒˆ

Homenet Authoritative Servers: the authoritative name servers for the Homenet Zone within the Homenet network itself. These are sometimes called "hidden primary servers" ๐Ÿ™ˆ

Distribution Manager (DM): the server (or set of servers) that the HNA synchronizes the Public Homenet Zone to, and that then distributes the relevant information to the Public Authoritative Servers. This server has historically been known as the Distribution Master ๐Ÿ“

Public Homenet Reverse Zone: the reverse zone file associated with the Public Homenet Zone ๐Ÿ”

Reverse Public Authoritative Servers: these are equivalent to Public Authoritative Servers, specifically for reverse resolution ๐Ÿ’œ

Reverse Distribution Manager: this is equivalent to the Distribution Manager, specifically for reverse resolution ๐Ÿซถ

DNS Resolver: a resolver that performs a DNS resolution on the Internet for the Public Homenet Zone. The resolution is performed by requesting the Public Authoritative Servers. While the resolver does not necessarily perform DNSSEC resolutions, it is RECOMMENDED that DNSSEC is enabled ๐Ÿ”

Note that when "DNS Resolver" is used in this document, it refers to "DNS or DNSSEC Resolver" ๐Ÿ’…

Homenet DNS Resolver: a resolver that performs a DNS or DNSSEC resolution on the home network for the Public Homenet Zone. The resolution is performed by requesting the Homenet Authoritative Servers ๐Ÿงš


3. Selecting Names and Addresses to Publish โœจ

okay so this document doesn't create any normative mechanism to pick the names to publish ๐Ÿ™…โ€โ™€๏ธ but it does anticipate that the home network administrator (a human being) will be shown a list of current names and addresses, either directly on the HNA or via another device like a smartphone ๐Ÿ“ฑ

The administrator marks which devices and services (by name) are to be published. The HNA then collects the IP address(es) associated with that device or service and puts the name into the Public Homenet Zone ๐Ÿ’– The address of the device or service can be collected from a bunch of places: Multicast DNS (mDNS) [RFC6762], DHCP [RFC8415], Universal Plug and Play (UPnP), the Port Control Protocol (PCP) [RFC6887], or manual configuration ๐ŸŒธ

A device or service SHOULD have Global Unicast Addresses (GUAs) (IPv6 [RFC3587] or IPv4) but MAY also have IPv6 Unique Local Addresses (ULAs) [RFC4193], IPv6 Link-Local Addresses (LLAs) [RFC4291] [RFC7404], IPv4 LLAs [RFC3927], and private IPv4 addresses [RFC1918] ๐Ÿฆ‹

Of these, the LLAs are almost never useful for the Public Zone and should be omitted ๐Ÿ™ˆ

The IPv6 ULA and private IPv4 addresses may be useful to publish, if the home network environment features a VPN that would let the home owner reach the network ๐Ÿ” [RFC1918] addresses in public zones are generally filtered out by many DNS servers, since they're considered rebind attacks [REBIND] ๐Ÿšจ

In general, one expects the GUA to be the default address to be published. A direct advantage of enabling local communication is that it keeps communications going even when the Internet is disrupted ๐ŸŒˆ Since communications are established with names that stay a global identifier, the communication can be protected (at the very least with integrity protection) by TLS the same way it's protected on the global Internet -- by using certificates ๐Ÿ”’โœจ


4. Envisioned Deployment Scenarios ๐ŸŒˆ

a bunch of deployment scenarios have been envisioned, and this section gives a brief description of them ๐Ÿ—บ๏ธ The use cases are not limitations, and this section is not normative ๐Ÿ’…

The main difference between the various deployments is how the HNA gets provisioned (that is, how it's configured to outsource the Public Homenet Zone to the DOI), as well as how the Public Homenet Zone gets provisioned before it's outsourced. In both cases, these configuration aspects are out of scope for this document ๐Ÿ™ˆ

Provisioning the configuration related to the DOI is expected to be as automated as possible and to require as little interaction with the end user as possible. Zero configuration can only be achieved under some circumstances, and [RFC9527] provides one such example, under the assumption that the ISP provides the DOI ๐Ÿงš Section 4.1 describes another variant, where the Customer Premises Equipment (CPE) is provided preconfigured with the DOI ๐Ÿ“ฆ Section 4.2 describes how an agnostic CPE may be configured by the home network administrator ๐Ÿ› ๏ธ Of course, even in this case, the configuration can leverage mechanisms that stop the end user from having to type in all the information by hand โœจ

On the other hand, provisioning the Public Homenet Zone needs to combine the ability to closely reflect what the end user wishes to publish on the Internet with making that interaction easy ๐Ÿฅฐ The HNA may implement such interactions using web-based GUIs or specific mobile applications ๐Ÿ“ฒ

With the CPE configured with the DOI, the HNA contacts the DOI to build a template for the Public Homenet Zone, and then provisions the Public Homenet Zone. Once the Public Homenet Zone is built, the HNA starts synchronizing it with the DOI on the Synchronization Channel ๐Ÿ”๐Ÿ’œ

4.1. CPE Vendor ๐Ÿ›’

A specific vendor that has specific relations with a registrar or a registry may sell a CPE that's provisioned with a domain name. That domain name is probably not very human friendly, and may consist of some kind of serial number associated with the device being sold ๐Ÿ”ข

One possible scenario is that the vendor provisions the HNA with a private key, plus an associated certificate used for mutual TLS authentication. Note that these keys are not expected to be used for DNSSEC signing ๐Ÿ”‘

Instead, these keys are solely used by the HNA to authenticate to the DM. Normally, the keys are necessary and sufficient to get the authentication done ๐Ÿ™Œ

When the home network owner plugs in the CPE at home, the relation between the HNA and DM is expected to work out of the box ๐ŸŽ‰

4.2. Agnostic CPE ๐Ÿงฉ

A CPE that is not preconfigured may also use the protocol defined in this document, but some configuration steps will be needed ๐Ÿ› ๏ธ

  1. The owner of the home network buys a domain name from a registrar and, as such, creates an account on that registrar ๐Ÿ›๏ธ
  2. The registrar may provide the outsourcing infrastructure, or the home network may need to create a specific account on the outsourcing infrastructure ๐Ÿ—๏ธ
    • If the DOI is the DNS Registrar, it has, by design, a proof of ownership of the domain name by the Homenet owner. In this case, it is expected that the DOI provides the necessary parameters to the home network owner to configure the HNA. One potential mechanism to provide the parameters would be to give the user a JSON object that they can copy and paste into the CPE, such as the one described in Appendix B ๐Ÿ“‹ But what matters to the infrastructure is that the HNA is able to authenticate itself to the DOI ๐Ÿ”
    • If the DOI is not the DNS Registrar, then the proof of ownership needs to be established using some other protocol. Automatic Certificate Management Environment (ACME) [RFC8555] is one protocol that would let an owner of an existing domain name prove their ownership (but it requires that they already have DNS set up!) ๐Ÿ˜ญ There are other ways to establish proof, such as providing a DOI-generated TXT record, or web site contents, as championed by entities like Google's Sitemaster and Postmaster protocols ๐ŸŒ [DOMAIN-VALIDATION] describes a few ways ownership or control of a domain can be achieved ๐Ÿ“š

5. Architecture Description โœจ

this section gives an overview of the architecture for outsourcing the authoritative naming service from the HNA to the DOI ๐Ÿ›๏ธ As a consequence, the HNA is prevented from handling the DNS traffic from the Internet that's associated with resolving the Homenet Zone ๐Ÿšซ

The device-assigned zone or user-configurable zone that's used as the domain to publicly serve hostnames in the home network is called the Public Homenet Zone. In this document, "myhome.example" is used as the example for an end-user-owned domain configured as a Public Homenet Zone ๐Ÿก

More specifically, DNS resolution for the Public Homenet Zone (here "myhome.example") from Internet DNSSEC resolvers is handled by the DOI, as opposed to the HNA. The DOI benefits from a cloud infrastructure, while the HNA is dimensioned for a home network and, as such, is likely unable to support any load ๐ŸŒฉ๏ธ In the case where the HNA is a CPE, outsourcing to the DOI reduces the attack surface of the home network to DDoS, for example ๐Ÿ›ก๏ธ Of course, the DOI needs to be informed dynamically about the content of myhome.example ๐Ÿ‘€ The description of such a synchronization mechanism is the purpose of this document ๐Ÿ’–

Note that Appendix B shows the necessary parameters to configure the HNA ๐Ÿ“–

5.1. Architecture Overview ๐Ÿ 

Okay so, here's the big picture bestie ๐Ÿ—บ๏ธ Figure 2 shows the whole setup, and the home side and the Internet side each get their own box.

  .----------------------------.         .-----------------------------.
  |        Home Network        |         |          Internet           |
  | .-----------------------.  | Control |  .-----------------------.  |
  | |          HNA          |  | Channel |  |          DOI          |  |
  | |   (hidden primary)    |<------------->|   (hidden secondary)  |  |
  | |                       |  | DNSUPD  |  |  Distribution Manager |  |
  | | .-------------------. |  |         |  |                       |  |
  | | |  Public Homenet   | |  |         |  |  .-------------------.|  |
  | | |       Zone        |<------------------>|Public Homenet Zone||  |
  | | | myhome.example    | |  |Synchron-|  |  | myhome.example    ||  |
  | | '-------------------' |  |ization  |  |  '-------------------'|  |
  | '-----------------------'  |Channel  |  |             |         |  |
  |             ^              |  AXFR   |  |             |         |  |
  |             |              |         |  |             v         |  |
  | .-----------------------.  |         |  |.---------------------.|  |
  | | Homenet Authoritative |  |         |  || Public Authoritative||  |
  | |        Server         |  |         |  || (secondary) Servers ||  |
  | | + myhome.example      |  |         |  || + myhome.example    ||  |
  | | + home.arpa           |  |         |  || + x.y.z.ip6.arpa    ||  |
  | | + x.y.z.ip6.arpa      |  |         |  ||                     ||  |
  | '-----------------------'  |         |  ||                     ||  |
  |        |       ^           |         |  |'---------------------'|  |
  |        |       |           |         |  |  ^            |       |  |
  |        |       |           |         |  '--|------------|-------'  |
  |        v       |           |         |     |            v          |
  |  .----------------------.  |         | .------------------------.  |
  |  | Homenet DNS Resolver |  |         | |   Internet Resolvers   |  |
  |  '----------------------'  |         | '------------------------'  |
  |                            |         |                             |
  '----------------------------'         |                             |
                                         '-----------------------------'

                  Figure 2: Homenet Naming Architecture

Figure 2 shows the setup where the HNA hands off publishing the Public Homenet Zone to the DOI. The DOI answers every DNS request for that zone that comes in from outside the home network ๐ŸŒ If the request comes from inside the home, it's the Homenet DNS Resolver that handles it, and we'll get into that more below ๐Ÿก

In this example, the Public Homenet Zone is named by the Registered Homenet Domain "myhome.example" โœจ The diagram also shows a reverse IPv6 map being hosted over there ๐Ÿชž

Quick heads up: ".local" and ".home.arpa" are explicitly NOT Public Homenet Zones ๐Ÿ™…โ€โ™€๏ธ That's why they show up as a Homenet Zone in Figure 2. They get resolved locally but they never get published, because they're treated as local-only stuff ๐Ÿ”’

It is RECOMMENDED that the HNA implements DNSSEC ๐Ÿ” and if it does, the HNA MUST sign the Public Homenet Zone with DNSSEC. No skipping that part, periodt ๐Ÿ’…

The HNA handles all the operations and keying material DNSSEC needs. So this architecture has zero provision for moving private DNSSEC keying material between the HNA and the DM ๐Ÿ™…โ€โ™€๏ธ๐Ÿ”‘

Once the Public Homenet Zone is built, the HNA syncs it with the DOI using a primary/secondary setup, just like Figure 2 shows ๐Ÿค The HNA acts as a stealth server (see [RFC8499]) and the DM acts as a hidden secondary ๐Ÿซฅ The DM is in charge of spreading the Public Homenet Zone out to all the Public Authoritative Server instances that the DOI runs ๐Ÿš€ The DM has three communication channels:

  • DM Control Channel (Section 6) is how the HNA and the DOI configure each other ๐ŸŽ›๏ธ It carries the parameters for the primary/secondary relationship, plus some info from the DOI that the HNA has to put into the Public Homenet Zone.
  • DM Synchronization Channel (Section 7) is how the Public Homenet Zone gets synced between the HNA and the DM, with the primary/secondary set up properly ๐Ÿ”„ It's a zone transfer over mutually authenticated TLS ๐Ÿซถ
  • One or more Distribution Channels (Section 8) push the Public Homenet Zone from the DM out to the Public Authoritative Servers that serve it on the Internet ๐Ÿ“ฎ

There could be multiple DMs, and multiple servers per DM ๐Ÿงš This document just assumes a single DM server to keep things simple. But nothing says each channel has to live on the same server or use the same codebase, so go wild ๐ŸŒˆ

Important tea โ˜• Even though the HNA is set up as an authoritative server, it is NOT expected to answer DNS requests from the _public_ Internet for the Public Homenet Zone ๐Ÿ™ˆ To be specific, the addresses of the HNA SHOULD NOT be listed in the NS records of the Public Homenet Zone, unless extra security provisions to protect the HNA from outside attacks have been put in place ๐Ÿ›ก๏ธ

The HNA is not supposed to be the public face of the zone. Keep it hidden unless you've locked it down properly ๐Ÿšจ

The DOI is also responsible for making sure the DS record gets updated in the parent zone ๐Ÿ“

Resolution is done by DNS Resolvers ๐Ÿ” When resolution happens outside the home network, the DNS Resolver looks up the DS record on the Global DNS, and looks up the name of the Public Homenet Zone (myhome.example) on the Public Authoritative Servers ๐ŸŒ

Now, for resilience in case the WAN goes down ๐Ÿ“ก๐Ÿ’€, the Homenet DNS Resolver MUST be able to do its resolution on the Homenet Authoritative Servers. Bonus privacy perk ๐Ÿซข Using the Homenet DNS Resolver means the people on the home network stop leaking their internal service lookups to an external DNS provider and to anyone sitting on the path ๐Ÿ‘€ These servers aren't expected to be mentioned in the Public Homenet Zone, and they aren't expected to be reachable from the Internet either ๐Ÿ”’ So their info, plus the matching signed DS record, MAY be handed from the HNA to the Homenet DNS Resolvers. For example, that could go over the Home Networking Control Protocol (HNCP) [RFC7788] or by configuring a trust anchor [DRO-RECS] ๐Ÿ—๏ธ That configuration is outside the scope of this document, so it's not our problem here ๐Ÿ™ƒ Since the Homenet Authoritative Servers only care about the home network, they're expected to serve the Homenet Zone exactly as Figure 2 shows ๐Ÿ โœจ


5.2. Distribution Manager (DM) Communication Channels ๐Ÿ“ก

This section goes through the DM channels: the Control Channel, the Synchronization Channel, and the Distribution Channel ๐Ÿงฉ

The Control Channel and the Synchronization Channel are the interfaces between the HNA and the DOI ๐Ÿค On the DOI side, the DM is the entity that handles these conversations. Communications between the HNA and the DM MUST be protected and mutually authenticated ๐Ÿ” There's more detail on the security options in Section 6.6 ๐Ÿซถ

The info exchanged between the HNA and the DM uses DNS messages protected by DNS over TLS (DoT) [RFC7858] ๐Ÿ”’ It's set up the same way as described in [RFC9103], Section 9.3.3 โœจ

Here's something that matters a lot ๐Ÿ’ก The DM and the HNA have to agree on a shared configuration, or else they can't set up the Synchronization Channel or build and serve a coherent Public Homenet Zone ๐Ÿงฑ Like we said earlier, the visible NS records of the Public Homenet Zone (the ones the HNA builds) keep pointing at the IP address of the DOI's Public Authoritative Servers ๐Ÿ“ Unless the HNA can handle the traffic load, the HNA SHOULD NOT show up as a visible NS record of the Public Homenet Zone ๐Ÿ™…โ€โ™€๏ธ On top of that, depending on how the DOI is set up, the DM also has to update the parent zone's NS, DS, and associated A or AAAA glue records ๐Ÿงƒ Check out Section 6.2 for the full scoop ๐Ÿ“–

This specification assumes:

  • The DM serves both the Control Channel and the Synchronization Channel on a single IP address, on a single port, using a single transport protocol ๐ŸŽฏ
  • By default, the HNA uses a single IP address for both the Control and Synchronization channels ๐Ÿท๏ธ The HNA MAY use separate IP addresses for each of them, though. See Sections 7 and 6.3 for more ๐Ÿ’œ

The Distribution Channel is internal to the DOI, so this specification doesn't normatively define it ๐Ÿซ 


6. Control Channel ๐ŸŽ›๏ธ

The DM Control Channel is how the HNA and the DOI swap info about the delegation setup ๐Ÿค“ That includes the info needed to build the Public Homenet Zone (Section 6.1), to build the DNSSEC chain of trust (Section 6.2), and to set up the Synchronization Channel (Section 6.3) ๐Ÿ”—

Some info flows from the DOI to the HNA, which we'll cover in the next section ๐Ÿ’Œ The HNA updates the DOI with the IP address where the zone is going to be transferred over the Synchronization Channel ๐Ÿ“ฌ The HNA is always the one that starts the exchange, in both directions ๐Ÿš€

So the HNA already knows a few things before any of this starts โœจ It knows the DM's identity (via an X.509 certificate), the IP address and port number to use, and which protocol to use for a secure session ๐Ÿ” The DM, on the other hand, learns the identity of the HNA (also via X.509 certificate), along with the Registered Homenet Domain ๐Ÿท๏ธ If you want the details on how this can be done, check out Appendix A.1 ๐Ÿ“š


6.1. Building the Public Homenet Zone ๐Ÿงฑ

The HNA builds the Public Homenet Zone from a template that the DM sends back to it ๐Ÿ“„ Section 6.5 explains how this uses the Authoritative Transfer (AXFR) mechanism ๐Ÿ”

To build its zone completely, the HNA needs the names (and maybe IP addresses) of the Public Authoritative Name Servers ๐Ÿท๏ธ Those get used to fill in the NS records for the zone ๐Ÿ“

All the content of the zone MUST be created by the HNA, because the zone is DNSSEC signed ๐Ÿ” No outsourcing the zone content, bestie ๐Ÿ™…โ€โ™€๏ธ

The HNA also needs to know what goes into the MNAME of the SOA, and only the DOI knows that answer ๐Ÿคทโ€โ™€๏ธ The DM MUST also provide useful operational parameters for the other SOA fields (SERIAL, RNAME, REFRESH, RETRY, EXPIRE, and MINIMUM) ๐Ÿ“‹ The HNA is still free to override those values based on its local configuration ๐ŸŽ€ For example, an HNA might want to change them if it senses a renumbering event is coming up ๐Ÿ”„

Because the HNA can't move forward without the DM's info, this information exchange is mandatory ๐Ÿซก

Last step: the HNA does a DNS Update to the DOI, adding an NS, a DS, and A and AAAA records ๐Ÿ“ฎ These records tell the DOI where the Synchronization Channel lives ๐Ÿ“ The DOI doesn't publish this NS record, though. It just uses it to do its zone transfers ๐Ÿฆ‹

6.2. Building the DNSSEC Chain of Trust ๐Ÿ”—

okay so the HNA MUST provide the hash of the KSK through the DS RRset, so the DOI can hand that value over to the parent zone ๐Ÿ”‘โœจ. A super common setup is that the DOI is the registrar of the Registered Homenet Domain. That means it already has a relationship with the registry of the parent zone, so it can update the parent zone for you ๐Ÿ’…. When that relationship exists, the HNA should be able to ask the DOI to update the DS RRset in the parent zone. A direct update is especially necessary to initialize the chain of trust ๐Ÿซถ.

Though the HNA may also update the DS values directly over the Control Channel later on, it is RECOMMENDED to use other mechanisms, like CDS and CDNSKEY [RFC7344], for transparent updates during key rollovers ๐Ÿ”„๐ŸŒˆ.

As some deployments may not provide a DOI that can update the DS in the parent zone, this information exchange is OPTIONAL ๐Ÿ™ˆ.

By accepting the DS RR, the DM commits to advertising the DS to the parent zone ๐Ÿค. On the other hand, if the DM can't advertise the DS to the parent zone, it says so by refusing the update to the DS RR ๐Ÿ’€.

6.3. Setting Up the Synchronization Channel ๐Ÿชž

the HNA is basically a hidden primary authoritative DNS server, and the DM acts like a secondary one ๐Ÿงš. Because of that, the HNA has to tell the DM which IP address the DM should use to reach it ๐Ÿ“.

If the HNA detects that it has been renumbered, then it MUST use the Control Channel to update the DOI with the new IPv6 address it was assigned ๐Ÿšจ. Major renumbering alert, bestie ๐Ÿ˜ญ.

The Synchronization Channel will be set up between the new IPv6 (and IPv4) address and the IP address of the DM ๐Ÿฆ‹. By default, the DM considers the IP address the HNA uses in the Control Channel, so the HNA only has to spell out an IP explicitly if it wants to, which is OPTIONAL ๐Ÿ’–. The transport channel (including the port number) is the same one used between the HNA and the DM for the Control Channel ๐ŸŽ€.

6.4. Deleting the Delegation ๐Ÿ—‘๏ธ

the previous sections are all about exchanging info so a delegation can be set up. Now we get to the other side of the story. The HNA MUST also be able to delete a delegation with a specific DM ๐Ÿฅ€.

Section 6.5.4 explains how a DNS Update operation on the Control Channel is used to do this ๐Ÿ› ๏ธ.

When the DM receives the instruction to delete the delegation, it MUST stop serving the Public Homenet Zone ๐Ÿ›‘.

Whether the DM deletes an inactive HNA is part of the commercial agreement between the DOI and the HNA ๐Ÿ“œโœจ.

6.5. Message Exchange Description ๐Ÿ’Œ

there were lots of ways to figure out how the control info could get exchanged between the HNA and the DM, so the team really thought it through ๐Ÿง .

This spec defines a mechanism that reuses the DNS zone transfer format ๐Ÿ”. Quick heads up, though: even though the info travels in DNS exchanges, it's not meant to be saved in any zone file. It's used as commands between the HNA and the DM instead ๐ŸŽฏ. This turned out to be simpler on the home router side, since the HNA already has to have code for all the DNS encodings and decodings anyway ๐Ÿ . Inventing a brand new way to encode the DNS info in something like JSON seemed like extra complexity for no real payoff ๐Ÿ™…โ€โ™€๏ธ.

The Control Channel is not expected to be a long-term session ๐Ÿ•ฐ๏ธ. After a predefined timer (kinda like the ones TCP uses), the Control Channel is expected to be terminated by closing the transport channel ๐Ÿ‘‹. The Control Channel MAY be reopened at any later time ๐Ÿ”“.

Using TLS session tickets (see [RFC8446], Section 4.6.1) is RECOMMENDED ๐ŸŽŸ๏ธ.

The channel MUST be authenticated with certificates for both the DM and each HNA ๐Ÿ”. The DM may also create the initial configuration for the delegation zone in the parent zone during the provisioning process ๐Ÿช„.

6.5.1. Retrieving Information for the Public Homenet Zone ๐Ÿ“ฅ

The DM hands info to the HNA through an AXFR exchange [RFC1034], and the HNA retrieves it that way ๐Ÿ“ฆ. AXFR lets the response carry any type of RRset, so it's super flexible ๐ŸŒธ.

To get everything it needs to build the Public Homenet Zone, the HNA MUST send a DNS request of type AXFR associated with the Registered Homenet Domain ๐Ÿ“จ.

The zone the DM sends back is used by the HNA as a template to build its own zone ๐Ÿงฉ.

The zone template MUST contain an RRset of type SOA, one or more RRsets of type NS, and zero or more RRsets of type A or AAAA (if the NS is in-domain [RFC8499]) ๐Ÿ“‹. The template includes TTL values for each RR, and the HNA SHOULD treat those as suggested maximum values. It MAY use lower values for operational reasons, like an upcoming renumbering event โณ.

  • The SOA RR tells the HNA the value of the MNAME of the Public Homenet Zone โœจ.
  • The NAME of the SOA RR MUST be the Registered Homenet Domain ๐Ÿท๏ธ.
  • The MNAME value of the SOA RDATA is the value the DOI provided to the HNA ๐Ÿ“.
  • The other RDATA values (RNAME, REFRESH, RETRY, EXPIRE, and MINIMUM) are provided by the DOI as suggestions ๐Ÿ’ก.

The NS RRsets carry the Public Authoritative Servers of the DOI ๐Ÿ–ฅ๏ธ. Their associated NAME MUST be the Registered Homenet Domain ๐Ÿ’–.

On top of the default TTL stuff above, the HNA SHOULD be careful not to pick a TTL that's larger than the parent NS, based on the resolver guidelines in [NS-REVALIDATION] and [DRO-RECS] ๐Ÿง. The RRsets of type A and AAAA MUST have their NAME matching the NSDNAME of one of the NS RRsets ๐ŸŽฏ.

When the response arrives, the HNA MUST validate the format and properties of the SOA, NS, and A or AAAA RRsets ๐Ÿ”. If an error occurs, the HNA MUST stop proceeding and MUST log an error ๐Ÿšซ๐Ÿ““. Otherwise, the HNA builds the Public Homenet Zone by setting the MNAME value of the SOA to whatever the SOA in the AXFR response says โœ…. The HNA MUST NOT exceed the values of NAME, REFRESH, RETRY, EXPIRE, and MINIMUM from the SOA in the AXFR response ๐Ÿ™…โ€โ™€๏ธ. The HNA MUST insert the NS and corresponding A or AAAA RRsets into its Public Homenet Zone ๐Ÿงฑ. The HNA MUST ignore other RRsets ๐Ÿ™ˆ.

If the DM sends back an error message, the HNA MUST proceed as a regular DNS resolution ๐Ÿ”. Error messages SHOULD be logged so they can be analyzed later ๐Ÿ“Š. If the resolution doesn't succeed, the outsourcing operation is aborted and the HNA MUST close the Control Channel ๐Ÿ”š๐Ÿ’€.

6.5.2. Providing Information for the DNSSEC Chain of Trust ๐Ÿ”

To send the DS RRset that initializes the DNSSEC chain of trust, the HNA MAY send a DNS update [RFC3007] message ๐Ÿ’ซ.

The DNS update message is made up of a Header section, a Zone section, a Prerequisite section, an Update section, and an additional section ๐Ÿงฑ. The Zone section MUST set the ZNAME to the parent zone of the Registered Homenet Domain, which is where the DS records should be inserted ๐Ÿ“. As described in [RFC2136], ZTYPE is set to SOA and ZCLASS is set to the zone's class ๐ŸŽ€. The Prerequisite section MUST be empty ๐Ÿซ™. The Update section is a DS RRset whose NAME is set to the Registered Homenet Domain, and the associated RDATA corresponds to the value of the DS ๐Ÿ”‘. The Additional Data section MUST be empty ๐Ÿงน.

Though the DM MAY ignore the Prerequisite section, this value is fixed so it stays coherent with a standard DNS update ๐Ÿงฉ.

When the DM gets the DNS update request, it reads the DS RRset in the Update section ๐Ÿ‘€. It checks that ZNAME corresponds to the parent zone ๐Ÿ”Ž. The DM MUST ignore the Prerequisite and Additional Data sections, if they're present ๐Ÿ™…โ€โ™€๏ธ. The DM MAY update the TTL value before it updates the DS RRset in the parent zone โฑ๏ธ. After a successful update, the DM should return a NOERROR response as a commitment to update the parent zone with the provided DS ๐Ÿ’…. An error means the DM did not update the DS, so the HNA needs to act accordingly. Otherwise, another method should be used by the HNA ๐Ÿ”„.

When an error occurs, the regular DNS error message MUST be returned to the HNA โŒ. Specifically, FORMERR comes back when a format error is found, including when unexpected RRsets are added or when RRsets are missing ๐Ÿ™ƒ. SERVFAIL comes back when an internal error is encountered ๐Ÿ”ฅ. NOTZONE comes back when the Update and Zone sections don't match up ๐Ÿงฉ. NOTAUTH comes back when the DM isn't authoritative for the Zone section ๐Ÿšท. REFUSED comes back when the DM refuses the configuration or refuses to perform the requested action ๐Ÿ™…โ€โ™€๏ธ๐Ÿ’”.

6.5.3. Providing Information for the Synchronization Channel ๐Ÿชž

By default, the HNA uses the IP address of the Control Channel for the Synchronization Channel ๐Ÿ“. If it wants a different IP address, the HNA MAY send a DNS UPDATE message ๐ŸŽ€.

Similar to what's described in Section 6.5.2, the HNA MAY specify the IP address using a DNS update message ๐Ÿ’Œ. The Zone section sets its ZNAME to the parent zone of the Registered Homenet Domain, ZTYPE to SOA, and ZCLASS to the zone's type ๐Ÿงพ. The Prerequisite section is empty ๐Ÿซ™. The Update section is an RRset of type NS. The Additional Data section contains the RRsets of type A or AAAA that designate the IP addresses associated with the primary (or the HNA) ๐Ÿงฉ.

The reason for providing these IP addresses is to keep them unpublished so they can't be resolved ๐Ÿ™ˆ. It is RECOMMENDED that the HNA's IP address be randomly chosen so it's harder to find too ๐ŸŽฒ๐Ÿซฃ.

When the DM gets the DNS update request, it reads the IP addresses and checks that ZNAME corresponds to the parent zone ๐Ÿ‘€. The DM MUST ignore a non-empty Prerequisite section ๐Ÿ™…โ€โ™€๏ธ. The DM configures the secondary with the IP addresses and returns a NOERROR response to show it's committed to serving as a secondary ๐Ÿค๐Ÿ’–.

Similar to what's described in Section 6.5.2, DNS errors are used here too, and an error means the DM is not configured as a secondary ๐Ÿ˜ฌ.

6.5.4. Initiating Deletion of the Delegation ๐Ÿงน

To start deleting the delegation, the HNA sends a DNS UPDATE Delete message ๐Ÿ—‘๏ธ.

The Zone section sets its ZNAME to the Registered Homenet Domain, the ZTYPE to SOA, and the ZCLASS to the zone's type ๐Ÿ“‹. The Prerequisite section is empty ๐Ÿซ™. The Update section is an RRset of type NS, with the NAME set to the Registered Domain Name ๐Ÿท๏ธ. As indicated in [RFC2136], Section 2.5.2, the delete instruction is started by setting TTL to 0, CLASS to ANY, and RDLENGTH to 0, and RDATA MUST be empty ๐Ÿช„. The Additional Data section is empty ๐Ÿงผ.

When the DM gets the DNS update request, it checks the request and removes the delegation ๐Ÿซง. It returns a NOERROR response to show the delegation has been deleted ๐ŸŽ‰. Similar to what's described in Section 6.5.2, DNS errors are used here too, and an error means the delegation has not been deleted ๐Ÿฅฒ.

6.6. Securing the Control Channel ๐Ÿ”โœจ

okay bestie, security time ๐Ÿ˜ค๐Ÿ” TLS [RFC8446] MUST be used to secure the transactions between the DM and the HNA, and the DM and HNA MUST be mutually authenticated. The DNS exchanges are performed using DNS over TLS [RFC7858]. no cap, both sides have to prove who they are ๐Ÿซถ

The HNA may be provisioned by the manufacturer or during some user-initiated onboarding process. For example, a person might use a browser and sign up with a service provider, and then an OAuth 2.0 token gets handed to the HNA. This kind of process may pass settings from a registrar into the HNA through an http API interface. (This is not in scope for this document.) ๐Ÿงš

When the HNA connects to the DM's Control Channel, TLS will be used and the connection will be mutually authenticated. The DM will authenticate the HNA's certificate based on it having taken part in some provisioning process. That process is not standardized by this document ๐Ÿ™ˆ The results of the provisioning process are a series of settings described in Appendix A.1.

The HNA will validate the DM's Control Channel certificate by doing a DNS-ID check on the name, as described in [RFC9525]. โœ…

In the future, other specifications may protect DNS messages with other transport layers, such as DNS over DTLS [RFC8094], DNS over HTTPS (DoH) [RFC8484], or DNS over QUIC [RFC9250]. the future is looking so bright ๐ŸŒˆ


7. Synchronization Channel ๐Ÿ”„๐Ÿ’–

okay, the DM Synchronization Channel is the channel the HNA and the DM use to keep the Public Homenet Zone in sync. ngl this is where it gets a little tricky ๐Ÿ‘€ The Control Channel and the Synchronization Channel are different channels by construction, even though they may use the same IP address. Say the HNA and the DM are both using one IP address called XX, and YYYYY and ZZZZZ are the ports involved in the communication.

The Control Channel is between:

  • the HNA working as a client, using port number YYYYY (an ephemeral port, also commonly called a high range port), and
  • a service provided by the DM at port 853, when using DoT.

The Synchronization Channel, on the other hand, is between:

  • the DM working as a client, using port ZZZZZ (another ephemeral port), and
  • a service provided by the HNA at port 853.

So even though the same pair of IP addresses may be involved, the Control Channel and the Synchronization Channel are always distinct channels. two different lanes, same road ๐Ÿ›ฃ๏ธโœจ

Uploading and dynamically updating the zone file on the DM can be seen as zone provisioning between the HNA (hidden primary server) and the DM (secondary server). This is handled with the normal zone transfer mechanism, which involves AXFR and Incremental Zone Transfer (IXFR). it's giving classic DNS ๐Ÿ’…

Part of the zone update process involves the owner of the zone (the hidden primary server, which is the HNA) sending a DNS Notify to the secondaries. In this situation, the only destination the HNA knows about is the DM's Control Channel. So DNS Notifies get sent over the Control Channel, secured by a mutually authenticated TLS. ๐Ÿ“ฃ

Please note that DNS Notifies are not critical to normal operation, because the DM will check the zone regularly based on SOA record comments. DNS Notifies do speed things up, though. They cause the DM to use the Synchronization Channel to immediately do an SOA query and detect any updates. If there are any changes, the DM immediately transfers the zone updates. zoom zoom โšก

This specification standardizes the use of a primary/secondary mechanism [RFC1996] rather than an extended series of DNS update messages. The primary/secondary mechanism was picked because it scales better and avoids DoS attacks. Because this AXFR runs over a TCP channel secured by a mutually authenticated TLS, the DNS update is more complicated. ๐Ÿง 

Heads up: this document provides no standard way to distribute a DNS primary between multiple devices. So if multiple devices are candidates for hosting the hidden primary server, some specific mechanisms should be designed so the home network only selects a single HNA for the hidden primary server. Selection mechanisms based on HNCP [RFC7788] are good candidates for future work. ๐Ÿšจ

7.1. Securing the Synchronization Channel ๐Ÿ”’๐ŸŽ€

The Synchronization Channel uses mutually authenticated TLS, as described by [RFC9103]. ๐Ÿ’…

There is a TLS client certificate that the DM uses to authenticate itself. The DM uses the same certificate that was configured into the HNA for authenticating the Control Channel, but as a client certificate rather than a server certificate. so it's the same cert, just wearing a different hat ๐ŸŽฉ

[RFC9103] makes no requirements or recommendations on any extended key usage flags for zone transfers. This document takes the view that none should be required. Note that once an update to [RFC9103] is published, this document's normative reference to [RFC9103] will be considered updated as well. ๐Ÿ“š

For the TLS server certificate, the HNA uses the same certificate that it uses to authenticate itself to the DM for the Control Channel. ๐Ÿซง

The HNA MAY use this certificate as the authorization for the zone transfer. Or the HNA MAY have been configured with an Access Control List (ACL) that determines whether the zone transfer can proceed. This is a local configuration option, since it's too early to tell which one will be operationally simpler. ๐Ÿคทโ€โ™€๏ธ

When the HNA expects to do zone transfer authorization by certificate only, the HNA MAY still apply an ACL on inbound connection requests to avoid load. In this case, the HNA MUST regularly check (via a DNS resolution) the validity of the address(es) of the DM in the filter. the vibe is "check your guest list often" ๐Ÿ“‹๐Ÿ’€


8. DM Distribution Channel ๐ŸŒโœจ

The DM Distribution Channel is used for communication between the DM and the Public Authoritative Servers. The architecture and communication for the DM Distribution Channels are outside the scope of this document. There are plenty of existing solutions, though, e.g., rsync, DNS AXFR, REST, and DB copy. options options options ๐Ÿ“


9. HNA Security Policies ๐Ÿ›ก๏ธ๐Ÿ’œ

The HNA, as the hidden primary server, only processes a limited set of message exchanges on its Internet-facing interface. This should be enforced using security policies, so that only a subset of DNS requests get received by the HNA. ๐Ÿ”

The hidden primary server on the HNA is different from the regular authoritative server for the home network, for these reasons:

  • Interface Binding: The hidden primary server will almost certainly listen on the WAN Interface, whereas a regular Homenet Authoritative Server will listen on the internal home network interface. ๐Ÿ โžก๏ธ๐ŸŒ
  • Limited Exchanges: The purpose of the hidden primary server is to synchronize with the DM, not to serve any zones to end users or the public Internet. This results in a limited number of possible exchanges (AXFR/IXFR) with a small number of IP addresses. An implementation MUST enable filtering policies: it should only respond to queries that are required to do zone transfers. That list includes SOA queries and AXFR/IXFR queries. only the essentials, bestie ๐Ÿ™…โ€โ™€๏ธ

10. Public Homenet Reverse Zone ๐Ÿ”๐ŸŒธ

The Public Homenet Reverse Zone works similarly to the Public Homenet Zone. The main difference is that the ISP providing the IPv6 connectivity is likely to also be the owner of the corresponding IPv6 reverse zone, and it administrates the Reverse Public Authoritative Servers. The configuration and the setting of the Synchronization Channel and Control Channel can largely be automated using DHCPv6 messages that are part of the IPv6 prefix delegation process. โœจ๐Ÿช„

The Public Homenet Zone is associated with a Registered Homenet Domain. Owning that domain requires a specific registration from the end user, as well as the HNA being provisioned with some authentication credentials. Those steps are mandatory unless the DOI has some other means to authenticate the HNA. That situation may occur, for example, when the ISP provides the Homenet Domain as well as the DOI. ๐Ÿงพ

In this case, the HNA may be authenticated by the physical link layer, in which case the HNA's authentication may happen without additional provisioning. While this may not be so common for the Public Homenet Zone, it is expected to be quite common for the Reverse Homenet Zone, since the ISP owns the IP address or IP prefix. ๐Ÿ”—

More specifically, a common case is that the upstream ISP provides the IPv6 prefix to the Homenet with an identity association for a prefix delegation (IA_PD) option [RFC8415], and it manages the DOI of the associated reverse zone. ๐Ÿ“ฌ

This leaves room for setting up the relation between the HNA and the DOI automatically, as described in [RFC9527]. ๐Ÿค–

In the case of the reverse zone, the DOI authenticates the source of the updates by IPv6 ACLs, and the ISP knows exactly which addresses have been delegated. Therefore, the HNA SHOULD always originate Synchronization Channel updates from an IP address within the zone that is being updated. Exceptionally, the Synchronization Channel might come from a different zone delegated to the HNA, for instance if there are multiple zones or renumbering events in progress. ๐Ÿ”ข

For example, if the ISP has assigned 2001:db8:f00d:1234::/64 to the WAN interface (by DHCPv6 or PPP with Router Advertisement (RA)), then the HNA should originate Synchronization Channel updates from, for example, 2001:db8:f00d:1234::2. ๐ŸŒŸ

If an ISP has delegated 2001:db8:aeae::/56 to the HNA via DHCPv6-PD, then the HNA should originate Synchronization Channel updates to an IP address within that subnet, such as 2001:db8:aeae:1::2. ๐ŸŽฏ

With this relation automatically configured, the synchronization between the home network and the DOI happens in a similar way to the synchronization of the Public Homenet Zone described earlier in this document. it's basically the same energy, just a different zone ๐Ÿ’…

Note that for home networks connected to multiple ISPs, each ISP provides only the DOI of the reverse zones associated with the delegated prefix. It is also likely that the DNS exchanges will need to be performed on dedicated interfaces to be accepted by the ISP. More specifically, the reverse zone update associated with prefix 1 cannot be performed by the HNA using an IP address that belongs to prefix 2. Such constraints do not raise major concerns for hot standby or load-sharing configurations. ๐ŸŒ๐Ÿซถ

With IPv6, the reverse domain space for IP addresses associated with a subnet such as ::/64 is so large that the reverse zone may face scalability issues. How the reverse zone is generated is out of scope of this document. [RFC8501] provides guidance on how to address scalability issues. the numbers are WILD ๐Ÿคฏ๐Ÿ“ˆ

11. DNSSEC-Compliant Homenet Architecture ๐Ÿ”โœจ

okay so Section 3.7.3 of [RFC7368] recommends that DNSSEC be deployed on both the authoritative server and the resolver ๐Ÿ’…

The resolver side is out of scope for this doc, so we're only looking at the authoritative part of the server ๐Ÿซถ Other docs like [RFC5011] handle the continuous updating of trust anchors that a DNSSEC Resolver needs to work ๐ŸŒธ

The Public Homenet Zone and the Public Reverse Zone MUST be DNSSEC signed by the HNA ๐Ÿ”ฅ

Secure delegation only works if the DS RRset is properly set in the parent zone ๐ŸŽ€ The HNA or the DOI can handle secure delegation, and which one it is really depends on who is authorized to make those updates ๐Ÿค” Usually the DS RRset gets updated by hand through a registrar interface, and it can also be maintained with mechanisms like CDS [RFC7344] ๐Ÿฆ‹

When the DOI operator is also the registrar for the domain, it's a total breeze for the DOI to set up the relevant DS records in the parent zone โœจ In other cases some other setup will be needed, and that depends on the infrastructure involved. That's beyond the scope of this doc ๐Ÿ™ˆ

โš ๏ธ There may be situations where the HNA can't arrange secure delegation for the zones, but the HNA MUST still sign the zones. No skipping the signing, bestie ๐Ÿ˜ญ

12. Renumbering ๐ŸŒˆ

okay, renumbering. During a renumbering of the home network, the HNA IP address may change, and the HNA will update the Public Homenet Zone with new AAAA records ๐Ÿ’–

Then the HNA tells the DM via a NOTIFY on the Control Channel ๐Ÿ“ฃ The DM needs to note the new originating IP for the connection and update its internal database of Synchronization Channels ๐Ÿงš After that, a new zone transfer happens with the new records for the resources the HNA wants to publish ๐Ÿ“

The rest of this section gives recommendations for provisioning the Public Homenet Zone, especially the IP addresses ๐Ÿ’œ

Renumbering is extensively described in [RFC4192] and analyzed in [RFC7010], so you're expected to be familiar with those before reading this section ๐Ÿ“š In the make-before-break renumbering scenario, the new prefix gets advertised and the network is set up to prepare the switch to it โœจ For a while the old and new prefixes coexist before the old prefix is totally removed ๐ŸŒธ New resource records with the new prefix SHOULD be published, and the old resource records with the old prefixes SHOULD be withdrawn ๐Ÿซถ If the HNA expects the overlap to be long (maybe because it knows the router and DHCPv6 lifetimes), it MAY publish the old prefixes with a significantly lower TTL ๐Ÿฆ‹

In break-before-make renumbering scenarios, including flash renumbering scenarios [RFC8978], the old prefix becomes unusable before the new prefix is known or advertised ๐Ÿ’€ As [RFC8978] explains, some flash renumberings happen because the HNA got power cycled, and ISPs don't always properly remember which prefixes they assigned to which user ๐Ÿ™ƒ

An HNA that boots up MUST immediately use the Control Channel to update the location for the Synchronization Channel ๐Ÿš€ Doing this on every boot is totally reasonable, because the HNA has no idea how long it's been offline, or whether the (DNSSEC) zone may have expired while it was powered off ๐Ÿ˜ฌ

The HNA has a list of names that should be published, but it might not have IP addresses for those devices yet ๐Ÿงธ That can happen because the other devices weren't online yet at power on ๐Ÿ”Œ If the HNA is sure the prefix hasn't changed, it should use the previously known addresses, with a very low TTL ๐Ÿญ

Even though the new and old IP addresses might both be stored in the Public Homenet Zone, it is RECOMMENDED that only the newly reachable IP addresses be published ๐Ÿ‘‘

Now the Public Homenet Reverse Zone ๐Ÿชž The new one has to be populated as soon as possible, and the old one gets deleted by the zone's owner (and the owner of the old prefix, which is usually the ISP) once the prefix is no longer assigned to the HNA ๐Ÿ—‘๏ธ The ISP MUST ensure the DNS cache has expired before reassigning the prefix to a new home network โณ This can be enforced by controlling the TTL values โฐ

To avoid reachability disruption, IP connectivity info provided by the DNS MUST be coherent with the IP in use ๐Ÿ’… In this case, that means the old IP address MUST NOT be provided via the DNS once it isn't reachable anymore ๐Ÿšซ

In the make-before-break scenario, it's possible to make the transition seamless โœจ Let T be the TTL associated with an RRset of the Public Homenet Zone, Time_NEW be the time the new IP address replaces the old IP address in the Homenet Zone, and Time_OLD_UNREACHABLE be the time the old IP won't be reachable anymore ๐Ÿงฎ

In the make-before-break scenario, seamless reachability is provided as long as Time_OLD_UNREACHABLE - T_NEW > (2 * T) ๐Ÿฆ‹ If that isn't satisfied, then devices tied to the old IP address in the home network may become unreachable for 2 * T - (Time_OLD_UNREACHABLE - Time_NEW) ๐Ÿ˜ญ

In a break-before-make scenario, Time_OLD_UNREACHABLE = Time_NEW, and the device may become unreachable for up to 2 * T ๐Ÿ’” Of course, if Time_NEW >= Time_OLD_UNREACHABLE, then the outage isn't seamless ๐Ÿ™ˆ


13. Privacy Considerations ๐Ÿซฃ๐Ÿ”’

Outsourcing the DNS Authoritative service from the HNA to a third party raises a few privacy concerns ๐Ÿ•ต๏ธโ€โ™€๏ธ

The Public Homenet Zone lists the names of services hosted in the home network ๐Ÿ  Combined with blocking of AXFR queries, using NSEC3 [RFC5155] (vs. NSEC [RFC4034]) keeps an attacker from walking the zone to discover all the names ๐Ÿ™Œ But recent work [GPUNSEC3] [ZONEENUM] has shown that NSEC3's protection against dictionary attacks should be considered cautiously, and [RFC9276] has guidelines for configuring NSEC3 properly ๐Ÿ“ An attacker may also be able to walk the reverse DNS zone or use other recon techniques to learn this info, as described in [RFC7707] ๐Ÿ‘€

The zone may also be exposed during synchronization between the primary and the secondary ๐ŸŒŠ The casual risk of this happening is low, and using [RFC9103] significantly reduces it โœจ Even if the DOI uses DNS zone transfer over TLS [RFC9103], the zone's existence may still leak through Notifies ๐Ÿ“ฎ The protocol in this document doesn't increase that risk, since all Notifies use the encrypted Control Channel ๐Ÿ”

In general, a home network owner is expected to publish only names they have some need to reference externally ๐ŸŽ€ Publishing a name doesn't mean the service is necessarily reachable from any or all parts of the Internet ๐Ÿ™…โ€โ™€๏ธ [RFC7084] mandates that the outgoing-only policy [RFC6092] be available, and in many cases it's on by default ๐Ÿ’… A well-designed user interface would pair a policy for making a service public by name with a policy on who may access it ๐Ÿง 

In many cases, and for privacy reasons, the home network owner wants to publish names only for services they'll be able to access ๐Ÿฅน Access control might be an IP source address range, or access may be restricted through some VPN functionality ๐Ÿ›ก๏ธ The main perks of publishing names are that the service can be accessed by the same name both inside and outside the home, and DNS resolution can be handled the same way both inside and outside the home โœจ That makes VPNs a lot easier to use, since the VPN can be picked based on the IP address of the service ๐Ÿช„ Typically, a user might configure their device to reach their Homenet devices via a VPN while the rest of the traffic goes direct ๐Ÿ›ธ

Enterprise networks have generally adopted another strategy called split-horizon-DNS ๐Ÿข It might look like it gives more privacy at first glance, but it's genuinely hard to implement and the privacy advantages need careful thought ๐Ÿ˜ตโ€๐Ÿ’ซ In split-horizon-DNS, names get internal names that can only be resolved inside the corporate network ๐Ÿ”’ When that strategy is applied to the homenet, VPNs need to be configured with naming resolution policies and routing policies ๐Ÿ—บ๏ธ That might be reasonable with a single VPN, but keeping a coherent DNS space and IP space across various VPNs comes with serious complexity ๐Ÿ’€ First, if multiple homenets use the same domain name (like home.arpa), it gets hard to tell which network the resolution should happen on ๐Ÿคฏ So homenets should at least be told apart by a domain name ๐Ÿท๏ธ Second, split-horizon-DNS requires each VPN to be tied to a resolver, with specific resolutions handled by the dedicated resolver ๐Ÿงฉ Those policies can easily cause conflicts (with significant privacy issues) and are still hard to implement ๐Ÿ˜ค

Besides the Public Homenet Zone, pervasive DNS monitoring can also watch the traffic associated with the Public Homenet Zone ๐Ÿ‘๏ธ That traffic can reveal which services an end user accesses, plus how and when they use them ๐Ÿ“Š Caching may hide this info inside the home network, but it's likely that it won't be cached outside the home network ๐ŸŒ


14. Security Considerations ๐Ÿ›ก๏ธ๐Ÿ’–

The HNA never answers DNS requests from the Internet ๐Ÿ™…โ€โ™€๏ธ Those requests are served by the DOI instead ๐Ÿซถ

Even though this limits how exposed the HNA is, the HNA still has some exposure to attacks from the Internet ๐Ÿ˜ฐ This section analyzes the attack surface of those communications, the data published by the DOI, and operational considerations ๐Ÿ”

14.1. Registered Homenet Domain ๐Ÿก

The DOI MUST NOT serve any Public Homenet Zone when it isn't confident that the HNA owns the Registered Homenet Domain ๐Ÿšจ Proof of ownership is outside the scope of this doc, so it's assumed that this step happened before the zone was outsourced ๐Ÿคž

14.2. HNA DM Channels

okay bestie, the channels between HNA and DM are mutually authenticated AND encrypted with TLS [RFC8446], and its associated security considerations apply too ๐Ÿ”โœจ

To make sure the multiple TLS sessions keep authenticating the same entity ๐Ÿ‘€, TLS may take advantage of second-factor authentication as described in [RFC8672] for the TLS server certificate for the Control Channel. The HNA should also cache the TLS server certificate used by the DM, so it can authenticate the DM while setting up the Synchronization Channel. (Alternatively, the HNA is configured with an ACL that says which Synchronization Channel connections will originate from where ๐Ÿ—‚๏ธ)

The Control Channel and Synchronization Channel follow the guidelines in [RFC7858] and [RFC9103], respectively ๐Ÿ’…

DNS is subject to reflection attacks, but these are mostly a problem when DNS is carried over UDP. The interfaces between the HNA and DM use TLS over TCP, which prevents such reflection attacks ๐Ÿ›ก๏ธ Public Authoritative servers hosted by the DOI are subject to such attacks, but that's out of scope for this document, so we're not getting into it here.

Note that for the Reverse Homenet Zone, the data is less subject to attacks than in the Public Homenet Zone. Also, the DM and Reverse Distribution Manager (RDM) may be provided by the ISP, as described in [RFC9527]. In that case, DM and RDM might be less exposed to attacks, since the communications stay within a network ๐ŸŒธ

14.3. Names Are Less Secure than IP Addresses

so this doc is about how an end user can make their services and devices on their home network reachable on the Internet using names instead of IP addresses ๐ŸŒ and honestly? That exposes the home network to attackers ๐Ÿ˜ฌ because names are expected to have less entropy than IP addresses.

IPv4 addresses are 4-bytes long, which gives 2^32 possibilities. With IPv6 addresses, the Interface Identifier is 64-bits long, leading to up to 2^64 possibilities for a given subnetwork. And it doesn't stop there: the subnet prefix is also 64-bits long, which gives up to 2^64 possibilities too ๐Ÿคฏ

On the other hand, names used for either the home network domain or the devices carry less entropy (livebox, router, printer, nicolas, jennifer, ...). That means they could potentially expose the devices to dictionary attacks ๐Ÿ’€

14.4. Names Are Less Volatile than IP Addresses

IP addresses can be used to locate a device, a host, or a service. But home networks are not expected to be assigned a time-invariant prefix by ISPs ๐Ÿ™ƒ Plus, IPv6 enables temporary addresses that make them even more volatile [RFC8981]. So observing IP addresses only gives you some ephemeral info about who is accessing the service ๐Ÿซ 

Names, on the other hand, are not expected to be as volatile as IP addresses. That's why logging names over time may be more valuable than logging IP addresses, especially if someone wants to profile an end user's characteristics ๐Ÿ‘‘

PTR provides a way to bind an IP address to a name, so responding to PTR DNS queries may affect the end user's privacy ๐Ÿ™ˆ For that reason, PTR DNS queries MAY be configured to return with NXDOMAIN instead โœจ

14.5. Deployment Considerations

The HNA is expected to sign the DNSSEC zone and, as such, hold the private KSK and Zone Signing Key (ZSK) ๐Ÿ”‘

There's no strong justification for using a separate KSK and ZSK here. If an attacker gets access to one of them, it's likely they'll get access to both ๐Ÿ˜ญ If the HNA runs in a home router with a secure element (SE) or trusted platform module (TPM), storing the private keys in the secure element would be a useful precaution ๐Ÿงš The DNSSEC keys are generally needed on an hourly to weekly basis, but not more often.

While there is some risk that malicious parties might disclose the DNSSEC keys, the bigger risk is that they'll simply get lost if the home router is factory reset, or just thrown out or replaced with a newer model ๐Ÿ“ฆ

Generating new DNSSEC keys is relatively easy, and they can be deployed using the Control Channel to the DM ๐ŸŽ€ The key used to authenticate that connection is the critical key that needs protection, and it should ideally be backed up to offline storage (such as a USB key) ๐Ÿ’พ

14.6. Operational Considerations

Homenet technologies make it easier to expose devices and services to the Internet, which brings broader operational considerations for the operator and the Internet ๐ŸŒ Here's the tea:

  • The home network operator must carefully assess whether a device or service previously fielded only on a home network is robust enough to be exposed to the Internet ๐Ÿง
  • The home network operator will need to level up their diligence and regularly manage these exposed devices, because their risk posture is higher once they're on the Internet ๐Ÿ’ช
  • Depending on the operational practices of home network operators, there is an increased risk to the Internet through the possible introduction of additional Internet-exposed systems that are poorly managed and likely to be compromised ๐Ÿšจ

15. IANA Considerations โœจ

no IANA actions for this one, bestie ๐Ÿซถ This document has none.

16. References ๐Ÿ“š

16.1. Normative References

16.2. Informative References ๐Ÿ“š

Okay bestie, here's the extra-credit reading list. These are the optional-but-super-useful references, and every single one is still listed in full ๐Ÿซถ

[DOMAIN-VALIDATION] Sahib, S., Huque, S., Wouters, P., and E. Nygren, "Domain Control Validation using DNS", Work in Progress, Internet-Draft, draft-ietf-dnsop-domain-verification-techniques-03, 17 October 2023, <https://datatracker.ietf.org/doc/html/draft-ietf-dnsop-domain-verification-techniques-03>.

[DRO-RECS] Migault, D., Lewis, E., and D. York, "Recommendations for DNSSEC Resolvers Operators", Work in Progress, Internet-Draft, draft-ietf-dnsop-dnssec-validator-requirements-07, 13 November 2023, <https://datatracker.ietf.org/doc/html/draft-ietf-dnsop-dnssec-validator-requirements-07>.

[GPUNSEC3] Wander, M., Schwittmann, L., Boelmann, C., and T. Weis, "GPU-Based NSEC3 Hash Breaking", DOI 10.1109/NCA.2014.27, August 2014, <https://doi.org/10.1109/NCA.2014.27>.

[HOMEROUTER-PROVISION] Richardson, M., "Provisioning Initial Device Identifiers into Home Routers", Work in Progress, Internet-Draft, draft-richardson-homerouter-provisioning-02, 14 November 2021, <https://datatracker.ietf.org/doc/html/draft-richardson-homerouter-provisioning-02>.

[NS-REVALIDATION] Huque, S., Vixie, P., and R. Dolmans, "Delegation Revalidation by DNS Resolvers", Work in Progress, Internet-Draft, draft-ietf-dnsop-ns-revalidation-04, 13 March 2023, <https://datatracker.ietf.org/doc/html/draft-ietf-dnsop-ns-revalidation-04>.

[REBIND] Wikipedia, "DNS rebinding", September 2023, <https://en.wikipedia.org/w/index.php?title=DNS_rebinding&oldid=1173433859>.

[RFC2136] Vixie, P., Ed., Thomson, S., Rekhter, Y., and J. Bound, "Dynamic Updates in the Domain Name System (DNS UPDATE)", RFC 2136, DOI 10.17487/RFC2136, April 1997, <https://www.rfc-editor.org/info/rfc2136>.

[RFC3587] Hinden, R., Deering, S., and E. Nordmark, "IPv6 Global Unicast Address Format", RFC 3587, DOI 10.17487/RFC3587, August 2003, <https://www.rfc-editor.org/info/rfc3587>.

[RFC3927] Cheshire, S., Aboba, B., and E. Guttman, "Dynamic Configuration of IPv4 Link-Local Addresses", RFC 3927, DOI 10.17487/RFC3927, May 2005, <https://www.rfc-editor.org/info/rfc3927>.

[RFC4192] Baker, F., Lear, E., and R. Droms, "Procedures for Renumbering an IPv6 Network without a Flag Day", RFC 4192, DOI 10.17487/RFC4192, September 2005, <https://www.rfc-editor.org/info/rfc4192>.

[RFC4193] Hinden, R. and B. Haberman, "Unique Local IPv6 Unicast Addresses", RFC 4193, DOI 10.17487/RFC4193, October 2005, <https://www.rfc-editor.org/info/rfc4193>.

[RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing Architecture", RFC 4291, DOI 10.17487/RFC4291, February 2006, <https://www.rfc-editor.org/info/rfc4291>.

[RFC5011] StJohns, M., "Automated Updates of DNS Security (DNSSEC) Trust Anchors", STD 74, RFC 5011, DOI 10.17487/RFC5011, September 2007, <https://www.rfc-editor.org/info/rfc5011>.

[RFC6092] Woodyatt, J., Ed., "Recommended Simple Security Capabilities in Customer Premises Equipment (CPE) for Providing Residential IPv6 Internet Service", RFC 6092, DOI 10.17487/RFC6092, January 2011, <https://www.rfc-editor.org/info/rfc6092>.

[RFC6749] Hardt, D., Ed., "The OAuth 2.0 Authorization Framework", RFC 6749, DOI 10.17487/RFC6749, October 2012, <https://www.rfc-editor.org/info/rfc6749>.

[RFC6762] Cheshire, S. and M. Krochmal, "Multicast DNS", RFC 6762, DOI 10.17487/RFC6762, February 2013, <https://www.rfc-editor.org/info/rfc6762>.

[RFC6887] Wing, D., Ed., Cheshire, S., Boucadair, M., Penno, R., and P. Selkirk, "Port Control Protocol (PCP)", RFC 6887, DOI 10.17487/RFC6887, April 2013, <https://www.rfc-editor.org/info/rfc6887>.

[RFC7010] Liu, B., Jiang, S., Carpenter, B., Venaas, S., and W. George, "IPv6 Site Renumbering Gap Analysis", RFC 7010, DOI 10.17487/RFC7010, September 2013, <https://www.rfc-editor.org/info/rfc7010>.

[RFC7084] Singh, H., Beebee, W., Donley, C., and B. Stark, "Basic Requirements for IPv6 Customer Edge Routers", RFC 7084, DOI 10.17487/RFC7084, November 2013, <https://www.rfc-editor.org/info/rfc7084>.

[RFC7368] Chown, T., Ed., Arkko, J., Brandt, A., Troan, O., and J. Weil, "IPv6 Home Networking Architecture Principles", RFC 7368, DOI 10.17487/RFC7368, October 2014, <https://www.rfc-editor.org/info/rfc7368>.

[RFC7404] Behringer, M. and E. Vyncke, "Using Only Link-Local Addressing inside an IPv6 Network", RFC 7404, DOI 10.17487/RFC7404, November 2014, <https://www.rfc-editor.org/info/rfc7404>.

[RFC7707] Gont, F. and T. Chown, "Network Reconnaissance in IPv6 Networks", RFC 7707, DOI 10.17487/RFC7707, March 2016, <https://www.rfc-editor.org/info/rfc7707>.

[RFC7788] Stenberg, M., Barth, S., and P. Pfister, "Home Networking Control Protocol", RFC 7788, DOI 10.17487/RFC7788, April 2016, <https://www.rfc-editor.org/info/rfc7788>.

[RFC8094] Reddy, T., Wing, D., and P. Patil, "DNS over Datagram Transport Layer Security (DTLS)", RFC 8094, DOI 10.17487/RFC8094, February 2017, <https://www.rfc-editor.org/info/rfc8094>.

[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>.

[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>.

[RFC8501] Howard, L., "Reverse DNS in IPv6 for Internet Service Providers", RFC 8501, DOI 10.17487/RFC8501, November 2018, <https://www.rfc-editor.org/info/rfc8501>.

[RFC8555] Barnes, R., Hoffman-Andrews, J., McCarney, D., and J. Kasten, "Automatic Certificate Management Environment (ACME)", RFC 8555, DOI 10.17487/RFC8555, March 2019, <https://www.rfc-editor.org/info/rfc8555>.

[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, <https://www.rfc-editor.org/info/rfc8610>.

[RFC8672] Sheffer, Y. and D. Migault, "TLS Server Identity Pinning with Tickets", RFC 8672, DOI 10.17487/RFC8672, October 2019, <https://www.rfc-editor.org/info/rfc8672>.

[RFC8978] Gont, F., ลฝorลพ, J., and R. Patterson, "Reaction of IPv6 Stateless Address Autoconfiguration (SLAAC) to Flash-Renumbering Events", RFC 8978, DOI 10.17487/RFC8978, March 2021, <https://www.rfc-editor.org/info/rfc8978>.

[RFC8981] Gont, F., Krishnan, S., Narten, T., and R. Draves, "Temporary Address Extensions for Stateless Address Autoconfiguration in IPv6", RFC 8981, DOI 10.17487/RFC8981, February 2021, <https://www.rfc-editor.org/info/rfc8981>.

[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>.

[RFC9276] Hardaker, W. and V. Dukhovni, "Guidance for NSEC3 Parameter Settings", BCP 236, RFC 9276, DOI 10.17487/RFC9276, August 2022, <https://www.rfc-editor.org/info/rfc9276>.

[RFC9527] Migault, D., Weber, R., and T. Mrugalski, "DHCPv6 Options for the Homenet Naming Authority", RFC 9527, DOI 10.17487/RFC9527, January 2024, <https://www.rfc-editor.org/info/rfc9527>.

[ZONEENUM] Wang, Z., Xiao, L., and R. Wang, "An efficient DNSSEC zone enumeration algorithm", DOI 10.2495/MIIT130591, April 2014, <https://doi.org/10.2495/MIIT130591>.


Appendix A. HNA Channel Configurations ๐ŸŒธ

A.1. Public Homenet Zone ๐Ÿก

This doc doesn't cover how the HNA gets set up with a trusted relationship to the Distribution Manager for the forward zone. That's a different story ๐Ÿ™ˆ

This section spells out what needs to get loaded into the HNA, and it basically works as a requirements list for the mechanisms. Here's the vibe check:

  • the Registered Domain (e.g., myhome.example);
  • the contact information for the DM, including the DNS name (the fully qualified domain name (FQDN)), possibly the IP literal, and a certificate (or anchor) to be used to authenticate the service;
  • the DM transport protocol and port (the default is DNS over TLS, on port 853); and
  • the HNA credentials used by the DM for its authentication.

The HNA is going to need to pick an IP address for the Synchronization Channel. Usually that's the WAN address of the CPE, but if a home has multiple ISPs (and multiple border routers), it could be an IPv6 LAN address instead. Section 6.5.3 has the details on this, when the NS and A or AAAA RRsets get communicated. ๐Ÿ’…

The above parameters MUST be provisioned for ISP-specific reverse zones. [RFC9527] has one example of how to do that ๐Ÿซถ ISP-specific forward zones MAY also be provisioned using [RFC9527], but zones that aren't tied to a specific ISP (like ones run by a DNS provider) must be provisioned through other means. Not everything can come from the ISP, bestie.

Same energy if the HNA comes from a registrar: it may already be handed to the end user preconfigured. โœจ

If there's no pre-established relationship, the end user may enter these pieces of information by hand. To make that less painful for them, the following scheme may be implemented. ๐Ÿงš

The HNA may show the end user a web interface where they can pick their Registered Homenet Domain or their registrar, maybe from a preselected list. Once the registrar is chosen, the HNA redirects the end user to that registrar to get an access token. That token lets the HNA pull the DM parameters tied to the Registered Domain, and those parameters include the credentials the HNA uses to set up the Control and Synchronization Channels. Main character setup, honestly ๐Ÿ‘‘

Such an architecture cuts down on the steps the end user has to take to configure the HNA. Iconic, periodt ๐Ÿ’–

Appendix B. Information Model for Outsourced Information โœจ

Okay bestie, this section is so important ๐Ÿฅบ It specifies an optional format for the set of parameters the HNA needs to set up the naming architecture of this document ๐Ÿ’–

So picture this: a home router wasn't provisioned by the manufacturer (for when the forward zones come from the maker) or by the ISP (when the ISP is the one offering this service) ๐Ÿ™ˆ Then the home user/owner has to configure these settings themselves through an administrative interface. Yikes.

That's why defining a standard format (in JSON) for this config info is such a glow-up โœจ The user/owner may be able to copy and paste a configuration blob from the service provider right into the HNA's administrative interface. Easy peasy ๐ŸŽ€

This format may also be the basis for a future OAuth 2.0 [RFC6749] flow that could do the setup automatically. Iykyk, automation is always iconic ๐Ÿค–

The HNA needs to be configured with the following parameters, described using the Concise Data Definition Language (CDDL) [RFC8610]. These parameters are what establish a secure channel between the HNA and the DM, and they also specify the DNS zone that's in scope for the communication ๐Ÿ”

hna-configuration = {
  "registered_domain" : tstr,
  "dm"                : tstr,
  ? "dm_transport" : "DoT"
  ? "dm_port"        : uint,
  ? "dm_acl"         : hna-acl / [ +hna-acl ]
  ? "hna_auth_method": hna-auth-method
  ? "hna_certificate": tstr
}

hna-acl          = tstr
hna-auth-method  /= "certificate"

Here's an example, bestie ๐Ÿ‘€

{
  "registered_domain" : "n8d234f.r.example.net",
  "dm"                : "2001:db8:1234:111:222::2",
  "dm_transport"      : "DoT",
  "dm_port"           : 4433,
  "dm_acl"            : "2001:db8:1f15:62e::/64"
                   or [ "2001:db8:1f15:62e::/64", ... ]
  "hna_auth_method"   : "certificate",
  "hna_certificate"   : "-----BEGIN CERTIFICATE-----\nMIIDTjCCFGy..",
}

Now let's go through each field, because each one matters ๐Ÿ’…

Registered Homenet Domain (registered_domain): This is the Domain Name of the zone. Multiple Registered Homenet Domains may be provided, and that generates the creation of multiple Public Homenet Zones. This parameter is mandatory, so no skipping it ๐Ÿ˜ญ

Distribution Manager notification address (dm): These are the associated FQDNs or IP addresses of the DM that DNS Notifies should be sent to. This parameter is mandatory. IP addresses are optional, and the FQDN is sufficient and preferred โœจ If there are concerns about the security of the name to IP translation, then DNSSEC should be employed ๐Ÿ”ฅ

As the session between the HNA and the DM is authenticated with TLS, using names is easier ๐Ÿซถ

Also, certificates are more commonly issued for FQDNs than for IP addresses, so it's preferred to use names and authenticate the name of the DM during the TLS session establishment. Main character energy ๐Ÿ‘‘

Supported Transport (dm_transport): This is the transport that carries the DNS exchanges between the HNA and the DM. The typical value is "DoT", but it may be extended in the future with "DoH" or "DoQ", for example. This parameter is optional, and the HNA uses DoT by default ๐Ÿฆ‹

Distribution Manager Port (dm_port): This indicates the port used by the DM. This parameter is optional, and the default value is provided by the Supported Transport. In the future, an additional transport may not have a default port. In that case, either a default port needs to be defined, or this parameter becomes mandatory ๐Ÿงš

Heads up: the Synchronization Channel doesn't get ports defined by HNA. This isn't expected to be part of the configuration. Instead, it's negotiated through the Configuration Channel. Right now, the Configuration Channel doesn't provide this and limits its agility to a dedicated IP address. If that agility is needed in the future, additional exchanges will need to be defined ๐Ÿšจ

Authentication Method ("hna_auth_method"): This is how the HNA authenticates itself to the DM within the TLS connection(s). The authentication method can typically be "certificate", "psk", or "none". This parameter is optional, and the Authentication Method is "certificate" by default ๐Ÿ”

Authentication data ("hna_certificate", "hna_key"): This is the certificate chain used to authenticate the HNA. This parameter is optional. When it isn't specified, a self-signed certificate is used ๐ŸŒธ

Distribution Manager AXFR permission netmask (dm_acl): This is the subnet from which the CPE should accept SOA queries and AXFR requests. A subnet is used in the case where the DOI consists of a number of different systems. An array of addresses is permitted too. This parameter is optional. If it's unspecified, the CPE uses the IP addresses provided by the dm parameter. That works either directly when dm indicates the IP address(es), or via the DNS or DNSSEC resolution when dm indicates an FQDN ๐Ÿ’–

For forward zones, the relationship between the HNA and the forward zone provider may come from a few different transactions:

  1. The forward zone outsourcing may be provided by the maker of the Homenet router. In this case, the identity and authorization could be built into the device at manufacturer provisioning time. The device would need to be provisioned with a device-unique credential, and it's likely that the Registered Homenet Domain would be derived from a public attribute of the device, such as a serial number (see Appendix C or [HOMEROUTER-PROVISION] for more details) ๐Ÿญ
  2. The forward zone outsourcing may be provided by the ISP. In this case, the use of [RFC9527] to provide the credentials is appropriate ๐Ÿ“ก
  3. The forward zone may be outsourced to a third party, such as a domain registrar. In this case, the JSON-serialized YANG data model described in this section is appropriate, since it can easily be copy and pasted by the user or downloaded as part of a web transaction ๐Ÿ›’

For reverse zones, the relationship is always with the upstream ISP (although there may be more than one), so [RFC9527] always applies ๐Ÿ”„

Here's an abridged example of the set of data that represents the needed configuration parameters for outsourcing โœจ


Appendix C. Example: A Manufacturer-Provisioned HNA Product Flow ๐Ÿญ

Okay, this scenario is so cute ๐Ÿฅน It's one where a Homenet router device manufacturer decides to offer DNS hosting as a value add ๐Ÿ’…

[HOMEROUTER-PROVISION] describes a process for a home router credential provisioning system. The outline of it is that near the end of manufacturing, as part of the firmware loading, the manufacturer provisions a private key and certificate into the device ๐Ÿ”‘

On top of having an asymmetric credential known to the manufacturer, the device has also been provisioned with an agreed-upon name. In the example in the above document, the name n8d234f.r.example.net has already been allocated and confirmed with the manufacturer ๐ŸŽ€

The HNA can use that domain for itself. It's not very pretty or personal, but if the owner wants a better name, they can arrange one ๐ŸŒˆ

The configuration would look like this:

{
  "dm" : "2001:db8:1234:111:222::2",
  "dm_acl"    : "2001:db8:1234:111:222::/64",
  "dm_ctrl"   : "manufacturer.example.net",
  "dm_port"   : "4433",
  "ns_list"   : [ "ns1.publicdns.example", "ns2.publicdns.example"],
  "zone"      : "n8d234f.r.example.net",
  "auth_method" : "certificate",
  "hna_certificate":"-----BEGIN CERTIFICATE-----\nMIIDTjCCFGy....",
}

The dm_ctrl and dm_port values would be built into the firmware ๐Ÿงš


Acknowledgments ๐Ÿซถ

The authors wish to thank Philippe Lemordant for his contributions to the earlier draft versions of this document. Ole Troan gets a shout-out for pointing out issues with the IPv6-routed home concept and placing the scope of this document in a wider picture ๐ŸŒ Mark Townsley gets love for encouragement and for injecting a healthy debate on the merits of the idea ๐Ÿ’œ Ulrik de Bie is thanked for providing alternative solutions ๐Ÿ’ก Paul Mockapetris, Christian Jacquenet, Francis Dupont, and Ludovic Eschard are thanked for their remarks on HNA and low power devices ๐Ÿ”‹ Olafur Gudmundsson is thanked for clarifying the DNSSEC capabilities of small devices ๐Ÿ” Simon Kelley is thanked for feedback as a dnsmasq implementer ๐Ÿฃ Andrew Sullivan, Mark Andrew, Ted Lemon, Mikael Abrahamson, Stephen Farrell, and Ray Bellis are thanked for their feedback on handling different views, and for clarifying the impact of outsourcing the zone-signing operation outside the HNA ๐Ÿ™Œ Finally, Mark Andrew and Peter Koch are thanked for clarifying the renumbering ๐Ÿ”„

The authors would like to thank Kiran Makhijani for her in-depth review, which helped shape the final version of this document ๐Ÿ’–

The authors would also like to thank our Area Director ร‰ric Vyncke for his constant support and for pushing the document through the IESG process ๐Ÿ‘‘ Many thanks as well to the reviewers from various directorates, including Anthony Somerset, Geoff Huston, Tim Chown, Tim Wicinski, Matt Brown, Darrel Miller, and Christer Holmberg ๐ŸŒธ

Contributors ๐ŸŽ€

The coauthors would like to thank Chris Griffiths and Wouter Cloetens for their significant contributions to the earlier draft versions of this document ๐Ÿฆ‹

Authors' Addresses ๐Ÿ’Œ

Daniel Migault
Ericsson
8275 Trans Canada Route
Saint Laurent QC 4S 0B6
Canada
Email: daniel.migault@ericsson.com
Ralf Weber
Nominum
2000 Seaport Blvd.
Redwood City, CA 94063
United States of America
Email: ralf.weber@nominum.com
Michael Richardson
Sandelman Software Works
470 Dawson Avenue
Ottawa ON K1Z 5V7
Canada
Email: mcr+ietf@sandelman.ca
Ray Hunter
Globis Consulting BV
Weegschaalstraat 3
5632CW Eindhoven
Netherlands
Email: v6ops@globis.net

And that's a wrap on the whole RFC, bestie ๐ŸŒˆโœจ๐Ÿ’–

๐Ÿ“ฆ where this page comes from