After moving to a new office a month ago I had to switch from wifi to an ethernet connnection. This lead to a very unfortunate effect: while the boot process was very fast in the office and with the ethernet cable attached, at home or when traveling part of the init process was delayed by 2 minutes waiting for the dhcp timeout on the disconnected ethernet port.
Today a friend pointed me to a (german) website about configuring wpa_supplicant on ubuntu and there I stumbled upon ifplugd.
Ifplugd is a small daemon that watches ethernet ports for indicators of a connected cable. If or when a cable is attached the interface is brought up.
On gentoo the installation is very straightforward: after emerging “ifplugd” it is automatically used for all ethernet setups. So when I now start net.eth0 it quickly forks ifplugd and continues with the boot process. In case the cable is connected the interface is brought up by ifplugd and all dependent services like cups and samba are started.