OpenSUSE 13: Workaround for slow boot problem of wickedd-dhcp6

This article will describe the workaround for avoiding problem that wickedd-dhcp6's boot time is slow.

1 Slow boot problem of wickedd-dhcp6

On non IPv6 network, wickedd-dhcp6 will be time out on boot. On IPv6 network, wickedd-dhcp6 might not be time out because DHCPv6 response will be returned.

> systemd-analyze
Startup finished in 2.542s (kernel) + 1.382s (initrd) + 22.252s (userspace) = 26.177s

There is a report for problem of wickedd-dhcp6. But wicked-0.6.39-36.1 has still slow problem of wickedd-dhcp6, this might be other problem.

2 Workaround

wicked.service always calls wickedd-dhcp6.service. There are two workarounds. First is customizing values of wickedd-dhcp6. Second is using NetworkManager.service instead of wicked.service.

2.1 Customize values of wickedd-dhcp6

Customizing waiting and timeout value will improve boot time of wickedd-dhcp6.

> diff -uprN /etc/sysconfig/network/dhcp{.org,}
--- /etc/sysconfig/network/dhcp.org     2016-12-05 00:58:04.860081134 +0900
+++ /etc/sysconfig/network/dhcp 2016-12-05 01:05:54.648180334 +0900
@@ -239,7 +239,7 @@ DHCLIENT6_SLEEP="0"
 # When you increase this time, increase also the WAIT_FOR_INTERFACES variable
 # e.g. to a value twice as high as the time specified here.
 #
-DHCLIENT6_WAIT_AT_BOOT="15"
+DHCLIENT6_WAIT_AT_BOOT="1"

 ## Type:       integer
 ## Default:    "0"
@@ -248,7 +248,7 @@ DHCLIENT6_WAIT_AT_BOOT="15"
 # not get a reply from the dhcp server. Before you set this variable, take a
 # look at DHCLIENT6_WAIT_AT_BOOT allowing to continue in background instead.
 #
-DHCLIENT6_TIMEOUT="0"
+DHCLIENT6_TIMEOUT="1"

 ## Type:        list<rfc3004,string>
 ## Default:     string

2.2 Use NetworkManager.service instead of wicked.service

Initialize network interface with NetworkManager.service instead of wicked.service. But wicked.service is major way, this might be minor customization.

> sudo systemctl disable wicked.service
> sudo systemctl enable NetworkManager.service

3 Execution result

Boot time will be shorten about 15 seconds.

> systemd-analyze
Startup finished in 2.552s (kernel) + 1.319s (initrd) + 3.260s (userspace) = 7.132s