Re: [dhcwg] Requesting feedback for DHCPv6 address notification draft

Warren Kumari <warren@kumari.net> Tue, 18 October 2022 21:17 UTC

Return-Path: <warren@kumari.net>
X-Original-To: dhcwg@ietfa.amsl.com
Delivered-To: dhcwg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9DAF0C152594 for <dhcwg@ietfa.amsl.com>; Tue, 18 Oct 2022 14:17:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.105
X-Spam-Level:
X-Spam-Status: No, score=-2.105 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, HTML_MESSAGE=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=kumari.net
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 SnvO_ViKSHA3 for <dhcwg@ietfa.amsl.com>; Tue, 18 Oct 2022 14:17:33 -0700 (PDT)
Received: from mail-io1-xd31.google.com (mail-io1-xd31.google.com [IPv6:2607:f8b0:4864:20::d31]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6EC83C152575 for <dhcwg@ietf.org>; Tue, 18 Oct 2022 14:17:33 -0700 (PDT)
Received: by mail-io1-xd31.google.com with SMTP id o65so12899579iof.4 for <dhcwg@ietf.org>; Tue, 18 Oct 2022 14:17:33 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kumari.net; s=google; h=cc:to:subject:message-id:date:references:from:in-reply-to :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=o6L2j5BeHJVKm4ArCE+0HdU4En+B0h7t/5CCgLqr7+s=; b=OtzXvQM4O3PpvYIwJkb8Ts+OJU44xCVdTd1DfCniVdqBiLml1bzVIAyg68AWkR+AeU 4jVzHVRQA0lZD7LSXl2WUF7cBZ5RQ6Rz2OMQ5sHCxDFUy/nFaO4MVrT7mTJ2+QR3Jn9H pCH0C9ZblmelP9gT6ryRB935hToCpt+Kp3lRDCCOl8TO0X4Vg8JPH9atzvzfVTTzFNaT GV5nkw13ouAmLJFlD/1tZ4678+zohoq6FtshEKfBNOD71Y8KyJtkqokRJ+3pUOG9vrvK +aqE4+qKXsuZOLNSYsrkuehzB613EwuA5JdVm/uiukrdMkAnvpodttrYTfma5muza9ec maIQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:references:from:in-reply-to :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=o6L2j5BeHJVKm4ArCE+0HdU4En+B0h7t/5CCgLqr7+s=; b=M6wC2xDiNmr65WCI+YlFuNmLU7Zru3TYP5Xyfiwt9V5y7FwkDeQflIchTLUdAgQ8pw YBVCJN4I3Zymcf52gkx/nqYjMIDq8b/LopsJUKrQtmGIk7hiPbMgsGiouxQcWtyBqoOg A8jEduz3tsDMtCRN3ZIiLZgUOg9M3ycCQKfQRUWqzWD8VgbfaUwVI/QnvtCf6NjjX1rS ia+nRiJdyoY08byZLK/SJ81776+tliz/+ii6a+LSgiGGmHrui3n+D0L7JKunkxL+gCKP lZ5fghyhSi1kyJZqWUND4GUJyp8ga42RqwRAZikRy9uH0HlbJFQy5OG811wriFraWscv QelA==
X-Gm-Message-State: ACrzQf3SqYsr4VGSxLtH5kyKKeiJNjohDtlKmn5fWaP1bYz7+m7rQcB/ NO8J9drdc3m0P6JMS8mbvVpw3Xv5zGc5j6EV/XTBTA==
X-Google-Smtp-Source: AMsMyM75wA2mhrZEZEaplmfg0eiy4VlZMtlbPtbjXjKNEFuqtzHfZy0hRMVbvGp6DTxEQkJEjQ/nSQQ9bSsqRSx33uM=
X-Received: by 2002:a05:6602:1588:b0:6bc:d49a:61cc with SMTP id e8-20020a056602158800b006bcd49a61ccmr3146086iow.154.1666127852372; Tue, 18 Oct 2022 14:17:32 -0700 (PDT)
Received: from 649336022844 named unknown by gmailapi.google.com with HTTPREST; Tue, 18 Oct 2022 17:17:31 -0400
Mime-Version: 1.0
X-Mailer: Superhuman Desktop (2022-10-17T22:06:03Z)
X-Superhuman-ID: l9ephpfo.2b978035-2b22-4c95-9f2a-10e2c4fabc70
In-Reply-To: <CAKD1Yr37Ztt65d-aqLmsOFdMQf3+wB8TfRh+yno=ZPUxr16_Uw@mail.gmail.com>
From: Warren Kumari <warren@kumari.net>
X-Superhuman-Draft-ID: draft00026367f282c5c1
References: <165902474329.23664.272764482824525757@ietfa.amsl.com> <CAKD1Yr00_L+t6yVGat9eC72mNfdJcAyEbyj0dVxY5K4g5hVx8Q@mail.gmail.com> <E72B113E-624E-40CD-A79E-1CB88BD80F7F@deployingradius.com> <CAKD1Yr37Ztt65d-aqLmsOFdMQf3+wB8TfRh+yno=ZPUxr16_Uw@mail.gmail.com>
Date: Tue, 18 Oct 2022 17:17:31 -0400
Message-ID: <CAHw9_iK+=7XCKpM_RcfpQ4HuLAD6y9y6BXnHsYkW81fTnrhcQQ@mail.gmail.com>
To: Lorenzo Colitti <lorenzo@google.com>
Cc: Alan DeKok <aland@deployingradius.com>, Lorenzo Colitti <lorenzo=40google.com@dmarc.ietf.org>, dhcwg@ietf.org, Sheng Jiang <jiangsheng@gmail.com>, Suresh Krishnan <suresh@kaloom.com>, Rajiv Asati <rajiva@cisco.com>
Content-Type: multipart/alternative; boundary="000000000000ca9cee05eb559e63"
Archived-At: <https://mailarchive.ietf.org/arch/msg/dhcwg/gBdltid-npXZ07SFHc8GS1-0zsw>
Subject: Re: [dhcwg] Requesting feedback for DHCPv6 address notification draft
X-BeenThere: dhcwg@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Dynamic Host Configuration <dhcwg.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dhcwg>, <mailto:dhcwg-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dhcwg/>
List-Post: <mailto:dhcwg@ietf.org>
List-Help: <mailto:dhcwg-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dhcwg>, <mailto:dhcwg-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 18 Oct 2022 21:17:37 -0000

On Thu, Aug 04, 2022 at 9:39 PM, Lorenzo Colitti <lorenzo@google.com> wrote:

> Alan,
>
> Thanks for the feedback.
>

+many lots.

We'll be working on incorporating most of it in a future version, but
> otherwise, inline:
>

Warren has had this on his ToDo list for an embarrassingly long time, and
is finally getting around to it..

"I love deadlines. I like the whooshing sound they make as they fly by."
  — Douglas Adams


> On Tue, Aug 2, 2022 at 9:50 PM Alan DeKok <aland@deployingradius.com>
> wrote:
>
>>    After receiving the
>>    address registration request, the DHCPv6 server MAY record and log
>>    the IPv6 address.
>>
>> It would help to describe the situations where the DHCPv6 server doesn't
>> log it.  i.e. if the DHCPv6 server does not expect to need / use that
>> information.
>>
>> It would be good to describe also what is meant by "log".   Perhaps even
>> a short statement "MAY record and log the IPv6 address, as is done normally
>> for clients which have requested an address"
>>
>
> Hmm. The reason this text is vague is that this is really up to the server
> and network operator. The goal of the draft is to have the client give this
> information to the network. The server can log it if it's configured to do
> so, but it can just drop it. It could also track it just like it tracks
> other leases. Some network gear might conceivably want to tie this message
> to their layer 2 security as well. I don't think the logging behaviour is
> specified in any RFC for other options today (e.g., IA_NA, IA_PD, etc.),
> so maybe we can keep this vague and say "the DHCPv6 server MAY record and
> log the IPv6 address, if it is configured to do so"?
>

I've done / am doing a fair bit of surgery on this area of the text (and am
trying to address multiple comments here). How is:

