{"id":16164280,"url":"https://github.com/troglobit/mrouted","last_synced_at":"2026-03-12T00:03:49.243Z","repository":{"id":45705511,"uuid":"482923","full_name":"troglobit/mrouted","owner":"troglobit","description":"The original DVMRP (dynamic multicast routing) implementation for UNIX","archived":false,"fork":false,"pushed_at":"2024-11-10T08:38:41.000Z","size":1386,"stargazers_count":86,"open_issues_count":3,"forks_count":17,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-03-30T00:05:52.273Z","etag":null,"topics":["bsd","gre","igmpv3","ipip","linux","mroute","multicast","multicast-routing","rsvp","unix"],"latest_commit_sha":null,"homepage":"https://troglobit.com/projects/mrouted/","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/troglobit.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog.md","contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":".github/CODE-OF-CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["troglobit"]}},"created_at":"2010-01-21T22:34:48.000Z","updated_at":"2025-03-08T12:40:10.000Z","dependencies_parsed_at":"2024-12-24T12:14:00.562Z","dependency_job_id":"7a04d5a8-d8cd-4c9a-9c5f-eaceee8039a4","html_url":"https://github.com/troglobit/mrouted","commit_stats":null,"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/troglobit%2Fmrouted","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/troglobit%2Fmrouted/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/troglobit%2Fmrouted/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/troglobit%2Fmrouted/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/troglobit","download_url":"https://codeload.github.com/troglobit/mrouted/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247419860,"owners_count":20936012,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bsd","gre","igmpv3","ipip","linux","mroute","multicast","multicast-routing","rsvp","unix"],"created_at":"2024-10-10T02:46:03.366Z","updated_at":"2026-03-12T00:03:49.207Z","avatar_url":"https://github.com/troglobit.png","language":"C","funding_links":["https://github.com/sponsors/troglobit"],"categories":[],"sub_categories":[],"readme":"Simple Multicast Routing for UNIX\n=================================\n[![License Badge][]][License] [![GitHub Status][]][GitHub] [![Coverity Status][]][Coverity Scan]\n\n\u003cimg align=\"right\" src=\"doc/dvmrp-simple.png\" alt=\"Simple overview of what DVMRP is\"\u003e\n\nTable of Contents\n-----------------\n\n* [Introduction](#introduction)\n* [Running](#running)\n* [Configuration](#configuration)\n* [Build \u0026 Install](#build--install)\n* [Building from GIT](#building-from-git)\n* [Contributing](#contributing)\n* [Origin \u0026 References](#origin--references)\n\n\nIntroduction\n------------\n\nmrouted is the original implementation of the DVMRP multicast routing\nprotocol, [RFC 1075][].  It only works with IPv4 networks.  For more\nadvanced setups, the [pimd project](https://github.com/troglobit/pimd)\nor [pimd-dense project](https://github.com/troglobit/pimd-dense), for\nIPv6 the [pim6sd project](https://github.com/troglobit/pim6sd) may be of\ninterest.\n\nmrouted is *simple* to use.  DVMRP is derived from RIP, which means it\nworks stand-alone without any extra network setup required.  You can get\nup and running in a matter of minutes.  Use the built-in [IP-in-IP][]\ntunneling support, or GRE, to traverse Internet or intranets.\n\nmrouted is developed on Linux and works as-is out of the box.  Other\nUNIX variants should also work, but are not as thoroughly tested.\n\nManual pages available online:\n\n   * [mrouted(8)][]\n   * [mroutectl(8)][]\n   * [mrouted.conf(5)][]\n\n\nRunning\n-------\n\nmrouted does not require a `.conf` file.  When it starts up it probes\nall available interfaces and starts peering with any DVMRP capable\nneighbor.  Multicast is forwarded to end-devices that *join* a group\nusing IGMPv1, IGMPv2, or IGMPv3.  For LANs where there may be hosts that\ndo not speak IGMP, or where certain groups should always be forwarded, a\n`static-group` setting is available in `mrouted.conf`.\n\nUse [mgen(1)][], [mcjoin(1)][], or [iperf](https://iperf.fr/) to send\nIGMP join packets and multicast data on the LAN to test your multicast\nrouting setup.  Use the `mroutectl` tool to query a running `mrouted`\nfor status.\n\n\u003e **NOTE:** Beware of the TTL value in the IP header of your multicast\n\u003e           data.  It defaults to 1 on most operating systems, which\n\u003e           means nothing will be routed by default!\n\nFor the native mrouted tunnel to work in Linux based systems, you need\nto have the \"ipip\" kernel module loaded or as built-in:\n\n    modprobe ipip\n\nAlternatively, you may of course also set up GRE tunnels between your\nmulticast capable routers.\n\nIf you have *many* interfaces on your system you may want to look into\nthe `no phyint` setting in [mroute.conf(5)][].  Linux users may also\nneed to adjust `/proc/sys/net/ipv4/igmp_max_memberships` to a value\nlarger than the default 20.  mrouted needs 3x the number of interfaces\n(vifs) for the relevant control protocol groups.  The kernel (Linux \u0026\nBSD) *maximum* number of interfaces to use for multicast routing is 32.\n\n**Note:** mrouted must run with sufficient capabilities, or as root.\n\n\nConfiguration\n-------------\n\nmrouted reads its configuration file from `/etc/mrouted.conf`, if it\nexists.  You can override the default by specifying an alternate file\nwhen invoking mrouted:\n\n    mrouted -f /path/file.conf\n\nmrouted can be reconfigured at runtime like any regular UNIX daemon with\n`SIGHUP`, or `mroutectl restart`, to activate changes made to its\nconfiguration file.  The PID is saved in the file `/run/mrouted.pid` for\nyour scripting needs.\n\nBy default, mrouted configures itself to act as a multicast router on\nall multicast capable interfaces.  Hence, you do not need to explicitly\nconfigure it, unless you need to setup tunnel links, change the default\noperating parameters, disable multicast routing over a specific physical\ninterfaces, or have dynamic interfaces.\n\n**Note:** you need to have IP Multicast Routing enabled in the kernel\n  as well.  How this is achieved is outside the scope of this README.\n\nFor more help, see the [mrouted(8)][] and [mrouted.conf(5)][] man pages.\n\n\nBuild \u0026 Install\n---------------\n\n### Debian/Ubuntu\n\n    curl -sS https://deb.troglobit.com/pubkey.gpg | sudo apt-key add -\n    echo \"deb [arch=amd64] https://deb.troglobit.com/debian stable main\" | sudo tee /etc/apt/sources.list.d/troglobit.list\n    sudo apt-get update \u0026\u0026 sudo apt-get install mrouted\n\n### Building from Source\n\nDownload the latest official *versioned* mrouted release.  Official\nreleases contain all the necessary files, unlike building from GIT.\nmrouted has no external dependencies except for a standard C library.\n\n* https://github.com/troglobit/mrouted/releases\n\nThe configure script and Makefile supports de facto standard settings\nand environment variables such as `--prefix=PATH` and `DESTDIR=` for the\ninstall process.  For example, to install mrouted to `/usr`, instead of\nthe default `/usr/local`, and redirect install to a package directory in\n`/tmp`:\n\n    ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var\n    make\n    make DESTDIR=/tmp/mrouted-4.0-1 install-strip\n\n**Note:** On some systems `--runstatedir` may not be available in the\n  configure script, try `--localstatedir=/var` instead.\n\n\nBuilding from GIT\n-----------------\n\nIf you want to contribute, or simply just try out the latest but\nunreleased features, then you need to know a few things about the\n[GNU build system][buildsystem]:\n\n- `configure.ac` and a per-directory `Makefile.am` are key files\n- `configure` and `Makefile.in` are generated from `autogen.sh`\n- `Makefile` is generated by `configure` script\n\nTo build from GIT you first need to clone the repository and run the\n`autogen.sh` script.  This requires `automake` and `autoconf` to be\ninstalled on your system.\n\n    git clone https://github.com/troglobit/mrouted.git\n    cd mrouted/\n    ./autogen.sh\n    ./configure \u0026\u0026 make\n\nGIT sources are a moving target and are not recommended for production\nsystems, unless you know what you are doing!\n\n\nContributing\n------------\n\nThe basic functionality has been tested thoroughly over the years, but\nthat does not mean mrouted is bug free.  Please report bugs, feature\nrequests, patches and pull requests at [GitHub][repo].\n\n\nOrigin \u0026 References\n-------------------\n\nThe mrouted routing daemon was developed by David Waitzman, Craig\nPartridge, Steve Deering, Ajit Thyagarajan, Bill Fenner, David Thaler\nand Daniel Zappala.  With contributions by many others.\n\nThe last release by Mr. Fenner was 3.9-beta3 on April 26 1999 and\nmrouted has been in \"beta\" status since then.  Several prominent UNIX\noperating systems, such as AIX, Solaris, HP-UX, BSD/OS, NetBSD, FreeBSD,\nOpenBSD as well as most GNU/Linux based distributions have used that\nbeta as a de facto stable release, with (mostly) minor patches for\nsystem adaptations.  Over time however many dropped support, but Debian\nand OpenBSD kept it under their wings.\n\nIn March 2003 [OpenBSD](http://www.openbsd.org/), led by the fearless\nTheo de Raadt, managed to convince Stanford to release mrouted under a\n[fully free license][License], the [3-clause BSD license][BSD License].\nUnfortunately, and despite the license issue being corrected by OpenBSD,\nin February 2005 [Debian dropped mrouted][1] as an \"obsolete protocol\".\n\nFor a long time the OpenBSD team remained the sole guardian of this\nproject.  In 2010 [Joachim Wiberg](https://troglobit.com) revived\nmrouted on [GitHub][repo] based on the last release by Bill Fenner, the\n`mrouted-3.9beta3+IOS12.tar.gz` tarball.  This project has integrated\nall (?) known patches and continuously track the OpenBSD project, which\nis based on the 3.8 release, for any relevant fixes.\n\n[1]:               http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=288112\n[License]:         http://www.openbsd.org/cgi-bin/cvsweb/src/usr.sbin/mrouted/LICENSE\n[License Badge]:   https://img.shields.io/badge/License-BSD%203--Clause-blue.svg\n[BSD License]:     http://en.wikipedia.org/wiki/BSD_licenses\n[RFC 1075]:        http://tools.ietf.org/html/rfc1075\n[IP-in-IP]:        https://en.wikipedia.org/wiki/IP_in_IP\n[buildsystem]:     https://airs.com/ian/configure/\n[mgen(1)]:         https://www.nrl.navy.mil/itd/ncs/products/mgen\n[mcjoin(1)]:       https://github.com/troglobit/mcjoin/\n[mrouted(8)]:      https://man.troglobit.com/man8/mrouted.8.html\n[mroutectl(8)]:    https://man.troglobit.com/man8/mroutectl.8.html\n[mrouted.conf(5)]: https://man.troglobit.com/man5/mrouted.conf.5.html\n[repo]:            https://github.com/troglobit/mrouted/\n[GitHub]:          https://github.com/troglobit/mrouted/actions/workflows/build.yml/\n[GitHub Status]:   https://github.com/troglobit/mrouted/actions/workflows/build.yml/badge.svg\n[Coverity Scan]:   https://scan.coverity.com/projects/3320\n[Coverity Status]: https://scan.coverity.com/projects/3320/badge.svg\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftroglobit%2Fmrouted","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftroglobit%2Fmrouted","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftroglobit%2Fmrouted/lists"}