19.10. DHCP

Escrito por Greg Sutter.

19.10.1. O Que É DHCP?

DHCP, o Protocolo de Configuração Dinâmica de Servidor (Dynamic Host Configuration Protocol, Descreve os meios pelo qual um sistema pode se conectar a uma rede e obter a informação necessária para comunicação naquela rede. O FreeBSD usa a implementação de DHCP da ISC (Internet Systems Consortium), então toda informação dependente de implementação aqui disponível é para ser utilizada com a distribuição da ISC.

19.10.2. O Que Esta Seção Cobre

Esta seção descreve os componentes cliente e servidor do sistema DHCP da ISC. O programa cliente, dhclient, já vem integrado no FreeBSD e a parte servidor está disponível do port net/isc-dhcp3. As páginas de manual dhclient(8), dhcp-options(5), e dhclient.conf(5), adicionalmente às referências disponíveis abaixo, são recursos úteis.

19.10.3. Como Funciona

Quando o dhclient, o cliente DHCP, é executado na máquina cliente, ele começa a transmissão por difusão de requisições de informações de configuração. Por padrão, estas solicitações estão são na porta UDP 68. O servidor responde na UDP 67, dando ao cliente um endereço IP e outras informações de rede, como a máscara de rede, roteador e servidores DNS. Toda esta informação é fornecida na forma de um ``arrendamento (lease)'' e é válido somente por um determinado período (configurado pelo mantenedor do servidor DHCP). Desta forma, endereços IP atribuídos a clientes que não estão mais conectados à rede, podem ser reaproveitados automaticamente.

Clientes DHCP podem obter uma grande quantidade de informações do servidor. Uma lista completa pode ser encontrada em dhcp-options(5).

19.10.4. Integração com o FreeBSD

O FreeBSD integra totalmente o cliente DHCP da ISC, o dhclient. O suporte ao cliente DHCP é fornecido tanto no instalador quanto no sistema base, evitando a necessidade de conhecimento detalhado das configurações em qualquer rede que tenha um servidor DHCP. O dhclient foi incluído em todas as distribuições do FreeBSD, desde a versão 3.2

O DHCP é suportado pelo sysinstall. Quando configurar uma interface de rede através do sysinstall, a primeira pergunta feita é, ``Do you want to try DHCP configuration of this interface? ("Você deseja tentar configuração DHCP nesta interface?")'' Respondendo afirmativamente, será executado o dhclient, e se funcionar, as informações da configuração de rede serão preenchidas automaticamente.

Existem duas coisas que você precisa fazer para ter seu sistema usando DHCP na inicialização:

O servidor DHCP, dhcpd, é incluído como parte do port net/isc-dhcp3 na coleção de ports. Este port contem a distribuição completa do DHCP da ISC, contendo o cliente, servidor, agente de relay e documentação.

19.10.5. Arquivos

19.10.6. Leitura Complementar

O protocolo DHCP é descrito totalmente na RFC 2131. Um recurso de informações também foi montado em dhcp.org.

19.10.7. Instalando e Configurando um Servidor DHCP

19.10.7.1. O Que Esta Seção Cobre

Esta seção fornece informações sobre como configurar um sistema FreeBSD para atuar como servidor DHCP usando a implementação da ISC da suíte DHCP.

A parte servidora da suíte não é fornecida no FreeBSD, então você vai precisar instalar o port net/isc-dhcp3 para ativar este serviço. Veja Capítulo 4 para mais informações sobre uso da coleção de ports.

19.10.7.2. Instalação do Servidor DHCP

Para configurar seu sistema servidor FreeBSD como um servidor DHCP, você vai precisar garantir que o dispositivo bpf(4) está compilado no seu kernel. Para isto, adicione o pseudo-device bpf ao seu arquivo de configuração do kernel e reconstrua o kernel. Para mais informações sobre construção de kernels, veja Capítulo 9.

O dispositivo bpf já é parte do kernel GENERIC, fornecido com o FreeBSD, assim você não precisa criar um kernel adaptado para ter o DHCP funcionando.

Nota: Aqueles particularmente preocupados com segurança, devem observar que o bpf também é o dispositivo que permite aos analizadores de pacotes executarem seu trabalho (apesar de tais programas precisarem de acesso privilegiado). O bpf é exigido para uso do DHCP, mas se você é muito preocupado com questões de segurança, você provavelmente não deve incluir o bpf em seu kernel simplesmente por supor que vai usar DHCP em algum momento no futuro.

A próxima coisa que você vai precisar fazer é editar o exemplo dhcpd.conf que foi incluído pelo port net/isc-dhcp3. Por padrão, este será o arquivo /usr/local/etc/dhcpd.conf.sample, e você deve copiar este arquivo para /usr/local/etc/dhcpd.conf antes de modificá-lo.

19.10.7.3. Configurando o Servidor DHCP

O arquivo dhcpd.conf é composto de declarações relativas a subredes e servidores, e é, talvez, melhor explicado usando um exemplo:

option domain-name "exemplo.com";(1)
option domain-name-servers 192.168.4.100;(2)
option subnet-mask 255.255.255.0;(3)

default-lease-time 3600;(4)
max-lease-time 86400;(5)
ddns-update-style none;(6)

subnet 192.168.4.0 netmask 255.255.255.0 {
  range 192.168.4.129 192.168.4.254;(7)
  option routers 192.168.4.1;(8)
}

host mailhost {
  hardware ethernet 02:03:04:05:06:07;(9)
  fixed-address mailhost.exemplo.com;(10)
}
(1)
Esta opção especifica o domínio que será fornecido aos clientes como o principal domínio de busca. Veja resolv.conf(5) para mais informações sobre o que isso significa.
(2)
Esta opção especifica uma lista separada por vírgulas de servidores DNS que o cliente deve utilizar.
(3)
A máscara de rede que será fornecida aos clientes.
(4)
Um cliente pode requerer um período de tempo específico válido para um arrendamento. Senão o servidor deverá fazer um arrendamento com este prazo de expiração (em segundos).
(5)
Este é o maior período de tempo permitido que o servidor deverá permitir um arrendamento. Se um cliente solicitar um período maior, um arrendamento será efetuado, entretanto, será válido somente por max-lease-time segundos.
(6)
Esta opção especifica se o servidor DHCP deverá tentar atualizar o DNS quando um arrendamento é aceito ou devolvido. Na implementação da ISC, esta opção é obrigatória.
(7)
Isto estipula quais endereços IP devem ser usados no conjunto reservado para alocação aos clientes. Endereços IP dentro da faixa inclusive os discriminados são distribuídos aos clientes.
(8)
Declara o gateway padrão que será fornecido aos clientes.
(9)
O endereço MAC de um sistema (de forma que o servidor DHCP possa reconhecê-lo quando dele receber uma solicitação).
(10)
Especifica que o sistema sempre deve receber o mesmo endereço IP. Note que um hostname funciona aqui, desde que o servidor DHCP seja capaz de resolver o nome via DNS antes de responder à solicitação com as informações do arrendamento.

Quando você terminar de escrever o seu dhcpd.conf você pode dar prosseguimento, iniciando o servidor com o seguinte comando:

# /usr/local/etc/rc.d/isc-dhcpd.sh start

Se futuramente você precisar realizar alterações na configuração de seu servidor, é importante notar que enviar um sinalSIGHUP para o dhcpd não irá recarregar as configurações, como na maioria dos daemons. Você precisa enviar um sinal SIGTERM para parar o processo, e então, reiniciá-lo com o comando acima.

19.10.7.4. Arquivos

  • /usr/local/sbin/dhcpd

    O dhcpd é compilado estaticamente e reside em /usr/local/sbin. A página de manual dhcpd(8) instalada com o port fornece mais informações sobre o dhcpd.

  • /usr/local/etc/dhcpd.conf

    O dhcpd requer um arquivo de configuração, /usr/local/etc/dhcpd.conf antes de começar a prestar serviços para os clientes. O arquivo precisa conter todas as informações que devem ser fornecidas aos clientes sendo atendidos, juntamente com informações sobre a operação do servidor. Este arquivo de configuração é descrito pela página de manual dhcpd.conf(5), instalada pelo port.

  • /var/db/dhcpd.leases

    O servidor DHCP mantém uma base de dados de arrendamentos que distribuiu neste arquivo, o qual é escrito como um arquivo de registro (log). A página de manual dhcpd.leases(5), instalada pelo port fornece uma descrição um pouco mais longa.

  • /usr/local/sbin/dhcrelay

    O dhcrelay é usado em ambientes avançados onde um servidor DHCP repassa uma solicitação de um cliente para outro servidor DHCP em uma rede separada. A página de manual dhcrelay(8) fornecida com o port contém mais detalhes.

Este, e outros documentos, podem ser obtidos em ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Para perguntas sobre FreeBSD, leia a documentação antes de contatar <questions@FreeBSD.org>.
Para perguntas sobre esta documentação, envie e-mail para <doc@FreeBSD.org>.