Babel (protocol)
# Babel (protocol)

The Babel routing protocol is a distance-vector routing protocol for Internet Protocol packet-switched networks that is designed to be robust and efficient on both wireless mesh networks and wired networks. Babel is described in RFC 8966.

Babel is based on the ideas in Destination-Sequenced Distance Vector routing (DSDV), Ad hoc On-Demand Distance Vector Routing (AODV), and Cisco's Enhanced Interior Gateway Routing Protocol (EIGRP), but uses different techniques for loop avoidance. Babel has provisions for using multiple dynamically computed metrics; by default, it uses hop-count on wired networks and a variant of expected transmission count on wireless links, but can be configured to take radio diversity into account or to automatically compute a link's latency and include it in the metric.

Babel operates on IPv4 and IPv6 networks. It has been reported to be a robust protocol and to have fast convergence properties.

In October 2015, Babel was chosen as the mandatory-to-implement protocol by the IETF Homenet working group, albeit on an Experimental basis. In June 2016, an IETF working group was created whose main goal is to produce a standard version of Babel. In January 2021, the working group produced a standard version of Babel, then proceeded to publish a number of extensions, including for authentication, source-specific routing, and routing of IPv4 through IPv6 routers.

## Implementations

Several implementations of Babel are freely available:

* The standalone "reference" implementation
* A complete reimplementation integrated in the BIRD routing platform
* A version integrated into the FRR routing suite (previously Quagga, from which Babel has been removed).
* A tiny, stub-only subset implementation
* A minimal, IPv6-only reimplementation in Python
* An independent implementation in Java, part of the freeRouter project

Both BIRD and the reference version have support for Source-specific routing and for cryptographic authentication.

