The old way needed the "auto
" directive to indicate you want the interface to be up at boot:
$ man interfaces
INTERFACES(5) File formats INTERFACES(5)
NAME
/etc/network/interfaces - network interface configuration for ifup and ifdown
DESCRIPTION
/etc/network/interfaces contains network interface configuration information
for the ifup(8) and ifdown(8) commands. This is where you configure how your
system is connected to the network.
[...]
INTERFACE SELECTION
Lines beginning with the word "auto" are used to identify the physical inter‐
faces to be brought up when ifup is run with the -a option. (This option is
also used by the system boot scripts, so interfaces marked "auto" are brought
up at boot time.) Physical interface names should follow the word "auto" on
the same line. There can be multiple "auto" stanzas. ifup brings the named
interfaces up in the order listed.
Lines beginning with "allow-" are used to identify interfaces that should be
brought up automatically by various subsytems. This may be done using a com‐
mand such as "ifup --allow=hotplug eth0 eth1", which will only bring up eth0
or eth1 if it is listed in an "allow-hotplug" line. Note that "allow-auto" and
"auto" are synonyms. (Interfaces marked "allow-hotplug" are brought up when
udev detects them. This can either be during boot if the interface is already
present, or at a later time, for example when plugging in a USB network card.
Please note that this does not have anything to do with detecting a network
cable being plugged in.)
[...]
Now dhcpcd5 brings up the interface:
$ man dhcpcd5
DHCPCD(8) BSD System Manager's Manual DHCPCD(8)
NAME
dhcpcd — a DHCP client
SYNOPSIS
dhcpcd [-146ABbDdEGgHJKLMNPpqTV] [-C, --nohook hook] [-c, --script script]
[-e, --env value] [-F, --fqdn FQDN] [-f, --config file]
[-h, --hostname hostname] [-I, --clientid clientid]
[-i, --vendorclassid vendorclassid] [-j, --logfile logfile]
[-l, --leasetime seconds] [-m, --metric metric] [-O, --nooption option]
[-o, --option option] [-Q, --require option] [-r, --request address]
[-S, --static value] [-s, --inform address[/cidr]] [--inform6]
[-t, --timeout seconds] [-u, --userclass class]
[-v, --vendor code, value] [-W, --whitelist address[/cidr]] [-w]
[--waitip [4 | 6]] [-y, --reboot seconds]
[-X, --blacklist address[/cidr]] [-Z, --denyinterfaces pattern]
[-z, --allowinterfaces pattern] [--inactive] [interface] [...]
dhcpcd -n, --rebind [interface]
dhcpcd -k, --release [interface]
dhcpcd -U, --dumplease interface
dhcpcd --version
dhcpcd -x, --exit [interface]
DESCRIPTION
dhcpcd is an implementation of the DHCP client specified in RFC 2131. dhcpcd
gets the host information (IP address, routes, etc) from a DHCP server and con‐
figures the network interface of the machine on which it is running. dhcpcd
then runs the configuration script which writes DNS information to
resolvconf(8), if available, otherwise directly to /etc/resolv.conf. If the
hostname is currently blank, (null) or localhost, or force_hostname is YES or
TRUE or 1 then dhcpcd sets the hostname to the one supplied by the DHCP server.
dhcpcd then daemonises and waits for the lease renewal time to lapse. It will
then attempt to renew its lease and reconfigure if the new lease changes when
the lease beings to expire or the DHCP server sends message to renew early.
[...]
Fine tuning
You can fine-tune the behaviour of dhcpcd with the following options:
-S, --static value
Configures a static DHCP value. If you set ip_address then dhcpcd will
not attempt to obtain a lease and just use the value for the address
with an infinite lease time.
Here is an example which configures a static address, routes and dns.
dhcpcd -S ip_address=192.168.0.10/24 \
-S routers=192.168.0.1 \
-S domain_name_servers=192.168.0.1 \
eth0
[...]
FILES
/etc/dhcpcd.conf
Configuration file for dhcpcd. If you always use the same options, put them
here.
[...]