blob: 65587a71766acbac86c336e313e4cdb06751948e [file] [log] [blame]
Juliusz Chroboczekf92a55f2012-02-07 16:33:17 +01001@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
8Babel is an interior gateway protocol that is suitable both for wired
9networks and for wireless mesh networks. Babel has been described as
10``RIP on speed'' --- it is based on the same principles as RIP, but
11includes a number of refinements that make it react much faster to
12topology changes without ever counting to infinity, and allow it to
13perform reliable link quality estimation on wireless links. Babel is
14a double-stack routing protocol, meaning that a single Babel instance
15is able to perform routing for both IPv4 and IPv6.
16
Matthieu Boutier73c74d42012-02-08 00:32:59 +010017Quagga implements Babel as described in RFC6126.
Juliusz Chroboczekf92a55f2012-02-07 16:33:17 +010018
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
30The @command{babeld} daemon can be invoked with any of the common
31options (@pxref{Common Invocation Options}).
32
33The @command{zebra} daemon must be running before @command{babeld} is
Matthieu Boutier73c74d42012-02-08 00:32:59 +010034invoked. Also, if @command{zebra} is restarted then @command{babeld}
Juliusz Chroboczekf92a55f2012-02-07 16:33:17 +010035must be too.
36
37Configuration 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} {}
45Enable or disable Babel routing.
46@end deffn
47
48@deffn {Babel Command} {network @var{ifname}} {}
49@deffnx {Babel Command} {no network @var{ifname}} {}
50Enable or disable Babel on the given interface.
51@end deffn
52
Matthieu Boutier3c442e82012-02-08 23:30:46 +010053@deffn {Interface Command} {babel wired} {}
54@deffnx {Interface Command} {babel wireless} {}
Juliusz Chroboczekf92a55f2012-02-07 16:33:17 +010055Specifies whether this interface is wireless, which disables a number
56of optimisations that are only correct on wired interfaces.
Juliusz Chroboczek4d176dc2012-02-14 08:52:19 +010057Specifying @code{wireless} (the default) is always correct, but may
58cause slower convergence and extra routing traffic.
Juliusz Chroboczekf92a55f2012-02-07 16:33:17 +010059@end deffn
60
61@deffn {Interface Command} {babel split-horizon}
62@deffnx {Interface Command} {no babel split-horizon}
Juliusz Chroboczek4d176dc2012-02-14 08:52:19 +010063Specifies whether to perform split-horizon on the interface.
64Specifying @code{no babel split-horizon} (the default) is always
65correct, while @code{babel split-horizon} is an optimisation that
66should only be used on symmetric and transitive (wired) networks.
Juliusz Chroboczekf92a55f2012-02-07 16:33:17 +010067@end deffn
68
Juliusz Chroboczek68c65a52012-02-11 14:28:17 +010069@deffn {Interface Command} {babel passive-interface}
70@deffnx {Interface Command} {no babel passive-interface}
Juliusz Chroboczekf92a55f2012-02-07 16:33:17 +010071Specifies whether this interface is passive. Note that this is
72a little weaker than RIP's notion of passive interface, since Babel
Juliusz Chroboczek68c65a52012-02-11 14:28:17 +010073always sends Hello packets and announces redistributed routes, even on
74passive interfaces.
75@end deffn
76
77@deffn {Interface Command} {babel hello-interval <20-655340>}
Juliusz Chroboczek4d176dc2012-02-14 08:52:19 +010078Specifies the time in milliseconds between two scheduled hellos. On
79wired links, Babel notices a link failure within two hello intervals;
80on wireless links, the link quality value is reestimated at every
81hello interval. The default is 4000@dmn{ms}.
Juliusz Chroboczek68c65a52012-02-11 14:28:17 +010082@end deffn
83
Matthieu Boutier8a46e122012-02-11 15:09:33 +010084@deffn {Interface Command} {babel update-interval <20-655340>}
Juliusz Chroboczek68c65a52012-02-11 14:28:17 +010085Specifies the time in milliseconds between two scheduled updates.
Juliusz Chroboczek4d176dc2012-02-14 08:52:19 +010086Since Babel makes extensive use of triggered updates, this can be set
87to fairly high values on links with little packet loss. The default
88is 20000@dmn{ms}.
Juliusz Chroboczek68c65a52012-02-11 14:28:17 +010089@end deffn
90
91@deffn {Babel Command} {babel resend-delay <20-655340>}
92Specifies the time in milliseconds after which an ``important''
Juliusz Chroboczek4d176dc2012-02-14 08:52:19 +010093request or update will be resent. The default is 2000@dmn{ms}. You
94probably don't want to tweak this value.
Juliusz Chroboczekf92a55f2012-02-07 16:33:17 +010095@end deffn
96
97@node Babel redistribution, Show Babel information, Babel configuration, Babel
98@section Babel redistribution
99
100@deffn {Babel command} {redistribute @var{kind}}
101@deffnx {Babel command} {no redistribute @var{kind}}
102Specify which kind of routes should be redistributed into Babel.
103@end deffn
104
105@node Show Babel information, Babel debugging commands, Babel redistribution, Babel
106@section Show Babel information
107
108@deffn {Command} {show babel database} {}
109@deffnx {Command} {show babel interface} {}
110@deffnx {Command} {show babel neighbour} {}
Denis Ovsienkoa14ef5e2012-02-11 21:06:16 +0400111@deffnx {Command} {show babel parameters} {}
Juliusz Chroboczekf92a55f2012-02-07 16:33:17 +0100112These commands dump various parts of @command{babeld}'s internal
113state. They are mostly useful for troubleshooting.
114@end deffn
115
116@node Babel debugging commands, , Show Babel information, Babel
117@section Babel debugging commands
118
Denis Ovsienkoa14ef5e2012-02-11 21:06:16 +0400119@deffn {Babel Command} {debug babel @var{kind}} {}
120@deffnx {Babel Command} {no debug babel @var{kind}} {}
Juliusz Chroboczekf92a55f2012-02-07 16:33:17 +0100121Enable or disable debugging messages of a given kind. @var{kind} can
122be one of @samp{common}, @samp{kernel}, @samp{filter}, @samp{timeout},
Matthieu Boutier73c74d42012-02-08 00:32:59 +0100123@samp{interface}, @samp{route} or @samp{all}. Note that if you have
124compiled with the NO_DEBUG flag, then these commands aren't available.
Juliusz Chroboczekf92a55f2012-02-07 16:33:17 +0100125@end deffn
126