The Internet is littered with the abandoned remains of many multicast routing programs. There are a few in active development. Features vary. Some only support IPv4. Some only support a single specific protocol such as PIM-SSM (Single Source Multicast). I'll attempt to summarise the present state of F/OSS multicast routing daemons here.
Many thanks to Joachim Nilsson, who has been curating several of the abandoned daemons. The sources for these are available on github.
License: BSD 3-clause
Protocols: IGMP, MLD
IPv6 Support: yes
Language: C
Source: github
Status: abandoned (no updates since 2015)
Router/relay with tunnelling support. No longer under active development.
"allows IPv6 multicast routing on Linux and soon other OS's that do not implement IPv6 multicast routing. It will also allow IPv4 to IPv6 and IPv6 to IPv4 translation of multicast traffic. Allowing multicast where it is not available at the moment."
License: GPL2+
Protocols: PIM-SM/MSDP
IPv6 Support: yes
Language: C
Source: Savannah
Status: active
a fork of quagga with support for MSDP.
License: GPL2+
Protocols: IGMP only
IPv6 Support: no
Language: C
Source: github
Status: maintained
IGMPproxy is a simple mulitcast router that only uses the IGMP protocol.
Derived from smcroute and mrouted. No longer maintained actively by the original author, but has a new maintainer.
License: GPL2
Protocols: IGMP, MLD
IPv6 Support: yes
Language: C++
Source: github
Status: maintained
"Mcproxy is an IGMP/MLD Proxy daemon for Linux."
License: GPL2+
Protocols: MLDv2, PIM-SM PIM-SSM, MBGP (partial)
IPv6 Support: yes
Language: C++
Source: github
Status: abandoned (no updates since 2016)
Note from the author, 2013: "mrd6 is unsupported software. Since 2005 native multicast forwarding support has been added to Linux and pim6sd can be used to manage it. mrd6's codebase is kept around for historical reasons, it should still work in current kernels and still allows you to do funky things with routing."
License: ISC
Protocols: IGMP, MRDP
IPv6 Support: no (planned)
Language: C
Source: github
Status: active, incomplete
Stand alone UNIX implementation of RFC4286 Multicast Router Discovery Protocol
License: BSD 3-clause
Protocols: DVMRP.
IPv6 Support: no
Language: C
Source: github
Status: maintained
mrouted only supports DVMRP. Has support for tunneling to connect discontiguous multicast networks.
License: BSD 3-clause
Protocols: PIM-SM, PIM-SSM
IPv6 Support: yes
Language: C
Source: github
Status: incomplete, abandoned
Various sources exist for this, all outdated and containing warnings about their incomplete status. Link above is to the github repository for mcast-tools which bundles this and other projects. I have not tested what works, yet.
License: BSD 3-clause
Protocols: PIM-SM, PIM-SSM
IPv6 Support: no
Language: C
Source: github
Status: maintained
IPv4-only PIM-SM/SSM multicast routing daemon.
License: GPL2+
Protocols: PIM-SSM only
IPv6 Support: yes
Language: C
Source: Savannah
Status: active
qpimd was merged into quagga to provide PIM-SSM support in 2013.
License: GPL2
Protocols: none (static routes only)
IPv6 Support: yes
Language: C
Source: github
Status: maintained
smcroute is an IPv4/IPv6 static routing daemon.
License: GPL2
Protocols: PIM-SM, IGMP, MLD
IPv6 Support: yes
Language: C++
Source: github
Status: maintained
"XORP is a routing protocol suite, supporting OSPF, BGP, RIP, PIM, IGMP, OLSR and more."
Original: 2017-08-01
Last updated: 2018-09-04