How to get advanced dhcp options with dhcp-client?

How to force getting dhcp client options?
As a requirement for network, I need to get advanced dhcp options from the server. Usually this would be done using dhcp-client with a dhclient-interface.conf file but apparently, wicked is not able to get these advanced config so the package dhcp-client is required. How to make this work on 15.4?
Documents are unexisting or insufficient.
Tried installing networkmanager and stopping wicked services but networkmanager doesn’t config with the ifcfg files so doesn’t work for me.

Without any details from your side, it is only possible to point at man page which describes how to request additional options:

DHCLIENT_REQUEST_OPTION[SUFFIX]
Specifies a space separate list of additional DHCPv4 options to request.
The options can be specified by their code number or by name when defined
as custom dhcp option (see wicked-config.5 man page).

And? It can be configured using native configuration files or CLI/TUI/GUI.

I’m looking to configure dhcp interface on my server with specific options. To get this working, I’ve created a file /etc/dhcp/dhclient-vlan401.conf following the info in “man 5 dhclient.conf”

The problem is that this server seems to not pickup those config settings, the file /var/lib/dhcp/dhclient.leases remains empty, I expected the received options there.

So reading the info here: SLES 15 SP4 | Administration Guide | DHCP I “assume” that wicked is not able to pickup this options so I installed the dhcp-client package as instructed. This is the quote:

By default, the wicked tools are installed with the services wickedd-dhcp4 and wickedd-dhcp6 . Both are launched automatically on each system boot to watch for a DHCP server. They do not need a configuration file to do their job and work out of the box in most standard setups. For more complex situations, use the ISC dhcp-client , which is controlled by means of the configuration files /etc/dhclient.conf and /etc/dhclient6.conf .

Next I stopped wicked services (and disabled them) and installed network manager. This, probably because I don’t know enough about networkmanager, doesn’t work. The interfaces are not configured.

The main question here is: do I really need networkmanager for the dhcp-client options to work? My preference would be to have no wrappersoftware but use the /etc/sysconfig/network/ifcfg-* and ifroute* files.
I can’t seem to find the docu that explains how to get network setup (bond, vlan etc) with dhcp-client options and without networkmanager or wicked.

It’d be really helpful if I could find this type of setup documentation for suse 15.4

Kind Regards.

Edit: I’ve added the specific config in the /etc/dhclient.conf file like this:

interface "vlan401" {
  send dhcp-client-identifier 01:<MAC>;
  request subnet-mask, domain-name, domain-name-servers, host-name;
  send host-name gethostname();

  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;

  also request rfc3442-classless-static-routes;
  also request ms-classless-static-routes;
  also request static-routes;
  also request wpad;
  also request ntp-servers;
}

because I’m unsure if seperated files are picked up.

You completely ignored quote from wicked man page that suggests that you can configure wicked to request an arbitrary DHCP option.

I did. So now after some reading into wicked manpgs, my understanding is that the wickedd server will use server-local.xml file for custom settings on interface when configuring it.

Based on my above dhclient.conf file I figured the following should be equivalent:

<config>
  <addrconf>
    <dhcp4>
      <define>
        <option>
          <code>252</code>
          <name>wpad</name>
          <string/>
        </option>
      </define>
      <device name="vlan401" >
        <client_id>01:08:f1:ea:81:bd:98</client_id>
        <allow-update>
          <ntp/>
          <dns/>
          <hostname/>
          <default-route/>
        </allow-update>
        <route-options>
          <classless/>
          <ms-classless/>
          <static-routes/>
        </route-options>
      </device>
    </dhcp4>
  </addrconf>
</config>

It appears the codes 121 and 249 already have an equivalent in routing options and only wpad option was missing for ipv4 interface config.

From the show-config command I see the wicked client reads the config right.

However, I’m still looking to find a way to show which dhcp options I actually got from when the wickedd configures the interface. With the debug option bringing up the interface, I can’t see them so unsure if the server is not handing them or the wickedd does not read my server-local.xml correctly? However it should because the include is in server.xml and no errors or warnings are given.
wicked ehttool doesn’t show anything about the dchp options either which is kind of expected as it’s interface info from the client?

Cannot you check your server logs? Or simply capture traffic using tcpdump/wireshark?

The part you show defines option with the name wpad. You need to somehow tell the wicked to actually request this option. I have no idea how to do it using xml (and I am not aware of anyone actually using xml to configure wicked) but you can define them in ifcfg as man ifcfg-dhcp which I quoted shows.