| @c -*-texinfo-*- |
| @c This is part of the Quagga Manual. |
| @c @value{COPYRIGHT_STR} |
| @c See file quagga.texi for copying conditions. |
| @node Babel |
| @chapter Babel |
| |
| Babel is an interior gateway protocol that is suitable both for wired |
| networks and for wireless mesh networks. Babel has been described as |
| ``RIP on speed'' --- it is based on the same principles as RIP, but |
| includes a number of refinements that make it react much faster to |
| topology changes without ever counting to infinity, and allow it to |
| perform reliable link quality estimation on wireless links. Babel is |
| a double-stack routing protocol, meaning that a single Babel instance |
| is able to perform routing for both IPv4 and IPv6. |
| |
| Quagga implements Babel as described in RFC6126. |
| |
| @menu |
| * Configuring babeld:: |
| * Babel configuration:: |
| * Babel redistribution:: |
| * Show Babel information:: |
| * Babel debugging commands:: |
| @end menu |
| |
| @node Configuring babeld, Babel configuration, Babel, Babel |
| @section Configuring babeld |
| |
| The @command{babeld} daemon can be invoked with any of the common |
| options (@pxref{Common Invocation Options}). |
| |
| The @command{zebra} daemon must be running before @command{babeld} is |
| invoked. Also, if @command{zebra} is restarted then @command{babeld} |
| must be too. |
| |
| Configuration of @command{babeld} is done in its configuration file |
| @file{babeld.conf}. |
| |
| @node Babel configuration, Babel redistribution, Configuring babeld, Babel |
| @section Babel configuration |
| |
| @deffn Command {router babel} {} |
| @deffnx Command {no router babel} {} |
| Enable or disable Babel routing. |
| @end deffn |
| |
| @deffn {Babel Command} {network @var{ifname}} {} |
| @deffnx {Babel Command} {no network @var{ifname}} {} |
| Enable or disable Babel on the given interface. |
| @end deffn |
| |
| @deffn {Interface Command} {babel wired} {} |
| @deffnx {Interface Command} {babel wireless} {} |
| Specifies whether this interface is wireless, which disables a number |
| of optimisations that are only correct on wired interfaces. |
| Specifying @code{wireless} is always correct, but may cause extra |
| routing overhead. The default is autodetected if possible, |
| @code{wireless} otherwise. |
| @end deffn |
| |
| @deffn {Interface Command} {babel split-horizon} |
| @deffnx {Interface Command} {no babel split-horizon} |
| Specifies whether to perform split-horizon on the interface. Default |
| is @code{babel split-horizon} on wired interfaces, and @code{no babel |
| split-horizon} on wireless interfaces. Please note that performing split |
| horizon on wireless interfaces is not correct in general, and may lead |
| to communication failures. |
| @end deffn |
| |
| @deffn {Interface Command} {babel passive-interface} |
| @deffnx {Interface Command} {no babel passive-interface} |
| Specifies whether this interface is passive. Note that this is |
| a little weaker than RIP's notion of passive interface, since Babel |
| always sends Hello packets and announces redistributed routes, even on |
| passive interfaces. |
| @end deffn |
| |
| @deffn {Interface Command} {babel hello-interval <20-655340>} |
| Specifies the time in milliseconds between two scheduled hellos. |
| Babel notices a link failure within two hello intervals on wired |
| links; on wireless links, the link quality value is reestimated at |
| every hello interval. |
| @end deffn |
| |
| @deffn {Interface Command} {babel hello-interval <20-655340>} |
| Specifies the time in milliseconds between two scheduled updates. |
| Since Babel makes extensive use of triggered updates, this can be |
| set to fairly high values on links with little packet loss. |
| @end deffn |
| |
| @deffn {Babel Command} {babel resend-delay <20-655340>} |
| Specifies the time in milliseconds after which an ``important'' |
| request or update will be resent. This is a global, not per-interface |
| value. |
| @end deffn |
| |
| @node Babel redistribution, Show Babel information, Babel configuration, Babel |
| @section Babel redistribution |
| |
| @deffn {Babel command} {redistribute @var{kind}} |
| @deffnx {Babel command} {no redistribute @var{kind}} |
| Specify which kind of routes should be redistributed into Babel. |
| @end deffn |
| |
| @node Show Babel information, Babel debugging commands, Babel redistribution, Babel |
| @section Show Babel information |
| |
| @deffn {Command} {show babel database} {} |
| @deffnx {Command} {show babel interface} {} |
| @deffnx {Command} {show babel neighbour} {} |
| @deffnx {Command} {show babel running-config} {} |
| These commands dump various parts of @command{babeld}'s internal |
| state. They are mostly useful for troubleshooting. |
| @end deffn |
| |
| @node Babel debugging commands, , Show Babel information, Babel |
| @section Babel debugging commands |
| |
| @deffn {Babel Command} {debug @var{kind}} {} |
| @deffnx {Babel Command} {no debug @var{kind}} {} |
| Enable or disable debugging messages of a given kind. @var{kind} can |
| be one of @samp{common}, @samp{kernel}, @samp{filter}, @samp{timeout}, |
| @samp{interface}, @samp{route} or @samp{all}. Note that if you have |
| compiled with the NO_DEBUG flag, then these commands aren't available. |
| @end deffn |
| |