babeld man page on DragonFly

Man page or keyword search:  
man Server   44335 pages
apropos Keyword Search (all sections)
Output format
DragonFly logo
[printable version]

BABELD(8)							     BABELD(8)

NAME
       babeld - ad-hoc network routing daemon

SYNOPSIS
       babeld option...	 [ -- ] interface...

DESCRIPTION
       Babel is a loop-avoiding distance-vector routing protocol roughly based
       on DSDV and AODV, but with provisions  for  link	 cost  estimation  and
       redistribution of routes from other routing protocols.

       While  it is optimised for wireless mesh networks, Babel will also work
       efficiently on wired networks.

OPTIONS
       -m multicast-address
	      Specify the link-local multicast address to be used by the  pro‐
	      tocol.  The default is ff02:0:0:0:0:0:1:6.

       -p port
	      Specify  the  UDP	 port  number to be used by the protocol.  The
	      default is 6696.

       -S state-file
	      Set the name of the file used for preserving long-term  informa‐
	      tion  between invocations of the babeld daemon.  If this file is
	      deleted, the daemon will run in passive mode for 3 minutes  when
	      it  is  next  started (see -P below), and other hosts might ini‐
	      tially ignore it.	 The default is /var/lib/babel-state.

       -h hello-interval
	      Specify the interval in seconds at which scheduled hello packets
	      are sent on wireless interfaces.	The default is 4 seconds.

       -H wired-hello-interval
	      Specify the interval in seconds at which scheduled hello packets
	      are sent on wired interfaces.  The default is 4 seconds.

       -z kind [,factor]
	      Enable diversity-sensitive routing.  The value kind defines  the
	      diversity	 algorithm used, and can be one of 0 (no diversity), 1
	      (per-interface diversity with no memory), 2 (per-channel	diver‐
	      sity  with no memory), or 3 (per-channel diversity with memory).
	      The value factor specifies by how much the cost of non-interfer‐
	      ing  routes is multiplied, in units of 1/256; the default is 128
	      (i.e. division by 2).

       -M half-time
	      Specify the half-time in seconds of the exponential  decay  used
	      for  smoothing metrics for performing route selection; the value
	      0 disables smoothing.  The default is 4s.

       -k priority
	      Specify the priority value used when installing routes into  the
	      kernel.  The default is 0.

       -A priority
	      Allow  duplicating external routes when their kernel priority is
	      at least priority.  Do not use this option unless you know  what
	      you are doing, as it can cause persistent route flapping.

       -l     Use  IFF_RUNNING	(carrier  sense)  when	determining  interface
	      availability.

       -w     Don't optimise wired links, assume all interfaces	 are  wireless
	      unless explicitly overridden in the configuration file.

       -s     Do  not  perform	split-horizon  processing on wired interfaces.
	      Split-horizon is not performed on wireless interfaces.

       -r     Use a random  router-id.	 The  default  is  to  use  persistent
	      router-ids  derived from the MAC address of the first interface,
	      which is easier to debug	and  more  reliably  prevents  routing
	      loops  but  may sometimes cause a node to be unreachable for 120
	      seconds just after boot.

       -u     Do not flush unfeasible (useless) routes.	  This	is  useful  in
	      order to announce more information to a front-end (see -g).

       -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.  A
	      value of 3 additionally dumps all interactions with the OS  ker‐
	      nel.  The default is 0.

       -g port
	      Listen for connections from a front-end on port port.

       -t table
	      Use  the	given  kernel  routing	table  for  routes inserted by
	      babeld.

       -T table
	      Export routes from the given kernel routing table. This  can  be
	      specified	 multiple  times  in  order to export routes from more
	      than one table.

       -c filename
	      Specify the name of the configuration file.  This	 flag  can  be
	      repeated multiple times.	The default is /etc/babeld.conf.

       -C statement
	      Specify a configuration statement directly on the command line.

       -D     Daemonise at startup.

       -L logfile
	      Specify  a  file	to  log random ``how do you do?'' messages to.
	      This defaults to standard	 error	if  not	 daemonising,  and  to
	      /var/log/babeld.log otherwise.

       -I pidfile
	      Specify  a  file	to  write  our	process id to.	The default is
	      /var/run/babeld.pid.

       interface...
	      The list of interfaces on which the protocol should operate.

