mrouted
—
IP multicast routing daemon
mrouted |
[ -hnpv ]
[-f,
--config
FILE ]
[-d,
--debug
SYS[,SYS,... ]
[-l,
--loglevel
LEVEL ]
[--startup-delay
SEC ] |
mrouted
is the original implementation of the
Distance-Vector Multicast Routing Protocol (DVMRP), RFC 1075.
mrouted
is
simple to use. DVMRP is derived from RIP, RFC
1058, which means
mrouted
works stand-alone
without any extra network setup required. You can get up and running in a
matter of minutes.
mrouted
maintains topological knowledge via
DVMRP, upon which it implements a multicast datagram forwarding algorithm
called Reverse Path Multicasting.
mrouted
forwards a multicast datagrams along
the shortest (reverse) path tree rooted at the subnet on which the datagram
originates. The multicast delivery tree may be thought of as a broadcast
delivery tree that has been pruned back so that it does not extend beyond
those subnetworks that have members of the destination group. Hence, datagrams
are not forwarded along those branches which have no listeners of the
multicast group. The IP time-to-live of a multicast datagram can be used to
limit the range of multicast datagrams.
In order to support multicasting among subnets that are separated by (unicast)
routers that do not support IP multicasting,
mrouted
includes (built-in) support for
IP-in-IP tunnels, which are virtual point-to-point links between pairs of
DVMRP capable rotuers located anywhere in an internet. IP multicast packets
are encapsulated for transmission through tunnels, so that they look like
normal unicast datagrams to intervening routers and subnets. The encapsulation
is added on entry to a tunnel, and stripped off on exit from a tunnel.
The tunneling mechanism allows
mrouted
to
establish a virtual internet, for the purpose of multicasting only, which is
independent of the physical internet, and which may span multiple Autonomous
Systems. This capability is intended for experimental support of internet
multicasting only, pending widespread support for multicast routing by the
regular (unicast) routers.
mrouted
suffers
from the well-known scaling problems of any distance-vector routing protocol,
and does not support hierarchical multicast routing.
A more common practise today is to set up GRE tunnels between multicast capable
routers and limit
mrouted
to run on a
select number of interfaces listed in the configuration.
mrouted
handles multicast routing only; there
may or may not be unicast routing software running on the same machine as
mrouted
. With the use of tunnels, it is not
necessary for
mrouted
to have access to
more than one physical subnet in order to perform multicast forwarding.
This program follows the usual UNIX command line syntax, with long options
starting with two dashes (`--'). The options are as follows:
-d,
--debug=SYS[,SYS,..]
- This option enables subsystem debug messages and causes
mrouted
to run in the foreground of the
starting terminal, regardless of the -l
flag controls the (syslog) log level of each subsystem.
Available subystems:
-f,
--config=FILE
- Specify an alternative configuration file, default
/etc/mrouted.conf
-h,
--help
- Print a help message and exit.
-l,
--loglevel=LEVEL
- Set log level for syslog messages: none, err, notice (default), info,
debug. Use '?' for a complete list of supported log levels.
none
- Disable all logging
error
- Error conditions
warning
- Warning conditions
notice
- Normal but significant condition (Default)
info
- Informational
debug
- Debug-level messages
-n,
--foreground
- Run in foreground, do not detach from the calling terminal.
-n
option. The
--missing-ok
- If an interface in /etc/mrouted.conf
does not exist yet, print a warning and continue. Useful with VPN, PPP and
other dynamic interfaces. However,
mrouted
must still be restarted to
start listening on such interfaces, if they did not exist when
mrouted
was started.
--no-interfaces
- Change
mrouted
default behavior and
assume all interfaces are disabled unless explicitly enabled with
phyint enable
in
/etc/mrouted.conf
--startup-delay=DELAY
- Wait for DELAY seconds before applying the routes. This delay enables to
exchange routes before starting to forward multicast packets and therefore
eliminate transient problems at startup, at the cost of a momentary black
hole. Defaults to 10 seconds.
-p
- Start
mrouted
in a non-pruning mode.
This was previously used in routers for test purposes only. However, this
is no longer supported and this option is only kept for compatibility
reasons.
mrouted
responds to the following signals:
- HUP
- Restart
mrouted
and reload the
configuration file.
- INT
- Terminate execution gracefully, i.e., by sending good-bye messages to all
neighboring routers.
- TERM
- Same as INT.
For convenience,
mrouted
writes its process
ID to
/var/run/mrouted.pid when it has
completed its start up and is ready to receive signals.
- /etc/mrouted.conf
- Main configuration file.
- /var/lib/mrouted.genid
- DVMRP generation ID. Used by neighboring DVRMP routers to detect when a
router is restarted.
- /var/run/mrouted.pid
- Pidfile (re)created by
mrouted
daemon
when it has started up and is ready to receive commands.
- /var/run/mrouted.sock
- UNIX-domain socket used for communication with
mroutectl(8)
- /proc/net/ip_mr_cache
- Holds active IPv4 multicast routes (Linux).
- /proc/net/ip_mr_vif
- Holds the IPv4 virtual interfaces used by the active multicast routing
daemon (Linux).
mrouted.conf(5),
mroutectl(8),
map-mbone(8),
mrinfo(8),
mtrace(8),
pimd(8),
smcroute(8)
S. Deering,
Multicast Routing in Internetworks and Extended LANs,
Proceedings of the ACM SIGCOMM '88 Conference.
The
mrouted
home page is
⟨http://github.com/troglobit/mrouted⟩
The following are the principal authors of
mrouted
, listed in no particular order:
David Waitzman,
Craig Partridge,
Steve Deering,
Ajit Thyagarajan,
Bill Fenner,
David Thaler,
and
Daniel Zappala.
With contributions by many others.