Running the Dibbler DHCPv6 Client as a Service
In a previous post, I explained how to install and configure the Dibbler DHCPv6 client, which is necessary for using IPv6 at certain providers such as online.net. Perplexingly, I could only get the client to run interactively and not as a service. This meant that I would need to make sure that I ran the client every time the server started, and that I needed to restart the client if it ever crashed and exited. Less than ideal.
Running dibbler-client.exe install will install a system service, but as mentioned in my previous post when running dibbler-client.exe start to start the service, it errors with “Service DHCPv6Client startup failed” with no further information on the console or in the logs.
Delving in to the System log using the Windows Event Viewer however reveals two very interesting events attributed to the Service Control Manager;
The Microsoft IPv6 Protocol Driver service failed to start due to the following error: The system cannot find the file specified. The Dibbler - a DHCPv6 client service depends on the Microsoft IPv6 Protocol Driver service which failed to start because of the following error: The system cannot find the file specified.
So in short, the Dibbler client service can’t start because it depends on the Microsoft IPv6 Protocol Driver, which has also failed to start. A little Googling reveals this might be caused by running Hyper-V (which I am), but with no solid confirmation. There is also no information as to why the Microsoft IPv6 Protocol Driver fails to start. Considering however that the Dibbler client runs fine interactively, this suggests that it isn’t really dependent on the Microsoft IPv6 Protocol Driver. Therefore, if the service dependency is removed, the Dibbler client service should run.
Removing the dependency isn’t too complicated, but does require editing the registry. Open the Registry Editor by running regedit and browse to HKLM\SYSTEM\CurrentControlSet\Services\DHCPv6Client. Edit the DependOnService key so that it only contains “winmgmt” and does not include “tcpip6″.
Close down the Registry Editor and restart your system. When it comes back up again, check the status of the Dibber client in the service manager, the status should show as “Running”. If it isn’t, check the System Event Log again for any errors. You can also check the dibber-client.log file in Dibber’s installation directory for any further errors.