MROUTED(8)
πΈ NAME πΈ
okay so bestie, this is mrouted(8) β the IP multicast routing daemon. Like, the daemon itself. Periodt. π
β¨ SYNOPSIS β¨
mrouted [-hnsv] [-d SYS[,SYS,...] [-f FILE] [-i NAME] [-l LEVEL]
[-p FILE] [-t ID] [-u FILE] [-w SEC]
π¦ DESCRIPTION π¦
Bestie, mrouted is the original implementation of the Distance-Vector Multicast Routing Protocol (DVMRP), RFC 1075. Itβs a dynamic (automatic) multicast routing daemon, and it also supports static routing. For the static-group configuration directive, see mrouted.conf(5). π«Ά
mrouted is literally simple to use. DVMRP is derived from RIP, RFC 1058, which means mrouted works stand-alone without any extra network setup required. You can get up and running in a matter of minutes. no cap. β¨
mrouted maintains topological knowledge via DVMRP, and on top of that it implements a multicast datagram forwarding algorithm called Reverse Path Multicasting.
mrouted forwards multicast datagrams along the shortest (reverse) path tree rooted at the subnet on which the datagram originates. The multicast delivery tree may be thought of as a broadcast delivery tree that has been pruned back so that it does not extend beyond those subnetworks that have members of the destination group. Hence, datagrams are not forwarded along those branches which have no listeners of the multicast 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, you can set up GRE tunnels. However, mrouted includes (built-in) support for IP-in-IP tunnels, which are virtual point-to-point links between pairs of DVMRP capable routers 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. π
The tunneling mechanism allows mrouted to establish a virtual internet, for the purpose of multicasting only, which is independent of the physical internet, and which may span multiple Autonomous Systems. This capability is intended for experimental support of internet multicasting only, pending widespread support for multicast routing by the regular (unicast) routers. mrouted suffers from the well-known scaling problems of any distance-vector routing protocol, and does not support hierarchical multicast routing. lowkey important. π
A more common practice today is to set up GRE tunnels between multicast capable routers and limit mrouted to run on a select number of interfaces listed in the configuration.
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 options starting with two dashes (--). The options are as follows:
-d,--debug SYS[,SYS,..]β This option enables subsystem debug messages and causesmroutedto run in the foreground of the starting terminal, regardless of the-lflag controls the (syslog) log level of each subsystem. Use'?'for a complete list of supported subsystems.
Available subsystems:
packetβ Display the type, source and destination of all packets sent or receivedpruningβ Display more information about prunes sent or receivedroutingβ Display more information about routing update packets sent or receivedroute-detailβ Display routing updates in excruciating detail. This is generally way too much informationneighborsβ Display information about neighbor discoverycacheβ Display insertions, deletions and refreshes of entries in the kernel forwarding cachetimerβ Debug timeouts and periodic processesinterfaceβ Display information about interfaces and their configurationmembershipβ Display information about group memberships on physical interfacestracerouteβ Display information about multicast traceroute requests passing through this routerigmpβ Display IGMP operation including group membership and querier electionicmpβ Monitor ICMP handlingallβ Enable all debug messages (except noisy timer)
-f,--config FILEβ Specify an alternative configuration file, default/etc/mrouted.conf-h,--helpβ Print a help message and exit.-i,--ident NAMEβ Specify program identity (name) to be used for configuration file, PID file, generation ID file, UNIX IPC socket, and syslog messages. Useful with multiple instances ofmrouted, or to adapt to site specific practices, e.g."DVMRP", without renaming the binary.
Note, this option only changes the base name of the files, not the location, which is system specific. On most systems this is /var/run/mrouted.pid, or /run/mrouted.pid, /run/mrouted.genid, /run/mrouted.sock, and /etc/mrouted.conf.
-l,--loglevel LEVELβ Set log level for syslog messages:none,err,notice(default),info,debug. Use'?'for a complete list of supported log levels.noneβ Disable all loggingerrorβ Error conditionswarningβ Warning conditionsnoticeβ Normal but significant condition (default)infoβ Informationaldebugβ Debug-level messages
-n,--foregroundβ Run in foreground, do not detach from controlling terminal. This option is usually required when running under process supervisors likesystemdand Finit, but is also useful when running from the terminal, when debugging a config or at initial set up. Remember to also give the-soption if you still want to redirect log messages to the syslog.-p,--pidfile FILEβ Set PID file name and location, defaults to/var/run/mrouted.pid.-s,--syslogβ Usesyslog(3)for log messages, warnings and error conditions. This is the default when running in the background. When running in the foreground, see-n, log messages are printed to stdout.-t,--table-id IDβ Set multicast routing table ID. Remember to also create routing rules directing packets to the table. This example uses routing table ID 123:
ip mrule add iif eth0 lookup 123
ip mrule add oif eth0 lookup 123
Note: Only available on Linux.
-u,--ipc FILEβ Override UNIX domain socket filename, the default on most systems is/var/run/mrouted.sock.-w,--startup-delay SECβ Wait for SEC seconds before applying routes. This delay allows exchange of routes before starting to forward multicast packets. In certain setups this can prevent transient problems at startup, at the cost of a momentary black hole.
π₯ SIGNALS π₯
mrouted responds to the following signals:
HUPβ Restartmroutedand reload the configuration file.INTβ Terminate execution gracefully, i.e., by sending good-bye messages to all neighboring routers.TERMβ Same asINT.
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/lib/misc/mrouted.genidβ DVMRP generation ID. Used by neighboring DVRMP routers to detect when a router is restarted. On BSD/var/db/mrouted.genidis used./var/run/mrouted.pidβ Pidfile (re)created bymrouteddaemon when it has started up and is ready to receive commands./var/run/mrouted.sockβ Unix domain socket used for communication withmroutectl(8)/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).
π COMPATIBILITY π
Dynamic multicast routing has never been use-case 1a for UNIX systems. Most systems are by default tuned to act as workstations, end devices. When something does not work, or only sort of works, run mrouted -l debug -d all, optionally also with -n, to get full logs of its interaction with the system. π
Particular problems include, but are not limited to:
π ENOPROTOOPT
Or similar, with an error message like this:
Cannot enable multicast routing in kernel
This comes from missing multicast routing support in the kernel. On Linux you need at least:
CONFIG_IP_MROUTE=y
On *BSD:
options MROUTING # Multicast routing
π ENOBUFS
On Linux systems a common problem is that of many interfaces. The error message used to be something like this:
Cannot join group 224.0.0.4: No buffer space available
Today that cryptic message has been replaced with a request to adjust /proc/sys/net/ipv4/igmp_max_memberships to a value at least 3x the number of vifs to run on, e.g., by setting it in /etc/sysctl.conf or similar, depending on the system.
π SEE ALSO π
mrouted.conf(5), mroutectl(8), 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.
The mrouted home page is β¨https://github.com/troglobit/mroutedβ© β¨
β¨ AUTHORS β¨
okay so bestie, this page did NOT write itself β a whole squad of absolute legends made mrouted happen π and no cap, they're listed in no particular order, so don't come for me about the ranking:
- David Waitzman
- Craig Partridge
- Steve Deering
- Ajit Thyagarajan
- Bill Fenner
- David Thaler
- Daniel Zappala
and it's not just them β with contributions by many others π«Ά so like, a whole village of nerds showed up and it ate. iconic behavior, honestly.
that's the whole page, bestie!! πΈ this beauty comes to you from Debian, dated Jan 7, 2021, and it lives its best life as MROUTED(8) in section 8 of the manual π
go forth and multicast responsibly, mwah π
π¦ where this page comes from
- opensuse-leap 16.0: mrouted 4.5-bp160.1.12 Β· BSD-3-Clause AND BSD-4-Clause
- opensuse-leap 16.0: mrouted 4.5-bp160.1.12 Β· BSD-3-Clause AND BSD-4-Clause
- opensuse-leap 16.0: mrouted 4.5-bp160.1.12 Β· BSD-3-Clause AND BSD-4-Clause
- opensuse-leap 16.0: mrouted 4.5-bp160.1.12 Β· BSD-3-Clause AND BSD-4-Clause
- COPYRIGHT 1989 by The Board of Trustees of
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms