Date: Mon, 25 Nov 2019 19:46:50 +0100 From: Guido van Rooij <guido@gvr.org> To: freebsd-net@freebsd.org Subject: Problems with Multicast (IGMP) since upgrade from 11.3 to 12.1 Message-ID: <20191125184650.GA79855@gvr.gvr.org>
next in thread | raw e-mail | index | archive | help
I am using a STB with muticast based TV. When I use my firewall with igmpproxy in 11.3, I see the following when I am not watching TV: # netstat -g IPv4 Virtual Interface Table Vif Thresh Local-Address Remote-Address Pkts-In Pkts-Out 0 1 10.59.161.237 2251 0 1 1 192.168.100.1 0 2251 IPv4 Multicast Forwarding Table Origin Group Packets In-Vif Out-Vifs:Ttls 213.75.167.58 224.3.2.6 1435 0 1:1 When I switch on the STB, I see: # netstat -g IPv4 Virtual Interface Table Vif Thresh Local-Address Remote-Address Pkts-In Pkts-Out 0 1 10.59.161.237 22450 0 1 1 192.168.100.1 0 22450 IPv4 Multicast Forwarding Table Origin Group Packets In-Vif Out-Vifs:Ttls 217.166.226.126 224.0.252.126 18986 0 1:1 213.75.167.58 224.3.2.6 1918 0 1:1 When I swicth it off, we see, again: # netstat -g IPv4 Virtual Interface Table Vif Thresh Local-Address Remote-Address Pkts-In Pkts-Out 0 1 10.59.161.237 50108 0 1 1 192.168.100.1 0 50108 IPv4 Multicast Forwarding Table Origin Group Packets In-Vif Out-Vifs:Ttls 213.75.167.58 224.3.2.6 2215 0 1:1 Here is the IGMP trace: # No TV 18:55:47.172531 IP (tos 0xc0, ttl 1, id 0, offset 0, flags [DF], proto IGMP (2), length 40, options (RA)) 10.59.161.237 > 224.0.0.22: igmp v3 report, 1 group record(s) [gaddr 224.0.252.126 to_ex { }] # Switch on STB 18:55:49.773534 IP (tos 0xc0, ttl 1, id 0, offset 0, flags [DF], proto IGMP (2), length 40, options (RA)) 10.59.161.237 > 224.0.0.22: igmp v3 report, 1 group record(s) [gaddr 224.0.252.126 to_ex { }] 18:56:47.094853 IP (tos 0xc0, ttl 1, id 0, offset 0, flags [none], proto IGMP (2), length 36, options (RA)) 10.60.140.9 > 224.0.0.1: igmp query v3 18:56:53.287526 IP (tos 0xc0, ttl 1, id 0, offset 0, flags [DF], proto IGMP (2), length 48, options (RA)) 10.59.161.237 > 224.0.0.22: igmp v3 report, 2 group record(s) [gaddr 224.0.252.126 is_ex { }] [gaddr 224.3.2.6 is_ex { }] # Switch off STB 18:56:57.887515 IP (tos 0xc0, ttl 1, id 0, offset 0, flags [DF], proto IGMP (2), length 40, options (RA)) 10.59.161.237 > 224.0.0.22: igmp v3 report, 1 group record(s) [gaddr 224.0.252.126 to_in { }] 18:56:58.717053 IP (tos 0xc0, ttl 1, id 0, offset 0, flags [DF], proto IGMP (2), length 40, options (RA)) 10.59.161.237 > 224.0.0.22: igmp v3 report, 1 group record(s) [gaddr 224.0.252.126 to_in { }] Now in 12.1 we see: STB off: # netstat -g IPv4 Virtual Interface Table Vif Thresh Local-Address Remote-Address Pkts-In Pkts-Out 0 1 10.59.161.237 158 0 1 1 192.168.100.1 0 158 IPv4 Multicast Forwarding Table Origin Group Packets In-Vif Out-Vifs:Ttls 213.75.167.58 224.3.2.6 158 0 1:1 STB on: # netstat -g IPv4 Virtual Interface Table Vif Thresh Local-Address Remote-Address Pkts-In Pkts-Out 0 1 10.59.161.237 10674 0 1 1 192.168.100.1 0 10674 IPv4 Multicast Forwarding Table Origin Group Packets In-Vif Out-Vifs:Ttls 217.166.226.126 224.0.252.126 9584 0 1:1 213.75.167.58 224.3.2.6 1091 0 1:1 STB back off again: # netstat -g IPv4 Virtual Interface Table Vif Thresh Local-Address Remote-Address Pkts-In Pkts-Out 0 1 10.59.161.237 41404 0 1 1 192.168.100.1 0 41404 IPv4 Multicast Forwarding Table Origin Group Packets In-Vif Out-Vifs:Ttls 217.166.226.126 224.0.252.126 0 65535 213.75.167.58 224.3.2.6 1342 0 1:1 IGMP trace: # No TV 19:05:07.103731 IP (tos 0xc0, ttl 1, id 0, offset 0, flags [none], proto IGMP (2), length 36, options (RA)) 10.60.140.9 > 224.0.0.1: igmp query v3 19:05:12.203438 IP (tos 0xc0, ttl 1, id 0, offset 0, flags [DF], proto IGMP (2), length 40, options (RA)) 10.59.161.237 > 224.0.0.22: igmp v3 report, 1 group record(s) [gaddr 224.3.2.6 is_ex { }] # Switch on STB 19:06:30.522147 IP (tos 0xc0, ttl 1, id 0, offset 0, flags [DF], proto IGMP (2), length 40, options (RA)) 10.59.161.237 > 224.0.0.22: igmp v3 report, 1 group record(s) [gaddr 224.0.252.126 to_ex { }] 19:06:31.740782 IP (tos 0xc0, ttl 1, id 0, offset 0, flags [DF], proto IGMP (2), length 40, options (RA)) 10.59.161.237 > 224.0.0.22: igmp v3 report, 1 group record(s) [gaddr 224.0.252.126 to_ex { }] # Switch off STB 19:07:12.107851 IP (tos 0xc0, ttl 1, id 0, offset 0, flags [none], proto IGMP (2), length 36, options (RA)) 10.60.140.9 > 224.0.0.1: igmp query v3 19:07:21.605196 IP (tos 0xc0, ttl 1, id 0, offset 0, flags [DF], proto IGMP (2), length 48, options (RA)) 10.59.161.237 > 224.0.0.22: igmp v3 report, 2 group record(s) [gaddr 224.0.252.126 is_ex { }] [gaddr 224.3.2.6 is_ex { }] So we never see the IGMP_CHANGE_TO_INCLUDE_MODE packet. I did a ktr trace and in it I only saw the following entries that I think are interesting (first number is a timestamp) Nov 20 19:14:25 in_joingroup_locked: join 0xe000fc7e on 0xfffff8000f4d6000(vlan4)) Nov 20 19:14:25 igmp_initial_join: initial join 0xe000fc7e on ifp 0xfffff8000f4d6000(vlan4) Nov 20 19:14:25 igmp_v3_enqueue_group_record: queueing TO_EX for 0xe000fc7e/vlan4 Nov 20 19:15:30 in_leavegroup_locked: leave inm 0xfffff8003a448c00, 0xe000fc7e/vlan4, imf 0xfffff8003a609d40 Nov 20 19:15:30 igmp_handle_state_change: state change for 0xe000fc7e on ifp 0xfffff8000f4d6000(vlan4) Nov 20 19:15:30 igmp_v3_enqueue_group_record: nothing to do for 0xe000fc7e/vlan4 Nov 20 19:15:30 igmp_v3_enqueue_group_record: queueing MODE_EX for 0xe000fc7e/vlan4 I am somewhat lost on how to further debug this. Any hint would be appreciated. Thanks, Guido van Rooij
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20191125184650.GA79855>