babel.man 4.45 KB
Newer Older
1
.TH BABEL 1
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
2
.SH NAME
3
babel \- ad-hoc network routing daemon
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
4
.SH SYNOPSIS
5
.B babel
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
[
.B \-m
.I multicast-address
]
[
.B \-p
.I port
] [
.B -S
.I state-file
] [
.B \-h
.I hello-interval
] [
.B \-H
.I wired-hello-interval
] [
.B \-u
.I update-interval
] [
.B \-k
.I kernel-metric
] [
.B \-s
] [
.B \-b
] [
.B \-p
] [
.B \-d
.I level
 ] [
.B \-n
.I
.I prefix cost
]...
.I address
.IR interface ...
.SH DESCRIPTION
45
Babel is a loop-avoiding distance-vector routing protocol roughly
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
46
based on DSDV and AODV, but with provisions for link cost estimation
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
47 48
and injection of external routes.

49
While it is optimised for wireless mesh networks, Babel will also
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
50 51 52 53 54 55 56 57 58
work efficiently on classical wired networks.  In the worst case, it
will generate roughly double the amount of traffic that RIPng would
generate, while never counting to infinity.
.SH OPTIONS
.TP
.BI \-m " multicast-address"
Specify the link-local multicast address to be used by the protocol.
.TP
.BI \-p " port"
59
Specify the UDP port number to be used by the Babel protocol.
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
60 61 62 63
.TP
.BI \-S " state-file"
Set the name of the file used for preserving long-term information
between invocations of the
64
.B babel
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
65 66 67 68 69
daemon.  If this file is deleted, the daemon will run in passive mode
for 3 minutes when it is next invoked (see
.B -P
below), and other hosts might initially not accept to route to it.
The default is
70
.BR /var/lib/babel-state .
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146
.TP
.BI \-h " hello-interval"
Specify the interval in seconds at which periodic hello packets are
sent on wireless interfaces.  The default is 8.
.TP
.BI \-H " wired-hello-interval"
Specify the interval in seconds at which periodic hello packets are
sent on wired interfaces.  The default is 30.
.TP
.BI \-u " update-interval"
Specify the interval in seconds at which periodic routing table dumps
are made on all interfaces.  The default is either the wired hello
interval, or 150, whichever is less.
.TP
.BI \-k " kernel-metric"
Specify a value that will be added to routes' metrics before
installing them in the kernel; this is useful when a single node
participates in multiple routing protocols.  The default is 0.
.TP
.B \-s
Do not perform split-horizon processing on wired interfaces.
Split-horizon is never performed on wireless interfaces.
.TP
.B \-b
Generate messages for detecting bidirectional communication failures
on wired interfaces.  By default, wired interfaces are assumed to be
symmetric.
.TP
.B \-P
Run in parasitic (passive) mode.  The daemon will not announce any
routes except for itself.
.TP
.BI \-d " level"
Debug level.  A value of 1 requests a routing table dump at every
iteration through the daemon's main loop.  A value of 2 additionally
requests tracing every message sent or received.  The default is 0.
.TP
.BI \-n " network cost"
Advertise an external route for the given network with the given cost.
We suggest a cost of 256 \[mu]
.RI ( n
+ 1) for a network
.I n
hops away.
.I Network
should be either the string
.BR default ,
or a nework specification in CIDR notation
.IB prefix / length.
If
.I length
is omitted, it defaults to 128 (a host route).
.TP
.I address
The IPv6 address that the node should advertise for itself.
(Additional addresses can be advertised as external routes with a cost
of 0.)
.TP
.IR interface ...
The list of interfaces on which the protocol should operate.
.SH WIRED INTERFACES
By default, the daemon optimises traffic on wired interfaces by
sending fewer periodic hello messages, performing split-horizon
processing and not generating any reverse reachability information.
These optimisations can be disabled using the
.BR -H ,
.B -s
and
.B -b
options respectively.

No link cost estimation is performed on wired interfaces: a wired
adjacency is assumed to be up if at least one of the last three hello
messages has been received, and down otherwise.
.SH FILES
.TP
147
.B /var/lib/babel-state
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
148 149
The default location of the file storing long-term state.
.SH SECURITY
150
Babel is a completely insecure protocol: any attacker able to
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
151 152 153
inject IP packets with a link-local source address can disrupt the
protocol's operation.

154 155
Since Babel uses link-local addresses only, there is no need to
update firewalls to allow forwarding of Babel protocol packets.  If
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
156
ingress filtering is done on a host, the protocol port should be
157
opened.  As Babel uses unicast packets in some cases, just allowing
Juliusz Chroboczek's avatar
Juliusz Chroboczek committed
158 159 160 161 162 163 164 165 166 167
packets destined to the multicast address is not enough.
.SH BUGS
Plenty.  This is experimental software, run at your own risk.
.SH SEE ALSO
.BR routed (8),
.BR route6d (8),
.BR zebra (8),
.BR ahcpd (8).
.SH AUTHOR
Juliusz Chroboczek.