blob: 98fc28d0a32e2e4d03f14e8cf41e982817d4d84e [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.
Matthieu Boutier3c442e82012-02-08 23:30:46 +010057Specifying @code{wireless} is always correct, but may cause extra
Juliusz Chroboczekf92a55f2012-02-07 16:33:17 +010058routing overhead. The default is autodetected if possible,
59@code{wireless} otherwise.
60@end deffn
61
62@deffn {Interface Command} {babel split-horizon}
63@deffnx {Interface Command} {no babel split-horizon}
64Specifies whether to perform split-horizon on the interface. Default
65is @code{babel split-horizon} on wired interfaces, and @code{no babel
66split-horizon} on wireless interfaces. Please note that performing split
67horizon on wireless interfaces is not correct in general, and may lead
68to communication failures.
69@end deffn
70
Juliusz Chroboczek68c65a52012-02-11 14:28:17 +010071@deffn {Interface Command} {babel passive-interface}
72@deffnx {Interface Command} {no babel passive-interface}
Juliusz Chroboczekf92a55f2012-02-07 16:33:17 +010073Specifies whether this interface is passive. Note that this is
74a little weaker than RIP's notion of passive interface, since Babel
Juliusz Chroboczek68c65a52012-02-11 14:28:17 +010075always sends Hello packets and announces redistributed routes, even on
76passive interfaces.
77@end deffn
78
79@deffn {Interface Command} {babel hello-interval <20-655340>}
80Specifies the time in milliseconds between two scheduled hellos.
81Babel notices a link failure within two hello intervals on wired
82links; on wireless links, the link quality value is reestimated at
83every hello interval.
84@end deffn
85
86@deffn {Interface Command} {babel hello-interval <20-655340>}
87Specifies the time in milliseconds between two scheduled updates.
88Since Babel makes extensive use of triggered updates, this can be
89set to fairly high values on links with little packet loss.
90@end deffn
91
92@deffn {Babel Command} {babel resend-delay <20-655340>}
93Specifies the time in milliseconds after which an ``important''
94request or update will be resent. This is a global, not per-interface
95value.
Juliusz Chroboczekf92a55f2012-02-07 16:33:17 +010096@end deffn
97
98@node Babel redistribution, Show Babel information, Babel configuration, Babel
99@section Babel redistribution
100
101@deffn {Babel command} {redistribute @var{kind}}
102@deffnx {Babel command} {no redistribute @var{kind}}
103Specify which kind of routes should be redistributed into Babel.
104@end deffn
105
106@node Show Babel information, Babel debugging commands, Babel redistribution, Babel
107@section Show Babel information
108
109@deffn {Command} {show babel database} {}
110@deffnx {Command} {show babel interface} {}
111@deffnx {Command} {show babel neighbour} {}
112@deffnx {Command} {show babel running-config} {}
113These commands dump various parts of @command{babeld}'s internal
114state. They are mostly useful for troubleshooting.
115@end deffn
116
117@node Babel debugging commands, , Show Babel information, Babel
118@section Babel debugging commands
119
120@deffn {Babel Command} {debug @var{kind}} {}
121@deffnx {Babel Command} {no debug @var{kind}} {}
122Enable or disable debugging messages of a given kind. @var{kind} can
123be one of @samp{common}, @samp{kernel}, @samp{filter}, @samp{timeout},
Matthieu Boutier73c74d42012-02-08 00:32:59 +0100124@samp{interface}, @samp{route} or @samp{all}. Note that if you have
125compiled with the NO_DEBUG flag, then these commands aren't available.
Juliusz Chroboczekf92a55f2012-02-07 16:33:17 +0100126@end deffn
127