| @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 {Babel Command} {protocol group @var{group}} {} |
| @deffnx {Babel Command} {protocol port @var{port}} {} |
| Specify the multicast group and UDP port used for Babel traffic. The |
| default is to use group @code{ff02::1:6} and port 6696, as allocated |
| by IANA. (Note that RFC6126 specifies a port number that has been |
| obsoleted after publication.) |
| @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} {passive-interface} |
| @deffnx {Interface Command} {no 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, even on passive interfaces. |
| @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 |
| |