DHCPv6 client operation

I`m using IPv6 on my home network and providing IPv6 addresse via SLAAC.
The DHCP- and DNS-Server are provided by a Fritzbox.
There is no problem with the IPv6 addresses itself, but with the
name resolution of the linux clients. The hostnames of the linux clients
will not be resolved, because the registration with the DNS-Server failed.
The transmission of the hostname is done by a message Type Information-Request,
but the option 39 (FQDN) is not allowed for this message type.
Wireshark shows an error message in this part of the traffic:

DHCPv6
Message type: Information-request (11)
Transaction ID: 0xa1f8fe
Client Identifier
Option: Client Identifier (1)
Length: 18
DUID: 00ad42daeaaae7dab8dae29a350ad9ab0a1c
DUID Type: Universally Unique IDentifier (UUID) (4)
UUID: 4a94daade7adbdaaedaed5add9ab0a1c
Option Request
Option: Option Request (6)
Length: 12
Requested Option code: DNS recursive name server (23)
Requested Option code: Domain Search List (24)
Requested Option code: Simple Network Time Protocol Server (31)
Requested Option code: DNS recursive name server (23)
Requested Option code: Domain Search List (24)
Requested Option code: Client Identifier (1)
Elapsed time
Option: Elapsed time (8)
Length: 2
Elapsed time: 0ms
Client Fully Qualified Domain Name
Option: Client Fully Qualified Domain Name (39)
Length: 8
Only the following message types are permitted to use OPTION_CLIENT_FQDN:\nSOLICIT, REQUEST, RENEW, REBIND, ADVERTISE, and REPLY
This message type is not permitted to use OPTION_CLIENT_FQDN
[Expert Info (Error/Protocol): This message type is not permitted to use OPTION_CLIENT_FQDN]

Windows clients are using the message type solicit at that point and it works.
Can I change the the message type of the ISC DHCPv6 client from openSUSE 15.5 somewhere?

Your message is badly readable. Please, use preformatted text when posting computer output.

Client sends what you told it to sent. Presumably you somehow configured the client to send this option. How did you configure it?

Nothing special, it´s an out of the box configuration.
All the defaults from the /etc/sysconfig/network/dhcp file.
I´m wondering about the protocol error. It shouldn´t be possible
to send the option 39 if it´s not allowed with this message type.

Are you using wicked or NetworkManager?

Network Manager

Then /etc/sysconfig/network/dhcp is irrelevant and we are back to the same question - how did you configure NetworkManager?

ok, Network Manager is using the following dhclient conf:

→ /var/lib/NetworkManager/dhclient-wlan0.conf

with following content:

#Created by NetworkManager
#Merged from /etc/dhclient.conf

#/etc/dhclient.conf – dhclient configuration file
#See “man dhclient.conf” for further details

######################################################
#Sometimes, a special configuration is required for
#e.g. Cable Modem providers (@Home – TCI).
#For example, it may be required to send out a special
#dhcp-client-identifier or to override some settings.

#Uncomment and fill in the appropriate settings:

#send dhcp-client-identifier “c32423-a”
#or as hex octets
#send dhcp-client-identifier 1:0:a0:24:ab:fb:9c;

#Note, that hostname is usually send using -H option.
#send host-name “andare.fugue.com”;

#supersede domain-name “fugue.com home.vix.com”;
#prepend domain-name-servers 127.0.0.1;

#####################################################
#uncomment to request a specific lease time, otherwise
#the dhcp server will provide its default lease time:
#send dhcp-lease-time 3600;

#Define RFC 3442 classless static route option

option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;

#Define RFC 4833 timezone options

option rfc4833-tz-posix-string code 100 = string;
option rfc4833-tz-name code 101 = string;
#Request several well known/usefull dhcp options.
#rfc4833-tz-posix-string, rfc4833-tz-name;
#We request above options, require only the IP configuration:
require subnet-mask;
#All another options (DNS, NTP, NIS, …) are applied using
#netconfig(8) modules.
#To enforce the availability of the dns server list, set to:
#require subnet-mask, domain-name-servers;
reboot 10;
select-timeout 5;
initial-interval 2;
send host-name “rasp1”; # added by NetworkManager

option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;
option ms-classless-static-routes code 249 = array of unsigned integer 8;
option wpad code 252 = string;

request; # override dhclient defaults
also request subnet-mask;
also request broadcast-address;
also request routers;
also request rfc3442-classless-static-routes;
also request interface-mtu;
also request host-name;
also request domain-name;
also request domain-search;
also request domain-name-servers;
also request nis-domain;
also request nis-servers;
also request nds-context;
also request nds-servers;
also request nds-tree-name;
also request netbios-name-servers;
also request netbios-dd-server;
also request netbios-node-type;
also request netbios-scope;
also request ntp-servers;
also request ms-classless-static-routes;
also request static-routes;
also request wpad;
also request root-path;

Please note how @arvidjaar asked you to post computer text with the Preformatted text feature of the forums. It is the </> button in the toolbar of the post editor.

Also you should include the line with the command you use to get the output within the copied/pasted text. So no

but

cat var/lib/NetworkManager/dhclient-wlan0.conf
...
...
...

Then we all see what you did and what you got in one glance.

Do you have any evidence that this file is actually used? Because it most certainly does not contain any DHCPv6 Client FQDN option.

systemctl status network.service

 NetworkManager.service - Network Manager
     Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset: disabled)
     Active: active (running) since Wed 2023-08-16 14:00:13 CEST; 4 months 10 days ago
       Docs: man:NetworkManager(8)
   Main PID: 696 (NetworkManager)
      Tasks: 4 (limit: 4915)
     CGroup: /system.slice/NetworkManager.service
             ├─ 696 /usr/sbin/NetworkManager --no-daemon
             └─ 954 /sbin/dhclient -d -q -sf /usr/lib/nm-dhcp-helper -pf /var/run/NetworkManager/dhclient-wlan0.pid -lf /var/lib/NetworkManager/dhclient-d052d10a-1e88-4fea-b312-572780ef8f25-wlan0.lease -cf /var/lib/NetworkManager/dhclient-wlan0.conf wlan0

Dec 26 04:01:18 rasp1 NetworkManager[696]: <info>  [1703559678.5672] policy: set 'sec1' (wlan0) as default for IPv6 routing and DNS
Dec 26 04:58:46 rasp1 NetworkManager[696]: <info>  [1703563126.8848] policy: set 'sec1' (wlan0) as default for IPv6 routing and DNS
Notice: journal has been rotated since unit was started, output may be incomplete.

Only DHCPv4 is active. You should have something like

     CGroup: /system.slice/NetworkManager.service
             ├─131692 /usr/sbin/NetworkManager --no-daemon
             ├─131873 /sbin/dhclient -d -q -sf /usr/lib/NetworkManager/nm-dhcp-helper -pf /run/NetworkManager/dhclient-wlp2s0.pid -lf /var/lib/NetworkManager/dhclient-7fdc67fc-d846-4fed-a6f5-2460f96a1708-wlp2s0.lease -cf /var/lib/NetworkManager/dhclient-wlp2s0.conf wlp2s0
             └─132032 /sbin/dhclient -d -q -6 -S -sf /usr/lib/NetworkManager/nm-dhcp-helper -pf /run/NetworkManager/dhclient6-wlp2s0.pid -lf /var/lib/NetworkManager/dhclient6-7fdc67fc-d846-4fed-a6f5-2460f96a1708-wlp2s0.lease -cf /var/lib/NetworkManager/dhclient6-wlp2s0.conf wlp2s0

I actually reproduced it with NetworkManager using dhclient. It is not an openSUSE problem, it is NetworkManager bug. When your router is configured to send RA with Other flag, NM is using dhclient with -S option that sends INFORM request. But in this case NM should not be using Client FQDN option.

So we still do not know what sends these DHCPv6 requests (although it is very likely dhclient invoked by NM). But please notice, that to use Client FQDN option you must use DHCPv6 for address assignment. So you need to configure your DHCPv6 server to allocate addressed using DHCPv6 and your router to announce it in RA.

Your Windows may be configured to always use DHCPv6 ignoring RA.

You may upload packet trace which will include RA from your router so we could verify what is being sent.

As for NetworkManager - care to submit bug report on NM site?

Hi all,
I am sorry if I’m not being useful, just a brief question: Is there really any use or advantage of using IPv6 in a (home) LAN? After all, it was invented due to a shortage of IPv4 addresses in the global. But for a LAN there’s a reserved address range which is more than enough for home use.
Having to deal with a DNS server in my LAN to resolve hostnames I can otherwise easily set with /etc/hosts and /etc/hostname would rather annoy me. Also, I don’t know enough about IPv6, but what use is even asking for a Fully Qualified Domain Name in a LAN?
As I said, I’m sorry for not helping but do you really have to have that issue?

1 Like

Start new topic with your questions and clear subject.

ISC has announced the end of maintenance for ISC DHCP as of the end of 2022.

And? How is it relevant? Of course, NM developers may not be interested in fixing dhclient plugin for this reason, but did you even ask them?

Back to your issue - you may try to explicitly configure your NM connection profile to use DHCPv6 only instead of using SLAAC (which is default).