"After receiving this ADDR-REG-NOTIFICATION message, the address
registration server SHOULD register the binding between the provided Client
Identifier and IPv6 address in its database. The address registration
server SHOULD also log the address registration information (as is done
normally for clients which have requested an address).

If the DHCPv6 server does not support the address registration function, or
if the server believes that  address being registered is not "appropriate
to the link" [RFC8415], it MUST drop the message, and SHOULD log this fact."

Does this work? Much of the purpose of this proposal is to allow operators
to know who has what addresses, and so I think a "SHOULD" is the minimum
needed for the logging (and I like "as is done normally" - it reinforces
that this is similar to a normal 'the server handed out the address'". The
reasons for the server registering the binding is so that it doesn't also
try and hand out the address (which is probably statistically unlikely!),
and so that if there is tooling which allows interrogation of the database
it shows what it in use.

Bernie had as really good point (upthread): "Oh really? What if the address
is not in the server's configuration (i.e., no prefix configured to match
the prefix for the address)?"
The second paragraph is intended to address that — I wasn't sure if text
like "address is not in the server's configuration" or if "appropriate to
the link" was better?


  The end-host sends a DHCPv6 ADDR-REG-NOTIFICATION message to the
>>    address registration server to the All_DHCP_Relay_Agents_and_Servers
>>    multicast address (ff02::1:2).  The host SHOULD send the packet from
>>    the address being registered.
>>
>> If the device has multiple networks, the address being registered may not
>> be valid on all networks.  If so, what other address can be used?
>>
>
> The expectation is that the device would only inform the server of
> addresses specific to that network. We should make that clear.
>

