blob: aa19c9aa65c13cb975c330c5b9ca67931fb73465 [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
17Quagga implements Babel as described in RFC6126, as well as the
18``Babel-Z'' extensions that optimise routes for radio frequency
19diversity.
20
21@menu
22* Configuring babeld::
23* Babel configuration::
24* Babel redistribution::
25* Show Babel information::
26* Babel debugging commands::
27@end menu
28
29@node Configuring babeld, Babel configuration, Babel, Babel
30@section Configuring babeld
31
32The @command{babeld} daemon can be invoked with any of the common
33options (@pxref{Common Invocation Options}).
34
35The @command{zebra} daemon must be running before @command{babeld} is
36inovked. Also, if @command{zebra} is restarted then @command{babeld}
37must be too.
38
39Configuration of @command{babeld} is done in its configuration file
40@file{babeld.conf}.
41
42@node Babel configuration, Babel redistribution, Configuring babeld, Babel
43@section Babel configuration
44
45@deffn Command {router babel} {}
46@deffnx Command {no router babel} {}
47Enable or disable Babel routing.
48@end deffn
49
50@deffn {Babel Command} {network @var{ifname}} {}
51@deffnx {Babel Command} {no network @var{ifname}} {}
52Enable or disable Babel on the given interface.
53@end deffn
54
55@deffn {Babel Command} {protocol group @var{group}} {}
56@deffnx {Babel Command} {protocol port @var{port}} {}
57Specify the multicast group and UDP port used for Babel traffic. The
58default is to use group @code{ff02::1:6} and port 6696, as allocated
59by IANA. (Note that RFC6126 specifies a port number that has been
60obsoleted after publication.)
61@end deffn
62
63@deffn {Interface Command} {wireless} {}
64@deffnx {Interface Command} {no wireless} {}
65Specifies whether this interface is wireless, which disables a number
66of optimisations that are only correct on wired interfaces.
67Specifying @code{no wireless} is always correct, but may cause extra
68routing overhead. The default is autodetected if possible,
69@code{wireless} otherwise.
70@end deffn
71
72@deffn {Interface Command} {babel split-horizon}
73@deffnx {Interface Command} {no babel split-horizon}
74Specifies whether to perform split-horizon on the interface. Default
75is @code{babel split-horizon} on wired interfaces, and @code{no babel
76split-horizon} on wireless interfaces. Please note that performing split
77horizon on wireless interfaces is not correct in general, and may lead
78to communication failures.
79@end deffn
80
81@deffn {Interface Command} {passive-interface}
82@deffnx {Interface Command} {passive-interface}
83Specifies whether this interface is passive. Note that this is
84a little weaker than RIP's notion of passive interface, since Babel
85always sends Hello packets, even on passive interfaces.
86@end deffn
87
88@node Babel redistribution, Show Babel information, Babel configuration, Babel
89@section Babel redistribution
90
91@deffn {Babel command} {redistribute @var{kind}}
92@deffnx {Babel command} {no redistribute @var{kind}}
93Specify which kind of routes should be redistributed into Babel.
94@end deffn
95
96@node Show Babel information, Babel debugging commands, Babel redistribution, Babel
97@section Show Babel information
98
99@deffn {Command} {show babel database} {}
100@deffnx {Command} {show babel interface} {}
101@deffnx {Command} {show babel neighbour} {}
102@deffnx {Command} {show babel running-config} {}
103These commands dump various parts of @command{babeld}'s internal
104state. They are mostly useful for troubleshooting.
105@end deffn
106
107@node Babel debugging commands, , Show Babel information, Babel
108@section Babel debugging commands
109
110@deffn {Babel Command} {debug @var{kind}} {}
111@deffnx {Babel Command} {no debug @var{kind}} {}
112Enable or disable debugging messages of a given kind. @var{kind} can
113be one of @samp{common}, @samp{kernel}, @samp{filter}, @samp{timeout},
114@samp{interface}, @samp{route} or @samp{all}.
115@end deffn
116