Annotation of embedaddon/mrouted/README, revision 1.1.1.1

1.1       misho       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>