# Configurando um servidor DHCP

Um servidor DHCP livre é o ISC `dhcpd`. Para o &debian-gnu;, o pacote `isc-dhcp-server` é recomendado. Aqui está um exemplo de configuração para este pacote (veja `/etc/dhcp/dhcpd.conf`):

    option domain-name "exemplo.com";
    option domain-name-servers ns1.exemplo.com;
    option subnet-mask 255.255.255.0;
    default-lease-time 600;
    max-lease-time 7200;
    server-name "servername";

    subnet 192.168.1.0 netmask 255.255.255.0 {
      range 192.168.1.200 192.168.1.253;
      option routers 192.168.1.1;
    }

    host clientname {
      filename "/tftpboot.img";
      server-name "servername";
      next-server servername;
      hardware ethernet 01:23:45:67:89:AB;
      fixed-address 192.168.1.90;
    }

Neste exemplo, existe somente um servidor `servername` que faz todo o trabalho do servidor DHCP, servidor TFTP e gateway de rede. Você precisará modificar as opções domain-name assim como o nome do servidor e endereço de hardware do cliente. A opção `filename` deve ter o nome do arquivo que será baixado via TFTP.

Após editar o arquivo de configuração `dhcpd`, reinice-o com `/etc/init.d/isc-dhcp-server restart`.

## Habilitando a inicialização através de PXE no servidor DHCP

Aqui está outro exemplo para o `dhcp.conf` usando o método Pre-boot Execution Environment (PXE) do TFTP.

    option domain-name "exemplo.com";

    default-lease-time 600;
    max-lease-time 7200;

    allow booting;
    allow bootp;

    # The next paragraph needs to be modified to fit your case
    subnet 192.168.1.0 netmask 255.255.255.0 {
      range 192.168.1.200 192.168.1.253;
      option broadcast-address 192.168.1.255;
    # the gateway address which can be different
    # (access to the internet for instance)
      option routers 192.168.1.1;
    # indicate the dns you want to use
      option domain-name-servers 192.168.1.3;
    }

    group {
      next-server 192.168.1.3;
      host tftpclient {
    # tftp client hardware address
      hardware ethernet  00:10:DC:27:6C:15;
      filename "pxelinux.0";
     }
    }

Note que para a inicialização via PXE, o nome do arquivo do cliente `pxelinux.0` é o gerenciador de partida, e não a imagem do kernel (veja tftp-images abaixo).