[pim] Re: IGMP v3 update - clarification about which router queries cause version fallback
Dino Farinacci <farinacci@gmail.com> Thu, 15 August 2024 18:42 UTC
Return-Path: <farinacci@gmail.com>
X-Original-To: pim@ietfa.amsl.com
Delivered-To: pim@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CC00AC1516E1 for <pim@ietfa.amsl.com>; Thu, 15 Aug 2024 11:42:05 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.109
X-Spam-Level:
X-Spam-Status: No, score=-2.109 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Z-HvPvipgOEX for <pim@ietfa.amsl.com>; Thu, 15 Aug 2024 11:42:05 -0700 (PDT)
Received: from mail-pl1-x636.google.com (mail-pl1-x636.google.com [IPv6:2607:f8b0:4864:20::636]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 51E89C151556 for <pim@ietf.org>; Thu, 15 Aug 2024 11:42:05 -0700 (PDT)
Received: by mail-pl1-x636.google.com with SMTP id d9443c01a7336-20203988f37so2323255ad.1 for <pim@ietf.org>; Thu, 15 Aug 2024 11:42:05 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1723747324; x=1724352124; darn=ietf.org; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=n2niR6jPNffJ54Y4QWaq9qzpTlrMFseQaTcwywNXF7Y=; b=Q7nQZIW7IRwXRXtYqEUx1SIQAdSl89rKGLx9DQcji35ybPaOaIXatIV0LSr5O4VxO0 DeDVyW9TzhKtiIujuwKU/6xEIy2KRuJdoji1Pk1dC7HpZHZaYnzl2d7zjoTOZ/6nhQXA IubKKc4zQnsDxkMFbqWUOqW2QPeE54XTMevf40mFpMYxbMpUDoh+WxLdW1R0ZLWYbxpl JUcc3HE8FlO+K6us6xoKupx4L66oFmSyBAoQ/KpbkN1bX2uEvcOZjnhXy4EiOA/kVqVW c5jBlPjZMO5JckJedgAFH4koO2mg0SROawb3Bp5jf3xMKllyF+G4/z1gMfPrME5drJkX +FEg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1723747324; x=1724352124; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=n2niR6jPNffJ54Y4QWaq9qzpTlrMFseQaTcwywNXF7Y=; b=AYMsg+lvqCEciH38eYq4TMM6F66iOhQJ1fOWIBuB4/iJxkIajF5LgOxqumU6ehtT4Z 8NP+kw0CLsUEswKV3Z49TN65p5NkU9b4OuddQvP8b6lrk0YBNin4IXbvLtDMMZII33EQ YKDZPqpJbiH1quJ9VAOgHZgUsQZ5nk4XqmnJ6DxAxE48kPpNYNzsZxHTcFzcCpf0SNB+ VM5++kbCBLPog+KfIMHHHaj/4vrOeUfhaDPVoLrXkBx2qBp0vs2DSJ3/8hSAkUBKKYVW 9zLlCtK0Q8+WocsCiGsUaNsT9RKmeItnQNEN+YvqNTMZ565T+QwiJ0PgsoA2khQft8aE 8hJw==
X-Forwarded-Encrypted: i=1; AJvYcCVOlJvrVh5Zbz7XkMDYn0iwgmK8ST50o+uTIm7Qgo1EPuk5iHnPt8Kk26nwVUQQ9rEPa4VxHUqVAEW/5jc=
X-Gm-Message-State: AOJu0YwM0ty72yE2h5UVMB3mfZht2VrFXUBGvFQl2FV4pRgBOWvvZc5D hb4zlMMtIozGZ6pD97y4kJQKBOSyWBFJnswK2zfS9FJ//E1UhhrA
X-Google-Smtp-Source: AGHT+IGsseRIWAyxEu/jaBwYIgymwQH1K5TSxV5Qf7s+Qx3O9FshNlyiIIg0MeykED+jAa2s17BewA==
X-Received: by 2002:a17:902:d48b:b0:201:e792:d6fe with SMTP id d9443c01a7336-20203f41f7cmr7252035ad.55.1723747320784; Thu, 15 Aug 2024 11:42:00 -0700 (PDT)
Received: from smtpclient.apple (c-24-5-184-219.hsd1.ca.comcast.net. [24.5.184.219]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-201f031970asm13126905ad.63.2024.08.15.11.42.00 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 15 Aug 2024 11:42:00 -0700 (PDT)
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3774.600.62\))
From: Dino Farinacci <farinacci@gmail.com>
In-Reply-To: <D2183B0A-209E-40A6-AC3F-553D122AAF01@ka9q.net>
Date: Thu, 15 Aug 2024 11:41:49 -0700
Content-Transfer-Encoding: quoted-printable
Message-Id: <C61FF107-AD97-471E-AA2E-B6B570FC4E71@gmail.com>
References: <9a4ab4e0-a5aa-4c9b-bf02-01fd070858a8@ka9q.net> <13f97817-2506-4ace-a44d-a7f8a8525c96@innovationslab.net> <D2183B0A-209E-40A6-AC3F-553D122AAF01@ka9q.net>
To: Phil Karn <karn@ka9q.net>
X-Mailer: Apple Mail (2.3774.600.62)
Message-ID-Hash: Y7LFDIW6LWT2H7XAB4UUPP5DZVFQGR7F
X-Message-ID-Hash: Y7LFDIW6LWT2H7XAB4UUPP5DZVFQGR7F
X-MailFrom: farinacci@gmail.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-pim.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: Brian Haberman <brian@innovationslab.net>, pim@ietf.org
X-Mailman-Version: 3.3.9rc4
Precedence: list
Subject: [pim] Re: IGMP v3 update - clarification about which router queries cause version fallback
List-Id: Protocol Independent Multicast <pim.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/pim/9HIUHRRv3XKpOpOjh-_jgoeO1_k>
List-Archive: <https://mailarchive.ietf.org/arch/browse/pim>
List-Help: <mailto:pim-request@ietf.org?subject=help>
List-Owner: <mailto:pim-owner@ietf.org>
List-Post: <mailto:pim@ietf.org>
List-Subscribe: <mailto:pim-join@ietf.org>
List-Unsubscribe: <mailto:pim-leave@ietf.org>
Brian, this is a protocol design bug if this behavior was intended. Otherwise the RFC needs updating for clarity. In either case, the RFC text MUST BE fixed. Dino > On Aug 14, 2024, at 9:41 PM, Phil Karn <karn@ka9q.net> wrote: > > I understand that part. My point was that Linux appears to reset the interface compatibility mode timer for IGMPv2 in response to a *group specific* membership query. My reading of the RFC is that this should be done only for *general* membership queries (no specific group). Even worse, MacOS stops responding entirely to IGMPv3 queries. > > As things stand now, if you have an iPhone on your LAN, IGMPv3 is unusable for everybody.. If you have a MacOS system on your LAN and the querier is IGMPv3, multicast will be broken for you. Permanently. Is that the intent of the RFC? > > if you see a group-specific query and you’re a member of that group (otherwise you probably wouldn’t see the query!) you should answer with the version used for that query, but reset the compatibility mode timer to IGMPv2 only if the next *general* query uses IGMPv2. > >> On Aug 14, 2024, at 13:35, Brian Haberman <brian@innovationslab.net> wrote: >> >> Hi Phi, >> 3376 and 3376bis are pretty clear on this from my perspective. Section 7.2.1 says: >> >> In order to be compatible with older version routers, IGMPv3 hosts MUST operate in version 1 and version 2 compatibility modes. IGMPv3 hosts MUST keep state per local interface regarding the compatibility mode of each attached network. A host's compatibility mode is determined from the Host Compatibility Mode variable which can be in one of three states: IGMPv1, IGMPv2 or IGMPv3. This variable is kept per interface and is dependent on the version of General Queries heard on that interface as well as the Older Version Querier Present timers for the interface. >> >> Regards, >> Brian >> >> On 7/30/24 12:54 AM, Phil Karn wrote: >>> Hi. I'm been trying to figure out why Linux on my network keeps falling back to IGMPv2, and I've found out why. I may need a clarification to RFC3376. >>> At first, all works fine. My snooping switch issues an IGMPv3 general membership query and my Linux system answers with IGMPv3 membership messages. Great. >>> Then my Linux system sees a IGMPv2 group-specific query for 224.0.0.251 (the multicast DNS group). Since I'm running avahi-daemon (the mDNS service daemon) this elicits an outgoing IGMPv2 membership report for 224.0.0.251. Then subsequent IGMPv3 general membership queries elicits IGMPv2 (not v3) membership reports for all my other multicast group memberships. >>> I believe this is a bug in Linux, but I want to make sure RFC3376 says what I think it says. >>> RFC3376 says an IGMPv2 general query should change the interface version to IGMPv2 and start the IGMPv2 querier-present timer, after which the interface reverts to v3 if enough time goes by without another IGMPv2 general query. But it does not explicitly say that ONLY a IGMPv2 GENERAL query should do this -- that a group-specific IGMPv2 query should NOT cause the interface to drop into IGMPv2 mode even if we're a member of that group. >>> The problem is that buggy Apple devices frequently and gratuitously join and leave 224.0.0.251, and these devices don't speak IGMPv3. Whenever one leaves, the querier correctly issues a group-specific query to see if any other members are left -- and this group-specific query knocks Linux back to IGMPv2. Since these Apple devices gratuitously join and leave more rapidly than the IGMPv2-querier-present timer expires, the situation persists. IGMPv3 becomes unusable on my network. >>> So is it the intent of RFC3376 that ONLY a *general* IGMPv2/v1 query should trigger the version fallback logic, or should a group-specific IGMPv2 query do the same? >>> To summarize: >>> 1. RFC 3376 is arguably vague about exactly which membership queries should invoke a version fallback. All IGMPv2/v1 queries, or only general ones? >>> 2. Linux interprets any IGMPv2 membership query - not just a general query - as triggering a fallback. Right now I don't know if this is correct behavior or an honest misunderstanding of a vague specification. >>> 3. Apple really should get with the program and implement IGMPv3. It's only what, 22 years old? >>> 4. Apple really should get with the program and stop explicitly joining a very popular link-local multicast address (224.0.0.251) that every host is supposed to be an implicit member of anyway. >>> 5. Apple really should get with the program and stop gratuitously leaving and re-joining said link-local multicast group. >>> But I'm only asking this list to address point #1. Should group-specific IGMPv2 membership queries trigger a version fallback until the IGMPv2 Querier Present timer expires? Or should only general queries do so? >>> --Phil >>> _______________________________________________ >>> pim mailing list -- pim@ietf.org >>> To unsubscribe send an email to pim-leave@ietf.org >> _______________________________________________ >> pim mailing list -- pim@ietf.org >> To unsubscribe send an email to pim-leave@ietf.org > > _______________________________________________ > pim mailing list -- pim@ietf.org > To unsubscribe send an email to pim-leave@ietf.org
- [pim] IGMP v3 update - clarification about which … Phil Karn
- [pim] Re: IGMP v3 update - clarification about wh… Brian Haberman
- [pim] Re: IGMP v3 update - clarification about wh… Phil Karn
- [pim] Re: IGMP v3 update - clarification about wh… Brian Haberman
- [pim] Re: IGMP v3 update - clarification about wh… Dino Farinacci
- [pim] Re: IGMP v3 update - clarification about wh… Brian Haberman
- [pim] Re: IGMP v3 update - clarification about wh… Dino Farinacci
- [pim] Re: IGMP v3 update - clarification about wh… Brian Haberman
- [pim] Re: IGMP v3 update - clarification about wh… Phil Karn
- [pim] Re: IGMP v3 update - clarification about wh… Brian Haberman
- [pim] Re: IGMP v3 update - clarification about wh… Dino Farinacci
- [pim] Re: IGMP v3 update - clarification about wh… Phil Karn
- [pim] Re: IGMP v3 update - clarification about wh… Phil Karn
- [pim] Re: IGMP v3 update - clarification about wh… Gyan Mishra
- [pim] Re: IGMP v3 update - clarification about wh… Brian Haberman
- [pim] Re: IGMP v3 update - clarification about wh… Brian Haberman
- [pim] Re: IGMP v3 update - clarification about wh… Brian Haberman
- [pim] Re: IGMP v3 update - clarification about wh… Brian Haberman
- [pim] Re: IGMP v3 update - clarification about wh… Gyan Mishra