Babel (protocol)#Implementations

File:Babel logo black.svg

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.{{Cite ietf|rfc=8966 |url=https://tools.ietf.org/html/rfc8966|title = The Babel Routing Protocol|date = January 2021|last1 = Chroboczek|first1 = Juliusz|last2 = Schinazi|first2 = David}}

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 {{Cite journal|url=https://tools.ietf.org/html/draft-chroboczek-babel-diversity-routing-01.html|title=Diversity Routing for the Babel Routing Protocol|first=Juliusz|last=Chroboczek |newspaper=Ietf Datatracker|date=15 February 2016}} or to automatically compute a link's latency and include it in the metric.{{cite arXiv |eprint=1403.3488 |last1=Jonglez |first1=Baptiste |last2=Boutier |first2=Matthieu |last3=Chroboczek |first3=Juliusz |title=A delay-based routing metric |year=2014 |class=cs.NI }}

Babel operates on IPv4 and IPv6 networks. It has been reported to be a robust protocol and to have fast convergence properties.{{cite book|author1=M. Abolhasan |author2=B. Hagelstein |author3=J. C.-P. Wang |title=2009 15th Asia-Pacific Conference on Communications |chapter=Real-world performance of current proactive multi-hop mesh protocols|year=2009|pages=44–47 |doi=10.1109/APCC.2009.5375690 |isbn=978-1-4244-4784-8 |s2cid=15462784 |chapter-url=http://ro.uow.edu.au/infopapers/736/}}{{cite conference|conference=Australasian Telecommunication Networks and Applications Conference |author1=David Murray, Michael Dixon |author2=Terry Koziniec |name-list-style=amp |title=An Experimental Comparison of Routing Protocols in Multi Hop Ad Hoc Networks |year=2010 |doi=10.1109/ATNAC.2010.5680190 |url=http://researchrepository.murdoch.edu.au/3982/1/Comparison_of_Routing_Protocols.pdf}}

In October 2015, Babel was chosen as the mandatory-to-implement protocol by the IETF Homenet working group, albeit on an Experimental basis.http://mid.gmane.org/562F5B00.9010802@bellis.me.uk{{Dead link|date=October 2019 |bot=InternetArchiveBot |fix-attempted=yes }} In June 2016, an IETF working group was created whose main goal is to produce a standard version of Babel.{{Cite web|url=https://datatracker.ietf.org/doc/charter-ietf-babel/|title=Babel routing protocol|website=datatracker.ietf.org}} 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.{{cite web | url=https://datatracker.ietf.org/wg/babel/documents/ | title=Babel routing protocol (Babel) }}

Implementations

{{Infobox software

| qid = Q112255918

| name = babeld

| developer = Juliusz Chroboczek

| operating system = Linux, BSD, Mac OS X

| genre = Routing software

| license = MIT License

}}

Several implementations of Babel are freely available:

  • The standalone "reference" implementation
  • A complete reimplementation integrated in the BIRD routing platform{{Cite web|url=https://gitlab.nic.cz/labs/bird/tree/master/proto/babel|title=proto/babel · master · labs / BIRD Internet Routing Daemon|website=GitLab}}
  • A version integrated into the FRR routing suite{{Cite web|url=https://github.com/FRRouting/frr/commit/e885ed85bb0aa46ae41b554c772801387901f690|title=Merge pull request #624 "Babel" · FRRouting/frr@e885ed8|website=GitHub}} (previously Quagga, from which Babel has been removed{{Cite web|url=https://github.com/6WIND/quagga/commit/336724d628be71022f80cfe3dfb34274ad95ec14|title=babeld: Remove babeld from Quagga · 6WIND/quagga@336724d|website=GitHub|language=en|access-date=2017-10-24}}).
  • A tiny, stub-only subset implementation{{Cite web|url=https://github.com/jech/sbabeld|title=sbabeld|website=GitHub }}
  • A minimal, IPv6-only reimplementation in Python{{Cite web|url=https://mailarchive.ietf.org/arch/msg/homenet/O5CtnkEt_2LiJ3nWDDdH0Bm6vKI/|title=Archive|website=mailarchive.ietf.org}}
  • An independent implementation in Java,{{Cite web|url=http://sources.nop.hu/src/rtr/|title=dirlist|website=sources.nop.hu}} part of the freeRouter project{{Cite web|url=http://freerouter.nop.hu/|title=freeRouter - networking swiss army knife|website=freerouter.nop.hu}}

Both BIRD and the reference version have support for Source-specific routing{{Cite conference|author=Matthieu Boutier|author2=Juliusz Chroboczek|title=Source-Specific Routing|series=Proc. IFIP Networking|year=2015|arxiv=1403.0445|bibcode=2014arXiv1403.0445B}} and for cryptographic authentication.{{Cite journal|url=https://tools.ietf.org/html/draft-ietf-babel-hmac-10.html|title=MAC authentication for the Babel routing protocol|first1=Clara|last1=Do|first2=Juliusz|last2=Chroboczek|first3=Weronika|last3=Kolodziejak|newspaper=Ietf Datatracker}}

References

{{reflist}}