O protocolo de configuração dinâmica de hosts (DHCP) permite que um sistema se conecte a uma rede para receber as informações de endereçamento necessárias para a comunicação nessa rede. O FreeBSD inclui a versão do dhclient
do OpenBSD que é usada pelo cliente para obter as informações de endereçamento. O FreeBSD não instala um servidor DHCP, mas vários servidores estão disponíveis na coleção de Ports do FreeBSD. O protocolo DHCP é totalmente descrito em RFC 2131. Recursos informativos também estão disponíveis em isc.org/downloads/dhcp/.
Esta seção descreve como usar o cliente DHCP integrado. Em seguida, descreve como instalar e configurar um servidor DHCP.
No FreeBSD, o dispositivo bpf(4) é necessário tanto pelo servidor DHCP como pelo DHCP > cliente. Este dispositivo está incluído no kernel GENERIC
que é instalado com o FreeBSD. Usuários que preferem criar um kernel personalizado precisam manter este dispositivo se o DHCP for usado.
Deve-se notar que o bpf
também permite que usuários privilegiados executem sniffers de pacotes de rede naquele sistema.
O suporte ao cliente DHCP está incluído no instalador do FreeBSD, facilitando a configuração de um sistema recém-instalado para receber automaticamente as informações de endereçamento de rede de um servidor DHCP existente. Consulte Seção 2.8, “Contas, Time Zone, Serviços e Hardening” para exemplos de configuração de rede.
Quando o dhclient
é executado na máquina cliente, ele inicia as solicitações de transmissão das informações de configuração. Por padrão, esses pedidos usam a porta UDP 68. O servidor responde na porta UDP 67 , fornecendo ao cliente um endereço IP e outras informações de rede relevantes como uma máscara de sub-rede, gateway padrão e endereços de servidor DNS. Esta informação está na forma de uma “concessão” de DHCP e é válida por um tempo configurável. Isso permite que endereços IP obsoletos para clientes que não estejam mais conectados à rede sejam reutilizados automaticamente. Clientes DHCP podem obter uma grande quantidade de informações do servidor. Uma lista exaustiva pode ser encontrada em dhcp-options(5).
Por padrão, quando um sistema FreeBSD inicializa, seu cliente DHCP é executado em segundo plano, ou asynchronously. Outros scripts de inicialização continuam sendo executados enquanto o processo DHCP é concluído, o que acelera a inicialização do sistema.
O DHCP em segundo plano funciona bem quando o servidor DHCP responde rapidamente às solicitações do cliente. No entanto, o DHCP pode levar muito tempo para ser concluído em alguns sistemas. Se os serviços de rede tentarem executar antes que o DHCP tenha atribuído as informações de endereçamento de rede, eles falharão. O uso do DHCP no modo synchronous impede esse problema, pois ele pausa a inicialização até que a configuração DHCP seja concluída.
Esta linha no /etc/rc.conf
é usada para configurar o modo background ou assíncrono:
ifconfig_fxp0
="DHCP"
Esta linha pode já existir se o sistema foi configurado para usar o DHCP durante a instalação. Substitua o fxp0
mostrado nesses exemplos pelo nome da interface a ser configurada dinamicamente, conforme descrito em Seção 11.5, “Configurando Placas de Interface de Rede”.
Para configurar o sistema para usar o modo síncrono e pausar durante a inicialização enquanto o DHCP é concluído, use “SYNCDHCP
”:
ifconfig_fxp0
="SYNCDHCP"
Opções adicionais do cliente estão disponíveis. Procure por dhclient
in rc.conf(5) para detalhes.
O cliente DHCP usa os seguintes arquivos:
/etc/dhclient.conf
O arquivo de configuração usado pelo dhclient
. Normalmente, esse arquivo contém apenas comentários, pois os padrões são adequados para a maioria dos clientes. Este arquivo de configuração é descrito em dhclient.conf(5).
/sbin/dhclient
Maiores informações sobre o comando em si podem ser encontradas em dhclient(8).
/sbin/dhclient-script
O script de configuração do cliente DHCP específico do FreeBSD. Ele é descrito em dhclient-script(8), mas não deve precisar de nenhuma modificação do usuário para funcionar corretamente.
/var/db/dhclient.leases.
interface
O cliente DHCP mantém um banco de dados de concessões válidas neste arquivo, que é escrito como um log e é descrito em dhclient.leases(5).
Esta seção demonstra como configurar um sistema FreeBSD para atuar como um servidor DHCP usando a implementação do servidor DHCP do Internet Systems Consortium (ISC). Esta implementação e a sua documentação podem ser instaladas usando o pacote ou port net/isc-dhcp43-server.
A instalação do net/isc-dhcp43-server instala um arquivo de configuração de exemplo. Copie o /usr/local/etc/dhcpd.conf.example
para /usr/local/etc/dhcpd.conf
e faça as alterações neste novo arquivo.
O arquivo de configuração é composto de declarações para sub-redes e hosts que definem as informações que são fornecidas aos clientes DHCP. Por exemplo, essas linhas configuram o seguinte:
option domain-name "example.org";option domain-name-servers ns1.example.org;
option subnet-mask 255.255.255.0;
default-lease-time 600;
max-lease-time 72400;
ddns-update-style none;
subnet 10.254.239.0 netmask 255.255.255.224 { range 10.254.239.10 10.254.239.20;
option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;
} host fantasia { hardware ethernet 08:00:07:26:c0:a5;
fixed-address fantasia.fugue.com;
}
Esta opção especifica o domínio de pesquisa padrão que será fornecido aos clientes. Consulte resolv.conf(5) para obter maiores informações. | |
Esta opção especifica uma lista separada por vírgula de servidores DNS que o cliente deve usar. Eles podem ser listados por seus nomes de domínio totalmente qualificados (FQDN), como visto no exemplo, ou por seus endereços de IP. | |
A máscara de sub-rede que será fornecida aos clientes. | |
O tempo de expiração da concessão padrão em segundos. Um cliente pode ser configurado para substituir esse valor. | |
O período máximo permitido de tempo, em segundos, para uma concessão. Se um cliente solicitar uma concessão mais longa, uma concessão ainda será emitida, mas será válida apenas para o tempo especificado em | |
O padrão | |
Esta linha cria um conjunto de endereços IP disponíveis que são reservados para alocação a clientes DHCP. O intervalo de endereços deve ser válido para a rede ou sub-rede especificada na linha anterior. | |
Declara o gateway padrão que é válido para a rede ou sub-rede especificada antes do colchete de abertura | |
Especifica o endereço de hardware MAC de um cliente para que o servidor DHCP possa reconhecer o cliente quando ele fizer uma solicitação. | |
Especifica que este host deve sempre receber o mesmo endereço IP. A utilização do nome do host está correta, pois o servidor DHCP resolverá o nome do host antes de retornar as informações de concessão. |
Este arquivo de configuração suporta muito mais opções. Consulte o dhcpd.conf(5), instalado com o servidor, para obter detalhes e exemplos.
Uma vez que a configuração do dhcpd.conf
estiver completa, habilite o servidor DHCP em /etc/rc.conf
:
dhcpd_enable="YES" dhcpd_ifaces="dc0"
Substitua o dc0
pela interface (ou interfaces, separadas por espaço em branco) que o servidor DHCP deverá escutar por solicitações de clientes DHCP.
Inicie o servidor executando o seguinte comando:
#
service isc-dhcpd start
Quaisquer mudanças futuras na configuração do servidor exigirão que o serviço dhcpd seja interrompido e, em seguida, iniciado usando service(8).
O servidor DHCP usa os seguintes arquivos. Observe que as páginas de manual são instaladas com o software do servidor.
/usr/local/sbin/dhcpd
Maiores informações sobre o servidor dhcpd podem ser encontradas em dhcpd(8).
/usr/local/etc/dhcpd.conf
O arquivo de configuração do servidor precisa conter todas as informações que devem ser fornecidas aos clientes, juntamente com informações sobre a operação do servidor. Este arquivo de configuração é descrito no dhcpd.conf(5).
/var/db/dhcpd.leases
O servidor DHCP mantém um banco de dados das concessões que ele emitiu neste arquivo, que é gravado como um log. Consulte dhcpd.leases(5), o qual fornece uma descrição um pouco mais longa.
/usr/local/sbin/dhcrelay
Esse daemon é usado em ambientes avançados, onde um servidor DHCP encaminha uma solicitação de um cliente para outro servidor DHCP em uma rede separada. Se esta funcionalidade for necessária, instale o pacote ou port net/isc-dhcp43-relay. A instalação inclui o dhcrelay(8), que fornece maiores detalhes.
All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/
Questions that are not answered by the
documentation may be
sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.