Linux Multicast Information
    by Mike Esler  -  last updated May 14, 1998


Introduction

This page is a little over two years old now. When I first created it, I was an undergraduate at the University of Virginia, working on multicast video conferencing applications for Linux. I've since graduated from UVa, and am now a graduate student at the University of Washington.

While I'm no longer working on multicast applications, there seems to be some interest in the topic, so I'll continue maintaining this page. The master copy of this page is located at:

http://www.cs.washington.edu/homes/esler/multicast/


Table of Contents

  1. About the MBONE and IP Multicast
  2. Linux-Specific Resources
  3. Getting Started
  4. All About mrouted
  5. MBONE Applications for Linux
  6. Hardware Manufacturers
  7. Device Support
  8. Mailing Lists
  9. Search Results for "Linux Multicast"


1. About the MBONE and IP Multicast


2. Linux-Specific Resources


3. Getting Started

Credits: The following is an excerpt from the excellent Multicast-HOWTO by Juan-Mariano de Goyeneche.

If you want just to send and receive, you must say yes to "IP: multicasting" when configuring your kernel. If you also want your Linux box to act as a multicast router (mrouter) you also need to enable multicast routing in the kernel by selecting "IP: forwarding/gatewaying", "IP: multicast routing" and "IP: tunneling", the latter because new versions of mrouted relay on IP tunneling to send multicast datagrams encapsulated into unicast ones. This is necessary when establishing tunnels between multicast hosts separated by unicast-only networks and routers. (The mrouted is a daemon that implements the multicast routing algorithm -the routing policy- and instructs the kernel on how to route multicast datagrams). Some kernel versions label multicast routing as "EXPERIMENTAL", so you should enable "Prompt for development and/or incomplete code/drivers" in the "Code maturity level options" section.

If, when running the mrouted, traffic generated in the same network your Linux box is connected to is correctly forwarded to the other network, but you can't see the other's network traffic on your local network, check whether you are receiving ICMP protocol error messages. Almost sure you forgot to turn on IP tunneling in your Linux router. It's a kind of stupid error when you know it but, believe me, its quite time-consuming when you don't, and there is no apparent reason that explains what is going wrong. A sniffer proves to be quite useful in these situations!

Once you have compiled and installed your new kernel, you should provide a default route for multicast traffic. The goal is to add a route to the network 224.0.0.0.

The problem most people seem to face in this stage of the configuration is with the value of the mask to supply. If you have read Terry Dawson's excellent NET-3-HOWTO, it should not be difficult to guess the correct value, though. As explained there, the netmask is a 32 bit number filled with all-1s in the network part of your IP address, and with all-0s in the host part. Recall from section 2.1 that a class D multicast address has no netwok/host sections. Instead it has a 28-bit group identifier and a 4-bit class D identifier. Well, this 4 bits are the network part and the remaining 28 the host part. So the netmask needed is 11110000000000000000000000000000 or, easier to read: 240.0.0.0. Then, the full command should be:

route add 224.0.0.0 netmask 240.0.0.0 dev eth0
Depending on how old your route program is, you might need to add the -net flag after the add.

Here we supposed that eth0 was multicast-capable and that, when not otherwise specified, we wanted multicast traffic to be output there. If this is not your case, change the dev parameter as appropriate. The /proc filesystem proves here to be useful once again: you can check /proc/net/igmp to see the groups your host is currently subscribed to.


4. All About mrouted

The current release version of mrouted is 3.8. Version 3.9 is in beta. You can find both versions at:
ftp.parc.xerox.com/pub/net-research/ipmulti/
Unfortunately, there are no precompiled binaries for Linux at this site, but you should be able to build a working version from source. Julian Highfield has published some helpful notes on building the latest release of mrouted. There is also a Linux-specific mrouted (version 3.81) is available at:
www.video.ja.net/mice/mrouted/Linux/
This version seems to be maintained by the Belgian Multimedia Integrated Conferencing for Europe National Support Center. I know nothing about this group or this version of mrouted. The project seems to have ended in December 1995, but the tar file has a last modified date of 13-Mar-97. Your mileage may vary.

Here's another ftp site with Linux-specific versions (3.81 and 3.9 beta) of mrouted. Again, I know nothing about this release:

ftp.dc.ufscar.br/pub/mbone/
Yet another place to find mrouted 3.81, this time in Italian:
http://caristudenti.cs.unibo.it/~tonon/mrouted.htm

Please, no more requests for help on finding or building mrouted. If someone would like to write up a short HOW-TO on building mrouted, I'd be happy to publish it here, or provide a link. I'll try to provide some more information soon....


5. MBONE Applications for Linux

5.1 Session Tools
  • gwTTS - University of Virginia tele-tutoring system
  • isc - Integrated session controller
  • mmcc - Multimedia conference control
  • sd - LBL session directory tool
  • sd-snoop - Tenet Group session directory snoop utility
  • sdr - UCL's next generation session directory

5.2 Audio Conferencing

  • NeVoT - Network Voice Terminal
  • RealAudio - Real Networks' streaming audio player
  • RAT - UCL Robust-Audio Tool
  • vat - LBL visual audio tool

5.3 Video Conferencing

  • ivs - Inria video conferencing system
  • nv - Network video tool
  • nv w/ Meteor - Release of nv w/ support for the Matrox Meteor (UVa)
  • RealVideo - Real Networks' streaming video player
  • vic - LBL video conferencing tool
  • vic w/ Meteor - Release of vic w/ support for the Matrox Meteor (UVa)

5.4 Other Utilities

  • wb - LBL shared white board
  • webcast - Reliable multicast application for linking Mosaic browsers


6. Hardware Manufacturers

This section contains links to the corporate web pages of companies that make hardware useful for Multicast applications. (cameras, video capture, sound cards, etc.) Many of these companies make more than one product, so I haven't attempted to classify them. A section on networking support should probably be added. Be sure to see section 7 and verify that the product is well-enough supported for your needs.
  • ATI Technologies - Mach64 video accelerator (compatable w/ Meteor)
  • Connectix - Quickcam (b&w and color) parallel-port video camera
  • Creative Labs - SoundBlaster audio card, VideoBlaster capture card
  • Gravis - UltraSound and UltraSound Max audio cards
  • Imagenation - CX (cortex), and PX frame grabbers
  • Matrox - Meteor capture card, Millenium video accelerator


7. Device Support

Very few hardware manufacturers write or distribute Linux device drivers for their products. Some companies are more willing than others to share information about the workings of their products, but support for devices almost always comes from-third parties. This means that there is always lag between when products are released, and when they are supported under Linux - some of the devices found below are no longer manufactured. As with most things Linux, these drivers come with no guarantees (be careful not to fry your hardware).

7.1 Video Capture

7.2 Sound Cards

7.3 Video Accelerators


8. Mailing Lists

  • rem-conf - the IETF Remote Conferencing List. To subscribe send email to rem-conf-request@es.net.


9. Search Results for "Linux Multicast"

Copyright © 1996-99 by Mike Esler. All rights reserved.