]>
Commit | Line | Data |
---|---|---|
f92a55ff JC |
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 | ||
73c74d4e | 17 | Quagga implements Babel as described in RFC6126. |
f92a55ff JC |
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 | |
73c74d4e | 34 | invoked. Also, if @command{zebra} is restarted then @command{babeld} |
f92a55ff JC |
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 | ||
3c442e88 MB |
53 | @deffn {Interface Command} {babel wired} {} |
54 | @deffnx {Interface Command} {babel wireless} {} | |
f92a55ff JC |
55 | Specifies whether this interface is wireless, which disables a number |
56 | of optimisations that are only correct on wired interfaces. | |
4d176dc0 JC |
57 | Specifying @code{wireless} (the default) is always correct, but may |
58 | cause slower convergence and extra routing traffic. | |
f92a55ff JC |
59 | @end deffn |
60 | ||
61 | @deffn {Interface Command} {babel split-horizon} | |
62 | @deffnx {Interface Command} {no babel split-horizon} | |
4d176dc0 JC |
63 | Specifies whether to perform split-horizon on the interface. |
64 | Specifying @code{no babel split-horizon} (the default) is always | |
65 | correct, while @code{babel split-horizon} is an optimisation that | |
66 | should only be used on symmetric and transitive (wired) networks. | |
f92a55ff JC |
67 | @end deffn |
68 | ||
68c65a5d | 69 | @deffn {Interface Command} {babel hello-interval <20-655340>} |
4d176dc0 JC |
70 | Specifies the time in milliseconds between two scheduled hellos. On |
71 | wired links, Babel notices a link failure within two hello intervals; | |
72 | on wireless links, the link quality value is reestimated at every | |
73 | hello interval. The default is 4000@dmn{ms}. | |
68c65a5d JC |
74 | @end deffn |
75 | ||
8a46e12f | 76 | @deffn {Interface Command} {babel update-interval <20-655340>} |
68c65a5d | 77 | Specifies the time in milliseconds between two scheduled updates. |
4d176dc0 JC |
78 | Since Babel makes extensive use of triggered updates, this can be set |
79 | to fairly high values on links with little packet loss. The default | |
80 | is 20000@dmn{ms}. | |
68c65a5d JC |
81 | @end deffn |
82 | ||
83 | @deffn {Babel Command} {babel resend-delay <20-655340>} | |
84 | Specifies the time in milliseconds after which an ``important'' | |
4d176dc0 JC |
85 | request or update will be resent. The default is 2000@dmn{ms}. You |
86 | probably don't want to tweak this value. | |
f92a55ff JC |
87 | @end deffn |
88 | ||
89 | @node Babel redistribution, Show Babel information, Babel configuration, Babel | |
90 | @section Babel redistribution | |
91 | ||
92 | @deffn {Babel command} {redistribute @var{kind}} | |
93 | @deffnx {Babel command} {no redistribute @var{kind}} | |
94 | Specify which kind of routes should be redistributed into Babel. | |
95 | @end deffn | |
96 | ||
97 | @node Show Babel information, Babel debugging commands, Babel redistribution, Babel | |
98 | @section Show Babel information | |
99 | ||
100 | @deffn {Command} {show babel database} {} | |
101 | @deffnx {Command} {show babel interface} {} | |
102 | @deffnx {Command} {show babel neighbour} {} | |
a14ef5ee | 103 | @deffnx {Command} {show babel parameters} {} |
f92a55ff JC |
104 | These commands dump various parts of @command{babeld}'s internal |
105 | state. They are mostly useful for troubleshooting. | |
106 | @end deffn | |
107 | ||
108 | @node Babel debugging commands, , Show Babel information, Babel | |
109 | @section Babel debugging commands | |
110 | ||
a14ef5ee DO |
111 | @deffn {Babel Command} {debug babel @var{kind}} {} |
112 | @deffnx {Babel Command} {no debug babel @var{kind}} {} | |
f92a55ff JC |
113 | Enable or disable debugging messages of a given kind. @var{kind} can |
114 | be one of @samp{common}, @samp{kernel}, @samp{filter}, @samp{timeout}, | |
73c74d4e MB |
115 | @samp{interface}, @samp{route} or @samp{all}. Note that if you have |
116 | compiled with the NO_DEBUG flag, then these commands aren't available. | |
f92a55ff JC |
117 | @end deffn |
118 |