incorrect source address in IGMP Membership Report messages

Bug #1749058 reported by Gunwoo Gim
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Expired
Medium
Unassigned

Bug Description

I found that linux kernel had had a bug in the implementation of IGMP
membership report packet generation. the RFC documents for IGMP version 2
and 3 says that you must ignore the reports with a source ip address that
you can't identify as belonging to a network assigned to the interface on
which the packet was received. and the networking OS in the ToR switch,
Force10 OS 9 does ignore it.

I've also figured out a patch has been made for this bug in Linus's Github.
and there was a mark on Github that reads "v4.16-rc1". (
https://github.com/torvalds/linux/commit/a46182b00290839fa3fa159d54fd3237bd8669f0
 )

I honestly have no idea how Ubuntu LTS team works with regard to this kind
of patches from the fresh new upstream version of linux kernel. hope you
guys will easily fix it for people like me who has no experience at
building and distributing custom built kernels over a few servers.

Test environment:
I used two ToR switches and one linux machine for this test.
I only used 2 ethernet ports on the linux machine.
There was a recent version of Ubuntu with HWE kernel. I'm not sure if
no-HWE one would be the same case - the version of linux-generic-hwe-16.04
was 4.13.0.32.52 -
To test networking router stuff, I used the quagga from Cumulus Routing on
the Host 3.3.2 (
https://cumulusnetworks.com/products/cumulus-routing-on-the-host/#roh-download-section
 )

What I did and saw in my case:
1. set a network interface (A) so it gets an IPv4 address, but also in vain
issue "ip link set ${if_name} multicast off"
2. assign an IPv4 address to another network interface (B), but in this
case with a 31-bit-long subnet mask length.
3. install quagga from cumulus, launch zebra and pimd, issue "ip pim sm" in
the interface configuration mode for the interface (B) with a 31-bit-long
subnet mask length
4. I checked that the source IP address part of the IGMP membership report
packets from the linux machine is the address I assigned to the network
interface (A) with 27-bit-long subnet mask -using dumpcap and tshark-, and
that the PIM service on the switch ignored the Reports printing debugging
messages including : "Invalid sender address"

 affects ubuntu

Regards,
Gunwoo
--
You can find my PGP public key here: https://google.com/+DewrKim/about

---
AlsaDevices:
 total 0
 crw-rw---- 1 root audio 116, 1 Feb 12 15:36 seq
 crw-rw---- 1 root audio 116, 33 Feb 12 15:36 timer
AplayDevices: Error: [Errno 2] No such file or directory
ApportVersion: 2.20.1-0ubuntu2.15
Architecture: amd64
ArecordDevices: Error: [Errno 2] No such file or directory
AudioDevicesInUse: Error: command ['fuser', '-v', '/dev/snd/seq', '/dev/snd/timer'] failed with exit code 1:
DistroRelease: Ubuntu 16.04
HibernationDevice: RESUME=/dev/mapper/peta--0001--01--vg-swap_1
InstallationDate: Installed on 2017-07-05 (223 days ago)
InstallationMedia: Ubuntu-Server 16.04.1 LTS "Xenial Xerus" - Release amd64 (20160719)
IwConfig: Error: [Errno 2] No such file or directory
MachineType: HP ProLiant DL360 G6
Package: linux (not installed)
PciMultimedia:

ProcEnviron:
 TERM=xterm-256color
 PATH=(custom, no user)
 LANG=en_US.UTF-8
 SHELL=/bin/bash
ProcFB: 0 radeondrmfb
ProcKernelCmdLine: BOOT_IMAGE=/vmlinuz-4.13.0-32-generic root=/dev/mapper/peta--0001--01--vg-root ro isolcpus=4,8,12,16,20,24,28,6,10,14,18,22,26,30 hugepagesz=1G hugepages=0 hugepagesz=2M hugepages=2048
ProcVersionSignature: Ubuntu 4.13.0-32.35~16.04.1-generic 4.13.13
RelatedPackageVersions:
 linux-restricted-modules-4.13.0-32-generic N/A
 linux-backports-modules-4.13.0-32-generic N/A
 linux-firmware 1.157.14
RfKill: Error: [Errno 2] No such file or directory
Tags: xenial xenial
Uname: Linux 4.13.0-32-generic x86_64
UnreportableReason: The report belongs to a package that is not installed.
UpgradeStatus: No upgrade log present (probably fresh install)
UserGroups:

_MarkForUpload: False
dmi.bios.date: 08/16/2015
dmi.bios.vendor: HP
dmi.bios.version: P64
dmi.chassis.type: 23
dmi.chassis.vendor: HP
dmi.modalias: dmi:bvnHP:bvrP64:bd08/16/2015:svnHP:pnProLiantDL360G6:pvr:cvnHP:ct23:cvr:
dmi.product.family: ProLiant
dmi.product.name: ProLiant DL360 G6
dmi.sys.vendor: HP

Revision history for this message
Ubuntu Foundations Team Bug Bot (crichton) wrote :

Thank you for taking the time to report this bug and helping to make Ubuntu better. It seems that your bug report is not filed about a specific source package though, rather it is just filed against Ubuntu in general. It is important that bug reports be filed about source packages so that people interested in the package can find the bugs about it. You can find some hints about determining what package your bug might be about at https://wiki.ubuntu.com/Bugs/FindRightPackage. You might also ask for help in the #ubuntu-bugs irc channel on Freenode.