CONFIGURATION FILE FORMAT
       The configuration file is a sequence of lines each of which specifies a
       global  option,	an  interface specification or a filtering rule.  Com‐
       ments are introduced by an octothorp ``#'' and terminate at the end  of
       the line.

   Global options
       protocol-group group
	      This  specifies  the  link-local multicast address to be used by
	      the protocol, and is equivalent to the command-line option -m.

       protocol-port port
	      This specifies the UDP port number to be used by	the  protocol,
	      and is equivalent to the command-line option -p.

       kernel-priority priority
	      This  specifies  the  priority value used when installing routes
	      into the kernel, and is equivalent to  the  command-line	option
	      -k.

       allow-duplicates priority
	      This allows duplicating external routes when their kernel prior‐
	      ity is at least priority.	 Do not use  this  option  unless  you
	      know  what you are doing, as it can cause persistent route flap‐
	      ping.

       keep-unfeasible {true|false}
	      This specifies whether to keep unfeasible (useless) routes,  and
	      is equivalent to the command-line option -u.

       random-id {true|false}
	      This specifies whether to use a random router-id, and is equiva‐
	      lent to the command-line option -r.

       debug level
	      This specifies the debugging level, and  is  equivalent  to  the
	      command-line option -d.

       local-port port
	      This specifies the TCP port on which babeld will listen for con‐
	      nections from a front-end, and is equivalent to the command-line
	      option -g.

       export-table table
	      This  specifies  the  kernel  routing  table  to	use for routes
	      inserted by babeld, and is equivalent to the command-line option
	      -t.

       import-table table
	      This  specifies  a  kernel  routing  table from which routes are
	      redistributed by babeld, and can	be  specified  multiple	 times
	      with  a  cumulative  effect.  This is equivalent to the command-
	      line option -T.

       link-detect {true|false}
	      This specifies whether to	 use  carrier  sense  for  determining
	      interface	 availability,	and  is equivalent to the command-line
	      option -l.

       diversity {true|false|kind}
	      This specifies the diversity algorithm to use; true  is  equiva‐
	      lent  to kind 3.	The default is false (do not use any diversity
	      algorithm).

       diversity-factor factor
	      This specifies by how much the cost  of  non-interfering	routes
	      should  be  multiplied,  in  units of 1/256.  The default is 128
	      (division by 2).

       smoothing-half-life seconds
	      This specifies the half-life in seconds of the exponential decay
	      used  for	 smoothing metrics for performing route selection, and
	      is equivalent to the command-line option -M.

       deamonise {true|false}
	      This specifies whether to daemonize at startup, and  is  equiva‐
	      lent to the command-line option -D.

       state-file filename
	      This  specifies  the  name of the file used for preserving long-
	      term information between invocations of the babeld  daemon,  and
	      is equivalent to the command-line option -S.

       log-file filename
	      This  specifies the name of the file used to log random messages
	      to, and is equivalent to the command-line option -L.

       pid-file filename
	      This specifies the name of the file to which babeld  writes  out
	      its process id, and is equivalent to the command-line option -I.

   Interface configuration
       An interface is configured by a line with the following format:

	      interface name [parameter...]

       where  name  is	the  name of the interface (something like eth0).  The
       default value of an interface parameter can be specified changed	 by  a
       line of the form

	      default [parameter...]

       Each parameter can be one of:

       wired {true|false|auto}
	      This specifies whether to enable optimisations specific to wired
	      interfaces.  By default, this is determined automatically unless
	      the -w command-line flag was specified.

       link-quality {true|false|auto}
	      This  specifies  whether	link quality estimation should be per‐
	      formed on this interface.	 The default is to perform link	 qual‐
	      ity  estimation  on  wireless interfaces but not on wired inter‐
	      faces.

       split-horizon {true|false|auto}
	      This specifies whether to perform	 split-horizon	processing  on
	      this  interface.	 The default is to never perform split-horizon
	      processing on wireless  interfaces;  on  wired  interfaces,  the
	      default depends on the -s flag.

       rxcost cost
	      This defines the cost of receiving frames on the given interface
	      under ideal conditions (no packet loss); how this relates to the
	      actual  cost  used for computing metrics of routes going through
	      this interface depends on whether	 link  quality	estimation  is
	      being done.  The default is 96 for wired interfaces, and 256 for
	      wireless ones.

       channel channel
	      Sets the channel for this interface.  The value channel  can  be
	      either  an  integer, or one of the strings interfering or nonin‐
	      terfering.  The default is to autodetect the channel number  for
	      wireless interfaces, and noninterfering for wired interfaces.

       faraway {true|false}
	      This  specifies  whether the network is "far away", in the sense
	      that networks behind it don't interfere with networks  in	 front
	      of it.  By default, networks are not far away.

       hello-interval interval
	      This  defines  the  interval  between hello packets sent on this
	      interface.  The default is specified with the -h and -H command-
	      line flags.

       update-interval interval
	      This  defines the interval between full routing table dumps sent
	      on this  interface;  since  Babel	 uses  triggered  updates  and
	      doesn't  count  to  infinity,  this can be set to a fairly large
	      value, unless significant packet loss is expected.  The  default
	      is four times the hello interval.

       enable-timestamps {true|false}
	      Enable  sending  timestamps  with	 each Hello and IHU message in
	      order  to	 compute  RTT  values.	 The  default	is   true   if
	      max-rtt-penalty is non-zero (see below), and false otherwise.

       rtt-decay decay
	      This specifies the decay factor for the exponential moving aver‐
	      age of RTT samples, in units of 1/256.  Must be  between	1  and
	      256,  inclusive.	Higher values discard old samples faster.  The
	      default is 42.

       rtt-min rtt
	      This specifies the minimum RTT, in milliseconds,	starting  from
	      which  we	 increase the cost to a neighbour. The additional cost
	      is linear in (rtt - rtt-min).  The default is 10 ms.

       rtt-max rtt
	      This specifies the maximum RTT, in milliseconds, above which  we
	      don't increase the cost to a neighbour. The default is 120 ms.

       max-rtt-penalty cost
	      This  specifies the maximum cost added to a neighbour because of
	      RTT, i.e. when the RTT is higher or  equal  than	rtt-max.   The
	      default  is 0, which effectively disables the use of a RTT-based
	      cost.

   Filtering rules
       A filtering rule is defined by a single line with the following format:

	      filter selector...  action

       Filter specifies the filter to which this entry will be added, and  can
       be one of in, out, or redistribute.

       Each  selector specifies the conditions under which the given statement
       matches.	 It can be one of

       ip prefix
	      This entry only applies to routes in the given prefix.

       eq plen
	      This entry only applies to routes with a prefix length equal  to
	      plen.

       le plen
	      This  entry  only applies to routes with a prefix length less or
	      equal to plen.

       ge plen
	      This entry only applies to routes with a prefix  length  greater
	      or equal to plen.

       neigh address
	      This  entry only applies to routes learned from a neighbour with
	      link-local address address.

       id id  This entry only applies to routes originated by  a  router  with
	      router-id id.

       proto p
	      This  entry  only	 applies to kernel routes with kernel protocol
	      number p.	 If neither proto nor local is specified,  this	 entry
	      applies to all non-local kernel routes with a protocol different
	      from "boot".

       local  This entry only applies to local addresses.

       if interface
	      For an input filter, this specifies the interface over which the
	      route  is	 learned.   For	 an  output filter, this specifies the
	      interface over which this route is  advertised.	For  a	redis‐
	      tribute  statement,  this specifies the interface over which the
	      route forwards packets.

       Action specifies the action to be taken when this  entry	 matches.   It
       can have one of the following values:

       allow  Allow  this  route,  without changing its metric (or setting its
	      metric to 0 in case of a redistribute filter).

       deny   Ignore this route.

       metric value
	      For an input or output filter, allow this route after increasing
	      its  metric  by  value.  For a redistribute filter, redistribute
	      this route with metric value.

       If action is not specified, it defaults to allow.

       By default, babeld redistributes all  local  addresses,	and  no	 other
       routes.	 In  order  to	make sure that only the routes you specify are
       redistributed, you should include the line

	      redistribute local deny

       as the last line in your configuration file.

