Babel (protocol)#Implementations
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
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}}
External links
- [https://www.irif.fr/~jch/software/babel/ Babel – a loop-avoiding distance-vector routing protocol]
- {{Citation |author=J. Chroboczek |title=The Babel Routing Protocol |year=2011 }} {{IETF RFC|6126}}
{{Routing protocols}}