/mcproxy

Multicast Proxy for IGMP/MLD

Primary LanguageC++GNU General Public License v2.0GPL-2.0

Introduction

Mcproxy is an IGMP/MLD Proxy daemon for Linux.

IGMP/MLD proxies offer the possibility option to combine local multicast networks with a larger multicast infrastructure. In contrast to multicast routers, proxies are lightweight and do not require the support of a multicast routing protocol such as PIM or DVMRP. A common use case is a local stub networks that interconnects with a remote multicast routing domain, e.g. via a tunnel. But it can also be used in PMIPv6 domain to enable multicast for sources (pmipv6-source-draft) and listeners (RFC 6224). The Mcproxy meets the requirements of the IGMP/MLD proxying standard (RFC 4605) and has additional functionalities. The multicast proxy can be instantiated multiple times, is dynamically configurable at runtime, supports multiple upstreams and peering-interfaces for a non hierarchical interconnection of multicast proxies.

If you use Mcproxy in a scientific context, please use the following citation.

Requirements

  • A g++ version equal or higher 4.8 is required.

  • To generate a makefile, qmake must be installed. This can be done with the following command:

newer systems:

    apt-get install qt5-qmake
    apt-get install qt5-default

older systems:

    apt-get install qt4-qmake
  • To use the IPv6 functionality the kernel has to be configured and compiled with the experimental kernel feature IPv6: multicast routing. For more details go to chapter Startup.

  • To use more then one proxy instance for IPv4 and IPv6 the kernel has to be configured and compiled with the experimental kernel feature IP: multicast policy routing and IPv6: multicast policy routing. For more details go to chapter Startup.

  • To build the documentation, doxygen must be installed. This can be done with the following command:

     apt-get install doxygen
    
  • The Mcproxy has to be started with root privileges.

  • A Linux kernel version greater than version 2.6.32 is required.

Compilation

Build Mcproxy in release mode:

cd mcproxy/
qmake 
make

Build Mcproxy in debug mode:

cd mcproxy/
qmake CONFIG+=debug
make

Installation

To copy Mcproxy to the system directory, run (optional):

make install

Documentation

Mcproxy includes a HTML documentation. The documentation will be located in the docs/ directory after the execution of:

make doc

Startup

At first you should check the available kernel features of your system. Type the following command:

sudo mcproxy -c

If a kernel feature you need is missing you have to reconfigure and recompile your linux kernel. In the debug folder is a README file which could help you with this problem.

To run the Mcproxy you need to create a valid configuration file. There is an example in the project folder (mcproxy.conf).

  • To run the Mcproxy in the background type the following command:

     sudo nohup mcproxy -f <path/to/config_file> &
    
  • To run the mcprocy with all available status and debug messages:

     sudo mcproxy -dsvv -f <path/to/config_file>
    

For more information see mcproxy -h or visit our project page.

Contact

Project page: http://mcproxy.realmv6.org/

Mailing list: multicast-proxy@googlegroups.com

Acknowledgement

Álvaro Fernández Rojas, Florian Ecard, Hai Shalom, Zhi Chen