Re: [dhcwg] recommendation on DHCP6 source port numbers
Bernie Volz <bevolz@gmail.com> Wed, 28 February 2024 11:54 UTC
Return-Path: <bevolz@gmail.com>
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 E8E40C14F68A for <dhcwg@ietfa.amsl.com>; Wed, 28 Feb 2024 03:54:20 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.212
X-Spam-Level:
X-Spam-Status: No, score=-1.212 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, HTML_MESSAGE=0.001, MIME_HTML_ONLY=0.1, MIME_HTML_ONLY_MULTI=0.001, MIME_QP_LONG_LINE=0.001, MPART_ALT_DIFF=0.79, 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=no 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 eufn_pCBIzvm for <dhcwg@ietfa.amsl.com>; Wed, 28 Feb 2024 03:54:20 -0800 (PST)
Received: from mail-qk1-x729.google.com (mail-qk1-x729.google.com [IPv6:2607:f8b0:4864:20::729]) (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 76BE3C1CAF20 for <dhcwg@ietf.org>; Wed, 28 Feb 2024 03:54:18 -0800 (PST)
Received: by mail-qk1-x729.google.com with SMTP id af79cd13be357-787a2a14cd1so421735685a.0 for <dhcwg@ietf.org>; Wed, 28 Feb 2024 03:54:18 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1709121257; x=1709726057; darn=ietf.org; h=to:in-reply-to:cc:references:message-id:date:subject:mime-version :from:content-transfer-encoding:from:to:cc:subject:date:message-id :reply-to; bh=QA34wNoR32ugVm7/wTFLVcPkB1EctNW6oW9/PLb/588=; b=PKlSs6QcXmlNeXUVnA3wa0eot4/50NgDR4M8XPZcqtugepLHcDXAfZKGPZhXaAgPT1 IV34sI2zEB2xLX2wzFTL862VumzJmiLrenDdnwwroaipudyKQK8LvFkTVn1OZv9ePche 3HN7nKFHYrYwc7TxunwY5If/OeKdQeIFMOrqzuhZDT//AI5r9jzNJ6+BZ8mtYAYAoMhV 6pRESU2VaHRiBxTPL1DZGq5YN5D7x9OPUpleYWpQxizMNHPEXTppWLbq3kMZHHcZDphh 0wRvmAnpeA61OrSbsYmi09GorRfDypwdRcI6PWEanfOVpNuvu3tvsS97SnyfgXCX/aml 0X0A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709121257; x=1709726057; h=to:in-reply-to:cc:references:message-id:date:subject:mime-version :from:content-transfer-encoding:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=QA34wNoR32ugVm7/wTFLVcPkB1EctNW6oW9/PLb/588=; b=F0joUsQrBuypHvo5UGeZeNO9E/66g1HDq29fMDoTnmxbdgQkJ/y/AmrTXU5VSn4J5H 2n+l7xBXM9NrxRqPwa1VAHZQ5pWElvsDtFHlMQIYrNkdytHs5JEIH8md4unZD3jiS/r+ vB6vz7UGY+pr0g+KhrDe8pBJdGWAnxxljs5DYsxxDzzvEGQ4biAyYV+ql+27crQ8oZH6 ndiL+qUURrM0CWzffFGBBoC0UYYSLj/bUStK9HawUNAuB0Ud36FGIDKMWfiUj0uhJShp Hayy9nvcJHre+hMbVmJD/zVAubVqf/QGoSr+0M40NY8Hed/eohlYp1JTaVAmV7m6XUF4 B+5Q==
X-Forwarded-Encrypted: i=1; AJvYcCXYGe3Aw3K7wX+KZgX2QKpOvNoqtB4yRHN/HDPsP2O8qK7nXXvKTPEyc/V7Z6d0txEOaP2v7EHnH4qaIPABOA==
X-Gm-Message-State: AOJu0Yy5NEJ57qnj6gmAnrXJ5nEMBPs7J4oI9eUSQrs9zOryAvXNS3MS +lKn4AsXSeu/2C3yvkKoKCWDM8sjBW+Hvta+aAkKvt4efNM5OYY=
X-Google-Smtp-Source: AGHT+IE37jPgtGbmEMjsrO2tJQ+XylocgcpB7ydAvFCJqdGAAivCmK0eH2U/ynExz+ednHmVQ5qKGg==
X-Received: by 2002:ac8:5cd1:0:b0:42e:a9d5:3b32 with SMTP id s17-20020ac85cd1000000b0042ea9d53b32mr2533543qta.62.1709121256941; Wed, 28 Feb 2024 03:54:16 -0800 (PST)
Received: from smtpclient.apple (d-69-161-122-95.nh.cpe.atlanticbb.net. [69.161.122.95]) by smtp.gmail.com with ESMTPSA id o2-20020ac872c2000000b0042a9d64396esm4518083qtp.74.2024.02.28.03.54.16 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 28 Feb 2024 03:54:16 -0800 (PST)
Content-Type: multipart/alternative; boundary="Apple-Mail-4E7EAAF7-A050-4DC4-ABC3-F398FDEF53C5"
Content-Transfer-Encoding: 7bit
From: Bernie Volz <bevolz@gmail.com>
Mime-Version: 1.0 (1.0)
Date: Wed, 28 Feb 2024 06:54:05 -0500
Message-Id: <CB30D204-AC74-44EF-9002-8FEABF981B0F@gmail.com>
References: <CAKD1Yr0zxy2xbe8H7gMs+8N5v9UMQX9KSct0OghQ+wodAJeQUw@mail.gmail.com>
Cc: Ole Troan <otroan=40employees.org@dmarc.ietf.org>, Tomoyuki Sahara <tsahara=40iij.ad.jp@dmarc.ietf.org>, dhcwg <dhcwg@ietf.org>
In-Reply-To: <CAKD1Yr0zxy2xbe8H7gMs+8N5v9UMQX9KSct0OghQ+wodAJeQUw@mail.gmail.com>
To: Lorenzo Colitti <lorenzo@google.com>
X-Mailer: iPad Mail (21D61)
Archived-At: <https://mailarchive.ietf.org/arch/msg/dhcwg/tVaMQAu49AMlhW0H6zeIWg2-OaI>
Subject: Re: [dhcwg] recommendation on DHCP6 source port numbers
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: Wed, 28 Feb 2024 11:54:21 -0000
I do think the current text is ambiguous. In practice it allows arbitrary source ports, but because this is unusual, implementers might assume that the other side is using the same port to send and receive. Such an implementation might not interoperate. So if we think the behaviour is OK, then we should clarify the text to say that the source port is not specified and clients and servers need to be prepared to receive messages from arbitrary source ports.
On Feb 28, 2024, at 3:28 AM, Lorenzo Colitti <lorenzo@google.com> wrote:
FWIW the Android client binds to port 546 and does not connect() the socket but uses sendto(). So it will send packets from port 546 and it will receive any packet to port 546 regardless of the source port used by the server. So I guess that happens to be correct.Having the client send from 12345 -> 547 and the server send from 33333 -> 546 is sort of unusual - usually each party in a connection will use the same source port for sending and receiving - but DHCPv6 is not a connected protocol (e.g., some of the messages are multicast and some are unicast), so...I do think the current text is ambiguous. In practice it allows arbitrary source ports, but because this is unusual, implementers might assume that the other side is using the same port to send and receive. Such an implementation might not interoperate. So if we think the behaviour is OK, then we should clarify the text to say that the source port is not specified and clients and servers need to be prepared to receive messages from arbitrary source ports.Bernie,
> No. Normal UDP communication rules apply. A client sends traffic to a well-known destination port and it is free to select whatever port number it likes as the source port. The server’s response is sent from that well known port (as source port) and sent to the client’s selected port (as destination port). This is normal communication and dhcpv6 follows it. That is why nothing is said or needs to be said about the client source port.
I’m with Tomoyuki here.
"
7.2. UDP Ports
Clients listen for DHCP messages on UDP port 546. Servers and relay
agents listen for DHCP messages on UDP port 547.
“
Just checked my little scapy based DHCPv6 server and I do:
reply = (Ether(src=self.interface_info.mac, dst=request[Ether].src) /
IPv6(src=self.interface_info.ip6ll, dst=request[IPv6].src) /
UDP(sport=547, dport=546) /
DHCP6_Reply(trid=trid) /
DHCP6OptServerId(duid=self.duid) /
DHCP6OptClientId(duid=clientduid) /
DHCP6OptIA_NA(iaid=request[DHCP6OptIA_NA].iaid, T1=t1, T2=t2,
ianaopts = DHCP6OptIAAddress(addr=ipv6,
preflft=self.preflft,
validlft=self.validlft)
)
I couldn’t find any text supporting your position Bernie. Although I would be fine if that was also the outcome.
As another implementor I cannot figure out what the correct behaviour is from the RFC.
Cheers,
Ole
> - Bernie Volz
>
>> On Feb 26, 2024, at 1:00 AM, Tomoyuki Sahara <tsahara=40iij.ad.jp@dmarc.ietf.org> wrote:
>>
>> Hi, DHC wg members:
>>
>> Can we make recommendations on source port numbers of DHCP6 messages
>> in rfc8415bis?
>>
>> DHCP6 specification says that DHCP6 clients and servers listen on UDP
>> port 546 and 547 respectively, in RFC8415 section 7.2. It implies
>> that DHCP6 clients MUST send messages to UDP port 547 (server port) and
>> servers MUST send messages to UDP port 546 (client port) to work with
>> their counterpart correctly (though restrictions can be relaxed with
>> RFC8357 for relays).
>>
>> But it says nothing about source port numbers. Without any
>> restrictions, some implementations use ephemeral source port
>> (e.g. 12345) to send their messages. DHCP6 conversations look like:
>>
>> 1. client send Solicit fe80::2#49876 -> ff02::1:2#547
>> 2. server send Advertise fe80::1#547 -> fe80::2#546 (!)
>> 3. client send Request fe80::2#49877(?) -> ff02::1:2#547
>> 4. server send Confirm fe80::1#547 -> fe80::2#546
>>
>> This behavior is not prohibited by the specification but makes
>> confusions for DHCP6 implementer and network/firewall operators (*1).
>> Most Internet protocols nowadays assume that servers send response
>> messages from the port number they received on.
>> (*1 e.g. https://bugzilla.redhat.com/show_bug.cgi?id=952126" rel="noreferrer nofollow" target="_blank">https://bugzilla.redhat.com/show_bug.cgi?id=952126 )
>>
>> In my humble opinion, it is too late to require that DHCP6 client and
>> server MUST send messages from the fixed port number (546/547) because
>> there are too many DHCP6 implementations in the wild. But making a
>> recommendation is helpful for new implementations/deployments of DHCP6.
>>
>> An idea to make such recommendation is adding a text in rfc8415bis:
>>
>> OLD:
>> 7.2. UDP Ports
>> Clients listen for DHCP messages on UDP port 546. Servers and
>> relay agents listen for DHCP messages on UDP port 547.
>>
>> NEW:
>> 7.2. UDP Ports
>> Clients listen for DHCP messages on UDP port 546. Servers and
>> relay agents listen for DHCP messages on UDP port 547.
>>
>> Clients are RECOMMENDED to send DHCP messages from UDP port 546.
>> Servers and relay agents are RECOMMENDED to send DHCP messages
>> from UDP port 547 (unless relay agent includes Relay Source Port
>> Option for DHCP6 [RFC8357]).
>>
>> I know WGLC has been concluded but I believe the recommendations above
>> encourage new implementations to use the standard DHCP6 port numbers
>> on UDP source port.
>>
>>
>> Best regards,
>> Tomoyuki Sahara
>>
>>
>> _______________________________________________
>> dhcwg mailing list
>> dhcwg@ietf.org
>> https://www.ietf.org/mailman/listinfo/dhcwg" rel="noreferrer nofollow" target="_blank">https://www.ietf.org/mailman/listinfo/dhcwg
>
> _______________________________________________
> dhcwg mailing list
> dhcwg@ietf.org
> https://www.ietf.org/mailman/listinfo/dhcwg" rel="noreferrer nofollow" target="_blank">https://www.ietf.org/mailman/listinfo/dhcwg
_______________________________________________
dhcwg mailing list
dhcwg@ietf.org
https://www.ietf.org/mailman/listinfo/dhcwg" rel="noreferrer nofollow" target="_blank">https://www.ietf.org/mailman/listinfo/dhcwg
- Re: [dhcwg] recommendation on DHCP6 source port n… Tomoyuki Sahara
- Re: [dhcwg] recommendation on DHCP6 source port n… Bernie Volz
- [dhcwg] recommendation on DHCP6 source port numbe… Tomoyuki Sahara
- Re: [dhcwg] recommendation on DHCP6 source port n… Tomoyuki Sahara
- Re: [dhcwg] recommendation on DHCP6 source port n… Ole Troan
- Re: [dhcwg] recommendation on DHCP6 source port n… Mark Smith
- Re: [dhcwg] recommendation on DHCP6 source port n… Lorenzo Colitti
- Re: [dhcwg] recommendation on DHCP6 source port n… Bernie Volz
- Re: [dhcwg] recommendation on DHCP6 source port n… Tomoyuki Sahara
- Re: [dhcwg] recommendation on DHCP6 source port n… Lorenzo Colitti
- Re: [dhcwg] recommendation on DHCP6 source port n… Tomoyuki Sahara
- Re: [dhcwg] recommendation on DHCP6 source port n… Ole Troan
- Re: [dhcwg] recommendation on DHCP6 source port n… Bernie Volz
- Re: [dhcwg] recommendation on DHCP6 source port n… Ole Trøan
- Re: [dhcwg] recommendation on DHCP6 source port n… Bernie Volz
- Re: [dhcwg] recommendation on DHCP6 source port n… Ole Troan
- Re: [dhcwg] recommendation on DHCP6 source port n… Bernie Volz
- Re: [dhcwg] recommendation on DHCP6 source port n… Ole Troan
- Re: [dhcwg] recommendation on DHCP6 source port n… Bernie Volz
- Re: [dhcwg] recommendation on DHCP6 source port n… Ole Troan
- Re: [dhcwg] recommendation on DHCP6 source port n… David Farmer
- Re: [dhcwg] recommendation on DHCP6 source port n… Robert Nagy
- Re: [dhcwg] recommendation on DHCP6 source port n… Alan DeKok
- Re: [dhcwg] recommendation on DHCP6 source port n… David Farmer
- Re: [dhcwg] recommendation on DHCP6 source port n… Ole Troan
- Re: [dhcwg] recommendation on DHCP6 source port n… David Farmer
- Re: [dhcwg] recommendation on DHCP6 source port n… Ole Trøan
- Re: [dhcwg] recommendation on DHCP6 source port n… David Farmer
- Re: [dhcwg] recommendation on DHCP6 source port n… rob@deepdivenetworklng.com
- Re: [dhcwg] recommendation on DHCP6 source port n… Bernie Volz
- Re: [dhcwg] recommendation on DHCP6 source port n… David Farmer
- Re: [dhcwg] recommendation on DHCP6 source port n… Bernie Volz
- Re: [dhcwg] recommendation on DHCP6 source port n… Ted Lemon
- Re: [dhcwg] recommendation on DHCP6 source port n… rob@deepdivenetworklng.com
- Re: [dhcwg] recommendation on DHCP6 source port n… rob@deepdivenetworklng.com
- Re: [dhcwg] recommendation on DHCP6 source port n… Michael Richardson
- Re: [dhcwg] recommendation on DHCP6 source port n… rob@deepdivenetworklng.com
- Re: [dhcwg] recommendation on DHCP6 source port n… Bernie Volz
- Re: [dhcwg] recommendation on DHCP6 source port n… Robert Nagy
- Re: [dhcwg] recommendation on DHCP6 source port n… Michael Richardson
- Re: [dhcwg] recommendation on DHCP6 source port n… Bernie Volz
- Re: [dhcwg] recommendation on DHCP6 source port n… Ole Troan
- Re: [dhcwg] recommendation on DHCP6 source port n… Bernie Volz
- Re: [dhcwg] recommendation on DHCP6 source port n… Ole Troan