The [DHCPv4] section configures the DHCPv4 client, if it is
enabled with the DHCP= setting described above:
SendHostname=
When true (the default), the machine's hostname (or the value
specified with Hostname=, described below) will be sent to
the DHCP server. Note that the hostname must consist only of
7-bit ASCII lower-case characters and no spaces or dots, and
be formatted as a valid DNS domain name. Otherwise, the
hostname is not sent even if this option is true.
Hostname=
Use this value for the hostname which is sent to the DHCP
server, instead of machine's hostname. Note that the
specified hostname must consist only of 7-bit ASCII
lower-case characters and no spaces or dots, and be formatted
as a valid DNS domain name.
MUDURL=
When configured, the specified Manufacturer Usage Description
(MUD) URL will be sent to the DHCPv4 server. Takes a URL of
length up to 255 characters. A superficial verification that
the string is a valid URL will be performed. DHCPv4 clients
are intended to have at most one MUD URL associated with
them. See RFC 8520
[16].
MUD is an embedded software standard defined by the IETF that
allows IoT device makers to advertise device specifications,
including the intended communication patterns for their
device when it connects to the network. The network can then
use this to author a context-specific access policy, so the
device functions only within those parameters.
ClientIdentifier=
The DHCPv4 client identifier to use. Takes one of mac
, duid
or duid-only
. If set to mac
, the MAC address of the link is
used. If set to duid
, an RFC4361-compliant Client ID, which
is the combination of IAID and DUID (see below), is used. If
set to duid-only
, only DUID is used, this may not be RFC
compliant, but some setups may require to use this. Defaults
to duid
.
VendorClassIdentifier=
The vendor class identifier used to identify vendor type and
configuration.
UserClass=
A DHCPv4 client can use UserClass option to identify the type
or category of user or applications it represents. The
information contained in this option is a string that
represents the user class of which the client is a member.
Each class sets an identifying string of information to be
used by the DHCP service to classify clients. Takes a
whitespace-separated list of strings.
DUIDType=
Override the global DUIDType= setting for this network. See
networkd.conf(5) for a description of possible values.
DUIDRawData=
Override the global DUIDRawData= setting for this network.
See networkd.conf(5) for a description of possible values.
IAID=
The DHCP Identity Association Identifier (IAID) for the
interface, a 32-bit unsigned integer.
Anonymize=
Takes a boolean. When true, the options sent to the DHCP
server will follow the RFC 7844
[17] (Anonymity Profiles for
DHCP Clients) to minimize disclosure of identifying
information. Defaults to false.
This option should only be set to true when MACAddressPolicy=
is set to random
(see systemd.link(5)).
When true, SendHostname=, ClientIdentifier=,
VendorClassIdentifier=, UserClass=, RequestOptions=,
SendOption=, SendVendorOption=, and MUDURL= are ignored.
With this option enabled DHCP requests will mimic those
generated by Microsoft Windows, in order to reduce the
ability to fingerprint and recognize installations. This
means DHCP request sizes will grow and lease data will be
more comprehensive than normally, though most of the
requested data is not actually used.
RequestOptions=
Sets request options to be sent to the server in the DHCPv4
request options list. A whitespace-separated list of integers
in the range 1...254. Defaults to unset.
SendOption=
Send an arbitrary raw option in the DHCPv4 request. Takes a
DHCP option number, data type and data separated with a colon
("option:type:value"). The option number must be an integer
in the range 1...254. The type takes one of "uint8",
"uint16", "uint32", "ipv4address", or "string". Special
characters in the data string may be escaped using C-style
escapes
[18]. This setting can be specified multiple times. If
an empty string is specified, then all options specified
earlier are cleared. Defaults to unset.
SendVendorOption=
Send an arbitrary vendor option in the DHCPv4 request. Takes
a DHCP option number, data type and data separated with a
colon ("option:type:value"). The option number must be an
integer in the range 1...254. The type takes one of "uint8",
"uint16", "uint32", "ipv4address", or "string". Special
characters in the data string may be escaped using C-style
escapes
[18]. This setting can be specified multiple times. If
an empty string is specified, then all options specified
earlier are cleared. Defaults to unset.
Label=
Specifies the label for the IPv4 address received from the
DHCP server. The label must be a 7-bit ASCII string with a
length of 1...15 characters. Defaults to unset.
UseDNS=
When true (the default), the DNS servers received from the
DHCP server will be used.
This corresponds to the nameserver
option in resolv.conf(5).
RoutesToDNS=
When true, the routes to the DNS servers received from the
DHCP server will be configured. When UseDNS= is disabled,
this setting is ignored. Defaults to true.
UseNTP=
When true (the default), the NTP servers received from the
DHCP server will be used by systemd-timesyncd.service.
RoutesToNTP=
When true, the routes to the NTP servers received from the
DHCP server will be configured. When UseNTP= is disabled,
this setting is ignored. Defaults to true.
UseSIP=
When true (the default), the SIP servers received from the
DHCP server will be collected and made available to client
programs.
UseMTU=
When true, the interface maximum transmission unit from the
DHCP server will be used on the current link. If MTUBytes= is
set, then this setting is ignored. Defaults to false.
UseHostname=
When true (the default), the hostname received from the DHCP
server will be set as the transient hostname of the system.
UseDomains=
Takes a boolean, or the special value route
. When true, the
domain name received from the DHCP server will be used as DNS
search domain over this link, similar to the effect of the
Domains=
setting. If set to route
, the domain name received
from the DHCP server will be used for routing DNS queries
only, but not for searching, similar to the effect of the
Domains=
setting when the argument is prefixed with "~".
Defaults to false.
It is recommended to enable this option only on trusted
networks, as setting this affects resolution of all
hostnames, in particular of single-label names. It is
generally safer to use the supplied domain only as routing
domain, rather than as search domain, in order to not have it
affect local resolution of single-label names.
When set to true, this setting corresponds to the domain
option in resolv.conf(5).
UseRoutes=
When true (the default), the static routes will be requested
from the DHCP server and added to the routing table with a
metric of 1024, and a scope of global
, link
or host
,
depending on the route's destination and gateway. If the
destination is on the local host, e.g., 127.x.x.x, or the
same as the link's own address, the scope will be set to
host
. Otherwise if the gateway is null (a direct route), a
link
scope will be used. For anything else, scope defaults to
global
.
RouteMetric=
Set the routing metric for routes specified by the DHCP
server (including the prefix route added for the specified
prefix). Takes an unsigned integer in the range
0...4294967295. Defaults to 1024.
RouteTable=num
The table identifier for DHCP routes (a number between 1 and
4294967295, or 0 to unset). The table can be retrieved using
ip route show table
num.
When used in combination with VRF=, the VRF's routing table
is used when this parameter is not specified.
RouteMTUBytes=
Specifies the MTU for the DHCP routes. Please see the [Route]
section for further details.
UseGateway=
When true, the gateway will be requested from the DHCP server
and added to the routing table with a metric of 1024, and a
scope of link
. When unset, the value specified with
UseRoutes= is used.
UseTimezone=
When true, the timezone received from the DHCP server will be
set as timezone of the local system. Defaults to false.
FallbackLeaseLifetimeSec=
Allows to set DHCPv4 lease lifetime when DHCPv4 server does
not send the lease lifetime. Takes one of "forever" or
"infinity". The latter means that the address never expires.
Defaults to unset.
RequestBroadcast=
Request the server to use broadcast messages before the IP
address has been configured. This is necessary for devices
that cannot receive RAW packets, or that cannot receive
packets at all before an IP address has been configured. On
the other hand, this must not be enabled on networks where
broadcasts are filtered out.
MaxAttempts=
Specifies how many times the DHCPv4 client configuration
should be attempted. Takes a number or "infinity". Defaults
to "infinity". Note that the time between retries is
increased exponentially, up to approximately one per minute,
so the network will not be overloaded even if this number is
high. The default is suitable in most circumstances.
ListenPort=
Set the port from which the DHCP client packets originate.
DenyList=
A whitespace-separated list of IPv4 addresses. Each address
can optionally take a prefix length after "/". DHCP offers
from servers in the list are rejected. Note that if
AllowList= is configured then DenyList= is ignored.
AllowList=
A whitespace-separated list of IPv4 addresses. Each address
can optionally take a prefix length after "/". DHCP offers
from servers in the list are accepted.
SendRelease=
When true, the DHCPv4 client sends a DHCP release packet when
it stops. Defaults to true.
SendDecline=
A boolean. When "true", the DHCPv4 client receives the IP
address from the DHCP server. After a new IP is received, the
DHCPv4 client performs IPv4 Duplicate Address Detection. If
duplicate use is detected, the DHCPv4 client rejects the IP
by sending a DHCPDECLINE
packet and tries to obtain an IP
address again. See RFC 5227
[11]. Defaults to "unset".