mrouted  4.0
About: mrouted is an implementation of the DVMRP multicast routing protocol.
  Fossies Dox: mrouted-4.0.tar.gz  ("unofficial" and yet experimental doxygen-generated source code documentation)  

mrouted Documentation

Some Fossies usage hints in advance:

  1. To see the Doxygen generated documentation please click on one of the items in the steelblue colored "quick index" bar above or use the side panel at the left which displays a hierarchical tree-like index structure and is adjustable in width.
  2. If you want to search for something by keyword rather than browse for it you can use the client side search facility (using Javascript and DHTML) that provides live searching, i.e. the search results are presented and adapted as you type in the Search input field at the top right.
  3. Doxygen doesn't incorporate all member files but just a definable subset (basically the main project source code files that are written in a supported language). So to search and browse all member files you may visit the Fossies
  4. mrouted-4.0.tar.gz contents page and use the Fossies standard member browsing features (also with source code highlighting and additionally with optional code folding).

Simple Multicast Routing for UNIX

License Badge Travis Status Coverity Status

Simple overview of what DVMRP is

Table of Contents


mrouted is the original implementation of the DVMRP multicast routing protocol, RFC 1075.

mrouted is simple to use. DVMRP is derived from RIP, which means it works stand-alone without any extra network setup required. You can get up and running in a matter of minutes. Use the built-in IP-in-IP tunneling support, or GRE, to traverse Internet or intranets.

mrouted is developed on Linux and works as-is out of the box. Other UNIX variants should also work, but are not as thoroughly tested.

Manual pages available here:


mrouted does not require a .conf file. When it starts up it probes all available interfaces and, after an initial 10s delay, starts peering with any DVMRP capable neighbors.

Use mgen(1) or mcjoin(1) to send IGMP join packets on the LAN to start testing multicast routing. Use the mroutectl tool to query a running mrouted for status.

For the native mrouted tunnel to work in Linux based systems, you need to have the "ipip" kernel module loaded or as built-in:

modprobe ipip

Alternatively, you may of course also set up GRE tunnels between your multicast capable routers.

Note: mrouted must run with suffient capabilities, or as root.


mrouted reads its configuration file from /etc/mrouted.conf, if it exists. You can override the default by specifying an alternate file when invoking mrouted:

mrouted -f /path/file.conf

mrouted can be reconfigured at runtime like any regular UNIX daemon with SIGHUP, or mroutectl restart, to activate changes made to its configuration file. The PID is saved in the file /run/ for your scripting needs.

By default, mrouted configures itself to act as a multicast router on all multicast capable interfaces. Hence, you do not need to explicitly configure it, unless you need to setup tunnel links, change the default operating parameters, disable multicast routing over a specific physical interfaces, or have dynamic interfaces.

For more help, see the mrouted(8) and mrouted.conf(5) man pages.

Build & Install


curl -sS | sudo apt-key add -
echo "deb [arch=amd64] stable main" | sudo tee /etc/apt/sources.list.d/troglobit.list
sudo apt-get update && sudo apt-get install mrouted

Building from Source

Download the latest official versioned mrouted release. Official releases contain all the necessary files, unlike building from GIT. mrouted has no external dependencies except for a standard C library.

The configure script and Makefile supports de facto standard settings and environment variables such as --prefix=PATH and DESTDIR= for the install process. For example, to install mrouted to /usr, instead of the default /usr/local, and redirect install to a package directory in /tmp:

./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
make DESTDIR=/tmp/mrouted-4.0-1 install-strip

This version of mrouted has RSRR support for running RSVP, disabled by default. Enable with configure --enable-rsrr.

Building from GIT

If you want to contribute, or simply just try out the latest but unreleased features, then you need to know a few things about the GNU build system:

  • and a per-directory are key files
  • configure and are generated from
  • Makefile is generated by configure script

To build from GIT you first need to clone the repository and run the script. This requires automake and autoconf to be installed on your system.

git clone
cd mrouted/
./configure && make

GIT sources are a moving target and are not recommended for production systems, unless you know what you are doing!


The basic functionality has been tested thoroughly over the years, but that does not mean mrouted is bug free. Please report bugs, feature requests, patches and pull requests at GitHub.

Origin & References

The mrouted routing daemon was developed by David Waitzman, Craig Partridge, Steve Deering, Ajit Thyagarajan, Bill Fenner, David Thaler and Daniel Zappala. With contributions by many others.

The last release by Mr. Fenner was 3.9-beta3 on April 26 1999 and mrouted has been in "beta" status since then. Several prominent UNIX operating systems, such as AIX, Solaris, HP-UX, BSD/OS, NetBSD, FreeBSD, OpenBSD as well as most GNU/Linux based distributions have used that beta as a de facto stable release, with (mostly) minor patches for system adaptations. Over time however many dropped support, but Debian and OpenBSD kept it under their wings.

In March 2003 OpenBSD, led by the fearless Theo de Raadt, managed to convince Stanford to release mrouted under a fully free license, the 3-clause BSD license. Unfortunately, and despite the license issue being corrected by OpenBSD, in February 2005 Debian dropped mrouted as an "obsolete protocol".

For a long time the OpenBSD team remained the sole guardian of this project. In 2010 Joachim Nilsson revived mrouted on GitHub.