Yes! I wasn't quite sure where to put this / how to word it, and so I came
up with:
"The host MUST only send the packet on the network interface that has the
address being registered (i.e. if the host has multiple interfaces with
different addresses, it should only send the packet on the interface with
the address being registered)." I don't love it, but I *think* that it
works OK?


>
>>    {TODO (WK): DHCPv6 uses "DHCP Unique Identifier (DUID)" to identify
>>    clients.  This doesn't really meet our design goal of "what IP does
>>    the printer have?!".  One of the DUID types is "DUID Based on Link-
>>    layer Address (DUID-LL)", but this is "any one network interface(s)"
>>    - this is probably good enough for the inventory use case, but still
>>    not ideal}
>>
>> What if the device is on WiFi, and is doing MAC address randomization?
>> Ideally the identifier should taken from a stable value.
>>
>
> I think part of the goal here is to find a way to communicate IP address /
> MAC address pairs to the network for logging purposes. Having the real MAC
> address is useful for that. There is already a stable identifier in the
> packet - the DUID.
>


Yup. The DUID is the "this is unique to the device" bit (and is included),
and the MAC<->IP is to support the main use case. As an operator, if I am
seeing issues related to an IP address, I'm likely to want to know the MAC
to trace it to the switchport, etc. As an example, in the IETF NOC, when a
user is having an issue, one of the first things we do is figure out which
AP they are connected to, etc.


> If the device is statically configured with a host name, perhaps that
>> could be used.  Though there's no Client Identifier sub option which would
>> carry that information.
>>
>
> The draft does already state that the client can include the client FQDN
> option, is that enough?
>

Yup, it says: "Clients MAY include other options, such as the Client FQDN
Option {{!RFC4704}}." - I don't know if that should be upgraded to a SHOULD
- it feels a little creepy / intrusive, but I may be wrong.


>   Also, what happens to relays when they forward such a message, and don't
>> see a reply?  Presumably relays maintain some kind of state, so that they
>> can direct replies back to the source of the request.
>>
>>   There should be some text saying that relays which understand this
>> message should forward the packet, and then immediately delete all state
>> associated with the packet, as no reply is expected.  Relays which don't
>> understand this message will drop it, so that's OK.
>>
>
Do you have any suggested text?
I'll happily admit that I have no idea what a relay would do with a new
message - should this be "forward and then delete state", or "don't create
any state"? Do relays create state for "new" messages, or only ones that
they already understand?


>From a pure DHCPv6 protocol perspective, does a relay even need to be
> stateful? AFAICT all the protocol information that it needs to relay, in
> both directions, is contained in the DHCP packets themselves. Of course the
> relay might be performing other tasks like DHCPv6 snooping, FIB insertion
> for prefixes, etc., which are stateful, but that's a separate issue. So
> maybe we don't need to say this?
>

Apologies again to everyone for how long I've taken to get back to this
draft; I've created some PRs for issues opened by my co-authors. For the
questions here, because they were discussed onlist[0], I'm just committing
the changes and pushed a new version to the github repo .

I'd really appreciate any feedback, and letting me know if I'm on the right
track, what stupid I've done, where I've lied, etc —
https://wkumari.github.io/draft-wkumari-dhc-addr-notification/draft-wkumari-dhc-addr-notification.html

W
[0]: And because I've left this so long, and so late :-P