Jump to content

# dhcpd

6 languages

- Deutsch
- Suomi
- 日本語
- Português
- Русский
- 中文（简体）

From ArchWiki

Related articles

- dhcpcd

dhcpd is the older Internet Systems Consortium (ISC) DHCP server. Be aware that dhcpd is no longer maintained as of January 2023; ISC promotes Kea as its official replacement.

Note: dhcpd (DHCP server daemon) is not the same as dhcpcd (DHCP client daemon).

## Installation

Install the dhcp package.

## Usage

dhcpd includes two unit files, `dhcpd4.service` and `dhcpd6.service`, which can be used to control the daemon. They start the daemon on all network interfaces for IPv4 and IPv6 respectively. See #Listening on only one interface for an alternative.

## Configuration

Assign a static IPv4 address to the interface you want dhcpd to listen on (here `eth0`). The specified subnet should not overlap with that of other interfaces.

    # ip link set up dev eth0
    # ip addr add 139.96.30.100/24 dev eth0 # arbitrary address

Tip:

- To have a static IP address assigned at boot, see Network configuration#Static IP address.
- The following subnets are usually reserved for private networks and will not conflict with hosts on the internet:
  - `192.168/16` (subnet `192.168.0.0`, netmask `255.255.0.0`)
  - `172.16/12` (subnet `172.16.0.0`, netmask `255.240.0.0`)
  - `10/8` (for large networks; subnet `10.0.0.0`, netmask `255.0.0.0`)

  See also RFC 1918.

The default configuration file `dhcpd.conf` contains many uncommented examples, so relocate it:

    # cp /etc/dhcpd.conf /etc/dhcpd.conf.example

To only listen on the subnet `139.96.30.0/24`, you may create the following minimal configuration file:

    /etc/dhcpd.conf

    option domain-name-servers 8.8.8.8, 8.8.4.4;
    option subnet-mask 255.255.255.0;
    option routers 139.96.30.100;
    subnet 139.96.30.0 netmask 255.255.255.0 {
      range 139.96.30.150 139.96.30.250;
    }

The options used in this configuration file are:

`domain-name-servers` which contains addresses of DNS servers supplied to the clients. Here we use Google's public DNS servers. If you have configured your own DNS server on a local machine, specify its address in your subnet (here `139.96.30.0/24`).

`subnet-mask` and `routers` which define a subnet mask and a list of available routers on the subnet; `routers` also defines the default gateway served to the client. For small networks, you can usually use `255.255.255.0` as a mask and specify an IP address of the machine on which you are running dhcpd (here `139.96.30.100`).

`subnet` which defines options for separate subnets that are applied to the network interfaces on which dhcpd is listening. Here we have defined the range of available IP addresses for a single subnet `139.96.30.0/24` (on a single interface `eth0`).

For a complete list of options, consult dhcpd.conf(5).

Note: `dhcpd` only listens on interfaces with subnets declared in its configuration file, despite dhcpd(8) saying the opposite.

### Use for PXE

PXE Configuration is done with the following two options:

    /etc/dhcpd.conf

    next-server 192.168.0.2;
    filename "/pxelinux.0";

This section can either be in an entire `subnet` or just in a `host` definition. `next-server` is the IP of the TFTP Server, and `filename` is the filename of the image to boot. For more information see PXE.

## See also

- ISC DHCP Documentation

Category:

- DHCP