RFC 7368
IPv6 Home Networking Architecture Principles
RFC 7368: IPv6 Home Networking Architecture Principles ๐กโจ
okay bestie, this is the front matter, so it's all the "who made this and what is it" stuff ๐
- Request for Comments: 7368
- Category: Informational ๐ (published for information, not a Standards Track spec)
- ISSN: 2070-1721
- Date: October 2014 ๐๏ธ
- Editor: T. Chown, Ed. (University of Southampton) ๐
- Authors: J. Arkko (Ericsson), A. Brandt (Sigma Designs), O. Troan (Cisco Systems, Inc.), J. Weil (Time Warner Cable)
- Obsoletes / Updates: the header doesn't list anything it obsoletes or updates ๐
Abstract ๐ธ
so the vibe here is that home networks keep getting more devices and more internal routing, and this doc is basically the blueprint for an IPv6-based home network ๐ ๐ง
It describes where residential home networks are heading, with more and more devices and a growing trend toward more internal routing. The goal is to lay out a general architecture for IPv6-based home networking, including the principles, things to consider, and requirements that come with it. It quickly calls out what IPv6 changes for home networking, walks through the parts of the architecture, and suggests how standard IPv6 mechanisms and addressing can be used at home. It also admits that some extra functionality will need specific protocol extensions ๐ง. The big assumption is that the home network isn't actively managed and runs either IPv6-only or dual-stack. There's nothing in here about the IPv4 side of things ๐ โโ๏ธ
Status of This Memo ๐
This document isn't an Internet Standards Track specification. It's published for informational purposes ๐
It's a product of the Internet Engineering Task Force (IETF), and it represents the consensus of the IETF community. It went through public review and got approved for publication by the Internet Engineering Steering Group (IESG). ngl, not every IESG-approved doc is going to be a candidate for any level of Internet Standard, so check Section 2 of RFC 5741 for the details ๐ค
For the current status, any errata, and how to send feedback, check http://www.rfc-editor.org/info/rfc7368 ๐
Copyright Notice ยฉ๏ธ
Copyright (c) 2014 IETF Trust and the persons identified as the document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) as they're in effect on the publication date. Read these carefully, because they spell out your rights and restrictions for this document ๐งพ Code components pulled out of this document must include Simplified BSD License text, as described in Section 4.e of the Trust Legal Provisions, and they come without warranty, as described in the Simplified BSD License ๐
Table of Contents ๐
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1. Terminology and Abbreviations . . . . . . . . . . . . . . 5
2. Effects of IPv6 on Home Networking . . . . . . . . . . . . . 6
2.1. Multiple Subnets and Routers . . . . . . . . . . . . . . 7
2.2. Global Addressability and Elimination of NAT . . . . . . 8
2.3. Multi-Addressing of Devices . . . . . . . . . . . . . . . 8
2.4. Unique Local Addresses (ULAs) . . . . . . . . . . . . . . 9
2.5. Avoiding Manual Configuration of IP Addresses . . . . . . 10
2.6. IPv6-Only Operation . . . . . . . . . . . . . . . . . . . 11
3. Homenet Architecture Principles . . . . . . . . . . . . . . . 11
3.1. General Principles . . . . . . . . . . . . . . . . . . . 12
3.1.1. Reuse Existing Protocols . . . . . . . . . . . . . . 12
3.1.2. Minimise Changes to Hosts and Routers . . . . . . . . 13
3.2. Homenet Topology . . . . . . . . . . . . . . . . . . . . 13
3.2.1. Supporting Arbitrary Topologies . . . . . . . . . . . 13
3.2.2. Network Topology Models . . . . . . . . . . . . . . . 14
3.2.3. Dual-Stack Topologies . . . . . . . . . . . . . . . . 18
3.2.4. Multihoming . . . . . . . . . . . . . . . . . . . . . 19
3.2.5. Mobility Support . . . . . . . . . . . . . . . . . . 20
3.3. A Self-Organising Network . . . . . . . . . . . . . . . . 21
3.3.1. Differentiating Neighbouring Homenets . . . . . . . . 21
3.3.2. Largest Practical Subnets . . . . . . . . . . . . . . 21
3.3.3. Handling Varying Link Technologies . . . . . . . . . 22
3.3.4. Homenet Realms and Borders . . . . . . . . . . . . . 22
3.3.5. Configuration Information from the ISP . . . . . . . 23
3.4. Homenet Addressing . . . . . . . . . . . . . . . . . . . 24
3.4.1. Use of ISP-Delegated IPv6 Prefixes . . . . . . . . . 24
3.4.2. Stable Internal IP Addresses . . . . . . . . . . . . 26
3.4.3. Internal Prefix Delegation . . . . . . . . . . . . . 27
3.4.4. Coordination of Configuration Information . . . . . . 28
3.4.5. Privacy . . . . . . . . . . . . . . . . . . . . . . . 28
3.5. Routing Functionality . . . . . . . . . . . . . . . . . . 28
3.5.1. Unicast Routing within the Homenet . . . . . . . . . 30
3.5.2. Unicast Routing at the Homenet Border . . . . . . . . 31
3.5.3. Multicast Support . . . . . . . . . . . . . . . . . . 31
3.6. Security . . . . . . . . . . . . . . . . . . . . . . . . 32
3.6.1. Addressability vs. Reachability . . . . . . . . . . . 32
3.6.2. Filtering at Borders . . . . . . . . . . . . . . . . 33
3.6.3. Partial Effectiveness of NAT and Firewalls . . . . . 34
3.6.4. Exfiltration Concerns . . . . . . . . . . . . . . . . 34
3.6.5. Device Capabilities . . . . . . . . . . . . . . . . . 34
3.6.6. ULAs as a Hint of Connection Origin . . . . . . . . . 35
3.7. Naming and Service Discovery . . . . . . . . . . . . . . 35
3.7.1. Discovering Services . . . . . . . . . . . . . . . . 35
3.7.2. Assigning Names to Devices . . . . . . . . . . . . . 36
3.7.3. The Homenet Name Service . . . . . . . . . . . . . . 37
3.7.4. Name Spaces . . . . . . . . . . . . . . . . . . . . . 38
3.7.5. Independent Operation . . . . . . . . . . . . . . . . 40
3.7.6. Considerations for LLNs . . . . . . . . . . . . . . . 40
3.7.7. DNS Resolver Discovery . . . . . . . . . . . . . . . 41
3.7.8. Devices Roaming to/from the Homenet . . . . . . . . . 41
3.8. Other Considerations . . . . . . . . . . . . . . . . . . 41
3.8.1. Quality of Service . . . . . . . . . . . . . . . . . 41
3.8.2. Operations and Management . . . . . . . . . . . . . . 42
3.9. Implementing the Architecture on IPv6 . . . . . . . . . . 43
4. Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . 44
5. Security Considerations . . . . . . . . . . . . . . . . . . . 44
6. References . . . . . . . . . . . . . . . . . . . . . . . . . 44
6.1. Normative References . . . . . . . . . . . . . . . . . . 44
6.2. Informative References . . . . . . . . . . . . . . . . . 44
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 48
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 49
part 1 of 12 done, the real architecture starts next ๐๐ stay tuned, bestie ๐ง
1. Introduction โจ
okay bestie, let's get into it ๐ this doc is all about homenet tech, which is the stuff inside your house's network as more and more devices get connected and the internal routing gets way more complicated. there's a growing trend of networking tech showing up in a wild range of devices and media, and that scale and diversity sets requirements on IETF protocols ๐ some of those requirements are about bringing in IPv6, and others are about specialised networks for home automation and sensors ๐ธ
so right now, most home networks are pretty simple single subnet setups that basically run just IPv4 ๐ there might be some IPv6 traffic floating around, e.g., for service discovery, but the ISP provisions the homenet as an IPv4 network. these networks also usually use stuff that should be avoided, like private [RFC1918] addressing with (cascaded) Network Address Translation (NAT) [RFC3022], or they need an expert to set them up. not it ๐ญ
emerging IPv6-capable homenets are a whole different vibe ๐ฆ they're very likely to have multiple internal subnets, e.g., for private and guest networks, heterogeneous link layers, and smart grid components, and there's enough address space for every device to get a globally unique address. this means internal routing functionality is required, and the homenet's ISP has to delegate a big enough address block so each subnet in the home network can get its own prefix ๐
it's not practical to expect home users to configure their networks, so the assumption here is that the homenet is as far as possible self-organising and self-configuring, i.e., it should function without proactive management by the residential user ๐ซถ
the architectural constructs in this document focus on the problems to be solved when introducing IPv6, with an eye towards a better result than what we have today with IPv4 โจ they're also aiming for a more consistent solution that addresses as many of the identified requirements as possible. this doc aims to provide the basis and guiding principles for how standard IPv6 mechanisms and addressing [RFC2460] [RFC4291] can be employed in home networking, while coexisting with existing IPv4 mechanisms. in emerging dual-stack home networks, it is vital that introducing IPv6 does not adversely affect IPv4 operation ๐ we assume the IPv4 network architecture in home networks is what it is and cannot be modified by new recommendations. this document does not discuss how IPv4 home networks provision or deliver support for multiple subnets. it should not be assumed that any future new functionality created with IPv6 in mind will be backward compatible to include IPv4 support. further, future deployments, or specific subnets within an otherwise dual-stack home network, may be IPv6-only, in which case considerations for IPv4 impact would not apply ๐ง
this doc proposes a baseline homenet architecture, using protocols and implementations that are as far as possible proven and robust ๐ the scope is primarily the network-layer technologies that provide the basic functionality to enable addressing, connectivity, routing, naming, and service discovery. while it may, for example, state that homenet components must be simple to deploy and use, it does not discuss specific user interfaces, nor does it discuss specific physical, wireless, or data-link-layer considerations. likewise, we also don't specify the whole design of a homenet router from top to bottom; rather, we focus on the Layer 3 aspects. this means Layer 2 is largely out of scope, we're assuming a data-link layer that supports IPv6 is present, and we react accordingly. any IPv6-over-Foo definitions occur elsewhere ๐
[RFC7084], which has obsoleted [RFC6204], defines basic requirements for Customer Edge (CE) routers. the update includes the definition of requirements for specific transition tools on the CE router, specifically Dual-Stack Lite (DS-Lite) [RFC6333] and IPv6 Rapid Deployment on IPv4 Infrastructures (6rd) [RFC5969]. such detailed specification of CE router devices is considered out of scope of this architecture document, and we assume that any required update of the CE router device specification as a result of adopting this architecture will be handled as separate and specific updates to these existing documents. further, the scope of this text is the internal homenet, so specific features on the WAN side of the CE router are out of scope for this text ๐
1.1. Terminology and Abbreviations ๐
okay so here are the terms we use all over the doc, no cap ๐
- Border: a point, typically resident on a router, between two networks, e.g., between the main internal homenet and a guest network. this defines a point(s) at which filtering and forwarding policies for different types of traffic may be applied. ๐ง
- CE router: Customer Edge router. a border router intended for use in a homenet. a CE router connects the homenet to a service provider network. ๐
- FQDN: Fully Qualified Domain Name. a globally unique name. ๐
- Guest network: a part of the home network intended for use by visitors or guests to the home(net). devices on the guest network may typically not see or be able to use all services in the home(net). ๐โโ๏ธ
- Homenet: a home network, comprising host and router equipment, with one or more CE routers providing connectivity to a service provider network(s). ๐
- ISP: Internet Service Provider. an entity that provides access to the Internet. in this document, a service provider specifically offers Internet access using IPv6 and may also offer IPv4 Internet access. the service provider can provide such access over a variety of different transport methods such as DSL, cable, wireless, and others. ๐ก
- LLN: Low-power and Lossy Network. ๐ชซ
- LQDN: Locally Qualified Domain Name. a name local to the homenet. ๐ก
- NAT: Network Address Translation. typically referring to IPv4 Network Address Port Translation (NAPT) [RFC3022]. ๐
- NPTv6: IPv6-to-IPv6 Network Prefix Translation [RFC6296]. ๐ช
- PCP: Port Control Protocol [RFC6887]. ๐
- Realm: a network delimited by a defined border. a guest network within a homenet may form one realm. ๐ฏ
- 'Simple Security': defined in [RFC4864] and expanded further in [RFC6092]; describes recommended perimeter security capabilities for IPv6 networks. ๐
- ULA: IPv6 Unique Local Address [RFC4193]. ๐ซง
- VM: Virtual Machine. ๐ป
2. Effects of IPv6 on Home Networking ๐
okay so IPv6 looks a lot like IPv4, but there are some notable differences in how it's typically deployed โจ it changes address allocation principles, making multi-addressing the norm, and thanks to the vastly increased address space, it allows globally unique IP addresses for all devices in a home network ๐คฏ this section gives an overview of some of the key implications of bringing IPv6 into home networking, which are both promising and problematic at the same time ๐
2.1. Multiple Subnets and Routers ๐๏ธ
simple Layer 3 topologies with as few subnets as possible are preferred in home networks, BUT dedicated (routed) subnets are still necessary for a bunch of reasons ๐ for instance, a super common feature in modern home routers is supporting both guest and private network subnets. there may also be a need to separate home automation or corporate extension LANs (like when a home worker extends their corporate network into the house using a virtual private network, usually presented as one port on an Ethernet device) from the main Internet access network ๐ผ. or different subnets may be tied to parts of the homenet with different routing and security policies ๐. further, link-layer networking tech is poised to get more heterogeneous as networks start using both traditional Ethernet and link layers designed for Low-power and Lossy Networks (LLNs), like the ones used for certain sensor devices ๐ก๏ธ. so constraining the flow of certain traffic from Ethernet links to links of much lower capacity becomes an important topic ๐ฆ
the introduction of IPv6 makes it possible for every home network to be delegated enough address space from its ISP to provision globally unique prefixes for each subnet in the home ๐ while the number of addresses in a standard /64 IPv6 prefix is practically unlimited, the number of prefixes available for assignment to the home network is not ๐ฎโ๐จ so the growth inhibitor for the home network shifts from the number of addresses to the number of prefixes the provider offers. this topic is discussed in BCP 157 [RFC6177], which recommends that "end sites always be able to obtain a reasonable amount of address space for their actual and planned usage." ๐
the addition of routing between subnets raises a few issues ๐ one is a method by which prefixes can be efficiently allocated to each subnet, without user intervention. another is how to extend mechanisms like zero-configuration service discovery, which currently only work within a single subnet using link-local traffic. in a typical IPv4 home network there's only one subnet, so those mechanisms normally work as expected ๐ for multi-subnet IPv6 home networks, there are two broad choices to make these protocols work across the entire homenet: extend existing protocols to work across that scope, or introduce proxies for existing link-layer protocols ๐งฉ. this topic is discussed in Section 3.7 ๐ฆ
2.2. Global Addressability and Elimination of NAT ๐
Okay so, IPv6 bringing back direct end-to-end communication on the Internet is an incredible opportunity โจ for innovation and simpler network operation. But ngl, it's also kind of a concern, because it can potentially expose the nodes in your internal networks to unwanted and possibly malicious traffic from the Internet ๐ญ
When devices and applications can talk directly to each other because they have globally unique addresses, there may be an expectation of better host security to make up for it. Here's the tea though: many devices may (for example) ship with default settings that make them super easy to compromise by external attackers if they're globally accessible ๐. Or they may just not be robust by design, because people assumed those devices would only ever be used on private networks, or because the devices don't have the computing power to apply the necessary security methods. Plus, the upgrade cycle for devices (or their firmware) may be slow and/or lack auto-update mechanisms. Not it ๐.
So it is important to tell apart addressability and reachability ๐. IPv6 gives you global addressability through globally unique addresses in the home, but whether devices are globally reachable would depend on any firewall or filtering configuration. It would not depend on the presence or use of NAT, which is how it usually works with IPv4. In this respect, IPv6 networks may or may not have filters applied at their borders to control that traffic, i.e., at the homenet CE router ๐ง. [RFC4864] and [RFC6092] talk about such filtering and the merits of 'default allow' against 'default deny' policies for external traffic initiated into a homenet. We'll get into this more in Section 3.6.1 ๐ .
2.3. Multi-Addressing of Devices ๐ฆ
In an IPv6 network, devices will often pick up multiple addresses ๐. Typically they get at least a link-local address and one or more globally unique addresses (GUAs). If a homenet is multihomed, a device would typically receive a GUA from within the delegated prefix from each upstream ISP. Devices may also have an IPv4 address if the network is dual stack, an IPv6 Unique Local Address (ULA) [RFC4193] (more on that below), and one or more IPv6 privacy addresses [RFC4941].
So it should be considered the norm for devices on IPv6 home networks to be multi-addressed ๐, and to need to make appropriate address selection decisions for the candidate source and destination address pairs for any given connection. In multihoming scenarios, nodes will be configured with one address from each upstream ISP prefix. In those cases, upstream ingress filtering as described in BCP 38 [RFC2827] means multi-addressed nodes have to select the correct source address for the corresponding uplink ๐ฅ. Default address selection for IPv6 [RFC6724] is the solution here, but the challenge is that the node may not have the information it needs to make that decision based on addresses alone ๐ฉ. We dig into this challenge in Section 3.2.4 ๐ซถ.
2.4. Unique Local Addresses (ULAs) ๐ธ
[RFC4193] defines ULAs for IPv6, which may be used to address devices within the scope of a single site. Support for ULAs for IPv6 CE routers is described in [RFC7084]. A home network running IPv6 should deploy ULAs alongside its globally unique prefix(es), so devices on different subnets can have stable communication within the homenet. This matters because the externally allocated globally unique prefix may change over time, e.g., due to renumbering within the subscriber's ISP, or when external connectivity is temporarily unavailable ๐. A homenet using provider-assigned global addresses is exposed to its ISP renumbering the network to a much larger degree than before. With IPv4, NAT isolated the user against ISP renumbering to some extent, so this is a real glow-up in the wrong direction ๐ญ.
While setting up a network, there may be a period with no external connectivity, and in that case ULAs would be required for inter-subnet communication โญ. If home automation networks are being set up in a new home or deployment (as early as during construction of the home), those networks will likely need to use their own /48 ULA prefix. Depending on circumstances beyond the control of the homenet's owner, it may be impossible to renumber the ULA used by the home automation network, so routing between ULA /48s may be required ๐ง. Also, some devices, particularly constrained devices, may have only a ULA (in addition to a link-local), while others may have both a GUA and a ULA.
Note that unlike private IPv4 space as described in RFC 1918, using ULAs does not imply using an IPv6 equivalent of a traditional IPv4 NAT [RFC3022] or NPTv6 prefix-based NAT [RFC6296]. When an IPv6 node in a homenet has both a ULA and a globally unique IPv6 address, it should only use its ULA address internally, and use its additional globally unique IPv6 address as a source address for external communications. This should be the natural behaviour given support for default address selection for IPv6 [RFC6724] ๐. By using globally unique addresses between hosts and devices in remote networks, we avoid the architectural cost and complexity (particularly for applications) of NAT or NPTv6 translation. So neither IPv6 NAT nor NPTv6 is recommended for use in the homenet architecture ๐ โโ๏ธ. Further, the homenet border router(s) should filter packets with ULA source/destination addresses, as discussed in Section 3.4.2 ๐ก๏ธ.
Devices in a homenet may be given only a ULA as a way to restrict reachability from outside the homenet ๐. ULAs can be used by default for devices that, without additional configuration (e.g., via a web interface), would only offer services to the internal network. For example, a printer might only accept incoming connections on a ULA until it's configured to be globally reachable. At that point it acquires a global IPv6 address and may be advertised via a global name space ๐จ๏ธโจ.
When both a ULA and a global prefix are in use, the ULA source address is used to communicate with ULA destination addresses when appropriate. That's when the ULA source and destination lie within the /48 ULA prefix(es) known to be used within the same homenet ๐. In cases where multiple /48 ULA prefixes are in use within a single homenet (perhaps because multiple homenet routers each independently auto-generate a /48 ULA prefix and then share prefix/routing information), using a ULA source address and a ULA destination address from two disjoint internal ULA prefixes is preferable to using GUAs ๐ .
A homenet should operate correctly with two or more /48 ULAs enabled. Still, a mechanism for creating and using a single /48 ULA prefix is desirable for addressing consistency and policy enforcement ๐ง.
Now, the counter argument to using ULAs: it's undesirable to aggressively deprecate global prefixes for temporary loss of connectivity. So for a host to lose its global address, there would have to be a connection breakage longer than the lease period. Even then, deprecating prefixes when there is no connectivity may not be advisable ๐ค. However, it is assumed in this architecture that homenets should support and use ULAs ๐ซถ.
2.5. Avoiding Manual Configuration of IP Addresses ๐ โโ๏ธ
Some IPv4 home networking devices expose IPv4 addresses to users, e.g., the IPv4 address of a home IPv4 CE router that may be configured via a web interface. In potentially complex future IPv6 homenets, users should not be expected to enter IPv6 literal addresses into devices or applications ๐ต. These addresses are much longer, and they look totally random to a typical home user. So even for the simplest functions, simple naming and the associated (minimal, and ideally zero configuration) discovery of services are imperative for easy deployment and use of homenet devices and applications ๐.
2.6. IPv6-Only Operation ๐
IPv6-only networking will likely get deployed first in new home network deployments, often called 'greenfield' scenarios ๐ฑ. These are places where there is no existing IPv4 capability, or it may be one element of an otherwise dual-stack network. Running IPv6-only adds extra requirements, e.g., devices need to get configuration information over IPv6 transport (not relying on an IPv4 protocol such as IPv4 DHCP), and devices need to be able to initiate communications to external devices that are IPv4-only ๐ง .
Some specific transition technologies that may be deployed by the homenet's ISP are discussed in [RFC7084]. There are also other functions that may be desirable on the CE router. For example, to access content in the IPv4 Internet, NAT64 [RFC6144] and DNS64 [RFC6145] may be applicable ๐.
The widespread availability of robust solutions to these types of requirements will help speed up the uptake of IPv6-only homenets ๐. The specifics are, however, beyond the scope of this document, especially the functions that reside on the CE router ๐ซง.
3. Homenet Architecture Principles ๐ก
The aim of this text is to outline how to construct advanced IPv6-based home networks involving multiple routers and subnets, using standard IPv6 addressing and protocols [RFC2460] [RFC4291] as the basis ๐. As described in Section 3.1, solutions should as far as possible reuse existing protocols and minimise changes to hosts and routers, but some new protocols or extensions are likely to be required ๐งฉ. In this section, we go over the elements of the proposed home networking architecture, along with the design principles behind them โจ.
In general, home network equipment needs to be able to operate in networks with a range of different properties and topologies. Home users may plug components together in arbitrary ways and expect the resulting network to just work ๐ฅน. Significant manual configuration is rarely, if ever, possible or even desirable, given the knowledge level of typical home users. So the network should, as far as possible, be self-configuring. Configuration by advanced users should not be precluded though ๐ค.
The homenet needs to be able to handle or provision at least the following:
- Routing ๐ฃ๏ธ
- Prefix configuration for routers
- Name resolution
- Service discovery
- Network security ๐
The rest of this document describes the principles by which the homenet architecture may deliver these properties ๐.
3.1. General Principles ๐
There is little that the Internet standards community can do about the physical topologies, or about the need for some networks to be separated at the network layer for policy or link-layer compatibility reasons ๐ซ . However, there is a lot of flexibility in how IP addressing and internetworking mechanisms are used. This text discusses how that flexibility should be used to provide the best user experience and ensure the network can evolve with new applications in the future ๐ฆ. The principles described in this text should be followed when designing homenet protocol solutions ๐.
3.1.1. Reuse Existing Protocols ๐ซถ
okay bestie, so the plan is to use existing protocols to meet home network requirements ๐ . if one needs extending, we extend it. only when no existing protocol is suitable can a new or emerging one come in. that means we can't make any design or architecture choice that would block new or emerging protocols from being used later ๐ฎ
a generally conservative approach is the move โจ, and it gives extra weight to code that's already running and available. for new protocols, evidence that appropriate vendors or development communities are actually committed to implementing them is highly desirable ๐. protocols used should be backward compatible, and forward compatible wherever changes are made ๐
3.1.2. Minimise Changes to Hosts and Routers ๐ฆ
so we want new homenets to be easy to deploy ๐, which means any requirement to change hosts and routers should be kept as small as possible. solutions that improve capability through host or router changes, bit by bit, might be fine though ๐. sometimes changes are unavoidable, like letting a homenet routing protocol configure itself, or supporting routing based on source addresses as well as destination addresses (for better multihoming support, more on that in Section 3.2.4) ๐
3.2. Homenet Topology ๐บ๏ธ
this section looks at homenet topologies and the principles we can use to design an architecture that supports as wide a range of them as possible ๐ง
3.2.1. Supporting Arbitrary Topologies ๐
ideally there are no built-in assumptions about the topology of a home network, because users are capable of connecting their devices in 'ingenious' ways ๐ญ. so arbitrary topologies and arbitrary routing will need to be supported ๐ซ . if that's not possible, the failure mode for when a user makes a mistake should at least be as robust as it can be. for example, a certain part of the infrastructure gets deactivated so the rest can keep working โจ. in those cases, ideally the user gets some useful indication of the failure they hit ๐ก
there should be no topology scenarios that cause a loss of connectivity, except when the user creates a physical island within the topology ๐๏ธ. some potentially pathological setups include bridging ports of a router together, but the router can detect and handle that case ๐ค. loops in a routed topology are actually good, since they offer redundancy ๐. topologies with potential bridging loops can be dangerous, but they're also detectable, for example when a switch learns the Media Access Control (MAC) address of one of its interfaces on another interface, or when it runs a spanning tree or link-state protocol ๐ธ๏ธ. only topologies with potential loops made of simple repeaters are truly pathological ๐
the topology of the homenet can change over time, because equipment gets added or removed, and also because of temporary failures or connectivity problems ๐ช๏ธ. sometimes this means a multihomed homenet gets split into two isolated homenets ๐. once the fault is fixed, those two isolated parts can reconfigure back into a single network ๐ซถ
3.2.2. Network Topology Models ๐งฉ
as hinted above, the architecture may focus on the likely common topologies, but it should not rule out any arbitrary topology from being built ๐ ๏ธ.
right now most IPv4 home network models are pretty simple, usually a single NAT router to the ISP and one internal subnet ๐ . but as discussed earlier, evolving network architectures are pushing things toward more complex topologies, like separating guest and private networks ๐. there may also be some cascaded IPv4 NAT scenarios, which we'll get to in the next section. for IPv6 homenets, the network architectures described in [RFC7084] should, as a minimum, be supported ๐
there are a number of properties or attributes that can describe a home network's topology and operation ๐. the following properties apply to any IPv6 home network:
- Presence of internal routers. The homenet may have one or more internal routers, or it may only provide subnetting from interfaces on the CE router ๐ง.
- Presence of isolated internal subnets. There may be isolated internal subnets with no direct connectivity between them inside the homenet, and each one has its own external connectivity ๐๏ธ. the isolation may be physical or done with IEEE 802.1q VLANs. but a typical user isn't expected to configure VLANs, so that part is on the more techy side ๐ค.
- Demarcation of the CE router. The CE router(s) may or may not be managed by the ISP. if the demarcation point means the customer can provide or manage the CE router, its configuration must be simple ๐. both models must be supported ๐ซถ.
multihoming is likely to become more common with IPv6 homenets, where the homenet may have two or more external ISP connections, as we'll discuss further below ๐ธ. so the following properties should also be considered for those networks:
- Number of upstream providers. most home networks today have a single upstream ISP, but it may become more common to have multiple ISPs, whether for resilience or for extra services โจ. each one would offer its own prefix ๐. some may or may not provide a default route to the public Internet ๐.
- Number of CE routers. the homenet may have a single CE router, which might serve one or more providers, or it may have multiple CE routers ๐ง . multiple CE routers add extra complexity for multihoming scenarios, and for protocols like PCP that may need to manage connection-oriented state mappings on the same CE router that handles the later traffic flows ๐ตโ๐ซ.
in the following sections we give some examples of the homenet topologies we may see in the future ๐ญ. this list isn't meant to be exhaustive or complete. it's more of an indicative one, to make the discussion in this text easier to follow ๐ซถ.
3.2.2.1. A: Single ISP, Single CE Router, and Internal Routers ๐
Figure 1 shows a home network with multiple local area networks ๐๏ธ. these might be needed because of different link-layer technologies or for policy reasons, like classic Ethernet in one subnet and an LLN link-layer technology in another ๐. in this example, no single router a priori understands the entire topology ๐คฏ. the topology can also get complex, and it may not be possible to assume a pure tree form, for instance, because home users may plug routers together into arbitrary topologies, including ones with potential loops ๐.
+-------+-------+ \
| Service | \
| Provider | | Service
| Router | | Provider
+-------+-------+ | Network
| /
| Customer /
| Internet Connection
|
+------+--------+ \
| IPv6 | \
| Customer Edge | \
| Router | |
+----+-+---+----+ |
Network A | | | Network B(E) |
----+-------------+----+ | +---+-------------+------+ |
| | | | | | |
+----+-----+ +-----+----+ | +----+-----+ +-----+----+ | |
|IPv6 Host | |IPv6 Host | | | IPv6 Host| |IPv6 Host | | |
| H1 | | H2 | | | H3 | | H4 | | |
+----------+ +----------+ | +----------+ +----------+ | |
| | | | |
Link F | ---+------+------+-----+ |
| | Network E(B) |
+------+--------+ | | End-User
| IPv6 | | | Networks
| Interior +------+ |
| Router | |
+---+-------+-+-+ |
Network C | | Network D |
----+-------------+---+ +---+-------------+--- |
| | | | |
+----+-----+ +-----+----+ +----+-----+ +-----+----+ |
|IPv6 Host | |IPv6 Host | | IPv6 Host| |IPv6 Host | |
| H5 | | H6 | | H7 | | H8 | /
+----------+ +----------+ +----------+ +----------+ /
Figure 1
in this diagram there is one CE router ๐ฆ. it has a single uplink interface, plus three more interfaces connected to Network A, Link F, and Network B ๐. the IPv6 Internal Router (IR) has four interfaces, connected to Link F, Network C, Network D, and Network E ๐งญ. Network B and Network E have been bridged, most likely by accident ๐ฌ. this could happen if you connect a wire between a switch for Network B and a switch for Network E ๐ชข.
any of the logical Networks A through F might be wired or wireless ๐ถ. where multiple hosts are shown, that might be through one or more physical ports on the CE router or IPv6 (IR), wireless networks, or one or more Ethernet switches that are Layer 2 only ๐ซ.
3.2.2.2. B: Two ISPs, Two CE Routers, and Shared Subnet โจ
Okay so bestie, this next diagram is giving multihomed homenet ๐ ๐ Two ISPs, two CE routers, and one shared subnet. Let's look at it!
+-------+-------+ +-------+-------+ \
| Service | | Service | \
| Provider A | | Provider B | | Service
| Router | | Router | | Provider
+------+--------+ +-------+-------+ | Network
| | /
| Customer | /
| Internet Connections | /
| |
+------+--------+ +-------+-------+ \
| IPv6 | | IPv6 | \
| Customer Edge | | Customer Edge | \
| Router 1 | | Router 2 | /
+------+--------+ +-------+-------+ /
| | /
| | | End-User
---+---------+---+---------------+--+----------+--- | Network(s)
| | | | \
+----+-----+ +-----+----+ +----+-----+ +-----+----+ \
|IPv6 Host | |IPv6 Host | | IPv6 Host| |IPv6 Host | /
| H1 | | H2 | | H3 | | H4 | /
+----------+ +----------+ +----------+ +----------+
Figure 2
So Figure 2 shows the customer hooked up via CE router 1 to ISP A, and via CE router 2 to ISP B ๐ธ There's one shared subnet where the IPv6 nodes could end up multihomed and get multiple global prefixes, one from each ISP. Literally so cool ๐ฆ
This model can also get mixed with the one from Figure 1 for a more complex setup with multiple internal routers ๐ง Or, the shared subnet can get split in two, so each CE router runs its own isolated subnet. That's a setup we already see with some IPv4 networks today, iykyk ๐
3.2.2.3. C: Two ISPs, One CE Router, and Shared Subnet ๐
+-------+-------+ +-------+-------+ \
| Service | | Service | \
| Provider A | | Provider B | | Service
| Router | | Router | | Provider
+-------+-------+ +------+--------+ | Network
| | /
| Customer | /
| Internet | /
| Connections |
+-----------+-----------+ \
| IPv6 | \
| Customer Edge | \
| Router | /
+-----------+-----------+ /
| /
| | End-User
---+------------+-------+--------+-------------+--- | Network(s)
| | | | \
+----+-----+ +----+-----+ +----+-----+ +-----+----+ \
|IPv6 Host | |IPv6 Host | | IPv6 Host| |IPv6 Host | /
| H1 | | H2 | | H3 | | H4 | /
+----------+ +----------+ +----------+ +----------+
Figure 3
Figure 3 is the model where a home network might have multiple connections to multiple providers, OR multiple logical connections to the same provider, all sharing internal subnets ๐ Main character energy for sure โญ
3.2.3. Dual-Stack Topologies ๐
Okay so for the immediate future, most homenets are gonna be dual-stack IPv4/IPv6 ngl ๐ That means we really shouldn't add any new IPv6 features that would break when they're used alongside IPv4+NAT, because these dual-stack homenets are going to be everywhere for a while ๐ญ Still, IPv6 should work better than IPv4 in as many situations as possible โจ And the homenet architecture has to keep working even without IPv4 at all ๐ซถ
The general vibe is to use the same topology for IPv6 as for IPv4, just without NAT. So wherever there's an IPv4 NAT, there should be routed IPv6, and where there's no NAT, routing or bridging is fine. Routing can be better than bridging when you're mixing high-speed and low-speed shared media, and bridging might not work for some networks, like ad hoc mobile ones ๐ฆ
Sometimes IPv4 home networks have cascaded NATs. End users often have no idea they've built one, because "home routers" and "home switches" get mixed up all the time ๐ Also, NAT routers can hide inside Virtual Machine Hypervisors, or show up when Internet connection-sharing services are turned on. This document applies just as much to these sneaky hidden NAT "routers" ๐ IPv6-routed versions of these setups will be required. So yeah, routers in the homenet might not be separate physical boxes at all; they can be embedded inside other devices ๐
3.2.4. Multihoming ๐ฅ
A homenet can be multihomed to multiple providers, like the network models above show. This can look like either multiple isolated networks inside the home, or a more integrated network where the connection choice has to be dynamic. Current practice is mostly the first kind, but the second is expected to become more common ๐
In the general homenet architecture, multihomed hosts should be multi-addressed, with a global IPv6 address from the global prefix delegated by each ISP they talk to or through ๐ When there's multi-addressing going on, hosts need some way to pick source and destination address pairs for their connections. A host can pick its source address in various ways, most commonly [RFC6724] โจ Applications can totally do their own thing here too, and that shouldn't be ruled out ๐
For the single CE Router Network Model C from above, multihoming can be offered by source-based routing at the CE router ๐ง With multiple exit routers, like in CE Router Network Model B, things get way more complex ๐ญ If a packet has a source address from the home network, it must be routed to the proper egress so it doesn't hit ingress filtering as described in BCP 38, if it would exit through the wrong ISP. It's highly desirable that the packet takes the most efficient route to the correct exit, but at the very least the packet should not be dropped ๐ซถ
The homenet architecture should support both of these models, meaning one or more CE routers ๐ But the general multihoming problem is huge, and the solutions the IETF has suggested so far include complicated architectures for monitoring connectivity, traffic engineering, identifier-locator separation, keeping connections alive across multihoming events, and so on ๐ So it's important that the homenet architecture keeps the complexity of any multihoming support as low as it possibly can ๐ธ
An example of one of these "simpler" approaches is documented in [RFC7157] ๐ฆ Another option is that a flooding/routing protocol could pass information through the homenet, so internal routers and eventually end hosts could learn per-prefix configuration info and make better address selection decisions ๐ง But that would mean changes to routers and, most likely, hosts too ๐ Another path is to add support throughout the homenet for routing based on both the source and destination address of each packet. That would make routing decisions way smarter inside the homenet, but it would need pretty significant router changes while skipping host changes ๐
As explained earlier, NPTv6 has been proposed for multihoming support in networks, but it is NOT RECOMMENDED for the homenet architecture ๐ซ
Heads up: some multihoming setups might have one upstream that's a "walled garden," so it's only useful for reaching that provider's own services. An example is a VPN service that only routes back to a user's enterprise business network from inside the homenet ๐ As per Section 4.2.1 of [RFC3002], walled-garden multihoming is NOT a specific goal of this document ๐
The homenet architecture also shouldn't block host or application-oriented tools, like Shim6 [RFC5533], Multipath TCP (MPTCP) [RFC6824], or Happy Eyeballs [RFC6555] ๐ In general, any small improvements from host changes should benefit the hosts that adopt them, but they should not be required ๐ซถ
3.2.5. Mobility Support ๐ฆ
Devices can move around inside the homenet ๐ง While they stay on the same subnet, their address stays persistent. But if a device moves to a different (wireless) subnet, it'll get a new address in that subnet ๐ It's desirable that the homenet supports internal device mobility โจ To make that happen, the homenet can either extend the reach of specific wireless subnets so wireless roaming works across the whole home (a specific subnet available throughout the home), or support mobility protocols that make roaming easier when multiple subnets are in use ๐
3.3. A Self-Organising Network ๐
The home network infrastructure should be naturally self-organising and self-configuring, no matter the situation with its Internet connectivity, the number of devices, or the physical topology ๐ At the same time, advanced users should be able to manually adjust (override) the current configuration ๐ง
Even though the goal is for the network to be as self-organising as possible, some manual configuration may still be needed sometimes, like entering a cryptographic key to set up wireless security, or configuring a shared routing secret ๐ The shared routing secret part may matter when figuring out how to bootstrap a routing configuration ๐ง It's highly desirable that the number of these manual configurations is kept to a minimum ๐ซถ
3.3.1. Differentiating Neighbouring Homenets ๐ธ
It's important to avoid self-configuring with "unintended" devices ๐ There should be a simple way for a user to administratively assert whether or not a device belongs to a given homenet ๐ The goal is to set up borders, especially between two adjacent homenets, and to keep unauthorised devices from joining the homenet ๐ง That authorisation capability may need to work across multiple hops in the homenet ๐
So the homenet should support a way for a homenet owner to claim ownership of their devices in a reasonably secure way ๐ This could be done with a pairing mechanism, like pressing buttons at the same time on an authenticated device and a new homenet device, or through an enrollment process as part of an autonomic networking environment โจ
Sometimes one homenet might want to intentionally get access through another, like to share external connectivity costs ๐ค Those scenarios aren't discussed in this document, bestie ๐
3.3.2. Largest Practical Subnets ๐ โจ
okay so today's IPv4 home networks basically have one subnet ๐ , and early dual-stack setups usually have one matching IPv6 subnet too, maybe with some bridging going on. lately some vendors have started adding 'home' and 'guest' functions ๐, which in IPv6 would be two subnets. fancy!!
future homes are highly likely to have one or more internal routers ๐ง, so they'll need multiple subnets for the reasons we covered earlier. as part of self-organising ๐ฆ, the homenet should split itself into the largest practical subnets it can build, given link-layer mechanisms, bridging, physical connectivity, policy, and (where it applies) performance or other criteria. the logical topology might not match the physical one, and that's totally fine ๐. this text doesn't tell anyone how to do the splitting though. that's a job for future documents ๐
and ngl, bigger subnets = better odds that link-local protocols work across the whole homenet ๐ but multi-subnet homes are inevitable, so we have to support them. no cap. ๐ซถ
3.3.3. Handling Varying Link Technologies โก
homenets grow organically over many years ๐ธ, so one home is often built out of link technologies from totally different generations. right now links run anywhere from 1 Mbit/s up to 1 Gbit/s, which is a throughput gap of three orders of magnitude ๐ญ. and it's only going to get wider as high-speed and low-power tech shows up.
homenet protocols need to handle links with very different throughputs well ๐. the big rule: flows that are local to one link shouldn't get flooded across the whole homenet, even when they're multicast ๐ โโ๏ธ. and whenever possible, the protocols should pick the faster links and dodge the slow ones ๐๏ธ
the spicy bit: links (especially wireless ones) may only have a limited number of transmit opportunities (txops). power and backwards-compatibility pressures are pushing everyone toward cramming packets into those limited txops while cranking up throughput. txops might be the scarcest resource in the whole system, which means they can seriously cap the real throughput you actually get ๐
3.3.4. Homenet Realms and Borders ๐บ๏ธ
the homenet needs to know how big its own 'site' is ๐. that matters because the site defines the borders for ULA and site-scope multicast traffic, and it might need specific security policies applied. there will be one or more of these borders with external connectivity providers ๐
there will most likely also be internal borders between internal realms, like a guest realm or a corporate network extension realm ๐ it's desirable that these borders can be configured to decide where prefixes, routing info, traffic, service discovery, and naming are allowed to be shared. the default internally? share everything! ๐ฅฐ
a realm is expected to span at least one entire subnet, so the borders sit at the routers that receive delegated prefixes inside the homenet ๐งญ. for a richer security model, it's also desirable that hosts can make communication decisions based on realm and prefix info, the same way the routers at realm borders can. main character energy for hosts ๐ค๐
a simple homenet model might just use three types of realm and the borders between them: the internal homenet, the ISP, and a guest network ๐. in that case the borders are homenet-to-ISP, guest-to-ISP, and homenet-to-guest. but either way, it should be possible to define extra realm types, like an LLN-based network such as a Smart Grid โก. those should be detected automatically, and an appropriate default policy should apply to what kind of traffic and data can cross those borders. iykyk ๐
it's desirable to treat the external border of the home network as one unique logical interface that separates the home from the service provider network(s) ๐ฆ. that border might be a single physical interface to a single provider, multiple Layer 2 sub-interfaces to a single provider, or multiple connections to one or several providers. this setup makes it possible to describe edge operations and interface requirements across security, routing, service discovery, and router discovery, all in one place. so organised ๐ซถ
the homenet user should be able to override any automatically determined borders and the default policies between them ๐. the one exception: it may not be possible to override policies the ISP has defined at the external border. sorry bestie, the ISP is the boss of that one ๐
3.3.5. Configuration Information from the ISP ๐ฌ
sometimes it's useful for the homenet to get certain configuration info from its ISP ๐. for example, the homenet DHCP server might request some options from its upstream DHCP server and then forward them along. the specifics of those options can vary between deployments though. and if the homenet is multihomed, things get extra complicated ๐ตโ๐ซ
3.4. Homenet Addressing ๐ก
the IPv6 addressing scheme inside a homenet has to conform to the IPv6 addressing architecture [RFC4291] ๐ this section is all about how the homenet adapts to the prefixes its upstream ISP hands it, so that internal subnets, hosts, and devices can get the addressing info they need to actually work ๐
3.4.1. Use of ISP-Delegated IPv6 Prefixes ๐ท
discussion of IPv6 prefix allocation policies lives in [RFC6177] ๐ in practice, a homenet might get a prefix of any length from its provider, like /60, /56, or /48. the prefix might stay stable, or it might change from time to time. ISPs are generally expected to offer relatively stable prefixes to residential customers ๐ฅน either way, the home network needs to be as adaptable as it can be to ISP prefix allocation policies, and it should assume nothing about how stable the prefix is or how long it'll be. flexible queen ๐
but ngl, if the ISP only offers a /64, the homenet could be seriously constrained or even unable to function at all ๐ญ BCP 157 [RFC6177] says the following:
A key principle for address management is that end sites always be able to obtain a reasonable amount of address space for their actual and planned usage, and over time ranges specified in years rather than just months. In practice, that means at least one /64, and in most cases significantly more. One particular situation that must be avoided is having an end site feel compelled to use IPv6-to-IPv6 Network Address Translation or other burdensome address conservation techniques because it could not get sufficient address space.
this architecture document assumes ISPs are following the guidance in that quote ๐
there are lots of problems if a homenet isn't offered a big enough prefix for its needs ๐ so instead of trying to contrive some clever way to run in a squeezed mode, the kind of thing that uses subnet prefixes longer than /64 (which would break stateless address autoconfiguration [RFC4862]), or NPTv6, or falling back to bridging across potentially very different media, it's recommended that the receiving router enters an error state and issues appropriate warnings instead ๐จ we'll need to think about how a warning or error like that gets shown to a typical home user, because nobody wants a scary wall of jargon ๐
so a homenet CE router should request a prefix from its ISP via DHCP Prefix Delegation (DHCP PD) [RFC3633], asking for a /48 ๐ it asks for the biggest prefix it might expect, even if in reality it only ends up with a /56 or a /60. for a typical IPv6 homenet, it's not recommended that an ISP offers less than a /60, and it's highly preferable that the ISP offers at least a /56 โจ the prefix delegated to the homenet from any single ISP is expected to be one contiguous, aggregated block. the router could send multiple prefix requests to try to get multiple delegations, but that behaviour is out of scope for this document ๐
โโ๏ธ
for residential customers of big ISPs, the norm might look a lot like their single IPv4 address: it'll probably stay put for a while by default ๐ฐ๏ธ but changes in the ISP's own provisioning systems can cause the customer's IP (and, for IPv6, their prefix pool) to change. ISPs are not generally expected to support Provider Independent (PI) addressing for residential homenets ๐ซ
now, when an ISP needs to restructure and renumber its customers' homenets, 'flash' renumbering is likely to get imposed ๐ฑ that means the homenet has to handle a sudden renumbering event. unlike the process described in [RFC4192], this is a 'flag day' event, so a graceful renumbering that moves through a state with two active prefixes at once wouldn't be possible. renumbering can be thought of as an extended version of initial numbering, but the difference between a flash renumbering and an initial 'cold start' is that the flash version has to keep service continuity going ๐
there might also be cases where local law requires some ISPs to change IPv6 prefixes (current IPv4 addresses) for privacy reasons ๐ in those cases, it may be possible to avoid an instant 'flash' renumbering and plan a non-flag day renumbering as per RFC 4192 instead. likewise, if an ISP has a planned renumbering process, it may be able to adjust lease timers and so on to match ๐๏ธ
if the customer chooses to move to a new ISP, they'll start using a new prefix ๐ฆ they should expect a discontinuity: not only might the prefix change, but the prefix length might change too if the new ISP's default size is different. and the homenet might also be forced to renumber itself if the user does some major internal 'replumbing' ๐ง
regardless of all that, it's desirable that homenet protocols support rapid renumbering, and that the operational processes don't add unnecessary complexity ๐ and the introduction of any new homenet protocols shouldn't make renumbering any more complicated than it already is. no new drama please ๐
finally, the internal operation of the home network shouldn't depend on the ISP network being available at any given time ๐ the only exception is connectivity to services or systems off the home network, obviously. this reinforces the use of ULAs for stable internal communication ๐ and it highlights the need for a naming and service discovery mechanism that can run independently inside the homenet ๐ซง
3.4.2. Stable Internal IP Addresses โจ
okay so by default, the network should try to give IP-layer connectivity between all the internal parts of the homenet ๐ and also to and from the external Internet ๐. the catch is that it's subject to the filtering policies or other policy constraints we'll get into later in the security section ๐. bestie, the vibe is everyone stays connected unless the rules say otherwise ๐
ULAs should be used within the scope of a homenet to keep routing and connectivity stable between subnets and hosts, whether or not a globally unique ISP-provided prefix is available ๐ซถ. if the external connection goes down for a long time, ULAs let everything inside keep talking across routed subnets ๐ฅ. they're also iconic for constrained devices, which can make permanent relationships between IPv6 addresses. think a wall controller talking to a lamp ๐ก. symbolic host names would need extra non-volatile memory for that, and updating global prefixes on sleeping devices can be a whole mess ๐ญ
as we covered before, ULAs would normally be used next to one or more global prefixes in a homenet. that means hosts end up with multiple addresses, both globally unique and ULA ๐ฆ. ULAs should be used for all devices, not just the ones that only need internal connectivity, no exceptions ๐ . default address selection then prefers ULAs for internal chats between devices using ULA prefixes generated within the same homenet. it's giving smooth internal vibes โจ
when a homenet has ULA prefixes but no external IPv6 connectivity (so no GUAs in use), recommendationsULA-5,L-3, andL-4in RFC 7084 should be followed so everything works correctly ๐. this matters extra if the homenet is dual stack with IPv4 external connectivity. the Route Information Option described in [RFC4191] is how you advertise those more-specific ULA routes ๐
ULAs should stay within the homenet. that means filtering at the homenet border(s), as required by RFC 7084 requirement S-2 ๐ง.
one more thing bestie ๐. sometimes a homenet might have more than one /48 ULA prefix in use, like when the network is still being set up, maybe without external connectivity too ๐ธ. when that happens, hosts need to know each /48 is local to the homenet. one way is including it in their local address selection policy table ๐ง
3.4.3. Internal Prefix Delegation ๐
so there are a bunch of prefix sources. from the homenet's point of view, a single global prefix from each ISP should be received on the border CE router [RFC3633]. if there are multiple CE routers with multiple ISP prefix pools, routers inside the homenet are expected to give themselves prefixes from each ISP they talk to or go through ๐. and like we said, a ULA prefix should be set up for stable internal chats or for constrained/LLN networks ๐
giving a prefix pool to the homenet should let it hand out prefixes internally on its own afterwards ๐. that internal assignment should not assume a flat or hierarchical model, and it shouldn't assume whether assignment is distributed or centralised either. the assignment mechanism should be reasonably efficient, so typical home prefix allocation sizes can fit all the needed /64 allocations in most cases without wasting prefixes ๐ง . it should also avoid giving multiple /64s to the same network, and it should behave as gracefully as possible if prefixes run out (though the options might be limited in that case ๐)
when the home network has multiple CE routers and each gets prefix pools from its attached ISP, internal prefix assignment would be expected to be served by each CE router for each prefix tied to it ๐ก. if ULAs are used, it's preferable that only one /48 ULA covers the whole homenet, and /64s get assigned to the subnets from it ๐. if two /48 ULAs get generated inside one homenet, the network should still keep working, which means hosts will need to figure out that each ULA is local to the homenet ๐
prefix assignment inside the homenet should give each link a stable prefix that sticks around across reboots, power outages, and similar short outages โญ. the persistent prefixes shouldn't depend on router boot order. adding a new routing device shouldn't mess with existing persistent prefixes ๐ฆ. persistence might not be expected if the homenet gets significantly replumbed though. but assigned ULA prefixes should stay persistent even through an ISP-driven renumbering event ๐ซถ
getting persistent prefixes like this might mean routing devices need stable storage, plus some way for a home user to 'reset' the stored prefix if a big reconfiguration is needed ๐ง. ideally the home user isn't involved at all tho ๐
this document doesn't make a specific recommendation for any solution. it does note that it's very likely all routing devices in a homenet must use the same internal prefix delegation method. that means only one delegation method should be in use ๐
3.4.4. Coordination of Configuration Information ๐
the network elements need to be integrated in a way that accounts for the different lifetimes on the timers used across different elements ๐ฐ๏ธ. examples are DHCPv6 PD, router, valid prefix, and preferred prefix timers. main character timing energy โฑ๏ธ
3.4.5. Privacy ๐
if ISPs give customers relatively stable IPv6 prefixes, the network prefix part of addresses tied to the homenet may not change for a pretty long time ๐
so the exposure of which traffic comes from the same homenet is kinda similar to IPv4 ๐. the single IPv4 global address seen through IPv4 NAT gives the same hint as the global IPv6 prefix seen for IPv6 traffic ๐ซฃ
IPv4 NAT might hide which internal device the traffic is coming from, to an outside observer ๐ถ๏ธ. but IPv6, even with privacy addresses [RFC4941], adds extra exposure of which traffic is coming from the same internal device, because it keeps using the same IPv6 source address for a period of time ๐ญ
3.5. Routing Functionality ๐ฃ๏ธ
routing functionality is required when there are multiple routers deployed inside the internal home network ๐งญ. it could be as simple as the 'default route is up' model of IPv4 NAT, but more likely it'll involve running an appropriate routing protocol ๐ฅ
a mechanism is required to discover which router(s) in the homenet is providing the CE router function ๐. borders can include, but aren't limited to, the interface to the upstream ISP, a gateway device to a separate home network such as an LLN network, or a gateway to a guest or private corporate extension network ๐ช. sometimes there may be no border at all, which could happen before an upstream connection is set up ๐ฑ
the routing environment should be self-configuring, like we talked about before ๐ค. the homenet self-configuration process and the routing protocol must work together predictably, especially during startup and reconvergence ๐ซถ. border discovery and other self-configuration functionality can be built into the routing protocol itself, or imported through a separate discovery mechanism ๐งฉ
configuration information is preferably distributed and synchronised inside the homenet by a separate configuration protocol ๐ฆ
the homenet routing protocol should be based on a previously deployed protocol that's been shown to be reliable and robust ๐ช. that doesn't rule out picking a newer protocol once a high-quality open source implementation shows up ๐. the resulting code must support lightweight implementations and be suitable for consumer devices, where both fixed and temporary storage and processing power are at a premium ๐ชซ
at most, one unicast and one multicast routing protocol should be in use at a given time in a given homenet โ๏ธ. some simple topologies might not need a routing protocol at all ๐. if more than one routing protocol is supported by routers in a given homenet, a mechanism is required to make sure all routers in that homenet use the same protocol ๐ซง
the homenet architecture is IPv6-only ๐. in practice though, dual-stack homenets are still likely for the foreseeable future, as described in Section 3.2.3 ๐. support for IPv4 and other address families may be beneficial, but it's not an explicit requirement to carry the routing information in the same routing protocol ๐ฆ
multiple types of physical interfaces must be accounted for in the homenet routing topology ๐ง. technologies like Ethernet, Wi-Fi, Multimedia over Coax Alliance (MoCA), etc. must be able to coexist in the same environment and should be treated as part of any routed deployment ๐ . including physical-layer characteristics in path computation should be considered for optimising communication in the homenet ๐ฅ
3.5.1. Unicast Routing within the Homenet โจ
okay bestie, the whole job of the unicast routing protocol is to give you good enough end-to-end connectivity often enough ๐. What counts as "good enough" and "often enough" is decided by user expectations ๐ซถ
Because a homenet mixes a bunch of different link technologies ๐, path selection might need to be more refined than just counting hops. It can also be super useful for traffic to use multiple paths to the same destination inside the homenet when they're available, instead of only one best path ๐ฆ
Minimising convergence time should be a goal in any routed environment ๐ฅ. It's reasonable to assume that convergence time should not be significantly longer than the network outages users are already used to whenever their CE router reboots ๐ญ
The homenet architecture doesn't pick a side on the routing technology underneath, whether that's link state or Bellman-Ford ๐ง
The routing protocol should support the generic use of multiple customer Internet connections and the concurrent use of multiple delegated prefixes ๐. A routing protocol that can make routing decisions based on source and destination addresses is thus highly desirable, so you don't run into problems with upstream ISP ingress filtering as described in BCP 38 ๐. Multihoming support may also include load balancing to multiple providers, and failover from a primary to a backup link when one is available. The protocol should not require upstream ISP connectivity to be established in order to keep routing within the homenet ๐
The homenet architecture doesn't set a minimum hop count that the routing protocol has to support ๐. The architecture should, however, be scalable to other scenarios where homenet technology may be deployed, which may include small office and small enterprise sites. To allow for those cases, it would be desirable for the architecture to scale to higher hop counts and to larger numbers of routers than you'd typically see in a true home network ๐ข
Link-layer networking is getting more heterogeneous right now ๐ธ, as networks start to use both traditional Ethernet and link layers designed for LLNs, like the ones used for certain types of sensor devices.
Ideally, LLNs or other logically separate networks should be able to exchange routes so IP traffic can be forwarded among the networks through gateway routers that interoperate with both the homenet and any LLNs ๐. Right now, home deployments use pretty different mechanisms for sensor networks and basic Internet connectivity networks ๐ต. IPv6 virtual machine (VM) solutions may also add extra routing requirements.
In this homenet architecture, LLNs and other specialised networks are considered stub areas of the homenet, so they aren't expected to act as a transit for traffic between more traditional media ๐งธ
3.5.2. Unicast Routing at the Homenet Border
The current practice defined in [RFC7084] would suggest that routing between the homenet CE router and the service provider router follow the WAN-side requirements model in [RFC7084], Section 4 (WAN-side requirements), at least in initial deployments ๐. However, whether a routing protocol gets used between the homenet CE router and the service provider router is out of scope for this document ๐ โโ๏ธ
3.5.3. Multicast Support
It is desirable that, depending on the capacities of devices on certain media types, multicast routing is supported across the homenet, including source-specific multicast (SSM) [RFC4607] ๐ก
[RFC4291] requires that any boundary of scope 4 or higher (i.e., admin-local or higher) be administratively configured. So the boundary at the homenet-ISP border must be administratively configured, though that may be triggered by an administrative function such as DHCP PD ๐๏ธ. Other multicast forwarding policy borders may also exist within the homenet, e.g., to/from a guest subnet, whilst the use of certain link media types may also affect where specific multicast traffic gets forwarded or routed ๐ฟ
There may be different drivers for multicast to be supported across the homenet -- for example,
- for homenet-wide service discovery, should a multicast service discovery protocol of scope greater than link-local be defined
- for multicast-based streaming or file-sharing applications
Where multicast is routed across a homenet, an appropriate multicast routing protocol is required, and as with the unicast routing protocol, it should be self-configuring ๐ค. As hinted above, it must be possible to scope or filter multicast traffic so it doesn't get flooded onto network media where devices can't reasonably support it ๐ซ
A homenet may not only use multicast internally, it may also be a consumer or provider of external multicast traffic, where the homenet's ISP supports that kind of multicast operation ๐บ. This may be valuable, for example, where live video applications are being sourced to or from the homenet ๐ฅ
The multicast environment should support the ability for applications to pick a unique multicast group to use ๐ฆ
3.6. Security ๐
The security of an IPv6 homenet is a really important consideration ๐ค. The biggest difference from the IPv4 operational model is the removal of NAT, plus the introduction of global addressability for devices. That means we need to think about whether devices should have global reachability at all. Either way, hosts need to be able to operate securely, end to end where required, and also be robust against malicious traffic aimed at them. There are other challenges too, e.g., default filtering policies at the borders between the various homenet realms ๐งฑ
3.6.1. Addressability vs. Reachability
An IPv6-based home network architecture should embrace the transparent end-to-end communications model described in [RFC2775] ๐. Each device should be globally addressable, and those addresses must not be altered in transit. However, security perimeters can be applied to restrict end-to-end communications, so a host can be globally addressable and still not be globally reachable ๐
[RFC4864] describes a 'Simple Security' model for IPv6 networks, where stateful perimeter filtering can be applied to control the reachability of devices in a homenet ๐ก๏ธ. RFC 4864 states in Section 4.2 that "the use of firewalls...is recommended for those that want boundary protection in addition to host defences." It should be noted that a 'default deny' filtering approach would effectively replace the need for IPv4 NAT traversal protocols with a need to use a signalling protocol to request a firewall hole be opened, e.g., a protocol such as PCP [RFC6887]. In networks with multiple CE routers, the signalling would need to handle flows that may use one or more exit routers. CE routers would also need to be able to advertise their existence for such protocols ๐ฃ
[RFC6092] expands on RFC 4864 with a more detailed discussion of IPv6 perimeter security recommendations, without mandating a 'default deny' approach ๐ง. In fact, RFC 6092 doesn't enforce a particular mode of operation. Instead, it states that CE routers must provide an easily selected configuration option that permits a 'transparent' mode, so a 'default allow' model stays available ๐ช
The topic of whether future home networks like the ones described in this document should have a 'default deny' or 'default allow' position has been debated at length in various IETF meetings, and no consensus has been reached on which approach is more appropriate ๐ฃ๏ธ. Further, the choice of default may be situational, so this text makes no recommendation on the default setting beyond what RFC 6092 already says on the topic. We note in Section 3.6.3 below that the implicit firewall function of an IPv4 NAT is commonplace today, so future CE routers targeted at home networks should continue to support the option of running in 'default deny mode', whether or not that's the default setting ๐
3.6.2. Filtering at Borders
It is desirable that there are mechanisms to detect the different types of borders within the homenet, as discussed previously, plus further mechanisms to apply different types of filtering policies at those borders, e.g., whether naming and service discovery should pass a given border ๐ง. Any such policies should be easy for typical home users to apply, e.g., to give a guest network user access to media services in the home or to a printer ๐จ๏ธ. Simple mechanisms to apply policy changes, or associations between devices, will be required ๐
There are cases where full internal connectivity may not be desirable, e.g., in certain utility networking scenarios, or where filtering is required for policy reasons against a guest network subnet(s). So some scenarios or models may involve running isolated subnet(s) with their own CE routers. In those cases, connectivity would only be expected within each isolated network (though traffic may potentially pass between them via external providers) ๐๏ธ
LLNs are another example of where there may be secure perimeters inside the homenet ๐. Constrained LLN nodes may implement network key security, but they may depend on access policies enforced by the LLN border router ๐ง
Considerations for differentiating neighbouring homenets are discussed in Section 3.3.1 ๐ซ
3.6.3. Partial Effectiveness of NAT and Firewalls
Security by way of obscurity (address translation) or through firewalls (filtering) is at best only partially effective ๐. The very poor security track record of home computers, home networking, and business PC computers and networking is proof of that ๐. A security compromise behind the firewall of any device exposes all the others, which means an entire network that relies on obscurity or a firewall is only as safe as its most insecure device on the private side of the network ๐ฌ
However, given the current evidence of home network products with very poor default device security, putting a firewall in place does provide some level of protection ๐งฑ. Firewalls are common practice today, whether or not that counts as a good practice, and the ability to get protection via a 'default deny' setting, even if it's only marginally effective, should not be lost ๐ซถ. So while it's highly desirable that all hosts in a homenet be adequately protected by built-in security functions, it should also be assumed that all CE routers will keep supporting appropriate perimeter defence functions, as per [RFC7084] โจ
3.6.4. Exfiltration Concerns
As homenets get more complex, with more devices and service discovery potentially enabled across the whole home, there are potential concerns about information leaking out ๐. Devices could use discovery protocols to gather information and report it to equipment vendors or application service providers, and that's a real worry ๐ฑ
It isn't clear how such exfiltration could be easily avoided ๐คทโโ๏ธ, but the threat should be recognised, whether it comes from a new piece of hardware or some 'app' installed on a personal device ๐ฑ
3.6.5. Device Capabilities
When it comes to the devices themselves, homenet hosts should implement their own security policies in accordance with their computing capabilities ๐ป. They should have the means to request transparent communications that can be initiated to them through security filters in the homenet, for either all ports or specific services ๐ฆ. Users should have simple methods to associate devices with services they want to operate transparently through (CE router) borders ๐
3.6.6. ULAs as a Hint of Connection Origin ๐ฆ
okay so back in Section 3.6 we talked about filtering ๐ซถ if appropriate filtering is in place on the CE router(s), as mandated by requirement S-2 in RFC 7084, then a ULA source address can be taken as a sign that the traffic is locally sourced. ngl this is sneaky-but-useful hint energy ๐ That signal could then be paired with security settings to decide which nodes a particular application is allowed to talk to each other, as long as ULA address space is filtered properly at the boundary of the realm ๐ฅ
3.7. Naming and Service Discovery ๐
okay the homenet needs devices to be able to figure out and use unique names they can be reached by on the network, and names that no other device on the network is using ๐ง Users and devices also need to be able to find the devices and services on the network, like media servers, printers, displays, or specific home automation devices ๐ So naming and service discovery must be supported in the homenet, and since most home users aren't network admins, the service(s) providing this function must as far as possible support unmanaged operation ๐
The naming system will be required to work internally or externally, whether the user is inside or outside of the homenet. Basically, the user should be able to refer to devices by name, and potentially connect to them, wherever they are ๐ The most natural way to think about this is to make naming and service discovery work across the entire homenet residence (site), ignoring technical borders like subnets but respecting policy borders like the ones between guest and other internal network realms โจ Remote access may be wanted by the homenet residents while they're travelling, but also potentially by manufacturers or other 'benevolent' third parties ๐
3.7.1. Discovering Services ๐
Users will typically do service discovery through graphical user interfaces (GUIs) that let them browse the services on their network in an appropriate and intuitive way ๐ Devices may also need to discover other devices, without any user intervention or choice. Either way, these interfaces are beyond the scope of this document, but the interface should have an appropriate application programming interface (API) for the discovery to be performed ๐ง
These interfaces may also hide the local domain name element from users, especially where only one name space is available. However, as we discuss below, in some cases being able to discover available domains may be useful ๐ธ
We note that current zero-configuration service discovery protocols are generally aimed at single subnets. So there's a choice to make for multi-subnet homenets: should such protocols be proxied, or extended to operate across a whole homenet? ๐ค In this context, that may mean bridging a link-local method, taking care to avoid packets entering looping paths, or extending the scope of multicast traffic used for the purpose. It may also mean that some proxy or hybrid service is utilised, perhaps co-resident on the CE router. Or, it may be that a new approach is preferable, e.g., flooding information around the homenet as attributes within the routing protocol (which could allow per-prefix configuration) ๐ฆ However, we should prefer approaches that are backward compatible and allow current implementations to continue to be used ๐ Note that this document does not mandate a particular solution. Instead, it expresses the principles that should be used for a homenet naming and service discovery environment ๐ซถ
One of the biggest challenges facing service discovery today is the lack of interoperability, because there keeps being more and more service discovery protocols ๐ญ It's conceivable for consumer devices to support multiple discovery protocols, but that's clearly not the most efficient use of network and computational resources ๐ So one goal of the homenet architecture should be a path to service discovery protocol interoperability. That could come through a standards-based translation scheme, hooks into current protocols that allow some form of communication among discovery protocols, extensions to support a central service repository in the homenet, or simply convergence towards a unified protocol suite ๐
3.7.2. Assigning Names to Devices ๐ท๏ธ
Given the large number of devices that may be networked in the future, devices should have a way to generate their own unique names within a homenet, and to detect clashes should they arise ๐ For example, a second device of the same type/vendor as an existing device could be deployed with the same default name, or a new subnet could be added to the homenet that already has a device of the same name. It is expected that a device should have a fixed name while within the scope of the homenet ๐
Users will also want simple ways to (re)name devices, again most likely through an appropriate and intuitive interface that is beyond the scope of this document ๐ Note that the name a user assigns to a device may be a label stored on the device as an attribute of the device. It may be distinct from the name used in a name service, e.g., 'Study Laser Printer' as opposed to printer2.<somedomain> ๐จ๏ธโจ
3.7.3. The Homenet Name Service ๐
The homenet name service should support both lookups and discovery. A lookup would operate via a direct query to a known service, while discovery may use multicast messages or a service where applications register in order to be found ๐ง
It is highly desirable that the homenet name service must at the very least coexist with the Internet name service. There should also be a bias towards proven, existing solutions ๐ The strong implication is that the homenet service is DNS based, or DNS compatible. There are naming protocols designed to be configured and operate Internet-wide, like unicast-based DNS, but there are also protocols designed for zero-configuration local environments, like Multicast DNS (mDNS) [RFC6762] ๐ฆ
When DNS is used as the homenet name service, it typically includes both a resolving service and an authoritative service. The authoritative service hosts the homenet-related zone. One approach when provisioning such a name service, which is designed to facilitate name resolution from the global Internet, is to run an authoritative name service on the CE router, plus a secondary authoritative name service provided by the ISP or perhaps an external third party ๐
Where zero-configuration name services are used, it is desirable that these can also coexist with the Internet name service. In particular, where the homenet is using a global name space, it is desirable that devices have the ability, where desired, to add entries to that name space. There should also be a mechanism for such entries to be removed or expired from the global name space ๐งน
To protect against attacks such as cache poisoning, where an attacker is able to insert a bogus DNS entry in the local cache, it is desirable to support appropriate name service security methods. These include DNS Security Extensions (DNSSEC) [RFC4033], on both the authoritative server and the resolver sides ๐ Where DNS is used, the homenet router or naming service must not prevent DNSSEC from operating.
โ ๏ธ bestie, the line above is a hard rule: the homenet router or naming service must not prevent DNSSEC from operating. no exceptions ๐
While this document does not specify hardware requirements, it's worth noting briefly here that, e.g., in support of DNSSEC, appropriate homenet devices should have good random number generation capability. Future homenet specifications should indicate where high-quality random number generators, i.e., with decent entropy, are needed ๐ฒ
Finally, the impact of a change in the CE router must be considered ๐ฅบ It would be desirable to retain any relevant state (configuration) that was held in the old CE router. This might imply that state information should be distributed in the homenet, so it can be recovered by/to the new CE router, or to the homenet's ISP or a third-party externally provided service by some means ๐
3.7.4. Name Spaces โจ
okay so bestie, if you want to reach homenet devices from literally anywhere on the Internet, you need at least one globally unique name space ๐๐. You're allowed to have more than one, though, and nothing says you can't ๐ . One approach is that the homenet's name space(s) get served authoritatively by the homenet itself, most likely by a server living on the CE router ๐. Those name spaces could be acquired by the user, or provided or generated by their ISP or some other external service โจ. The default case is probably that a homenet uses a global domain from the ISP ๐ฆ. But advanced users who want a name space that's independent of their provider in the long run should be able to get and use their own domain name ๐. If you're one of those users, those services already exist, so you're not stuck ๐ซถ.
Devices can also get different names in different name spaces ๐ง. For example, third parties who manage systems or devices in the homenet for the residents might do this ๐. Remote management of the homenet is out of scope for this document ๐.
Now, if there's no global name space available, the homenet will need to pick and use a local name space ๐ธ. That name only has meaning inside the local homenet, so it won't be used for remote access to the homenet ๐ญ. The .local name space already has a special meaning for certain existing protocols that have link-local scope, so it's not appropriate for multi-subnet home networks ๐. That means the homenet needs a different name space, full stop ๐.
One way to pick a local name space is an Ambiguous Local Qualified Domain Name (ALQDN) space, like .sitelocal (or some other name reserved for the purpose) ๐. It's a simple approach, but in principle, a device that an application bookmarked by name in one homenet could get mixed up with a device that has the same name in another homenet ๐ฌ. In practice, though, the underlying service discovery protocols should be able to handle moving to a network where a new device uses the same name as a device that was used before in another homenet ๐ซถ.
Another option for a local name space is a Unique Locally Qualified Domain Name (ULQDN) space, such as .<UniqueString>.sitelocal โจ. The <UniqueString> could be generated in a variety of ways, and one potential way is based on the local /48 ULA prefix being used across the homenet ๐ฅ. That <UniqueString> should survive a cold restart, meaning it stays consistent after a network power-down ๐. If no value is set on startup, the CE router or the device running the name service should generate a default value ๐. It would be desirable for the homenet user to be able to override the <UniqueString> with a value of their choice, but that would increase the likelihood of a name conflict ๐
. Any generated <UniqueString> should not be predictable, so adding a salt/hash function would be desirable ๐.
In the (likely) event that the homenet is accessible from outside the homenet using the global name space, it is vital that the homenet name space follows the rules and conventions of the global name space ๐. In that mode, names in the homenet, including the ones devices generate automatically, must be usable as labels in the global name space ๐ . [RFC5890] describes considerations for Internationalizing Domain Names in Applications (IDNA) ๐ธ.
Also, with the arrival of new "dotless" top-level domains, there's potential for ambiguity ๐. For example, a local host called computer could clash with a .computer Generic Top Level Domain (gTLD), if that gets registered ๐. So qualified names should always be used, whether or not they're shown to the user ๐. The IAB has issued a statement explaining why dotless domains should be considered harmful [IABdotless] ๐ซ.
There may be use cases where different realms in the homenet want different name spaces, or where a single name space gets segmented within the homenet ๐งฉ. So hierarchical name space management is likely to be required ๐ณ. Nothing should stop an individual device, or devices, from being independently registered in external name spaces ๐ฆ.
If there are two or more CE routers serving the home network, and each has a name space delegated from a different ISP, devices in the home could end up with multiple fully qualified names under multiple domains ๐ญโจ.
When a user is on a remote network and wants to reach devices in their home network, the domain search order presented might need a look when several associated name spaces exist ๐. That also implies a domain discovery function is desirable ๐.
It may be that not every device in the homenet is made available by name through an Internet name space. In that case, a "split view" (as described in [RFC6950], Section 4) may be preferred for certain devices, where devices inside the homenet get different DNS responses than devices outside ๐ญ.
Finally, this document makes no assumption about whether a reverse lookup service is present or absent ๐คทโโ๏ธ. One argument is that it could be useful for showing logging information to users with meaningful device names instead of literal addresses ๐. Also, some services, most notably email mail exchangers, have operators who've chosen to require a valid reverse lookup before accepting connections ๐ฌ.
3.7.5. Independent Operation ๐
Name resolution and service discovery for reachable devices must keep working if the local network gets disconnected from the global Internet ๐. For example, a local media server should still be available even if the Internet link is down for a long time ๐ฌ. This implies the local network should also be able to do a complete restart without external connectivity, with local naming and service discovery still working correctly ๐ช.
Like we said above, a local authoritative name service with a cache would let things keep working locally during sustained ISP outages ๐ง๏ธ.
Having an independent local trust anchor is desirable, so secure exchanges can still happen if external connectivity is unavailable ๐.
Changing ISPs should not affect local naming and service discovery ๐ฆ. Still, if the homenet uses a global name space provided by the ISP, then changing network providers will obviously have an impact ๐ฌ.
3.7.6. Considerations for LLNs ๐
In some parts of the homenet, especially LLNs or any devices running on battery power, devices may be sleeping ๐ด. In that case, a proxy for those nodes may be required, one that could respond to things like multicast service discovery requests ๐ก. Those same devices or parts of the network may have less capacity for multicast traffic that might be flooded in from other parts of the network ๐. In general, message utilisation should be efficient, considering the network technologies and constrained devices the service may need to run over โก.
There are efforts underway to work out naming and discovery solutions for the Constrained Application Protocol (CoAP) [RFC7252] in LLN networks ๐ง . Those efforts are outside the scope of this document ๐ โโ๏ธ.
3.7.7. DNS Resolver Discovery ๐
Automatic discovery of a name service is required, so client devices in the homenet can resolve external domains on the Internet ๐. That discovery must support clients that may be a number of router hops away from the name service ๐ฃ๏ธ. Similarly, it may be desirable to convey any DNS domain search list that may be in effect for the homenet ๐.
3.7.8. Devices Roaming to/from the Homenet โ๏ธ
Some devices that have registered names in the homenet Internet name space, and that are mobile, will likely attach to the Internet at other locations and get an IP address there ๐งณ. Devices may also move between different homenets ๐ก. In those cases, it is desirable that devices can be accessed by the same name they use in their home network ๐ซ.
This document doesn't discuss solutions to this problem ๐ โโ๏ธ. Possible solutions include Mobile IPv6 or Dynamic DNS -- either of which would put additional requirements on the homenet -- or setting up a (VPN) tunnel to a server in the home network ๐๐ฆ.
3.8. Other Considerations ๐
This section covers two other considerations for home networking. The architecture should not preclude them, but this text stays neutral about them ๐.
3.8.1. Quality of Service ๐ข
Quality of Service (QoS) support in a multi-service homenet may be a requirement ๐บ. For example, a critical system (maybe health care related) might need it, or differentiation between types of traffic like file sharing, cloud storage, live streaming, Voice over IP (VoIP), and so on ๐ง. Different link media types may have different properties or capabilities for this ๐งต.
However, homenet scenarios should require no new QoS protocols ๐ โโ๏ธ. A Diffserv [RFC2475] approach with a small number of predefined traffic classes may generally be sufficient ๐. There's little experience of QoS deployment in home networks right now, though ๐ค. QoS, or traffic prioritisation, methods will likely be needed at the CE router, and potentially around boundaries between different link media types ๐ฆ. For example, some traffic may simply not be appropriate for some media and need to be dropped to avoid overloading the constrained media ๐.
There may also be complementary mechanisms that help application performance and behaviour in the homenet domain, such as making sure proper buffering algorithms are used, as described in [Gettys11] โจ๐ซง.
3.8.2. Operations and Management โจ
okay bestie, let's talk about keeping the homenet running ๐ง this section is like a quick vibe check on ops and management for the kind of homenet this doc describes. a separate doc is supposed to handle the full ops framework, so this is just the opening chat ๐
the big goal is for the homenet to be self-organising and self-configuring at the network layer ๐ธ like, prefixes should be able to get assigned to router interfaces without anyone lifting a finger. apps on devices should also be able to use zero-configuration service discovery to find stuff the home user actually cares about ๐ฆ the home user is NOT expected to assign prefixes to links or manage DNS entries for the home network. that's expert territory ๐ expert operation shouldn't be blocked, but it's not the norm, obviously.
the user might still need to do a little config, though ๐ think entering a security key so they can get on the wireless network, or giving a "friendly name" to a device that shows up in service discovery. configuring link- and application-layer services is out of scope for this architecture principles doc, but it's probably going to be needed in an operational homenet, iykyk ๐
even if the user isn't configuring the networking bits, they might still wanna see how their network is doing and what devices are connected ๐ that means network monitoring protocols will be needed so they can view the network and its status, maybe through a web interface or something similar. the user may not understand how the network works, but it's fair to assume they care about faults or problems ๐ญ monitoring could also reach other devices like storage devices or web cameras, but those are beyond this doc's scope ๐
an ISP or some third party might also want to offer remote management for the homenet on the user's behalf, or help out when something goes wrong ๐ซถ if so, appropriate management and monitoring protocols would be required, periodt โจ
specifying the protocols for homenet management and monitoring is out of scope for this doc ๐ again, a separate document is expected to describe the ops and management framework for these kinds of home networks.
one last thing, and it's important ๐ฅ all network management and monitoring functions should be available over IPv6 transport, even when the homenet is dual stack. literally main character energy for IPv6 ๐
3.9. Implementing the Architecture on IPv6 ๐
this architecture text encourages reusing existing protocols, so the necessary mechanisms are mostly already part of the IPv6 protocol set and common implementations ๐ฆ there are some exceptions though, obviously ๐
for automatic routing, it's expected that solutions can be built from existing protocols ๐ธ some smaller updates will probably be needed, like a new mechanism to turn a selected protocol on by default, or a mechanism to automatically assign prefixes to links inside the homenet ๐ง
some functionality might need bigger changes or brand-new protocols if the architecture requires it ๐ for example, multihoming with multiple exit routers would likely need extensions to support source and destination address-based routing inside the homenet. big ask, ngl ๐ญ
some protocol changes are required by the architecture no matter what ๐ for example, name resolution and service discovery need extensions to the existing zero-configuration link-local name resolution protocols so they can work across subnets, within the scope of the home network site โจ
some of the hardest problems here are figuring out where the "home" domain ends and the service provider domain begins ๐ also deciding whether some of the discovery extensions should affect only the network infrastructure or hosts too, and being able to turn on routing, prefix delegation, and other functions in a backwards-compatible way ๐ the hard stuff, bestie ๐ค
4. Conclusions ๐
this text defines principles and requirements for a homenet architecture ๐ the principles and requirements documented here should be observed by any future texts describing homenet protocols for routing, prefix management, security, naming, or service discovery ๐ซถ no going rogue, bestie ๐ฅ
5. Security Considerations ๐
security considerations for the homenet architecture are discussed in Section 3.6 above ๐ go read that, it's giving very serious energy ๐ญ
6. References ๐
6.1. Normative References ๐ธ
[RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6
(IPv6) Specification", RFC 2460, December 1998,
<http://www.rfc-editor.org/info/rfc2460>.
[RFC3633] Troan, O. and R. Droms, "IPv6 Prefix Options for Dynamic
Host Configuration Protocol (DHCP) version 6", RFC 3633,
December 2003, <http://www.rfc-editor.org/info/rfc3633>.
[RFC4193] Hinden, R. and B. Haberman, "Unique Local IPv6 Unicast
Addresses", RFC 4193, October 2005,
<http://www.rfc-editor.org/info/rfc4193>.
[RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing
Architecture", RFC 4291, February 2006,
<http://www.rfc-editor.org/info/rfc4291>.
6.2. Informative References ๐
okay so these are the "extra reading" refs, the ones that give background and context but aren't required to make the homenet stuff work ๐ค bestie, there are a LOT of them, so here they are, all of them, complete:
- [RFC1918] Rekhter, Y., Moskowitz, R., Karrenberg, D., Groot, G., and E. Lear, "Address Allocation for Private Internets", BCP 5, RFC 1918, February 1996, <http://www.rfc-editor.org/info/rfc1918>.
- [RFC2475] Blake, S., Black, D., Carlson, M., Davies, E., Wang, Z., and W. Weiss, "An Architecture for Differentiated Services", RFC 2475, December 1998, <http://www.rfc-editor.org/info/rfc2475>.
- [RFC2775] Carpenter, B., "Internet Transparency", RFC 2775, February 2000, <http://www.rfc-editor.org/info/rfc2775>.
- [RFC2827] Ferguson, P. and D. Senie, "Network Ingress Filtering: Defeating Denial of Service Attacks which employ IP Source Address Spoofing", BCP 38, RFC 2827, May 2000, <http://www.rfc-editor.org/info/rfc2827>.
- [RFC3002] Mitzel, D., "Overview of 2000 IAB Wireless Internetworking Workshop", RFC 3002, December 2000, <http://www.rfc-editor.org/info/rfc3002>.
- [RFC3022] Srisuresh, P. and K. Egevang, "Traditional IP Network Address Translator (Traditional NAT)", RFC 3022, January 2001, <http://www.rfc-editor.org/info/rfc3022>.
- [RFC4033] Arends, R., Austein, R., Larson, M., Massey, D., and S. Rose, "DNS Security Introduction and Requirements", RFC 4033, March 2005, <http://www.rfc-editor.org/info/rfc4033>.
- [RFC4191] Draves, R. and D. Thaler, "Default Router Preferences and More-Specific Routes", RFC 4191, November 2005, <http://www.rfc-editor.org/info/rfc4191>.
- [RFC4192] Baker, F., Lear, E., and R. Droms, "Procedures for Renumbering an IPv6 Network without a Flag Day", RFC 4192, September 2005, <http://www.rfc-editor.org/info/rfc4192>.
- [RFC4607] Holbrook, H. and B. Cain, "Source-Specific Multicast for IP", RFC 4607, August 2006, <http://www.rfc-editor.org/info/rfc4607>.
- [RFC4862] Thomson, S., Narten, T., and T. Jinmei, "IPv6 Stateless Address Autoconfiguration", RFC 4862, September 2007, <http://www.rfc-editor.org/info/rfc4862>.
- [RFC4864] Van de Velde, G., Hain, T., Droms, R., Carpenter, B., and E. Klein, "Local Network Protection for IPv6", RFC 4864, May 2007, <http://www.rfc-editor.org/info/rfc4864>.
- [RFC4941] Narten, T., Draves, R., and S. Krishnan, "Privacy Extensions for Stateless Address Autoconfiguration in IPv6", RFC 4941, September 2007, <http://www.rfc-editor.org/info/rfc4941>.
- [RFC5533] Nordmark, E. and M. Bagnulo, "Shim6: Level 3 Multihoming Shim Protocol for IPv6", RFC 5533, June 2009, <http://www.rfc-editor.org/info/rfc5533>.
- [RFC5890] Klensin, J., "Internationalized Domain Names for Applications (IDNA): Definitions and Document Framework", RFC 5890, August 2010, <http://www.rfc-editor.org/info/rfc5890>.
- [RFC5969] Townsley, W. and O. Troan, "IPv6 Rapid Deployment on IPv4 Infrastructures (6rd) -- Protocol Specification", RFC 5969, August 2010, <http://www.rfc-editor.org/info/rfc5969>.
- [RFC6092] Woodyatt, J., "Recommended Simple Security Capabilities in Customer Premises Equipment (CPE) for Providing Residential IPv6 Internet Service", RFC 6092, January 2011, <http://www.rfc-editor.org/info/rfc6092>.
- [RFC6144] Baker, F., Li, X., Bao, C., and K. Yin, "Framework for IPv4/IPv6 Translation", RFC 6144, April 2011, <http://www.rfc-editor.org/info/rfc6144>.
- [RFC6145] Li, X., Bao, C., and F. Baker, "IP/ICMP Translation Algorithm", RFC 6145, April 2011, <http://www.rfc-editor.org/info/rfc6145>.
- [RFC6177] Narten, T., Huston, G., and L. Roberts, "IPv6 Address Assignment to End Sites", BCP 157, RFC 6177, March 2011, <http://www.rfc-editor.org/info/rfc6177>.
- [RFC6204] Singh, H., Beebee, W., Donley, C., Stark, B., and O. Troan, "Basic Requirements for IPv6 Customer Edge Routers", RFC 6204, April 2011, <http://www.rfc-editor.org/info/rfc6204>.
- [RFC6296] Wasserman, M. and F. Baker, "IPv6-to-IPv6 Network Prefix Translation", RFC 6296, June 2011, <http://www.rfc-editor.org/info/rfc6296>.
- [RFC6333] Durand, A., Droms, R., Woodyatt, J., and Y. Lee, "Dual-Stack Lite Broadband Deployments Following IPv4 Exhaustion", RFC 6333, August 2011, <http://www.rfc-editor.org/info/rfc6333>.
- [RFC6555] Wing, D. and A. Yourtchenko, "Happy Eyeballs: Success with Dual-Stack Hosts", RFC 6555, April 2012, <http://www.rfc-editor.org/info/rfc6555>.
- [RFC6724] Thaler, D., Draves, R., Matsumoto, A., and T. Chown, "Default Address Selection for Internet Protocol Version 6 (IPv6)", RFC 6724, September 2012, <http://www.rfc-editor.org/info/rfc6724>.
- [RFC6762] Cheshire, S. and M. Krochmal, "Multicast DNS", RFC 6762, February 2013, <http://www.rfc-editor.org/info/rfc6762>.
- [RFC6824] Ford, A., Raiciu, C., Handley, M., and O. Bonaventure, "TCP Extensions for Multipath Operation with Multiple Addresses", RFC 6824, January 2013, <http://www.rfc-editor.org/info/rfc6824>.
- [RFC6887] Wing, D., Cheshire, S., Boucadair, M., Penno, R., and P. Selkirk, "Port Control Protocol (PCP)", RFC 6887, April 2013, <http://www.rfc-editor.org/info/rfc6887>.
- [RFC6950] Peterson, J., Kolkman, O., Tschofenig, H., and B. Aboba, "Architectural Considerations on Application Features in the DNS", RFC 6950, October 2013, <http://www.rfc-editor.org/info/rfc6950>.
- [RFC7084] Singh, H., Beebee, W., Donley, C., and B. Stark, "Basic Requirements for IPv6 Customer Edge Routers", RFC 7084, November 2013, <http://www.rfc-editor.org/info/rfc7084>.
- [RFC7157] Troan, O., Miles, D., Matsushima, S., Okimoto, T., and D. Wing, "IPv6 Multihoming without Network Address Translation", RFC 7157, March 2014, <http://www.rfc-editor.org/info/rfc7157>.
- [RFC7252] Shelby, Z., Hartke, K., and C. Bormann, "The Constrained Application Protocol (CoAP)", RFC 7252, June 2014, <http://www.rfc-editor.org/info/rfc7252>.
- [IABdotless] IAB, "IAB Statement: Dotless Domains Considered Harmful", February 2013, <http://www.iab.org/documents/correspondence-reports-documents/2013-2/iab-statement-dotless-domains-considered-harmful>.
- [Gettys11] Gettys, J., "Bufferbloat: Dark Buffers in the Internet", March 2011, <http://www.ietf.org/proceedings/80/slides/tsvarea-1.pdf>.
Acknowledgments ๐ซถ
the authors wanted to thank a huge crew of people for their comments and contributions during the homenet WG meetings and on the WG mailing list ๐ Mikael Abrahamsson, Aamer Akhter, Mark Andrews, Dmitry Anipko, Ran Atkinson, Fred Baker, Ray Bellis, Teco Boot, John Brzozowski, Cameron Byrne, Brian Carpenter, Stuart Cheshire, Julius Chroboczek, Lorenzo Colitti, Robert Cragie, Elwyn Davies, Ralph Droms, Lars Eggert, Jim Gettys, Olafur Gudmundsson, Wassim Haddad, Joel M. Halpern, David Harrington, Lee Howard, Ray Hunter, Joel Jaeggli, Heather Kirksey, Ted Lemon, Acee Lindem, Kerry Lynn, Daniel Migault, Erik Nordmark, Michael Richardson, Mattia Rossi, Barbara Stark, Sander Steffann, Markus Stenberg, Don Sturek, Andrew Sullivan, Dave Taht, Dave Thaler, Michael Thomas, Mark Townsley, JP Vasseur, Curtis Villamizar, Russ White, Dan Wing, and James Woodyatt ๐ธ
an acknowledgment basically means that a person's text made it into the document or really helped clarify or reinforce something in it โจ it does NOT mean every contributor agrees with every single point in the document, so don't go assuming that ๐
Authors' Addresses ๐
Tim Chown (editor)
University of Southampton
Highfield
Southampton, Hampshire SO17 1BJ
United Kingdom
EMail: tjc@ecs.soton.ac.uk
Jari Arkko
Ericsson
Jorvas 02420
Finland
EMail: jari.arkko@piuha.net
Anders Brandt
Sigma Designs
Emdrupvej 26A, 1
Copenhagen DK-2100
Denmark
EMail: anders_brandt@sigmadesigns.com
Ole Troan
Cisco Systems, Inc.
Philip Pedersensvei 1
Lysaker, N-1325
Norway
EMail: ot@cisco.com
Jason Weil
Time Warner Cable
13820 Sunrise Valley Drive
Herndon, VA 20171
United States
EMail: jason.weil@twcable.com
and that's a wrap on RFC 7368, bestie!! ๐โจ๐ the whole homenet crew, from the editor to every single person who helped out, made this happen ๐
๐ฆ where this page comes from
- ietf: rfc7368 2014-10
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms