# A sample configuration for dhcpcd.
# See dhcpcd.conf(5) for details.

# disable ARP checking
noarp
# no link state monitoring
nolink

# Inform the DHCP server of our hostname for DDNS.
hostname
# To share the DHCP lease across OSX and Windows a ClientID is needed.
# Enabling this may get a different lease than the kernel DHCP client.
# Some upstream DHCP servers may also require a ClientID, such as FRITZ!Box.
clientid

# A list of options to request from the DHCP server.
option domain_name_servers, domain_name, domain_search, host_name, wpad_url
option classless_static_routes
# Most distributions have NTP support.
#option ntp_servers
# Respect the network MTU.
option interface_mtu
# A ServerID is required by RFC2131.
require dhcp_server_identifier