To change the source package that this bug is filed about visit https://bugs.launchpad.net/ubuntu/+bug/1749058/+editstatus and add the package name in the text box next to the word Package.

[This is an automated message. I apologize if it reached you inappropriately; please just reply to this message indicating so.]

tags: added: bot-comment
Revision history for this message
Gunwoo Gim (wind0204) wrote :

The patch I introduced in this bug report apparently has a bug which is fixed by another patch. ( https://github.com/torvalds/linux/commit/ad23b750933ea7bf962678972a286c78a8fa36aa#diff-c78fd3a31fe017f1d1cabf84aa892ff7 )

Thank you,
Gunwoo

Revision history for this message
Gunwoo Gim (wind0204) wrote :

I think I add a command "affects ubuntu/linux"

affects: ubuntu → linux (Ubuntu)
Revision history for this message
Ubuntu Kernel Bot (ubuntu-kernel-bot) wrote : Missing required logs.

This bug is missing log files that will aid in diagnosing the problem. While running an Ubuntu kernel (not a mainline or third-party kernel) please enter the following command in a terminal window:

apport-collect 1749058

and then change the status of the bug to 'Confirmed'.

If, due to the nature of the issue you have encountered, you are unable to run this command, please add a comment stating that fact and change the bug status to 'Confirmed'.

This change has been made by an automated script, maintained by the Ubuntu Kernel Team.

Changed in linux (Ubuntu):
status: New → Incomplete
Revision history for this message
Gunwoo Gim (wind0204) wrote :

I'm sorry that I confused with the IGMP service with the PIM service on Dell FTOS 9, which printed the debugging message "Invalid sender address"

and I think you can just test the igmp connection by issuing "ping 224.0.0.1" instead of installing quagga and launching pimd.

Best regards,
Gunwoo

Revision history for this message
Gunwoo Gim (wind0204) wrote : CRDA.txt

apport information

tags: added: apport-collected xenial
description: updated
Revision history for this message
Gunwoo Gim (wind0204) wrote : CurrentDmesg.txt

apport information

Revision history for this message
Gunwoo Gim (wind0204) wrote : JournalErrors.txt

apport information

Revision history for this message
Gunwoo Gim (wind0204) wrote : Lspci.txt

apport information

Revision history for this message
Gunwoo Gim (wind0204) wrote : Lsusb.txt

apport information

Revision history for this message
Gunwoo Gim (wind0204) wrote : ProcCpuinfoMinimal.txt

apport information

Revision history for this message
Gunwoo Gim (wind0204) wrote : ProcInterrupts.txt

apport information

Revision history for this message
Gunwoo Gim (wind0204) wrote : ProcModules.txt

apport information

Revision history for this message
Gunwoo Gim (wind0204) wrote : UdevDb.txt

apport information

Revision history for this message
Gunwoo Gim (wind0204) wrote : WifiSyslog.txt

apport information

Changed in linux (Ubuntu):
status: Incomplete → Confirmed
Revision history for this message
Gunwoo Gim (wind0204) wrote :

I think I should also have mentioned that I had tried a couple of things all in vain, they all resulted in the same unchanged value at source address field in the IGMP packets:

1) A route-map in quagga:
ip prefix-list p4-multicast seq 5 permit 224.0.0.0/4
!
route-map filter-multicast-4 permit 10
 match ip address prefix-list p4-multicast
 set src 10.0.0.48
!
route-map set-src permit 10
 set src 10.0.0.48
!
ip protocol any route-map filter-multicast-4

2) A route directly in the linux routing table:

ip route replace 224.0.0.0/4 src 10.0.0.48 dev fabric1

3) A SNAT line in iptables:

iptables -t nat -A POSTROUTING --dst 224.0.0.0/4 -j SNAT --to-source 10.0.0.48

Thank you,
Gunwoo

Revision history for this message
Joseph Salisbury (jsalisbury) wrote :

Would it be possible for you to test the latest upstream kernel? Refer to https://wiki.ubuntu.com/KernelMainlineBuilds . Please test the latest v4.16 kernel[0].

If this bug is fixed in the mainline kernel, please add the following tag 'kernel-fixed-upstream'.

If the mainline kernel does not fix this bug, please add the tag: 'kernel-bug-exists-upstream'.

Once testing of the upstream kernel is complete, please mark this bug as "Confirmed".

Thanks in advance.

[0] http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.16-rc1/

Changed in linux (Ubuntu):
importance: Undecided → Medium
status: Confirmed → Incomplete
tags: added: kernel-da-key
Revision history for this message
Gunwoo Gim (wind0204) wrote :

I'm sorry, I tried 4.16.0-rc2 when I got to physically access the server in the PoC cluster this morning, but the driver called "hpsa" for the RAID controller didn't work in the boot-up phase, I guess it could've possibly been because of the failed hard disk drive in the array of RAID 1. I had to roll back to 4.13.0 that comes with the HWE package in Ubuntu 16.04, but I'd like to try to run the new kernel and see if it does fix the problem so I'm going to do it on my laptop this weekend.

Regards,
Gunwoo

Revision history for this message
Launchpad Janitor (janitor) wrote :

[Expired for linux (Ubuntu) because there has been no activity for 60 days.]

Changed in linux (Ubuntu):
status: Incomplete → Expired
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.