Babel (protocol)

Babel routing protocol logo.

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

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 [2] or to automatically compute a link's latency and include it in the metric.[3]

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

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

Implementations

[edit]
babeld
Developer(s)Juliusz Chroboczek
Repository
Operating systemLinux, BSD, Mac OS X
TypeRouting software
LicenseMIT License
Websitewww.irif.fr/~jch/software/babel/ Edit this on Wikidata

Several implementations of Babel are freely available:

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

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

References

[edit]
  1. ^ a b Chroboczek, Juliusz; Schinazi, David (January 2021). The Babel Routing Protocol. doi:10.17487/RFC8966. RFC 8966.
  2. ^ Chroboczek <[email protected]>, Juliusz (15 February 2016). "Diversity Routing for the Babel Routing Protocol". Ietf Datatracker.
  3. ^ Jonglez, Baptiste; Boutier, Matthieu; Chroboczek, Juliusz (2014). "A delay-based routing metric". arXiv:1403.3488 [cs.NI].
  4. ^ M. Abolhasan; B. Hagelstein; J. C.-P. Wang (2009). "Real-world performance of current proactive multi-hop mesh protocols". 2009 15th Asia-Pacific Conference on Communications. pp. 44–47. doi:10.1109/APCC.2009.5375690. ISBN 978-1-4244-4784-8. S2CID 15462784.
  5. ^ David Murray, Michael Dixon & Terry Koziniec (2010). An Experimental Comparison of Routing Protocols in Multi Hop Ad Hoc Networks (PDF). Australasian Telecommunication Networks and Applications Conference. doi:10.1109/ATNAC.2010.5680190.
  6. ^ http://mid.gmane.org/[email protected][permanent dead link]
  7. ^ "Babel routing protocol". datatracker.ietf.org.
  8. ^ "Babel routing protocol (Babel)".
  9. ^ "proto/babel · master · labs / BIRD Internet Routing Daemon". GitLab.
  10. ^ "Merge pull request #624 "Babel" · FRRouting/frr@e885ed8". GitHub.
  11. ^ "babeld: Remove babeld from Quagga · 6WIND/quagga@336724d". GitHub. Retrieved 2017-10-24.
  12. ^ "sbabeld". GitHub.
  13. ^ "Archive". mailarchive.ietf.org.
  14. ^ "dirlist". sources.nop.hu.
  15. ^ "freeRouter - networking swiss army knife". freerouter.nop.hu.
  16. ^ Matthieu Boutier; Juliusz Chroboczek (2015). Source-Specific Routing. Proc. IFIP Networking. arXiv:1403.0445. Bibcode:2014arXiv1403.0445B.
  17. ^ Do, Clara; Chroboczek, Juliusz; Kolodziejak, Weronika. "MAC authentication for the Babel routing protocol". Ietf Datatracker.
[edit]