-
Notifications
You must be signed in to change notification settings - Fork 0
Stub-only implementation of the Babel routing protocol
License
jech/sbabeld
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
A stub-only implementation of Babel =================================== Babel is a loop-avoiding distance vector protocol that is suitable for both wired and wireless networks documented in RFC 6126. The standard implementation of Babel is a Unix daemon called babeld, that fits in a few dozen kilobytes and implements a number of extensions to the protocol. For more information about Babel and babeld, please see http://www.pps.univ-paris-diderot.fr/~jch/software/babel/ The sbabeld daemon is a tiny implementation of Babel that is only suitable for stub routers (routers that only route between their connected networks and the rest of the Internet). It is designed to be small, easy to understand, and easy to port. If you can afford to, you should be running the full babeld daemon, as it converges faster while remaining reasonably small. Sbabeld implements the following features of the Babel protocol: * bidirectional reachability detection (Hello/IHU); * learning the best IPv6 default route and timing it out; * announcing an IPv6 /64 prefix; * passive participation in the loop-avoidance protocol; * participation in the request/response protocol. It does not implement the following features of the full babeld implementation: * IPv4; * learning a full routing table; * reannouncing learned routes; * keeping fallback routes for faster convergence after a failure; * automatic redistribution; * active participation in the loop-avoidance protocol; * link quality estimation for lossy and high-latency links; * detection of interface status; * history-sensitive route selection; * source-specific routing. The code could be further simplified by removing route selection and bidirectional reachability detection -- this would free us from having to determine our link-local addresses, and would avoid the need for a neighbours table. Usage ----- In order to just learn any default routes that are being announced: sbabeld eth0 wlan0 In order to additionally announce a /64 prefix: sbabeld -p 2001:db8:dead:beef:: eth0 wlan0 Porting ------- Sbabeld was written for Linux. It should be easy enough to port to other systems that support IPv6 -- see the functions get_local_address and install_default_route in util.c. I have assumed that for link-local addresses, sin6_scope_id is the interface index. That is true on all systems known to me. Author ------ Juliusz Chroboczek
About
Stub-only implementation of the Babel routing protocol
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published