Unfix Logo

Projects :: ecmh - Easy Cast du Multi Hub

ecmh - Easy Cast du Multi Hub

Multicast IPv6

Easy Cast du Multi Hub (ecmh) is a networking daemon that acts as a full IPv6 MLDv1 and MLDv2 Multicast "Router".

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

This code runs, included into sixxsd, on the SixXS PoPs thus enabling multicast IPv6 and allowing the m6bone to grow and provide IPv6 multicast along with translated IPv4 multicast everywhere we would want it to be.

My idea for this came out of thin air and I implemented it, apparently the IETF MAGMA Working Group had a similar idea some time before that which is documented in draft-ietf-magma-igmp-proxy.

Bugs etc

Contact the author at jeroen@massar.ch


ecmh is licensed under the standard BSD 3-clause license.

Copyright Information

The code for ecmh (Easy Cast du Multi Hub) was written by Jeroen Massar <jeroen@massar.ch>

The copyright for this package is owned by Jeroen Massar <jeroen@massar.ch>

©2004-2012 Jeroen Massar <jeroen@massar.ch>

The package is in the public domain, if you modify or enhance it notify the author.

Where to get it

Current and latest version is 2013.10.01 (github).

The latest and some older versions are available from this aptable download dir.

Current version is available from Github repository.

Compiling and installing

One can install the debian package by using the above apt'able url or by compiling and installing it by hand:

Alternatively use 'make dist' which builds various distribution packages.

On FreeBSD5, either use gmake or 'cd src', edit the Makefile, uncommenting the two ecmh lines and type 'make'For FreeBSD4 install the libgnugetopt port, 'cd src', edit the Makefile, uncommenting the two ecmh lines and type 'make'


* = Others on request possible ;)


ecmh is included and used in amongst others: A paper written by Ellis Kullberg and Hannes Junnila titled IPv6 multicast home proxy contains the following quotes: References can also be found in:

How it works?

The following description is from Stig Venaas as posted on the m6bone mailinglist:

It pretty much works like what is described in

It sort of does multicast routing but without implementing PIM. Imagine
a setup like this:
                                 host A
PIM router ------- router with ecmh --- host B
                                 host C

When hosts behind ecmh (A, B, C) joins a multicast group, they will
send MLD report. ecmh listens for MLD reports and also sends MLD
queries, just like a normal multicast router. Doing this, ecmh will
like a normal multicast router know which of its interfaces it should
forward multicast on.

If ecmh learns that hosts behind it are interested in some groups, it
will send MLD reports for those groups to the PIM router in order to
receive multicast.

When ecmh receives multicast packet on any interface, it will forward
it towards the PIM router and on all interfaces where it has hosts
interested in the packet.

Well, that's a quick explanation. Note that it doesn't translate or
anything. It only forwards multicast packets, much like a normal
multicast router would. This is useful on e.g. Linux where there is
no multicast routing. In most cases it makes sense to do PIM routing
with kernel forwarding if possible though.

ecmh both learns where to forward packets and does the forwarding.
In theory those two functions could be separated.

Some cheap routers (e.g. wireless routers) implement the same
functionality, but unfortunately IGMP only.

Todo List

Following items are currently on the todo list:

Thanks to

Thanks to Bernhard Schmidt & Marco d'Itri for letting ecmh be tested against their Ciscos which are attached to m6bone connected networks.
©1997-2014 Jeroen Massar