blob: 69cec52d90d0a1ee4fe7386dab1b33dc4682c55a [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
53@deffn {Babel Command} {protocol group @var{group}} {}
54@deffnx {Babel Command} {protocol port @var{port}} {}
55Specify the multicast group and UDP port used for Babel traffic. The
56default is to use group @code{ff02::1:6} and port 6696, as allocated
57by IANA. (Note that RFC6126 specifies a port number that has been
58obsoleted after publication.)
59@end deffn
60
Matthieu Boutier3c442e82012-02-08 23:30:46 +010061@deffn {Interface Command} {babel wired} {}
62@deffnx {Interface Command} {babel wireless} {}
Juliusz Chroboczekf92a55f2012-02-07 16:33:17 +010063Specifies whether this interface is wireless, which disables a number
64of optimisations that are only correct on wired interfaces.
Matthieu Boutier3c442e82012-02-08 23:30:46 +010065Specifying @code{wireless} is always correct, but may cause extra
Juliusz Chroboczekf92a55f2012-02-07 16:33:17 +010066routing 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}
72Specifies whether to perform split-horizon on the interface. Default
73is @code{babel split-horizon} on wired interfaces, and @code{no babel
74split-horizon} on wireless interfaces. Please note that performing split
75horizon on wireless interfaces is not correct in general, and may lead
76to communication failures.
77@end deffn
78
79@deffn {Interface Command} {passive-interface}
Matthieu Boutier73c74d42012-02-08 00:32:59 +010080@deffnx {Interface Command} {no passive-interface}
Juliusz Chroboczekf92a55f2012-02-07 16:33:17 +010081Specifies whether this interface is passive. Note that this is
82a little weaker than RIP's notion of passive interface, since Babel
83always 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}}
91Specify 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} {}
101These commands dump various parts of @command{babeld}'s internal
102state. 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}} {}
110Enable or disable debugging messages of a given kind. @var{kind} can
111be one of @samp{common}, @samp{kernel}, @samp{filter}, @samp{timeout},
Matthieu Boutier73c74d42012-02-08 00:32:59 +0100112@samp{interface}, @samp{route} or @samp{all}. Note that if you have
113compiled with the NO_DEBUG flag, then these commands aren't available.
Juliusz Chroboczekf92a55f2012-02-07 16:33:17 +0100114@end deffn
115