Comparison of Multicast Router Software

Contents

Introduction

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.

ecmh

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."

ffrouting

License: GPL2+

Protocols: PIM-SM/MSDP

IPv6 Support: yes

Language: C

Source: Savannah

Status: active

a fork of quagga with support for MSDP.

igmpproxy

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.

mcproxy

License: GPL2

Protocols: IGMP, MLD

IPv6 Support: yes

Language: C++

Source: github

Status: maintained

"Mcproxy is an IGMP/MLD Proxy daemon for Linux."

mrd6

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."

pmrdisc

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

mrouted

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.

pim6sd

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.

pimd

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.

quagga

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.

smcroute

License: GPL2

Protocols: none (static routes only)

IPv6 Support: yes

Language: C

Source: github

Status: maintained

smcroute is an IPv4/IPv6 static routing daemon.

xorp

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