jasonwryan -thanks!
Your post helped me figure it out why my Ethernet interface name was changed to enp0s3 and why - I like the old naming convention ethx easier for me to remember. So went the route with custom rules in /etc/udev/rules.d
Here is what I used.
70-my-net-names.rules
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="08:00:27:3b:f3:cd", NAME="eth0"
#Copy the dhcp example one level up and rename it or create a symlink to it
cp /etc/network.d/examples/ethernet-dhcp /etc/network.d/dhcp
# Modify the 'NETWORKS' line in /etc/conf.d/netcfg by substituting the name of that file
# Enable service in systemd
systemctl enable netcfg@dhcp
systemctl enable dhcpcd@enp0s3
systemctl enable dhcpcd@eth0.service
Seems perfectly valid, eh? But after reboot network I've got the following messages:
[ TIME ] Timed out waiting for device sys-subsystem-net-devices-eth0.device.
[DEPEND] Dependency failed for dhcpcd on eth0.
dmesg | less
...
systemd-udevd[111]: renamed network interface eth0 to enp0s3
...
It appears systemd changes network interface names. But then I suppose dhcpcd@.service is to be removed:
[Unit]
Description=dhcpcd on %I
Wants=network.target
Before=network.target
BindsTo=sys-subsystem-net-devices-%i.device
After=sys-subsystem-net-devices-%i.device
[Service]
Type=forking
PIDFile=/run/dhcpcd-%I.pid
ExecStart=/usr/sbin/dhcpcd -q -w %I
ExecStop=/usr/sbin/dhcpcd -x %I
[Install]
Alias=multi-user.target.wants/dhcpcd@eth0.service