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.
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.
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).
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:
Certifique-se de que o dispositivo bpf está compilado no seu kernel. Para fazer isso, adicione o pseudo-device bpf no seu arquivo de configuração do kernel e reconstrua o kernel. Para maiores informações sobre construção de kernels, veja Capítulo 9.
O dispositivo bpf já é parte do kernel GENERIC fornecido com o FreeBSD, desta forma, se você não tem um kernel adaptado, você não precisa criar um para ter o DHCP funcionando.
Nota: Para os que são particularmente preocupados com segurança, você deve estar ciente de que o bpf também é o dispositivo que permite o funcionamento correto de analizadores de pacotes (embora ainda precisem ser executados pelo usuário root). O bpf é obrigatório para usar DHCP, mas se você é muito sensível com relação a segurança, você provavelmente não deve adicionar o bpf ao seu kernel na expectativa de que em algum momento no futuro você vai utilizar DHCP.
Edite o seu /etc/rc.conf para incluir o seguinte:
ifconfig_fxp0="DHCP"
Nota: Certifique-se de substituir fxp0 pela designação da interface que você deseja configurar automaticamente, como descrito em Seção 6.8.
Se você está usando um local diferente para o dhclient, ou se você deseja passar parâmetros adicionais para o comando, inclua também o seguinte (editando, se necessário):
dhcp_program="/sbin/dhclient" dhcp_flags=""
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.
/etc/dhclient.conf
O dhclient requer um arquivo de configuração /etc/dhclient.conf. Tipicamente o arquivo contem somente comentários e o padrões mais razoáveis definidos. Este arquivo de configuração é descrito pela página de manual dhclient.conf(5)
/sbin/dhclient
O dhclient é compilado estaticamente e reside em /sbin. A página de manual dhclient(8) fornece mais informações sobre o dhclient.
/sbin/dhclient-script
O dhclient-script é o script de configuração do cliente DHCP específico do FreeBSD. É descrito em dhclient-script(8), mas você não deve precisar de qualquer modificação de usuário para seu funcionamento.
/var/db/dhclient.leases
O cliente DHCP mantém uma base de dados de arrendamentos neste arquivo, que é gravado como um registro (log). dhclient.leases(5) oferece uma descrição um pouco mais longa.
O protocolo DHCP é descrito totalmente na RFC 2131. Um recurso de informações também foi montado em dhcp.org.
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.
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.
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";option domain-name-servers 192.168.4.100;
option subnet-mask 255.255.255.0;
default-lease-time 3600;
max-lease-time 86400;
ddns-update-style none;
subnet 192.168.4.0 netmask 255.255.255.0 { range 192.168.4.129 192.168.4.254;
option routers 192.168.4.1;
} host mailhost { hardware ethernet 02:03:04:05:06:07;
fixed-address mailhost.exemplo.com;
}
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.
/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>.