Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
MROUTED(8)		    System Manager's Manual		    MROUTED(8)

NAME
       mrouted -- IP multicast routing daemon

SYNOPSIS
       mrouted [-fhp] [-c FILE]	[-d [[LEVEL[,LEVEL,...]]]

DESCRIPTION
       mrouted	is  an implementation of the Distance-Vector Multicast Routing
       Protocol	(DVMRP), an earlier version of which is	specified in RFC 1075.
       It maintains topological	knowledge via a	distance-vector	routing	proto-
       col (like RIP, described	in RFC 1058), upon which it implements a  mul-
       ticast datagram forwarding algorithm called Reverse Path	Multicasting.

       mrouted	forwards  a multicast datagram along a shortest	(reverse) path
       tree rooted at the subnet on which the datagram originates.  The	multi-
       cast delivery tree may be thought of as a broadcast delivery tree  that
       has  been  pruned  back so that it does not extend beyond those subnet-
       works that have members of the destination group.  Hence, datagrams are
       not forwarded along those branches which	have no	listeners of the  mul-
       ticast  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
       support	for  "tunnels",	which are virtual point-to-point links between
       pairs of	mrouted	daemons	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.  By default,	the packets are	encapsulated using the
       IP-in-IP	protocol (IP protocol number 4).  Older	 versions  of  mrouted
       tunnel  use IP source routing, which puts a heavy load on some types of
       routers.	 This version does not support IP source route tunneling.

       The tunneling mechanism allows mrouted to establish a virtual internet,
       for the purpose of multicasting only, which is independent of the phys-
       ical internet, and which	may span multiple  Autonomous  Systems.	  This
       capability  is intended for experimental	support	of internet multicast-
       ing only, pending widespread support for	multicast routing by the regu-
       lar (unicast) routers.  mrouted suffers	from  the  well-known  scaling
       problems	 of any	distance-vector	routing	protocol, and does not support
       hierarchical multicast routing.

       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.

OPTIONS
       This  program follows the usual UNIX command line syntax, with long op-
       tions starting with two dashes (`--').  The options are as follows:

       -h, --help
	       Print a help message and	exit.

       -M, --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.

       -N, --no-interfaces
	       Change  mrouted	default	behavior and assume all	interfaces are
	       disabled	 unless	 explicitly  enabled  with  phyint  enable  in
	       /etc/mrouted.conf

       -D, --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.

       -f, --foreground
	       Run in foreground, do not detach	from the calling terminal.

       -c, --config=FILE
	       Specify	  an	alternative    configuration   file,   default
	       /etc/mrouted.conf

       -d, --debug[=LEVEL[,LEVEL...]
	       By default, mrouted detaches from the  invoking	terminal.   If
	       this  option is specified, mrouted it runs in foreground	of the
	       starting	terminal and responds to signals.  If -d is given with
	       no  argument,  the  debug  level	 defaults  to	igmp,	cache,
	       interface, groups, prunes, routes and peers.

	       Regardless  of  the  debug level, mrouted always	writes warning
	       and error messages to the system	log daemon.  Debug levels have
	       the following effects:

		     packet
			   Debug inbound/outbout packets
		     prunes
			   Pruning operations, or pruned routes
		     routes
			   Routing messages
		     rtdetail
			   Detailed routing information
		     peers
			   Neighbor gossip
		     cache
			   Debug routing cache
		     timeout
			   Debug timeouts
		     interface
			   Show	interface (VIF)	debug messages
		     groups
			   Debug group memberships
		     mtrace
			   Multicast traceroute	information
		     igmp  Debug IGMP messages
		     icmp  Debug ICMP messages
		     rsrr  Debug RSRR messages

       -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  rea-
	       sons.

       -r, --show-routes
	       Show  state  of VIFs and	multicast routing tables. This command
	       sends SIGUSR1 to	a running mrouted, waits for the dump file  to
	       be updated, and then displays the result	on stdout.

CONFIGURATION
       In  many	cases you do not need to configure mrouted.  It	configures it-
       self automatically to forward multicast on all multicast-capable	inter-
       faces, i.e., interfaces that have the IFF_MULTICAST flag	set, excluding
       the loopback interface.	It locates other  DVMRP	 capable  routers  di-
       rectly reachable	via those interfaces.

	     mrouted
		   will	 not  start  with less than two	enabled	virtual	inter-
		   faces (VIFs).  A VIF	is either a physical multicast-capable
		   interface or	a tunnel.
	     mrouted
		   will	log a warning if all of	its VIFs are tunnels;  such  a
		   configuration  is  likely  better  replaced	by more	direct
		   (GRE) tunnels (i.e. eliminate the middle man).

       To override the default settings, for example to	to add tunnel links to
       other  DVMRP  routers,  configuration  commands	may   be   placed   in
       /etc/mrouted.conf.  There are five types	of commands:

	     cache_lifetime <SEC>

	     name boundary-name	| scoped-addr/mask-len

	     phyint local-addr [altnet network/mask-len]
		   [boundary boundary-name | scoped-addr/mask-len]
		   [disable | enable]
		   [metric <1-31>]
		   [rate_limit kbps]
		   [threshold ttl]

	     pruning [off | on]

	     tunnel local-addr remote-addr
		   [boundary boundary-name | scoped-addr/mask-len]
		   [metric <1-31>]
		   [rate_limit kbps]
		   [threshold ttl]

       The  file  format  is free-form:	whitespace (including newlines)	is not
       significant.  The boundary option to all	commands can accept  either  a
       name  or	 a  network  boundary;	the boundary and altnet	options	may be
       specified as many times as necessary.

       The cache_lifetime is a value that determines the amount	of time	that a
       cached multicast	route stays in kernel before timing out.  The value of
       this entry should lie between 300 (5 min) and 86400 (1  day).   It  de-
       faults to 300.

       The  name option	assigns	names to boundaries to make configuration eas-
       ier.

       The phyint command can be used to disable multicast routing (or	enable
       if mrouted is started with all interfaces disabled) on the physical in-
       terface	identified  by	local IP address local-addr, or	to associate a
       non-default metric or threshold with the	specified physical  interface.
       The  local  IP address local-addr may be	replaced by the	interface name
       (e.g. le0).  If an interface is attached	to multiple  IP	 subnets,  de-
       scribe each additional subnet with the altnet keyword.  All phyint com-
       mands must precede tunnel commands.

       The  pruning  command  is  provided for mrouted to act as a non-pruning
       router.	This is	no longer supported and	the  configuration  option  is
       only kept for compatibility reasons.

       The tunnel command can be used to establish a tunnel link between local
       IP  address  local-addr and remote IP address remote-addr, and to asso-
       ciate a non-default metric or threshold with that tunnel.  The local IP
       address local-addr may be replaced by the interface  name  (e.g.	 le0).
       The  remote  IP	address	remote-addr may	be replaced by a host name, if
       and only	if the host name has a single IP address associated  with  it.
       The tunnel must be set up in the	mrouted.conf files of both routers be-
       fore it can be used.

	     boundary
		   allows  an  interface to be configured as an	administrative
		   boundary for	the specified scoped address.  Packets belong-
		   ing to this address will not	be forwarded on	a  scoped  in-
		   terface.   The  boundary  option accepts either a name or a
		   boundary spec.
	     metric
		   is the "cost" associated with sending  a  datagram  on  the
		   given  interface or tunnel; it may be used to influence the
		   choice of routes.   The  metric  defaults  to  1.   Metrics
		   should be kept as small as possible,	because	mrouted	cannot
		   route along paths with a sum	of metrics greater than	31.
	     rate_limit
		   allows the network administrator to specify a certain band-
		   width  in  kbps which would be allocated to multicast traf-
		   fic.	 It defaults to	500 kbps on tunnels, and 0 (unlimited)
		   on physical interfaces.
	     threshold
		   is the minimum IP time-to-live  required  for  a  multicast
		   datagram  to	be forwarded to	the given interface or tunnel.
		   It is used to control the  scope  of	 multicast  datagrams.
		   (The	 TTL  of  forwarded  packets  is  only compared	to the
		   threshold, it is not	decremented by the  threshold.	 Every
		   multicast  router  decrements  the  TTL by 1.)  The default
		   threshold is	1.

       In general, all DVMRP routers connected to a particular subnet or  tun-
       nel should use the same metric and threshold for	that subnet or tunnel.

EXAMPLE	CONFIGURATION
       This  is	 an example configuration for a	mythical multicast router at a
       big school.

       #
       # mrouted.conf example
       #

       # Name our boundaries to	make it	easier.
       name LOCAL 239.255.0.0/16
       name EE 239.254.0.0/16

       # le1 is	our gateway to compsci,	don't forward our
       # local groups to them.
       phyint le1 boundary EE

       # le2 is	our interface on the classroom net, it has four
       # different length subnets on it.
       # Note that you can use either an IP address or an interface name
       phyint 172.16.12.38 boundary EE
	      altnet 172.16.15.0/26
	      altnet 172.16.15.128/26
	      altnet 172.16.48.0/24

       # atm0 is our ATM interface, which doesn't properly
       # support multicasting.
       phyint atm0 disable

       # This is an internal tunnel to another EE subnet.
       # Remove	the default tunnel rate	limit, since this
       # tunnel	is over	Ethernets.
       tunnel 192.168.5.4 192.168.55.101
	      metric 1 threshold 1 rate_limit 0

       # This is our tunnel to the outside world.
       # Careful with those boundaries,	Eugene.
       tunnel 192.168.5.4 10.11.12.13
	      metric 1 threshold 32
	      boundary LOCAL boundary EE

SIGNALS
       mrouted responds	to the following signals:

       HUP   Restarts mrouted.	The configuration file is reread  when	SIGHUP
	     is	received.
       INT   Terminates	 execution  gracefully,	i.e., by sending good-bye mes-
	     sages to all neighboring routers.
       TERM  The same as INT.
       USR1  Dumps	the	  internal	 routing       tables	    to
	     /var/run/mrouted/mrouted.dump.
       USR2  Dumps	  the	    internal	   cache       tables	    to
	     /var/run/mrouted/mrouted.cache.
       QUIT  Dumps the internal	routing	tables to stderr (only if mrouted  was
	     invoked with a non-zero debug level).

       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.

FILES
       /etc/mrouted.conf	       Main configuration file.
       /var/run/mrouted/mrouted.dump   Internal	routing	table, created and up-
				       dated on	SIGUSR1
       /var/run/mrouted/mrouted.cache  Internal	cache table, created  and  up-
				       dated on	SIGUSR2
       /var/run/mrouted.pid	       Pidfile	(re)created  by	mrouted	daemon
				       when it has started up and is ready  to
				       receive commands.
       /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).

EXAMPLES
       The routing table looks like this:

       Virtual Interface Table
	Vif  Local-Address		      Metric  Thresh  Flags
	 0   36.2.0.8	   subnet: 36.2		 1	 1    querier
			   groups: 224.0.2.1
				   224.0.0.4
			  pkts in: 3456
			 pkts out: 2322323

	 1   36.11.0.1	   subnet: 36.11	 1	 1    querier
			   groups: 224.0.2.1
				   224.0.1.0
				   224.0.0.4
			  pkts in: 345
			 pkts out: 3456

	 2   36.2.0.8	   tunnel: 36.8.0.77	 3	 1
			    peers: 36.8.0.77 (2.2)
		       boundaries: 239.0.1
				 : 239.1.2
			  pkts in: 34545433
			 pkts out: 234342

	 3   36.2.0.8	  tunnel: 36.6.8.23	 3	 16

       Multicast Routing Table (1136 entries)
	Origin-Subnet	From-Gateway	Metric Tmr In-Vif  Out-Vifs
	36.2				   1	45    0	   1* 2	 3*
	36.8		36.8.0.77	   4	15    2	   0* 1* 3*
	36.11				   1	20    1	   0* 2	 3*
	.
	.
	.

       In this example,	there are four VIFs connecting to two subnets and  two
       tunnels.	  The VIF 3 tunnel is not in use (no peer address).  The VIF 0
       and VIF 1 subnets have some groups  present;  tunnels  never  have  any
       groups.	 This  instance	 of mrouted is the one responsible for sending
       periodic	group membership queries on the	VIF 0 and VIF  1  subnets,  as
       indicated  by the "querier" flags.  The list of boundaries indicate the
       scoped addresses	on that	interface.  A count of the number of  incoming
       and outgoing packets is also shown at each interface.

       Associated  with	each subnet from which a multicast datagram can	origi-
       nate is the address of the previous hop router (unless  the  subnet  is
       directly-  connected),  the  metric of the path back to the origin, the
       amount of time since we last received an	update for  this  subnet,  the
       incoming	 VIF  for  multicasts from that	origin,	and a list of outgoing
       VIFs.  "*" means	that the outgoing VIF is connected to a	 leaf  of  the
       broadcast tree rooted at	the origin, and	a multicast datagram from that
       origin will be forwarded	on that	outgoing VIF only if there are members
       of the destination group	on that	leaf.

       mrouted	also  maintains	 a  copy of the	kernel forwarding cache	table.
       Entries are created and deleted by mrouted.

       The cache tables	look like this:

       Multicast Routing Cache Table (147 entries)
	Origin		   Mcast-group	   CTmr	 Age Ptmr IVif Forwvifs
	13.2.116/22	   224.2.127.255     3m	  2m	-  0	1
       >13.2.116.19
       13.2.116.196
	138.96.48/21	   224.2.127.255     5m	  2m	-  0	1
       >138.96.48.108
	128.9.160/20	   224.2.127.255     3m	  2m	-  0	1
       >128.9.160.45
	198.106.194/24	   224.2.135.190     9m	 28s   9m  0P
       >198.106.194.22

       Each entry is characterized by the origin subnet	number	and  mask  and
       the destination multicast group.

       The  'CTmr'  field  indicates  the lifetime of the entry.  The entry is
       deleted from the	cache table when the timer decrements  to  zero.   The
       'Age'  field is the time	since this cache entry was originally created.
       Since cache entries get refreshed if traffic is	flowing,  routing  en-
       tries can grow very old.

       The 'Ptmr' field	is simply a dash if no prune was sent upstream,	or the
       amount  of  time	 until	the  upstream prune will time out.  The	'Ivif'
       field indicates the incoming VIF	for multicast packets from  that  ori-
       gin.

       Each  router  also  maintains a record of the number of prunes received
       from neighboring	routers	for a particular source	and group.

       If there	are no members of a multicast group on any  downward  link  of
       the  multicast  tree  for  a subnet, a prune message is sent to the up-
       stream router.  They are	indicated by a "P" after the VIF number.

       The Forwvifs field shows	the interfaces along which datagrams belonging
       to the source-group are forwarded.

       A "p" indicates that no datagrams are being forwarded along that	inter-
       face.  An unlisted interface is a leaf subnet with no  members  of  the
       particular group	on that	subnet.

       A  "b"  on an interface indicates that it is a boundary interface, i.e.
       traffic will not	be forwarded on	the scoped address on that  interface.
       An  additional  line  with  a `>' as the	first character	is printed for
       each source on the subnet.

       Note that there can be many sources in one subnet.

SEE ALSO
       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.

AUTHORS
       David  Waitzman,	Craig Partridge, Steve Deering,	Ajit Thyagarajan, Bill
       Fenner, David Thaler, and Daniel	Zappala.  With contributions  by  many
       others.

FreeBSD	14.3		       January 17, 2013			    MROUTED(8)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=mrouted&sektion=8&manpath=FreeBSD+14.3-RELEASE+and+Ports>

home | help