rfc9080.original | rfc9080.txt | |||
---|---|---|---|---|
Network Working Group J. Chroboczek | Internet Engineering Task Force (IETF) J. Chroboczek | |||
Internet-Draft IRIF, University of Paris-Diderot | Request for Comments: 9080 IRIF, University of Paris-Diderot | |||
Intended status: Standards Track July 18, 2018 | Category: Standards Track August 2021 | |||
Expires: January 19, 2019 | ISSN: 2070-1721 | |||
Homenet profile of the Babel routing protocol | Homenet Profile of the Babel Routing Protocol | |||
draft-ietf-homenet-babel-profile-07 | ||||
Abstract | Abstract | |||
This document defines the exact subset of the Babel routing protocol | This document defines the exact subset of the Babel routing protocol | |||
and its extensions that is required by an implementation of the | and its extensions that is required by an implementation of the | |||
Homenet protocol suite, as well as the interactions between the Home | Homenet protocol suite, as well as the interactions between the Home | |||
Networking Control Protocol (HNCP) and Babel. | Networking Control Protocol (HNCP) and Babel. | |||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
provisions of BCP 78 and BCP 79. | ||||
Internet-Drafts are working documents of the Internet Engineering | ||||
Task Force (IETF). Note that other groups may also distribute | ||||
working documents as Internet-Drafts. The list of current Internet- | ||||
Drafts is at https://datatracker.ietf.org/drafts/current/. | ||||
Internet-Drafts are draft documents valid for a maximum of six months | This document is a product of the Internet Engineering Task Force | |||
and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
Internet Standards is available in Section 2 of RFC 7841. | ||||
This Internet-Draft will expire on January 19, 2019. | Information about the current status of this document, any errata, | |||
and how to provide feedback on it may be obtained at | ||||
https://www.rfc-editor.org/info/rfc9080. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2018 IETF Trust and the persons identified as the | Copyright (c) 2021 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction | |||
1.1. Requirement Language . . . . . . . . . . . . . . . . . . 2 | 1.1. Requirements Language | |||
1.2. Background . . . . . . . . . . . . . . . . . . . . . . . 2 | 1.2. Background | |||
2. The Homenet profile of Babel . . . . . . . . . . . . . . . . 3 | 2. The Homenet Profile of Babel | |||
2.1. Requirements . . . . . . . . . . . . . . . . . . . . . . 3 | 2.1. Requirements | |||
2.2. Optional features . . . . . . . . . . . . . . . . . . . . 5 | 2.2. Optional Features | |||
3. Interactions between HNCP and Babel . . . . . . . . . . . . . 5 | 3. Interactions between HNCP and Babel | |||
3.1. Requirements . . . . . . . . . . . . . . . . . . . . . . 6 | 3.1. Requirements | |||
3.2. Optional features . . . . . . . . . . . . . . . . . . . . 6 | 3.2. Optional Features | |||
4. Security Considerations . . . . . . . . . . . . . . . . . . . 7 | 4. Security Considerations | |||
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 | 5. IANA Considerations | |||
6. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 8 | 6. References | |||
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 8 | 6.1. Normative References | |||
7.1. Normative References . . . . . . . . . . . . . . . . . . 8 | 6.2. Informative References | |||
7.2. Informative References . . . . . . . . . . . . . . . . . 8 | Acknowledgments | |||
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 9 | Author's Address | |||
1. Introduction | 1. Introduction | |||
The core of the Homenet protocol suite consists of the Home | The core of the Homenet protocol suite consists of the Home | |||
Networking Control Protocol (HNCP) [RFC7788], a protocol used for | Networking Control Protocol (HNCP) [RFC7788], a protocol used for | |||
flooding configuration information and assigning prefixes to links, | flooding configuration information and assigning prefixes to links, | |||
combined with the Babel routing protocol [RFC6126bis]. Babel is an | combined with the Babel routing protocol [RFC8966]. Babel is an | |||
extensible, flexible and modular protocol: minimal implementations of | extensible, flexible, and modular protocol: minimal implementations | |||
Babel have been demonstrated that consist of a few hundred lines of | of Babel have been demonstrated that consist of a few hundred lines | |||
code, while the "large" implementation includes support for a number | of code, while the "large" implementation includes support for a | |||
of extensions and consists of over ten thousand lines of C code. | number of extensions and consists of over ten thousand lines of C | |||
code. | ||||
This document consists of two parts. The first specifies the exact | This document consists of two parts. The first specifies the exact | |||
subset of the Babel protocol and its extensions that is required by | subset of the Babel protocol and its extensions that is required by | |||
an implementation of the Homenet protocol suite. The second | an implementation of the Homenet protocol suite. The second | |||
specifies how HNCP interacts with Babel. | specifies how HNCP interacts with Babel. | |||
1.1. Requirement Language | 1.1. Requirements Language | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
"OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in | |||
14 [RFC2119] [RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
capitals, as shown here. | capitals, as shown here. | |||
1.2. Background | 1.2. Background | |||
The Babel routing protocol and its extensions are defined in a number | The Babel routing protocol and its extensions are defined in a number | |||
of documents: | of documents: | |||
o RFC 6126bis [RFC6126bis] defines the Babel routing protocol. It | * RFC 8966 [RFC8966] defines the Babel routing protocol. It allows | |||
allows Babel's control data to be carried either over link-local | Babel's control data to be carried either over link-local IPv6 or | |||
IPv6 or over IPv4, and in either case allows announcing both IPv4 | over IPv4 and in either case allows announcing both IPv4 and IPv6 | |||
and IPv6 routes. It leaves link cost estimation, metric | routes. It leaves link cost estimation, metric computation, and | |||
computation and route selection to the implementation. Distinct | route selection to the implementation. Distinct implementations | |||
implementations of RFC 6126bis Babel will interoperate, in the | of Babel [RFC8966] will interoperate, in the sense that they will | |||
sense that they will maintain a set of loop-free forwarding paths. | maintain a set of loop-free forwarding paths. However, if they | |||
However, if they implement conflicting options, they might not be | implement conflicting options, they might not be able to exchange | |||
able to exchange a full set of routes; in the worst case, an | a full set of routes. In the worst case, an implementation that | |||
implementation that only implements the IPv6 subset of the | only implements the IPv6 subset of the protocol and an | |||
protocol and an implementation that only implements the IPv4 | implementation that only implements the IPv4 subset of the | |||
subset of the protocol will not exchange any routes. In addition, | protocol will not exchange any routes. In addition, if | |||
if implementations use conflicting route selection policies, | implementations use conflicting route selection policies, | |||
persistent oscillations might occur. | persistent oscillations might occur. | |||
o The informative Appendix A of RFC 6126bis suggests a simple and | * The informative Appendix A of [RFC8966] suggests a simple and | |||
easy to implement algorithm for cost and metric computation that | easy-to-implement algorithm for cost and metric computation that | |||
has been found to work satisfactorily in a wide range of | has been found to work satisfactorily in a wide range of | |||
topologies. | topologies. | |||
o While RFC 6126bis does not provide an algorithm for route | * While RFC 8966 does not provide an algorithm for route selection, | |||
selection, its Section 3.6 suggests selecting the route with | its Section 3.6 suggests selecting the route with the smallest | |||
smallest metric with some hysteresis applied. An algorithm that | metric with some hysteresis applied. An algorithm that has been | |||
has been found to work well in practice is described in | found to work well in practice is described in Section III.E of | |||
Section III.E of [DELAY-BASED]. | [DELAY-BASED]. | |||
o Five RFCs and Internet-Drafts define optional extensions to Babel: | * Four documents define optional extensions to Babel: authentication | |||
HMAC-based authentication [RFC7298], source-specific routing | based on Hashed Message Authentication Code (HMAC) [RFC8967], | |||
[BABEL-SS], delay-based routing [BABEL-RTT] and ToS-specific | source-specific routing [RFC9079], delay-based routing | |||
routing [ToS-SPECIFIC]. All of these extensions interoperate with | [BABEL-RTT], and ToS-specific (Type of Service) routing | |||
the core protocol as well as with each other. | [ToS-SPECIFIC]. All of these extensions interoperate with the | |||
core protocol as well as with each other. | ||||
2. The Homenet profile of Babel | 2. The Homenet Profile of Babel | |||
2.1. Requirements | 2.1. Requirements | |||
REQ1: a Homenet implementation of Babel MUST encapsulate Babel | REQ1: A Homenet implementation of Babel MUST encapsulate Babel | |||
control traffic in IPv6 packets sent to the IANA-assigned port 6696 | control traffic in IPv6 packets sent to the IANA-assigned | |||
and either the IANA-assigned multicast group ff02::1:6 or to a link- | port 6696 and either the IANA-assigned multicast group | |||
local unicast address. | ff02::1:6 or to a link-local unicast address. | |||
Rationale: since Babel is able to carry both IPv4 and IPv6 routes | Rationale: Since Babel is able to carry both IPv4 and IPv6 | |||
over either IPv4 or IPv6, choosing the protocol used for carrying | routes over either IPv4 or IPv6, choosing the protocol | |||
control traffic is a matter of preference. Since IPv6 has some | used for carrying control traffic is a matter of | |||
features that make implementations somewhat simpler and more | preference. Since IPv6 has some features that make | |||
reliable (notably properly scoped and reasonably stable link-local | implementations somewhat simpler and more reliable | |||
addresses), we require carrying control data over IPv6. | (notably properly scoped and reasonably stable link-local | |||
addresses), we require carrying control data over IPv6. | ||||
REQ2: a Homenet implementation of Babel MUST implement the IPv6 | REQ2: A Homenet implementation of Babel MUST implement the IPv6 | |||
subset of the protocol defined in the body of RFC 6126bis. | subset of the protocol defined in the body of RFC 8966. | |||
Rationale: support for IPv6 routing is an essential component of | Rationale: Support for IPv6 routing is an essential | |||
the Homenet architecture. | component of the Homenet architecture. | |||
REQ3: a Homenet implementation of Babel SHOULD implement the IPv4 | REQ3: A Homenet implementation of Babel SHOULD implement the IPv4 | |||
subset of the protocol defined in the body of RFC 6126bis. Use of | subset of the protocol defined in the body of RFC 8966. Use | |||
other techniques for acquiring IPv4 connectivity (such as multiple | of other techniques for acquiring IPv4 connectivity (such as | |||
layers of NAT) is strongly discouraged. | multiple layers of NAT) is strongly discouraged. | |||
Rationale: support for IPv4 will likely remain necessary for years | Rationale: Support for IPv4 will likely remain necessary | |||
to come, and even in pure IPv6 deployments, including code for | for years to come, and even in pure IPv6 deployments, | |||
supporting IPv4 has very little cost. Since HNCP makes it easy to | including code for supporting IPv4 has very little cost. | |||
assign distinct IPv4 prefixes to the links in a network, it is not | Since HNCP makes it easy to assign distinct IPv4 prefixes | |||
necessary to resort to multiple layers of NAT, with all of its | to the links in a network, it is not necessary to resort | |||
problems. | to multiple layers of NAT, with all of its problems. | |||
REQ4: a Homenet implementation of Babel MUST implement source- | REQ4: A Homenet implementation of Babel MUST implement source- | |||
specific routing for IPv6, as defined in draft-ietf-babel-source- | specific routing for IPv6, as defined in RFC 9079 [RFC9079]. | |||
specific [BABEL-SS]. | ||||
Rationale: source-specific routing is an essential component of | Rationale: Source-specific routing is an essential | |||
the Homenet architecture. Source-specific routing for IPv4 is not | component of the Homenet architecture. Source-specific | |||
required, since HNCP arranges things so that a single non-specific | routing for IPv4 is not required, since HNCP arranges | |||
IPv4 default route is announced (Section 6.5 of [RFC7788]). | things so that a single nonspecific IPv4 default route is | |||
announced (Section 6.5 of [RFC7788]). | ||||
REQ5: a Homenet implementation of Babel must use metrics that are of | REQ5: A Homenet implementation of Babel must use metrics that are | |||
a similar magnitude to the values suggested in Appendix A of | of a similar magnitude to the values suggested in Appendix A | |||
RFC 6126bis. In particular, it SHOULD assign costs that are no less | of [RFC8966]. In particular, it SHOULD assign costs that are | |||
than 256 to wireless links, and SHOULD assign costs between 32 and | no less than 256 to wireless links and SHOULD assign costs | |||
196 to lossless wired links. | between 32 and 196 to lossless wired links. | |||
Rationale: if two implementations of Babel choose very different | Rationale: If two implementations of Babel choose very | |||
values for link costs, combining routers from different vendors | different values for link costs, combining routers from | |||
will cause sub-optimal routing. | different vendors will cause suboptimal routing. | |||
REQ6: a Homenet implementation of Babel SHOULD distinguish between | REQ6: A Homenet implementation of Babel SHOULD distinguish between | |||
wired and wireless links; if it is unable to determine whether a link | wired and wireless links; if it is unable to determine | |||
is wired or wireless, it SHOULD make the worst-case hypothesis that | whether a link is wired or wireless, it SHOULD make the | |||
the link is wireless. It SHOULD dynamically probe the quality of | worst-case hypothesis that the link is wireless. It SHOULD | |||
wireless links and derive a suitable metric from its quality | dynamically probe the quality of wireless links and derive a | |||
estimation. Appendix A of RFC 6126bis gives an example of a suitable | suitable metric from its quality estimation. Appendix A of | |||
algorithm. | [RFC8966] gives an example of a suitable algorithm. | |||
Rationale: support for wireless transit links is a distinguishing | Rationale: Support for wireless transit links is a | |||
feature of Homenet, and one that is requested by our users. In | distinguishing feature of Homenet, and one that is | |||
the absence of dynamically computed metrics, the routing protocol | requested by our users. In the absence of dynamically | |||
attempts to minimise the number of links crossed by a route, and | computed metrics, the routing protocol attempts to | |||
therefore prefers long, lossy links to shorter, lossless ones. In | minimise the number of links crossed by a route and | |||
wireless networks, "hop-count routing is worst-path routing". | therefore prefers long, lossy links to shorter, lossless | |||
ones. In wireless networks, "hop-count routing is worst- | ||||
path routing". | ||||
While it would be desirable to perform link-quality probing on | While it would be desirable to perform link-quality | |||
some wired link technologies, notably power-line networks, these | probing on some wired link technologies, notably power- | |||
kinds of links tend to be difficult or impossible to detect | line networks, these kinds of links tend to be difficult | |||
automatically, and we are not aware of any published link-quality | or impossible to detect automatically, and we are not | |||
algorithms for them. Hence, we do not require link-quality | aware of any published link-quality algorithms for them. | |||
estimation for wired links of any kind. | Hence, we do not require link-quality estimation for wired | |||
links of any kind. | ||||
2.2. Optional features | 2.2. Optional Features | |||
OPT1: a Homenet implementation of Babel MAY perform route selection | OPT1: A Homenet implementation of Babel MAY perform route selection | |||
by applying hysteresis to route metrics, as suggested in Section 3.6 | by applying hysteresis to route metrics, as suggested in | |||
of RFC 6126bis and described in detail in Section III.E of | Section 3.6 of [RFC8966] and described in detail in | |||
[BABEL-RTT]. However, hysteresis is not required, and the | Section III.E of [DELAY-BASED]. However, hysteresis is not | |||
implementation may simply pick the route with the smallest metric. | required, and the implementation may simply pick the route | |||
with the smallest metric. | ||||
Rationale: hysteresis is only useful in congested and highly | Rationale: Hysteresis is only useful in congested and | |||
dynamic networks. In a typical home network, stable and | highly dynamic networks. In a typical home network, which | |||
uncongested, the feedback loop that hysteresis compensates for | is stable and uncongested, the feedback loop that | |||
does not occur. | hysteresis compensates for does not occur. | |||
OPT2: a Homenet implementation of Babel may include support for other | OPT2: A Homenet implementation of Babel may include support for | |||
extensions to the protocol, as long as they are known to interoperate | other extensions to the protocol, as long as they are known | |||
with both the core protocol and source-specific routing. | to interoperate with both the core protocol and source- | |||
specific routing. | ||||
Rationale: a number of extensions to the Babel routing protocol | Rationale: A number of extensions to the Babel routing | |||
have been defined over the years; however, they are useful in | protocol have been defined over the years; however, they | |||
fairly specific situations, such as routing over global-scale | are useful in fairly specific situations, such as routing | |||
overlay networks [BABEL-RTT] or multi-hop wireless networks with | over global-scale overlay networks [BABEL-RTT] or multi- | |||
multiple radio frequencies [BABEL-Z]. Hence, with the exception | hop wireless networks with multiple radio frequencies | |||
of source-specific routing, no extensions are required for | [BABEL-Z]. Hence, with the exception of source-specific | |||
Homenet. | routing, no extensions are required for Homenet. | |||
3. Interactions between HNCP and Babel | 3. Interactions between HNCP and Babel | |||
The Homenet architecture cleanly separates configuration, which is | The Homenet architecture cleanly separates configuration, which is | |||
done by HNCP, from routing, which is done by Babel. While the | done by HNCP, from routing, which is done by Babel. While the | |||
coupling between the two protocols is deliberately kept to a minimum, | coupling between the two protocols is deliberately kept to a minimum, | |||
some interactions are unavoidable. | some interactions are unavoidable. | |||
All the interactions between HNCP and Babel consist of HNCP causing | All the interactions between HNCP and Babel consist of HNCP causing | |||
Babel to perform an announcement on its behalf (under no | Babel to perform an announcement on its behalf (under no | |||
circumstances does Babel cause HNCP to perform an action). How this | circumstances does Babel cause HNCP to perform an action). How this | |||
is realised is an implementation detail that is outside the scope of | is realised is an implementation detail that is outside the scope of | |||
this document; while it could conceivably be done using a private | this document; while it could conceivably be done using a private | |||
communication channel between HNCP and Babel, in existing | communication channel between HNCP and Babel, in existing | |||
implementations HNCP installs a route in the operating system's | implementations, HNCP installs a route in the operating system's | |||
kernel which is later picked up by Babel using the existing | kernel that is later picked up by Babel using the existing | |||
redistribution mechanisms. | redistribution mechanisms. | |||
3.1. Requirements | 3.1. Requirements | |||
REQ7: if an HNCP node receives a DHCPv6 prefix delegation for prefix | REQ7: If an HNCP node receives a DHCPv6 prefix delegation for | |||
P and publishes an External-Connection TLV containing a Delegated- | prefix P and publishes an External-Connection TLV containing | |||
Prefix TLV with prefix P and no Prefix-Policy TLV, then it MUST | a Delegated-Prefix TLV with prefix P and no Prefix-Policy | |||
announce a source-specific default route with source prefix P over | TLV, then it MUST announce a source-specific default route | |||
Babel. | with source prefix P over Babel. | |||
Rationale: source-specific routes are the main tool that Homenet | Rationale: Source-specific routes are the main tool that | |||
uses to enable optimal routing in the presence of multiple IPv6 | Homenet uses to enable optimal routing in the presence of | |||
prefixes. External connections with non-trivial prefix policies | multiple IPv6 prefixes. External connections with | |||
are explicitly excluded from this requirement, since their exact | nontrivial prefix policies are explicitly excluded from | |||
behaviour is application-specific. | this requirement, since their exact behaviour is | |||
application specific. | ||||
REQ8: if an HNCP node receives a DHCPv4 lease with an IPv4 address | REQ8: If an HNCP node receives a DHCPv4 lease with an IPv4 address | |||
and wins the election for NAT gateway, then it MUST act as a NAT | and wins the election for NAT gateway, then it MUST act as a | |||
gateway and MUST announce a (non-specific) IPv4 default route over | NAT gateway and MUST announce a (nonspecific) IPv4 default | |||
Babel. | route over Babel. | |||
Rationale: the Homenet stack does not use source-specific routing | Rationale: The Homenet stack does not use source-specific | |||
for IPv4; instead, HNCP elects a single NAT gateway and publishes | routing for IPv4; instead, HNCP elects a single NAT | |||
a single default route towards that gateway ([RFC7788] | gateway and publishes a single default route towards that | |||
Section 6.5). | gateway ([RFC7788], Section 6.5). | |||
REQ9: if an HNCP node assigns a prefix P to an attached link and | REQ9: If an HNCP node assigns a prefix P to an attached link and | |||
announces P in an Assigned-Prefix TLV, then it MUST announce a route | announces P in an Assigned-Prefix TLV, then it MUST announce | |||
towards P over Babel. | a route towards P over Babel. | |||
Rationale: prefixes assigned to links must be routable within the | Rationale: Prefixes assigned to links must be routable | |||
Homenet. | within the Homenet. | |||
3.2. Optional features | 3.2. Optional Features | |||
OPT3: an HNCP node that receives a DHCPv6 prefix delegation MAY | OPT3: An HNCP node that receives a DHCPv6 prefix delegation MAY | |||
announce a non-specific IPv6 default route over Babel in addition to | announce a nonspecific IPv6 default route over Babel in | |||
the source-specific default route mandated by requirement REQ7. | addition to the source-specific default route mandated by | |||
requirement REQ7. | ||||
Rationale: since the source-specific default route is more | Rationale: Since the source-specific default route is more | |||
specific than the non-specific default route, the former will | specific than the nonspecific default route, the former | |||
override the latter if all nodes implement source-specific | will override the latter if all nodes implement source- | |||
routing. Announcing an additional non-specific route is allowed, | specific routing. Announcing an additional nonspecific | |||
since doing that causes no harm and might simplify operations in | route is allowed, since doing that causes no harm and | |||
some circumstances, e.g. when interoperating with a routing | might simplify operations in some circumstances, e.g., | |||
protocol that does not support source-specific routing. | when interoperating with a routing protocol that does not | |||
support source-specific routing. | ||||
OPT4: an HNCP node that receives a DHCPv4 lease with an IPv4 address | OPT4: An HNCP node that receives a DHCPv4 lease with an IPv4 | |||
and wins the election for NAT gateway SHOULD NOT announce a source- | address and wins the election for NAT gateway SHOULD NOT | |||
specific IPv4 default route. | announce a source-specific IPv4 default route. | |||
Homenet does not require support for IPv4 source-specific routing. | Rationale: Homenet does not require support for IPv4 | |||
Announcing IPv4 source-specific routes will not cause routing | source-specific routing. Announcing IPv4 source-specific | |||
pathologies (blackholes or routing loops), but it might cause | routes will not cause routing pathologies (blackholes or | |||
packets sourced in different parts of the Homenet to follow | routing loops), but it might cause packets sourced in | |||
different paths, with all the confusion that this entails. | different parts of the Homenet to follow different paths, | |||
with all the confusion that this entails. | ||||
4. Security Considerations | 4. Security Considerations | |||
Both HNCP and Babel carry their control data in IPv6 packets with a | Both HNCP and Babel carry their control data in IPv6 packets with a | |||
link-local source address, and implementations are required to drop | link-local source address, and implementations are required to drop | |||
packets sent from a global address. Hence, they are only susceptible | packets sent from a global address. Hence, they are only susceptible | |||
to attacks from a directly connected link on which the HNCP and Babel | to attacks from a directly connected link on which the HNCP and Babel | |||
implementations are listening. | implementations are listening. | |||
The security of a Homenet network relies on having a set of | The security of a Homenet network relies on having a set of | |||
"Internal", "Ad Hoc" and "Hybrid" interfaces (Section 5.1 of | "Internal", "Ad Hoc", and "Hybrid" interfaces (Section 5.1 of | |||
[RFC7788]) that are assumed to be connected to links that are secured | [RFC7788]) that are assumed to be connected to links that are secured | |||
at a lower layer. HNCP and Babel packets are only accepted when they | at a lower layer. HNCP and Babel packets are only accepted when they | |||
originate on these trusted links. "External" and "Guest" interfaces | originate on these trusted links. "External" and "Guest" interfaces | |||
are connected to links that are not trusted, and any HNCP or Babel | are connected to links that are not trusted, and any HNCP or Babel | |||
packets that are received on such interfaces are ignored. ("Leaf" | packets that are received on such interfaces are ignored. ("Leaf" | |||
interfaces are a special case, since they are connected to trusted | interfaces are a special case since they are connected to trusted | |||
links but HNCP and Babel traffic received on such interfaces is | links, but HNCP and Babel traffic received on such interfaces is | |||
ignored.) This implies that the security of a Homenet network | ignored.) This implies that the security of a Homenet network | |||
depends on the reliability of the border discovery procedure | depends on the reliability of the border discovery procedure | |||
described in Section 5.3 of [RFC7788]. | described in Section 5.3 of [RFC7788]. | |||
If untrusted links are used for transit, which is NOT RECOMMENDED, | If untrusted links are used for transit, which is NOT RECOMMENDED, | |||
then any HNCP and Babel traffic that is carried over such links MUST | then any HNCP and Babel traffic that is carried over such links MUST | |||
be secured using an upper-layer security protocol. While both HNCP | be secured using an upper-layer security protocol. While both HNCP | |||
and Babel support cryptographic authentication, at the time of | and Babel support cryptographic authentication, at the time of | |||
writing no protocol for autonomous configuration of HNCP and Babel | writing, no protocol for autonomous configuration of HNCP and Babel | |||
security has been defined. | security has been defined. | |||
5. IANA Considerations | 5. IANA Considerations | |||
This document requires no actions from IANA. | This document has no IANA actions. | |||
6. Acknowledgments | ||||
A number of people have helped with defining the requirements listed | ||||
in this document. I am especially indebted to Barbara Stark and | ||||
Markus Stenberg. | ||||
7. References | ||||
7.1. Normative References | 6. References | |||
[BABEL-SS] | 6.1. Normative References | |||
Boutier, M. and J. Chroboczek, "Source-Specific Routing in | ||||
Babel", draft-ietf-babel-source-specific-03 (work in | ||||
progress), August 2018. | ||||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997. | DOI 10.17487/RFC2119, March 1997, | |||
<https://www.rfc-editor.org/info/rfc2119>. | ||||
[RFC6126bis] | ||||
Chroboczek, J. and D. Schinazi, "The Babel Routing | ||||
Protocol", Internet Draft draft-ietf-babel-rfc6126bis-04, | ||||
October 2017. | ||||
[RFC7788] Stenberg, M., Barth, S., and P. Pfister, "Home Networking | [RFC7788] Stenberg, M., Barth, S., and P. Pfister, "Home Networking | |||
Control Protocol", RFC 7788, DOI 10.17487/RFC7788, April | Control Protocol", RFC 7788, DOI 10.17487/RFC7788, April | |||
2016. | 2016, <https://www.rfc-editor.org/info/rfc7788>. | |||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
May 2017. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
7.2. Informative References | [RFC8966] Chroboczek, J. and D. Schinazi, "The Babel Routing | |||
Protocol", RFC 8966, DOI 10.17487/RFC8966, January 2021, | ||||
<https://www.rfc-editor.org/info/rfc8966>. | ||||
[RFC9079] Boutier, M. and J. Chroboczek, "Source-Specific Routing in | ||||
the Babel Routing Protocol", RFC 9079, | ||||
DOI 10.17487/RFC9079, August 2021, | ||||
<https://www.rfc-editor.org/rfc/rfc9079>. | ||||
6.2. Informative References | ||||
[BABEL-RTT] | [BABEL-RTT] | |||
Jonglez, B. and J. Chroboczek, "Delay-based Metric | Jonglez, B. and J. Chroboczek, "Delay-based Metric | |||
Extension for the Babel Routing Protocol", draft-jonglez- | Extension for the Babel Routing Protocol", Work in | |||
babel-rtt-extension-01 (work in progress), May 2015. | Progress, Internet-Draft, draft-ietf-babel-rtt-extension- | |||
00, 26 April 2019, <https://datatracker.ietf.org/doc/html/ | ||||
draft-ietf-babel-rtt-extension-00>. | ||||
[BABEL-Z] Chroboczek, J., "Diversity Routing for the Babel Routing | [BABEL-Z] Chroboczek, J., "Diversity Routing for the Babel Routing | |||
Protocol", draft-chroboczek-babel-diversity-routing-01 | Protocol", Work in Progress, Internet-Draft, draft- | |||
(work in progress), February 2016. | chroboczek-babel-diversity-routing-01, 15 February 2016, | |||
<https://datatracker.ietf.org/doc/html/draft-chroboczek- | ||||
babel-diversity-routing-01>. | ||||
[DELAY-BASED] | [DELAY-BASED] | |||
Jonglez, B. and J. Chroboczek, "A delay-based routing | Jonglez, B., Boutier, M., and J. Chroboczek, "A delay- | |||
metric", March 2014. | based routing metric", March 2014, | |||
<http://arxiv.org/abs/1403.3488>. | ||||
Available online from http://arxiv.org/abs/1403.3488 | ||||
[RFC7298] Ovsienko, D., "Babel Hashed Message Authentication Code | [RFC8967] Dô, C., Kolodziejak, W., and J. Chroboczek, "MAC | |||
(HMAC) Cryptographic Authentication", RFC 7298, July 2014. | Authentication for the Babel Routing Protocol", RFC 8967, | |||
DOI 10.17487/RFC8967, January 2021, | ||||
<https://www.rfc-editor.org/info/rfc8967>. | ||||
[ToS-SPECIFIC] | [ToS-SPECIFIC] | |||
Chouasne, G., "https://tools.ietf.org/id/ | Chouasne, G. and J. Chroboczek, "TOS-Specific Routing in | |||
draft-chouasne-babel-tos-specific-00.xml", draft-chouasne- | Babel", Work in Progress, Internet-Draft, draft-chouasne- | |||
babel-tos-specific-00 (work in progress), July 2017. | babel-tos-specific-00, 3 July 2017, | |||
<https://datatracker.ietf.org/doc/html/draft-chouasne- | ||||
babel-tos-specific-00>. | ||||
Acknowledgments | ||||
A number of people have helped with defining the requirements listed | ||||
in this document. I am especially indebted to Barbara Stark and | ||||
Markus Stenberg. | ||||
Author's Address | Author's Address | |||
Juliusz Chroboczek | Juliusz Chroboczek | |||
IRIF, University of Paris-Diderot | IRIF, University of Paris-Diderot | |||
Case 7014 | Case 7014 | |||
75205 Paris Cedex 13 | 75205 Paris CEDEX 13 | |||
France | France | |||
Email: jch@irif.fr | Email: jch@irif.fr | |||
End of changes. 61 change blocks. | ||||
232 lines changed or deleted | 247 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |