Juliusz Chroboczek | f92a55f | 2012-02-07 16:33:17 +0100 | [diff] [blame] | 1 | @c -*-texinfo-*- |
| 2 | @c This is part of the Quagga Manual. |
| 3 | @c @value{COPYRIGHT_STR} |
| 4 | @c See file quagga.texi for copying conditions. |
| 5 | @node Babel |
| 6 | @chapter Babel |
| 7 | |
| 8 | Babel is an interior gateway protocol that is suitable both for wired |
| 9 | networks and for wireless mesh networks. Babel has been described as |
| 10 | ``RIP on speed'' --- it is based on the same principles as RIP, but |
| 11 | includes a number of refinements that make it react much faster to |
| 12 | topology changes without ever counting to infinity, and allow it to |
| 13 | perform reliable link quality estimation on wireless links. Babel is |
| 14 | a double-stack routing protocol, meaning that a single Babel instance |
| 15 | is able to perform routing for both IPv4 and IPv6. |
| 16 | |
Matthieu Boutier | 73c74d4 | 2012-02-08 00:32:59 +0100 | [diff] [blame] | 17 | Quagga implements Babel as described in RFC6126. |
Juliusz Chroboczek | f92a55f | 2012-02-07 16:33:17 +0100 | [diff] [blame] | 18 | |
| 19 | @menu |
| 20 | * Configuring babeld:: |
| 21 | * Babel configuration:: |
| 22 | * Babel redistribution:: |
| 23 | * Show Babel information:: |
| 24 | * Babel debugging commands:: |
| 25 | @end menu |
| 26 | |
| 27 | @node Configuring babeld, Babel configuration, Babel, Babel |
| 28 | @section Configuring babeld |
| 29 | |
| 30 | The @command{babeld} daemon can be invoked with any of the common |
| 31 | options (@pxref{Common Invocation Options}). |
| 32 | |
| 33 | The @command{zebra} daemon must be running before @command{babeld} is |
Matthieu Boutier | 73c74d4 | 2012-02-08 00:32:59 +0100 | [diff] [blame] | 34 | invoked. Also, if @command{zebra} is restarted then @command{babeld} |
Juliusz Chroboczek | f92a55f | 2012-02-07 16:33:17 +0100 | [diff] [blame] | 35 | must be too. |
| 36 | |
| 37 | Configuration of @command{babeld} is done in its configuration file |
| 38 | @file{babeld.conf}. |
| 39 | |
| 40 | @node Babel configuration, Babel redistribution, Configuring babeld, Babel |
| 41 | @section Babel configuration |
| 42 | |
| 43 | @deffn Command {router babel} {} |
| 44 | @deffnx Command {no router babel} {} |
| 45 | Enable or disable Babel routing. |
| 46 | @end deffn |
| 47 | |
| 48 | @deffn {Babel Command} {network @var{ifname}} {} |
| 49 | @deffnx {Babel Command} {no network @var{ifname}} {} |
| 50 | Enable or disable Babel on the given interface. |
| 51 | @end deffn |
| 52 | |
| 53 | @deffn {Babel Command} {protocol group @var{group}} {} |
| 54 | @deffnx {Babel Command} {protocol port @var{port}} {} |
| 55 | Specify the multicast group and UDP port used for Babel traffic. The |
| 56 | default is to use group @code{ff02::1:6} and port 6696, as allocated |
| 57 | by IANA. (Note that RFC6126 specifies a port number that has been |
| 58 | obsoleted after publication.) |
| 59 | @end deffn |
| 60 | |
| 61 | @deffn {Interface Command} {wireless} {} |
| 62 | @deffnx {Interface Command} {no wireless} {} |
| 63 | Specifies whether this interface is wireless, which disables a number |
| 64 | of optimisations that are only correct on wired interfaces. |
| 65 | Specifying @code{no wireless} is always correct, but may cause extra |
| 66 | routing overhead. The default is autodetected if possible, |
| 67 | @code{wireless} otherwise. |
| 68 | @end deffn |
| 69 | |
| 70 | @deffn {Interface Command} {babel split-horizon} |
| 71 | @deffnx {Interface Command} {no babel split-horizon} |
| 72 | Specifies whether to perform split-horizon on the interface. Default |
| 73 | is @code{babel split-horizon} on wired interfaces, and @code{no babel |
| 74 | split-horizon} on wireless interfaces. Please note that performing split |
| 75 | horizon on wireless interfaces is not correct in general, and may lead |
| 76 | to communication failures. |
| 77 | @end deffn |
| 78 | |
| 79 | @deffn {Interface Command} {passive-interface} |
Matthieu Boutier | 73c74d4 | 2012-02-08 00:32:59 +0100 | [diff] [blame] | 80 | @deffnx {Interface Command} {no passive-interface} |
Juliusz Chroboczek | f92a55f | 2012-02-07 16:33:17 +0100 | [diff] [blame] | 81 | Specifies whether this interface is passive. Note that this is |
| 82 | a little weaker than RIP's notion of passive interface, since Babel |
| 83 | always sends Hello packets, even on passive interfaces. |
| 84 | @end deffn |
| 85 | |
| 86 | @node Babel redistribution, Show Babel information, Babel configuration, Babel |
| 87 | @section Babel redistribution |
| 88 | |
| 89 | @deffn {Babel command} {redistribute @var{kind}} |
| 90 | @deffnx {Babel command} {no redistribute @var{kind}} |
| 91 | Specify which kind of routes should be redistributed into Babel. |
| 92 | @end deffn |
| 93 | |
| 94 | @node Show Babel information, Babel debugging commands, Babel redistribution, Babel |
| 95 | @section Show Babel information |
| 96 | |
| 97 | @deffn {Command} {show babel database} {} |
| 98 | @deffnx {Command} {show babel interface} {} |
| 99 | @deffnx {Command} {show babel neighbour} {} |
| 100 | @deffnx {Command} {show babel running-config} {} |
| 101 | These commands dump various parts of @command{babeld}'s internal |
| 102 | state. They are mostly useful for troubleshooting. |
| 103 | @end deffn |
| 104 | |
| 105 | @node Babel debugging commands, , Show Babel information, Babel |
| 106 | @section Babel debugging commands |
| 107 | |
| 108 | @deffn {Babel Command} {debug @var{kind}} {} |
| 109 | @deffnx {Babel Command} {no debug @var{kind}} {} |
| 110 | Enable or disable debugging messages of a given kind. @var{kind} can |
| 111 | be one of @samp{common}, @samp{kernel}, @samp{filter}, @samp{timeout}, |
Matthieu Boutier | 73c74d4 | 2012-02-08 00:32:59 +0100 | [diff] [blame] | 112 | @samp{interface}, @samp{route} or @samp{all}. Note that if you have |
| 113 | compiled with the NO_DEBUG flag, then these commands aren't available. |
Juliusz Chroboczek | f92a55f | 2012-02-07 16:33:17 +0100 | [diff] [blame] | 114 | @end deffn |
| 115 | |