Changing IGMP version on Debian and Ubuntu Linux Systems
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 was 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
