File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / mrouted / README
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 23:10:48 2012 UTC (12 years, 4 months ago) by misho
Branches: mrouted, MAIN
CVS tags: v3_9_6p0, v3_9_6, v3_9_5, HEAD
mrouted

    1: README for mrouted, the DVMRP Multicast Routing Daemon
    2: ======================================================
    3: mrouted is an implementation of the DVMRP multicast routing protocol. It turns
    4: a UNIX workstation into a DVMRP multicast router with tunnel support, in order
    5: to cross non-multicast-aware routers.
    6: 
    7: DVMRP is a distance vector based protocol, derived from RIP, suitable for
    8: closely located multicast users in smaller networks.  It simply floods all
    9: multicast streams to all routers, i.e. implicit join.  This is also known as
   10: "flood and prune" since you can opt out from groups you do not want. For a
   11: detailed explanation of the protocol, consult RFC 1075.
   12: 
   13: History
   14: -------
   15: The mrouted routing daemon was developed by Steve Deering, Ajit Thyagarajan,
   16: Bill Fenner, David Thaler and Daniel Zappala.  With contributions by many
   17: others.
   18: 
   19: The last release by Mr. Fenner was 3.9-beta3 on April 26 1999 and mrouted has
   20: been in "beta" status since then.  Several prominent UNIX operating systems,
   21: such as AIX, Solaris, HP-UX, BSD/OS, NetBSD, FreeBSD, OpenBSD as well as most
   22: GNU/Linux based distributions have used that beta as a de facto stable release,
   23: with (mostly) minor patches for system adaptations.  Over time however many
   24: dropped support, but Debian and OpenBSD kept it under their wings.
   25: 
   26: In March 2003 OpenBSD, led by the fearless Theo de Raadt, managed to convince
   27: Stanford to release mrouted under a fully free license, the BSD license[1].
   28: Nevertheless, in February 2005 Debian finally dropped[2] mrouted as an
   29: "obsolete protocol".
   30: 
   31: For a long time the OpenBSD team remained the sole guardian of this project.
   32: 
   33: In 2010 this effort of bringing mrouted back to life was started.  The 3.9.x
   34: stable series represent the first releases in over a decade.  Patches from all
   35: over the Internet, including OpenBSD, have been integrated.
   36: 
   37: Bugs
   38: ----
   39: The basic functionality has been tested thoroughly over the years, but that
   40: does not mean mrouted is bug free.  Please report any oddities, feature
   41: requests, patches or pull requests in the github issue tracker at:
   42: 
   43: 	http://github.com/troglobit/mrouted/issues
   44: 
   45: Mrouted contain "hacks" to recognize Cisco IOS's pseudo-DVMRP implementation to
   46: yield all "DVMRP" versions of 10 and higher to IOS.  Previous pre-release
   47: versions of mrouted 3.9.0 made the assumption that the IOS bug that causes it
   48: to use the IOS version number instead of the DVMRP version number would be
   49: fixed by the time 12.0 was out.
   50: 
   51: Configuring
   52: -----------
   53: 
   54: By default mrouted reads its configuration file from /etc/mrouted.conf.  You can
   55: override the default by specifying an alternate file when invoking mrouted.
   56: 
   57: 	mrouted -f /path/file.conf
   58: 
   59: The mrouted daemon can reconfigure itself at runtime if you change the configuration
   60: file, simply send the process a SIGHUP to activate new changes to the file.  The PID
   61: is saved automatically to the file /var/run/mrouted.pid at start.
   62: 
   63: By default, mrouted configures itself to act as a multicast router on all multicast
   64: capable interfaces, excluding the loopback interface that has the IFF_MULTICAST flag
   65: set.  Therefore, you do not need to explicitly configure mrouted, unless you need to
   66: setup tunnel links, change the default operating parameters, or disable multicast
   67: routing over a specific physical interface.
   68: 
   69: See the man page for further details.
   70: 
   71: Running
   72: -------
   73: The mrouted daemon must run as root.
   74: 
   75: For the native mrouted tunnel to work in Linux based systes you need to have
   76: the "ipip" kernel module loaded or as built-in.
   77: 
   78: 	modprobe ipip
   79: 
   80: Several signals are supported, for querying status, or simply for reloading the
   81: configuration.  See the man page for details.
   82: 
   83: MROUTED 3.8
   84: ===========
   85: Mrouted 3.8 has two optional features: SNMP and RSRR.  RSRR support is
   86: required for running RSVP; the SNMP code, with the help of the ISODE snmpd,
   87: implements both the Multicast MIB and the DVMRP MIB.
   88: 
   89: RSRR
   90: ----
   91: Routing Support for Resource Reservations (RSRR) was contributed by
   92: Daniel Zappala <daniel@isi.edu>.
   93: 
   94: Note: This has not been tested in many years ...
   95: 
   96: To enable RSRR support, uncomment the three lines starting with RSRR near
   97: the top of the Makefile and "make clean; make".  Or use the prebuilt binary,
   98: mrouted.rsrr .
   99: 
  100: RSRR allows RSVP to query mrouted for its routing entry for a particular
  101: source-group pair.  Using the routing entry and the IP_MULTICAST_VIF socket
  102: call, RSVP can forward distinct control messages out each outgoing
  103: interface.  This version of mrouted supports RSRR messages using a Unix
  104: datagram socket.
  105: 
  106: RSRR currently includes two pairs of query-reply messages.  RSVP sends an
  107: Initial Query when it starts.  Mrouted responds with an Initial Reply that
  108: includes the set of vifs it is using, flagging those that are
  109: administratively disabled.  When RSVP needs the routing entry for a
  110: source-group pair, it sends a Route Query.  Mrouted responds with a Route
  111: Reply that includes the incoming vif and outgoing vifs for the source-group
  112: pair.
  113: 
  114: RSVP may request route change notification by setting the notification bit
  115: in the Route Query.  If mrouted can provide route change notification for
  116: the source-group pair, it sets the notification bit in its Route Reply.
  117: When the routing entry for the source-group pair changes, mrouted sends an
  118: unsolicited Route Reply containing the new routing information.  The initial
  119: release of mrouted 3.5 did not support route change notification and always
  120: returned a Route Reply with the notification bit cleared.  This release of
  121: mrouted provides route change notification when possible.
  122: 
  123: SNMP
  124: ----
  125: SNMP support was contributed by David Thaler <thalerd@eecs.umich.edu>.
  126: Note: This has not been tested in many years ...
  127: 
  128: To enable SNMP support, uncomment the six lines near the top of the Makefile
  129: below the description of SNMP support.
  130: 
  131: To link the SNMP-capable mrouted, you need the CMU libraries.  See
  132: http://nic.merit.edu/~mbone/ for a full mrouted-snmp distribution.
  133: 
  134: Make sure to add the "sysName", "sysContact", "sysVersion" and "sysLocation"
  135: variables to your /etc/mrouted.conf if you want them to provide anything
  136: other than default values.
  137: 
  138: Example:
  139: 
  140: sysName	"tibia"
  141: sysContact "Bill Fenner <fenner@parc.xerox.com> +1 415 812-4816"
  142: sysVersion "SunOS 4.1.3 and mrouted 3.8"
  143: sysLocation "MAXC room, PARC building 35"
  144: 
  145: The SNMP version of mrouted has an additional command line flag:
  146: 
  147:   -P snmp_port
  148: 
  149:      Specifies a port for SNMP communication (default 161).  This option
  150:      should be used when another SNMP daemon already exists.  The preferred
  151:      alternate port in this case is port 9161.
  152: 
  153: The mstat(8) program allows querying of statistics using SNMP.
  154: 
  155: Footnotes
  156: ---------
  157: [1] - http://www.openbsd.org/cgi-bin/cvsweb/src/usr.sbin/mrouted/LICENSE
  158: [2] - http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=288112

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>