summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc8965.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/rfc/rfc8965.txt')
-rw-r--r--doc/rfc/rfc8965.txt523
1 files changed, 523 insertions, 0 deletions
diff --git a/doc/rfc/rfc8965.txt b/doc/rfc/rfc8965.txt
new file mode 100644
index 0000000..d2ea196
--- /dev/null
+++ b/doc/rfc/rfc8965.txt
@@ -0,0 +1,523 @@
+
+
+
+
+Internet Engineering Task Force (IETF) J. Chroboczek
+Request for Comments: 8965 IRIF, University of Paris-Diderot
+Category: Informational January 2021
+ISSN: 2070-1721
+
+
+ Applicability of the Babel Routing Protocol
+
+Abstract
+
+ Babel is a routing protocol based on the distance-vector algorithm
+ augmented with mechanisms for loop avoidance and starvation
+ avoidance. This document describes a number of niches where Babel
+ has been found to be useful and that are arguably not adequately
+ served by more mature protocols.
+
+Status of This Memo
+
+ This document is not an Internet Standards Track specification; it is
+ published for informational purposes.
+
+ This document is a product of the Internet Engineering Task Force
+ (IETF). It represents the consensus of the IETF community. It has
+ received public review and has been approved for publication by the
+ Internet Engineering Steering Group (IESG). Not all documents
+ approved by the IESG are candidates for any level of Internet
+ Standard; see Section 2 of RFC 7841.
+
+ 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/rfc8965.
+
+Copyright Notice
+
+ Copyright (c) 2021 IETF Trust and the persons identified as the
+ document authors. All rights reserved.
+
+ This document is subject to BCP 78 and the IETF Trust's Legal
+ Provisions Relating to IETF Documents
+ (https://trustee.ietf.org/license-info) in effect on the date of
+ publication of this document. Please review these documents
+ carefully, as they describe your rights and restrictions with respect
+ to this document. Code Components extracted from this document must
+ include Simplified BSD License text as described in Section 4.e of
+ the Trust Legal Provisions and are provided without warranty as
+ described in the Simplified BSD License.
+
+Table of Contents
+
+ 1. Introduction and Background
+ 1.1. Technical Overview of the Babel Protocol
+ 2. Properties of the Babel Protocol
+ 2.1. Simplicity and Implementability
+ 2.2. Robustness
+ 2.3. Extensibility
+ 2.4. Limitations
+ 3. Successful Deployments of Babel
+ 3.1. Heterogeneous Networks
+ 3.2. Large-Scale Overlay Networks
+ 3.3. Pure Mesh Networks
+ 3.4. Small Unmanaged Networks
+ 4. Security Considerations
+ 5. References
+ 5.1. Normative References
+ 5.2. Informative References
+ Acknowledgments
+ Author's Address
+
+1. Introduction and Background
+
+ Babel [RFC8966] is a routing protocol based on the familiar distance-
+ vector algorithm (sometimes known as distributed Bellman-Ford)
+ augmented with mechanisms for loop avoidance (there is no "counting
+ to infinity") and starvation avoidance. This document describes a
+ number of niches where Babel is useful and that are arguably not
+ adequately served by more mature protocols such as OSPF [RFC5340] and
+ IS-IS [RFC1195].
+
+1.1. Technical Overview of the Babel Protocol
+
+ At its core, Babel is a distance-vector protocol based on the
+ distributed Bellman-Ford algorithm, similar in principle to RIP
+ [RFC2453] but with two important extensions: provisions for sensing
+ of neighbour reachability, bidirectional reachability, and link
+ quality, and support for multiple address families (e.g., IPv6 and
+ IPv4) in a single protocol instance.
+
+ Algorithms of this class are simple to understand and simple to
+ implement, but unfortunately they do not work very well -- they
+ suffer from "counting to infinity", a case of pathologically slow
+ convergence in some topologies after a link failure. Babel uses a
+ mechanism pioneered by the Enhanced Interior Gateway Routing Protocol
+ (EIGRP) [DUAL] [RFC7868], known as "feasibility", which avoids
+ routing loops and therefore makes counting to infinity impossible.
+
+ Feasibility is a conservative mechanism, one that not only avoids all
+ looping routes but also rejects some loop-free routes. Thus, it can
+ lead to a situation known as "starvation", where a router rejects all
+ routes to a given destination, even those that are loop-free. In
+ order to recover from starvation, Babel uses a mechanism pioneered by
+ the Destination-Sequenced Distance-Vector Routing Protocol (DSDV)
+ [DSDV] and known as "sequenced routes". In Babel, this mechanism is
+ generalised to deal with prefixes of arbitrary length and routes
+ announced at multiple points in a single routing domain (DSDV was a
+ pure mesh protocol, and only carried host routes).
+
+ In DSDV, the sequenced routes algorithm is slow to react to a
+ starvation episode. In Babel, starvation recovery is accelerated by
+ using explicit requests (known as "seqno requests" in the protocol)
+ that signal a starvation episode and cause a new sequenced route to
+ be propagated in a timely manner. In the absence of packet loss,
+ this mechanism is provably complete and clears the starvation in time
+ proportional to the diameter of the network, at the cost of some
+ additional signalling traffic.
+
+2. Properties of the Babel Protocol
+
+ This section describes the properties of the Babel protocol as well
+ as its known limitations.
+
+2.1. Simplicity and Implementability
+
+ Babel is a conceptually simple protocol. It consists of a familiar
+ algorithm (distributed Bellman-Ford) augmented with three simple and
+ well-defined mechanisms (feasibility, sequenced routes, and explicit
+ requests). Given a sufficiently friendly audience, the principles
+ behind Babel can be explained in 15 minutes, and a full description
+ of the protocol can be done in 52 minutes (one microcentury).
+
+ An important consequence is that Babel is easy to implement. At the
+ time of writing, there exist four independent, interoperable
+ implementations, including one that was reportedly written and
+ debugged in just two nights.
+
+2.2. Robustness
+
+ The fairly strong properties of the Babel protocol (convergence, loop
+ avoidance, and starvation avoidance) rely on some reasonably weak
+ properties of the network and the metric being used. The most
+ significant are:
+
+ causality: the "happens-before" relation is acyclic (intuitively,
+ a control message is not received before it has been sent);
+
+ strict monotonicity of the metric: for any metric M and link
+ cost C, M < C + M (intuitively, this implies that cycles have a
+ strictly positive metric);
+
+ left-distributivity of the metric: for any metrics M and M' and
+ cost C, if M <= M', then C + M <= C + M' (intuitively, this
+ implies that a good choice made by a neighbour B of a node A is
+ also a good choice for A).
+
+ See [METAROUTING] for more information about these properties and
+ their consequences.
+
+ In particular, Babel does not assume a reliable transport, it does
+ not assume ordered delivery, it does not assume that communication is
+ transitive, and it does not require that the metric be discrete
+ (continuous metrics are possible, for example, reflecting packet loss
+ rates). This is in contrast to link-state routing protocols such as
+ OSPF [RFC5340] or IS-IS [RFC1195], which incorporate a reliable
+ flooding algorithm and make stronger requirements on the underlying
+ network and metric.
+
+ These weak requirements make Babel a robust protocol:
+
+ robust with respect to unusual networks: an unusual network (non-
+ transitive links, unstable link costs, etc.) is likely not to
+ violate the assumptions of the protocol;
+
+ robust with respect to novel metrics: an unusual metric
+ (continuous, constantly fluctuating, etc.) is likely not to
+ violate the assumptions of the protocol.
+
+ Section 3 gives examples of successful deployments of Babel that
+ illustrate these properties.
+
+ These robustness properties have important consequences for the
+ applicability of the protocol: Babel works (more or less efficiently)
+ in a range of circumstances where traditional routing protocols don't
+ work well (or at all).
+
+2.3. Extensibility
+
+ Babel's packet format has a number of features that make the protocol
+ extensible (see Appendix D of [RFC8966]), and a number of extensions
+ have been designed to make Babel work better in situations that were
+ not envisioned when the protocol was initially designed. The ease of
+ extensibility is not an accident, but a consequence of the design of
+ the protocol: it is reasonably easy to check whether a given
+ extension violates the assumptions on which Babel relies.
+
+ All of the extensions designed to date interoperate with the base
+ protocol and with each other. This, again, is a consequence of the
+ protocol design: in order to check that two extensions to the Babel
+ protocol are interoperable, it is enough to verify that the
+ interaction of the two does not violate the base protocol's
+ assumptions.
+
+ Notable extensions deployed to date include:
+
+ * source-specific routing (also known as Source-Address Dependent
+ Routing, SADR) [BABEL-SS] allows forwarding to take a packet's
+ source address into account, thus enabling a cheap form of
+ multihoming [SS-ROUTING];
+
+ * RTT-based routing [BABEL-RTT] minimises link delay, which is
+ useful in overlay network (where both hop count and packet loss
+ are poor metrics).
+
+ Some other extensions have been designed but have not seen deployment
+ in production (and their usefulness is yet to be demonstrated):
+
+ * frequency-aware routing [BABEL-Z] aims to minimise radio
+ interference in wireless networks;
+
+ * ToS-aware routing [BABEL-TOS] allows routing to take a packet's
+ Type of Service (ToS) marking into account for selected routes
+ without incurring the full cost of a multi-topology routing
+ protocol.
+
+2.4. Limitations
+
+ Babel has some undesirable properties that make it suboptimal or even
+ unusable in some deployments.
+
+2.4.1. Periodic Updates
+
+ The main mechanisms used by Babel to reconverge after a topology
+ change are reactive: triggered updates, triggered retractions and
+ explicit requests. However, Babel relies on periodic updates to
+ clear pathologies after a mobility event or in the presence of heavy
+ packet loss. The use of periodic updates makes Babel unsuitable in
+ at least two kinds of environments:
+
+ large, stable networks: since Babel sends periodic updates even
+ in the absence of topology changes, in well-managed, large,
+ stable networks the amount of control traffic will be reduced
+ by using a protocol that uses a reliable transport (such as
+ OSPF, IS-IS, or EIGRP);
+
+ low-power networks: the periodic updates use up battery power
+ even when there are no topology changes and no user traffic,
+ which makes Babel wasteful in low-power networks.
+
+2.4.2. Full Routing Table
+
+ While there exist techniques that allow a Babel speaker to function
+ with a partial routing table (e.g., by learning just a default route
+ or, more generally, performing route aggregation), Babel is designed
+ around the assumption that every router has a full routing table. In
+ networks where some nodes are too constrained to hold a full routing
+ table, it might be preferable to use a protocol that was designed
+ from the outset to work with a partial routing table (such as the Ad
+ hoc On-Demand Distance Vector (AODV) routing protocol [RFC3561], the
+ IPv6 Routing Protocol for Low-Power and Lossy Networks (RPL)
+ [RFC6550], or the Lightweight On-demand Ad hoc Distance-vector
+ Routing Protocol - Next Generation (LOADng) [LOADng]).
+
+2.4.3. Slow Aggregation
+
+ Babel's loop-avoidance mechanism relies on making a route unreachable
+ after a retraction until all neighbours have been guaranteed to have
+ acted upon the retraction, even in the presence of packet loss.
+ Unless the second algorithm described in Section 3.5.5 of [RFC8966]
+ is implemented, this entails that a node is unreachable for a few
+ minutes after the most specific route to it has been retracted. This
+ delay makes Babel slow to recover from a topology change in networks
+ that perform automatic route aggregation.
+
+3. Successful Deployments of Babel
+
+ This section gives a few examples of environments where Babel has
+ been successfully deployed.
+
+3.1. Heterogeneous Networks
+
+ Babel is able to deal with both classical, prefix-based ("Internet-
+ style") routing and flat ("mesh-style") routing over non-transitive
+ link technologies. Just like traditional distance-vector protocols,
+ Babel is able to carry prefixes of arbitrary length, to suppress
+ redundant announcements by applying the split-horizon optimisation
+ where applicable, and can be configured to filter out redundant
+ announcements (manual aggregation). Just like specialised mesh
+ protocols, Babel doesn't by default assume that links are transitive
+ or symmetric, can dynamically compute metrics based on an estimation
+ of link quality, and carries large numbers of host routes efficiently
+ by omitting common prefixes.
+
+ Because of these properties, Babel has seen a number of successful
+ deployments in medium-sized heterogeneous networks, networks that
+ combine a wired, aggregated backbone with meshy wireless bits at the
+ edges.
+
+ Efficient operation in heterogeneous networks requires the
+ implementation to distinguish between wired and wireless links, and
+ to perform link quality estimation on wireless links.
+
+3.2. Large-Scale Overlay Networks
+
+ The algorithms used by Babel (loop avoidance, hysteresis, delayed
+ updates) allow it to remain stable in the presence of unstable
+ metrics, even in the presence of a feedback loop. For this reason,
+ it has been successfully deployed in large-scale overlay networks,
+ built out of thousands of tunnels spanning continents, where it is
+ used with a metric computed from links' latencies.
+
+ This particular application depends on the extension for RTT-
+ sensitive routing [DELAY-BASED].
+
+3.3. Pure Mesh Networks
+
+ While Babel is a general-purpose routing protocol, it has been shown
+ to be competitive with dedicated routing protocols for wireless mesh
+ networks [REAL-WORLD] [BRIDGING-LAYERS]. Although this particular
+ niche is already served by a number of mature protocols, notably the
+ Optimized Link State Routing Protocol with Expected Transmission
+ Count (OLSR-ETX) and OLSRv2 (OLSR Version 2) [RFC7181] (equipped
+ e.g., with the Directional Airtime (DAT) metric [RFC7779]), Babel has
+ seen a moderate amount of successful deployment in pure mesh
+ networks.
+
+3.4. Small Unmanaged Networks
+
+ Because of its small size and simple configuration, Babel has been
+ deployed in small, unmanaged networks (e.g., home and small office
+ networks), where it serves as a more efficient replacement for RIP
+ [RFC2453], over which it has two significant advantages: the ability
+ to route multiple address families (IPv6 and IPv4) in a single
+ protocol instance and good support for using wireless links for
+ transit.
+
+4. Security Considerations
+
+ As is the case in all distance-vector routing protocols, a Babel
+ speaker receives reachability information from its neighbours, which
+ by default is trusted by all nodes in the routing domain.
+
+ At the time of writing, the Babel protocol is usually run over a
+ network that is secured either at the physical layer (e.g.,
+ physically protecting Ethernet sockets) or at the link layer (using a
+ protocol such as Wi-Fi Protected Access 2 (WPA2)). If Babel is being
+ run over an unprotected network, then the routing traffic needs to be
+ protected using a sufficiently strong cryptographic mechanism.
+
+ At the time of writing, two such mechanisms have been defined.
+ Message Authentication Code (MAC) authentication for Babel (Babel-
+ MAC) [RFC8967] is a simple and easy to implement mechanism that only
+ guarantees authenticity, integrity, and replay protection of the
+ routing traffic and only supports symmetric keying with a small
+ number of keys (typically just one or two). Babel-DTLS [RFC8968] is
+ a more complex mechanism that requires some minor changes to be made
+ to a typical Babel implementation and depends on a DTLS stack being
+ available, but inherits all of the features of DTLS, notably
+ confidentiality, optional replay protection, and the ability to use
+ asymmetric keys.
+
+ Due to its simplicity, Babel-MAC should be the preferred security
+ mechanism in most deployments, with Babel-DTLS available for networks
+ that require its additional features.
+
+ In addition to the above, the information that a mobile Babel node
+ announces to the whole routing domain is often sufficient to
+ determine a mobile node's physical location with reasonable
+ precision. This might make Babel unapplicable in scenarios where a
+ node's location is considered confidential.
+
+5. References
+
+5.1. Normative 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>.
+
+5.2. Informative References
+
+ [BABEL-RTT]
+ Jonglez, B. and J. Chroboczek, "Delay-based Metric
+ Extension for the Babel Routing Protocol", Work in
+ Progress, Internet-Draft, draft-jonglez-babel-rtt-
+ extension-02, 11 March 2019, <https://tools.ietf.org/html/
+ draft-jonglez-babel-rtt-extension-02>.
+
+ [BABEL-SS] Boutier, M. and J. Chroboczek, "Source-Specific Routing in
+ Babel", Work in Progress, Internet-Draft, draft-ietf-
+ babel-source-specific-07, 28 October 2020,
+ <https://tools.ietf.org/html/draft-ietf-babel-source-
+ specific-07>.
+
+ [BABEL-TOS]
+ Chouasne, G. and J. Chroboczek, "TOS-Specific Routing in
+ Babel", Work in Progress, Internet-Draft, draft-chouasne-
+ babel-tos-specific-00, 3 July 2017,
+ <https://tools.ietf.org/html/draft-chouasne-babel-tos-
+ specific-00>.
+
+ [BABEL-Z] Chroboczek, J., "Diversity Routing for the Babel Routing
+ Protocol", Work in Progress, Internet-Draft, draft-
+ chroboczek-babel-diversity-routing-01, 15 February 2016,
+ <https://tools.ietf.org/html/draft-chroboczek-babel-
+ diversity-routing-01>.
+
+ [BRIDGING-LAYERS]
+ Murray, D., Dixon, M., and T. Koziniec, "An Experimental
+ Comparison of Routing Protocols in Multi Hop Ad Hoc
+ Networks", In Proceedings of ATNAC,
+ DOI 10.1109/ATNAC.2010.5680190, October 2010,
+ <https://doi.org/10.1109/ATNAC.2010.5680190>.
+
+ [DELAY-BASED]
+ Jonglez, B., Boutier, M., and J. Chroboczek, "A delay-
+ based routing metric", March 2014,
+ <http://arxiv.org/abs/1403.3488>.
+
+ [DSDV] Perkins, C. and P. Bhagwat, "Highly Dynamic Destination-
+ Sequenced Distance-Vector Routing (DSDV) for Mobile
+ Computers", ACM SIGCOMM '94: Proceedings of the Conference
+ on Communications Architectures, Protocols and
+ Applications, pp. 234-244, DOI 10.1145/190314.190336,
+ October 1994, <https://doi.org/10.1145/190314.190336>.
+
+ [DUAL] Garcia-Luna-Aceves, J. J., "Loop-Free Routing Using
+ Diffusing Computations", IEEE/ACM Transactions on
+ Networking, Volume 1, Issue 1, DOI 10.1109/90.222913,
+ February 1993, <https://doi.org/10.1109/90.222913>.
+
+ [LOADng] Clausen, T. H., Verdiere, A. C. D., Yi, J., Niktash, A.,
+ Igarashi, Y., Satoh, H., Herberg, U., Lavenu, C., Lys, T.,
+ and J. Dean, "The Lightweight On-demand Ad hoc Distance-
+ vector Routing Protocol - Next Generation (LOADng)", Work
+ in Progress, Internet-Draft, draft-clausen-lln-loadng-15,
+ 4 July 2016,
+ <https://tools.ietf.org/html/draft-clausen-lln-loadng-15>.
+
+ [METAROUTING]
+ Griffin, T. G. and J. L. Sobrinho, "Metarouting", ACM
+ SIGCOMM Computer Communication Review, Volume 35, Issue 4,
+ DOI 10.1145/1090191.1080094, August 2005,
+ <https://doi.org/10.1145/1090191.1080094>.
+
+ [REAL-WORLD]
+ Abolhasan, M., Hagelstein, B., and J. C.-P. Wang, "Real-
+ world performance of current proactive multi-hop mesh
+ protocols", 15th Asia-Pacific Conference on
+ Communications, DOI 10.1109/APCC.2009.5375690, October
+ 2009, <https://doi.org/10.1109/APCC.2009.5375690>.
+
+ [RFC1195] Callon, R., "Use of OSI IS-IS for routing in TCP/IP and
+ dual environments", RFC 1195, DOI 10.17487/RFC1195,
+ December 1990, <https://www.rfc-editor.org/info/rfc1195>.
+
+ [RFC2453] Malkin, G., "RIP Version 2", STD 56, RFC 2453,
+ DOI 10.17487/RFC2453, November 1998,
+ <https://www.rfc-editor.org/info/rfc2453>.
+
+ [RFC3561] Perkins, C., Belding-Royer, E., and S. Das, "Ad hoc On-
+ Demand Distance Vector (AODV) Routing", RFC 3561,
+ DOI 10.17487/RFC3561, July 2003,
+ <https://www.rfc-editor.org/info/rfc3561>.
+
+ [RFC5340] Coltun, R., Ferguson, D., Moy, J., and A. Lindem, "OSPF
+ for IPv6", RFC 5340, DOI 10.17487/RFC5340, July 2008,
+ <https://www.rfc-editor.org/info/rfc5340>.
+
+ [RFC6550] Winter, T., Ed., Thubert, P., Ed., Brandt, A., Hui, J.,
+ Kelsey, R., Levis, P., Pister, K., Struik, R., Vasseur,
+ JP., and R. Alexander, "RPL: IPv6 Routing Protocol for
+ Low-Power and Lossy Networks", RFC 6550,
+ DOI 10.17487/RFC6550, March 2012,
+ <https://www.rfc-editor.org/info/rfc6550>.
+
+ [RFC7181] Clausen, T., Dearlove, C., Jacquet, P., and U. Herberg,
+ "The Optimized Link State Routing Protocol Version 2",
+ RFC 7181, DOI 10.17487/RFC7181, April 2014,
+ <https://www.rfc-editor.org/info/rfc7181>.
+
+ [RFC7779] Rogge, H. and E. Baccelli, "Directional Airtime Metric
+ Based on Packet Sequence Numbers for Optimized Link State
+ Routing Version 2 (OLSRv2)", RFC 7779,
+ DOI 10.17487/RFC7779, April 2016,
+ <https://www.rfc-editor.org/info/rfc7779>.
+
+ [RFC7868] Savage, D., Ng, J., Moore, S., Slice, D., Paluch, P., and
+ R. White, "Cisco's Enhanced Interior Gateway Routing
+ Protocol (EIGRP)", RFC 7868, DOI 10.17487/RFC7868, May
+ 2016, <https://www.rfc-editor.org/info/rfc7868>.
+
+ [RFC8967] Dô, C., Kolodziejak, W., and J. Chroboczek, "MAC
+ Authentication for the Babel Routing Protocol", RFC 8967,
+ DOI 10.17487/RFC8967, January 2021,
+ <https://www.rfc-editor.org/info/rfc8967>.
+
+ [RFC8968] Décimo, A., Schinazi, D., and J. Chroboczek, "Babel
+ Routing Protocol over Datagram Transport Layer Security",
+ RFC 8968, DOI 10.17487/RFC8968, January 2021,
+ <https://www.rfc-editor.org/info/rfc8968>.
+
+ [SS-ROUTING]
+ Boutier, M. and J. Chroboczek, "Source-specific routing",
+ In Proceedings of the IFIP Networking Conference,
+ DOI 10.1109/IFIPNetworking.2015.7145305, May 2015,
+ <http://arxiv.org/pdf/1403.0445>.
+
+Acknowledgments
+
+ The author is indebted to Jean-Paul Smetz and Alexander Vainshtein
+ for their input to this document.
+
+Author's Address
+
+ Juliusz Chroboczek
+ IRIF, University of Paris-Diderot
+ Case 7014
+ 75205 Paris CEDEX 13
+ France
+
+ Email: jch@irif.fr