Playing with Multicast – Part 1.

It really has been a long time since my previous post. I have recently received a project that deal with multicast, a old technology that is really new to me.
I have been googling around for resources and references, and there are indeed a lot of results that mostly focus on theory. Therefore, I decided to contribute some of my hands on experiences for anyone who is building a similar lab as I do.
My lab builds from simple to complex (the difficulty is really based on my own experience only.) It starts from a playing multicast at a local area network and up to a MPLS VPN network.
Part 1 of the multicast post starts with 1x receiver and 1x sender in a local area network.
Part 2 of the multicast post is describes the lab with a router and one for each sender and receiver.

Playing with Multicast – Part 2.


Part 3 of the multicast post is describes the lab with 3 routers and one for each sender and receiver.
(still organizing the information)
Part 4 of the multicast post is putting the lab from part 2 onto a MPLS VPN platform.
(still organizing the information)
Long story short, I will go straight to the part one deployment. The lab is simple; There is only 1 sender and 1 receiver within the same broadcast domain.
TOPOLOGY:
MCast-topo-local
The Sender is an Ubuntu 14.04 32bit with updated components as of 2015 Dec,02. The receiver is a Win XP 32bit machine. Both of them are equipped with 512Mb of ram and 20G of hdd. Both machines are installed with VLC as for sending and receiving. There is a Junos device as their gateway, but it can be ignored for this lab since it does not have any PIM nor IGMP configured.
Configuration:
– Ubuntu:
1. To install VLC for multicast streamer:
01-ubuntu_install_VLC
02-ubuntu-install-vlc
2. To install the codec for it.
03-ubuntu-install-gstreamer04-ubuntu-install-gstreamer
3. Network configuration:
vi /etc/network/interfaces
(These 7 lines for interface eth0 is pretty straight forward; however, the magic is being done as the last 2 line of post-up. They are to add the multicast subnet to eth0 and to enable the multicast function on eth0.)

09-ubuntu-network_config
4. Load a video for streaming.
05-ubuntu-command
vlc: to run the VLC program
-vvv: to make verbose
-big_buck_bunny_1080p_h264.mov: the video to stream
– “–sout”: advance options for VLC output
– “–sout-keep”: to keep the stream alive
– “–ttl 5”: multicast packets have ttl 1 as default since these packets are not suppost to go over a broadcast domain, eg: ospf and vrrp; if multicast packets needs to be go over couple hops, the ttl needs to be increased.
– Windows XP:
1. Download VLC player.
Download the VLC player from the following link:
http://get.videolan.org/vlc/2.2.1/win32/vlc-2.2.1-win32.zip
It is not required to install the VLC player, therefore, simply run the application from the unzipped folder will be fine.
2. Run the Player.
Input: rtp://224.0.1.40:5004
– we are using RTP (real time transport protocol) as a method for streaming. The multicast group IP and port is the same as the advance options from the Ubuntu streaming server.
10-XP-load_video.png
 
Observations and Results:
– From Windows XP:
The video is being played on the multicast receiver. From the top of the VLC player, it displays the video is received from the multicast group IP of 224.0.1.40 port 5004.
07-XP-play_via_vlc
There will be a opening port for traffic from 5004. This is captured from “netstat -nab”.
08-XP-listening_port
– From Ubuntu:
The capture below shows Ubuntu is sending the data to a multicast address.
06-ubuntu-streaming
We believe the data transfer for video streaming is successful in this lab environment using multicast method, since the sender is sending the multicast data to the multicast group IP of 224.0.1.40:5004 as shown in the snapshot above. There are no additional configuration required for the gateway to perform a multicast streaming under a local area network.
Also with the minimum configuration on both sender and receivers can be easily archive a local area network streaming. Due the lack of resources, I could not afford much of the receivers for my lab. But from the observation above, I believe multiples of receivers can be received the same stream from the sender, and it does not required any additional configuration from the sender side, since the main element of the multicast is the multicast group IP address.
Once again, this post is not intended to describe the theory of the multicast data transfer. It treated as a simple walk through of setting up a multicast lab with the expected results attached.
 
Credit:
I have used “http://breadcrumbing.blogspot.hk/2015/02/multicast-video-streaming-with-ubuntu.html” as a guide to set my Ubuntu multicast streaming server.

Leave a Reply

Your email address will not be published. Required fields are marked *