EXAMPLES
       You can participate in a Babel network by simply running

	      # babeld wlan0

       where wlan0 is the name of your wireless interface.

       In order to gateway between multiple interfaces, just list them all  on
       the command line:

	      # babeld wlan0 eth0 sit1

       On  an access point, you'll probably want to redistribute some external
       routes into Babel:

	      # babeld \
		  -C 'redistribute metric 256' \
		  wlan0

       or, if you want to constrain the routes that you redistribute,

	      # babeld \
		  -C 'redistribute proto 11 ip ::/0 le 64 metric 256' \
		  -C 'redistribute proto 11 ip 0.0.0.0/0 le 24 metric 256' \
		  wlan0

FILES
       /etc/babeld.conf
	      The default location of the configuration file.

       /var/lib/babel-state
	      The default location of the file storing long-term state.

       /var/run/babeld.pid
	      The default location of the pid file.

       /var/log/babeld.log
	      The default location of the log file.

SIGNALS
       SIGUSR1
	      Dump Babel's routing tables to standard output  or  to  the  log
	      file.

       SIGUSR2
	      Check  interfaces	 and  kernel routes right now, then reopen the
	      log file.

SECURITY
       Babel is a completely insecure protocol: any attacker able to inject IP
       packets	with  a	 link-local  source address can disrupt the protocol's
       operation.  This is no different from unsecured neighbour discovery  or
       ARP.

       Since  Babel  uses  link-local  IPv6  packets only, there is no need to
       update firewalls to allow forwarding of	Babel  protocol	 packets.   If
       local  filtering	 is  being done, UDP datagrams to the port used by the
       protocol should be allowed.  As Babel  uses  unicast  packets  in  some
       cases,  it is not enough to just allow packets destined to Babel's mul‐
       ticast address.

BUGS
       Plenty.	This is experimental software, run at your own risk.

SEE ALSO
       routed(8), route6d(8), zebra(8), ahcpd(8).

AUTHOR
       Juliusz Chroboczek.

								     BABELD(8)
[top]

List of man pages available for DragonFly

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net