Skip to content
Rubén Torrero Marijnissen edited this page Jun 6, 2018 · 21 revisions

Frequently Asked Questions

Q: Why is wicked unable to provide a DHCPv4 lease on newer versions?

DHCPv4 is using a client identifier (client-id) option to identify its clients to the DHCPv4 server using it to index their database of address bindings. This value is expected to be unique for all clients in the same administrative domain. The RFC4361 updates to use a DHCPv6 compatible client-identifier.

Wicked recently changed to provide this client-id's based on RFC 4361 in favour of the older RFC 2132 client-id's as this new client-id is required to perform DDNS updates for IPv4 (A) and IPv6 (AAAA) address records in the same DNS zone (domain) and mandatory on Infiniband interfaces. It also will make transition to IPv6 smoother as DHCPv6 also uses the same client-id's.

However, this has caused some issues with older DHCPv4 servers and existing setups where the client-id stored by the server is used to assign a static address. It is recommended to fix this server-side, but still, wicked provides several ways of addressing this issue:

  • The sysconfig ifcfg-<ifname> file can contain a DHCLIENT_CLIENT_ID=... variable allowing to manually set the desired client-id; in xml (wicked show-config) that would be <ipv4:dhcp><client-id>...</client-id></ipv4:dhcp>. This variable can be set for the linuxrc installer as i.e. as kernel/boot parameter:

    ifcfg=02:03:04:05:06:07=dhcp4,DHCLIENT_CLIENT_ID=01:02:03:04:05:06:07

  • When the variable does not provide any client-id, wicked is using the <addrconf><dhcp4><create-cid>...</create-cid></dhcp4></addrconf> variable to generate one. This can be changed to use the RFC 2132 cliend-id's using a local.xml file to override the default value of "rfc4321". See wicked-config(5) man page for more details.

  • When there is no advise in wicked-config which one to generate, a compile time default is used, which can be specified via configure option --enable/disable-dhcp4-rfc4361-cid


Q: Why does wicked not request DHCPv6 IP address on my card?

Wicked follows the network administrator configuration provided by the router in its advertisements (IPv6 RA) by default and starts DHCPv6 request if the Managed or OtherConfig flags in the RA forwarded to it by the kernel is enabled. When there is no IPv6 router on the network, the router sends an IPv6 RA with DHCPv6 disabled, the firewall blocks icmpv6 traffic or the network card is incorrectly reporting carrier detection, wicked-dhcp6 may stay silent waiting for RA events.

Set FW_BOOT_FULL_INIT="yes" in /etc/sysconfig/SuSEfirewall2, so the SuSEfirewall2_init.service does not block icmpv6 packets. To provide/override the RA flags, set the DHCLIENT6_MODE=managed either in the ifcfg(5) file or in /etc/sysconfig/network/dhcp.

See also ifcfg-dhcp(5) manual page.


Q: My network is not IPv6 enabled, how to use DHCPv4 only?

Change the ifcfg(5) config file to use BOOTPROTO=dhcp4 instead of BOOTPROTO=dhcp. To disable IPv6 completely, you can use either sysctl.conf(5) config file:

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

or the ipv6.disable=1 kernel boot parameter, e.g. in the GRUB_CMDLINE_LINUX variables of /etc/default/grub.


Q: Why is wicked not setting IP address on my network card?

The network card probably does not have carrier.

Wicked monitors events and states and preforms the setup steps according to state and layering of network device. Once the carrier is detected (and e.g. wireless link authentication was successful), it will start verifying the IP addresses for duplicates and applying them.

To break the rules and apply the IP address before the carrier is detected and layer 2 setup finished, you can disable it per interface using LINK_REQUIRED=no in the ifcfg- config file.

See also ifcfg(5) manual page.


Q: Why wicked does not set my (default) static route?

Each route using a gateway needs a direct route covering the gateway. When there is a static IP address (IPADDR) defined and it is in the same network as the gateway, the IP address causes to prepend the direct route matching also the gateway.

Otherwise declare such route explicitely, for example, when there is an IPADDR="192.168.1.2/24" (192.168.1 net), but the router has the IP 192.168.0.1 (in 192.168.0 net), define an explicit direct route for the gateway first:

192.168.0.1  -           - eth0
default      192.168.0.1 - eth0

See also routes(5) manual page.

Clone this wiki locally