Exploring multicast IP in Linux

Enabling Multicast

Listing 3 shows the steps for enabling multicast transmissions. As you can see, multicasting is enabled for individual interfaces and for the unicast interface.

Listing 3

Enabling Multicast Transmission

 

The final step in the configuration is to enable the PIM-SM protocol. Start by loading the daemon of the PIM protocol:

# set protocols pimsm4 disable false
# commit

The #commit command will be executed with a slight delay because of the initiation of the process responsible for the service of the multicast routing protocol. Subsequent commands, presented in Listing 4, configure the PIM-SM protocol.

The commands in Listing 4 activate the PIM-SM protocol service on individual interfaces, as well as on the virtual interface register_vif, which is used to transfer data over a unicast tunnel from the source to the rendezvous point. Additionally, the address of the rendezvous point, which is 192.168.3.1 in this case, is allocated. The group-prefix setting denotes the range of multicast addresses serviced by a given rendezvous point.

Listing 4

Configuring PIM-SM

 

Enabling IGMP

The configuration presented so far makes it possible to transfer data from the source to particular receivers. The receivers, however, must be able to inform routers that they are interested in receiving multicast transmissions. As we described earlier, this information passes through the network via IGMP, so you must configure IGMP on the routers that have local receivers.

At this point, you might be wondering why it is necessary to configure IGMP through XORP when the kernel already supports IGMP.

The problem is that the implementation of IGMP that is included in the kernel does not provide the server side of IGMP, which means that the built-in kernel implementation will not forward information in IGMP messages to the multicast routing protocol.

As in the case of PIM-SM or OSPF, the IGMP configuration requires activation of a daemon responsible for the service of the protocol:

# set protocols igmp disable false
# commit

In addition, you must indicate the interfaces serviced by IGMP:

# set protocols igmp interface eth2 vif eth2 disable false
# commit

Putting It Together

Figure 4 shows the whole transaction at a glance. As you can see, the computer on the left starts by sending a video sequence to the address 239.192.1.1. Router A, directly connected to the source, starts sending data to the rendezvous point through a unicast tunnel. The application on the receiving end generates an IGMP Report message. This message is processed by the router, which is followed by a Join message of the PIM-SM protocol sent toward Router C, which is acting as the rendezvous point RP. On receiving the message, Router C sends the multicast transmission in the direction of this receiver, plus any other receivers in the group that will receive the multicast data.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

SINGLE ISSUES
 
SUBSCRIPTIONS
 
TABLET & SMARTPHONE APPS
Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • Core Technologies

    Prise the back off Linux and find out what really makes it tick.

  • Linux-Based IP-Video Monitoring Kit

    US vendor Micronas recently launched a Linux-based hardware and software developer kit for network-based DVD quality video monitoring.

  • IPv6

    Is the world ready for the next generation Internet Protocol? We take a look at Linux with IPv6.

  • IPv6 Pen Testing

    If you have enabled IPv6 on your network without considering basic security issues, you might have opened up a hole for attackers. In this article, we demonstrate a successful attack on a server via IPv6 and explain how the popular security tools handle IPv6.

  • CLUSTERIP

    Iptables gives admins the ability to set up clusters and distribute the load. But what about failover?

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More

News