Many packages do not work with systemd-networkd ... yet. (see bug Report on LaunchPad)
For now, ISC DHCP client (dhclient) still reign supreme, particularly in custom DHCP-Option needed by many ISP's DHCP servers (I'm looking at you, Juniper Networks), as well as supporting OS-scripting.
So, head over to /etc/systemd/network to edit the config file that deals with dynamic IP addressing and disable systemd's DHCP in the following:
[Match]
Name=eth1
[Network]
# Using ISC DHCP client (dhclient) instead of systemd-networkd
# Better support of DHCP-Options and OS-specific script supports
DHCP=no
Then ensure the following for ISC DHCP client (dhclient) in /etc/network/interfaces:
auto eth0
iface eth0 inet dhcp
And for /etc/dhcp/dhclient.conf:
send host-name "Wireless_Broadband_Router";
send domain-name "home";
request subnet-mask, broadcast-address, time-offset, routers,
domain-name, domain-name-servers, time-servers, log-servers,
default-ip-ttl, dhcp-requested-address, dhcp-lease-time,
dhcp-server-identifier,dhcp-parameter-request-list,
vendor-class-identifier,dhcp-client-identifier,
www-server,
dhcp6.name-servers, dhcp6.domain-search, dhcp6.fqdn,
dhcp6.sntp-servers,
interface-mtu,
ntp-servers;
Last step is to have systemd fire up the ISC DHCP client as a daemon. Create a file in /etc/systemd/system/[email protected].
# cat /etc/systemd/system/[email protected]
[Unit]
Description=dhclient on %I
Wants=network.target
Before=network.target
BindsTo=sys-subsystem-net-devices-%i.device
After=sys-subsystem-net-devices-%i.device
[Service]
# ExecStart=/sbin/dhclient -4 -q %I
ExecStart=/sbin/dhclient -4 -v -pf /run/dhclient.%I.pid -lf /var/lib/dhcp/dhclient.%I.leases %I
[Install]
WantedBy=multi-user.target
And make ISC DHCP client available to systemd daemon by executing from a shell:
sudo systemctl daemon-reload #makes the [email protected] available
sudo systemctl enable [email protected]
sudo systemctl start [email protected]