Sometimes users of our IP Multicast based probes for IPTV on Debian or Ubuntu Linux ask how to use IGMPv2 instead of IGMPv3 (which is currently default with Debian/Ubuntu Linux). Changing the IGMP version used does not require changes to the probe software. IGMP behaviour is defined by the Linux kernel instead.
Problem
Probe running on Linux generates IGMPv3 messages, but the IP router involved does only understand IGMPv2
Solution
Let us assume, you are using device eth0
on Linux based remote probe system to generate IGMP messages and also to receive IP Multicast traffic
Become root on Debian and cd
to /
:
user@amrum:~$ su -
Password:
amrum:~# cd /
amrum:/#
On Ubuntu the easiest way is to sudo bash and to cd afterwards to ‘/’
user@amrum:~$ sudo bash
Password:
amrum:~# cd /
amrum:/#
Enter cat /proc/sys/net/ipv4/conf/eth0/force_igmp_version
This will produce 0
which means highest available version.
amrum:/# cat /proc/sys/net/ipv4/conf/eth0/force_igmp_version
0
amrum:/#
With tcpdump -i eth0 igmp
you will receive during probe run something like:
amrum:/# tcpdump -i eth0 igmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
15:42:39.679668 IP amrum.advenage.intra > IGMP.MCAST.NET: igmp v3 report, 1 group record(s)
15:42:43.688314 IP amrum.advenage.intra > IGMP.MCAST.NET: igmp v3 report, 1 group record(s)
15:42:46.707297 IP amrum.advenage.intra > IGMP.MCAST.NET: igmp v3 report, 1 group record(s)
To switch to IGMPv2 on eth0
enter echo "2" > /proc/sys/net/ipv4/conf/eth0/force_igmp_version
amrum:/# echo "2" > /proc/sys/net/ipv4/conf/eth0/force_igmp_version
amrum:/#
Now check success of your change with during probe run tcpdump -i eth0 igmp
:
amrum:/# tcpdump -i eth0 igmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
15:50:03.755575 IP amrum.advenage.intra > 224.1.1.1: igmp v2 report 224.1.1.1
15:50:11.692773 IP amrum.advenage.intra > 224.1.1.1: igmp v2 report 224.1.1.1
15:50:21.679264 IP amrum.advenage.intra > 224.1.1.1: igmp v2 report 224.1.1.1
15:50:34.745108 IP amrum.advenage.intra > ALL-ROUTERS.MCAST.NET: igmp leave 224.1.1.1
15:50:38.773261 IP amrum.advenage.intra > 224.1.1.1: igmp v2 report 224.1.1.1
15:50:41.773324 IP amrum.advenage.intra > ALL-ROUTERS.MCAST.NET: igmp leave 224.1.1.1