IFPR-Labtelecom: Linux (DHCPv4)

Nos sistemas GNU/Linux é possível instalar e configurar um servidor DHCP de forma simples com o ISC. O ISC-DHCP é desenvolvido pela Internet Systems Consortium, uma organização sem fins lucrativos que desenvolve e distribui softwares livres. Mais informações no site: http://www.isc.org/downloads/dhcp/. O ISC-DCHP inclui um servidor DHCP, que recebe pedidos e responde, um cliente DHCP, que estará no sistema operacional do computador do cliente, e que emita pedidos ao servidor, um agente relay DHCP, que passa pedidos do DHCP de uma rede LAN à outra de modo que não precise de um servidor DHCP em cada LAN. Para instalar no terminal digite o comando:

apt-get install isc-dhcp-server

Depois de instalado é necessário informar a interface que rodará o servidor DHCP. Para isso, é possível editar o arquivo com o comando nano /etc/default/isc-dhcp-server. Por exemplo, se o servidor for utilizado na interface eth0, baste modificar o parâmetro do arquivo para

INTERFACES="eth0"

Na sequência é necessário configurar os parâmetros de rede conforme o projeto de distribuição de endereços IPs, gateway, DNS, etc. Na figura abaixo é apresentada um exemplo de configuração minimalista do arquivo /etc/dhcp/dhcpd.conf.

Exemplo de configuração minimalista do arquivo /etc/dhcp/dhcpd.conf

default-lease-time 600;

max-lease-time 7200;

authoritative;

log-facility local7;

subnet 192.168.1.0 netmask 255.255.255.0 {

range 192.168.1.20 192.168.1.80;

option domain-name-servers 192.168.1.1, 8.8.8.8;

option routers 192.168.1.1;

option broadcast-address 192.168.1.255;

}

Na configuração acima o parâmetro default-lease-time verifica a cada 600 segundos (10 minutos) se o host está ativo e utilizando o servidor DHCP. O parâmetro max-lease-time indica que o computador utilizará o IP por 7200 segundos (2 horas) e após esse período será realizada uma renovação do endereço IP do cliente com o servidor DHCP.

Os parâmetros subnet 192.168.1.0 e netmask 255.255.255.0 indicam que o servidor DHCP distribuirá endereços dinâmicos para a rede 192.168.1.0/24. Já o parâmetro range 192.168.1.20 192.168.1.80 indica que os clientes que solicitarem uma requisição recebem endereços na faixa de 192.168.10.20 até 192.168.1.80.

Outros parâmetros importantes da rede são especificados pelo option domain-name-servers 192.168.1.1, 8.8.8.8 que determina os servidores DNS da rede. Nesse caso, o primário está no gateway da rede e o segundo (8.8.8.8) é o DNS fornecido pela Google. A opção option routers 192.168.1.1 informa aos clientes que o default gateway da rede é o dispositivo 192.168.1.1. O parâmetro option broadcast-address 192.168.1.255 informa o endereço de broadcast da rede.

O servidor ISC também permite a reserva de endereços IPs para dispositivos específicos. Por exemplo, supondo que uma impressora necessita do endereço IP 192.168.1.2 é possível atribuir essa necessidade conforme descrito abaixo em função do endereço MAC do dispositivo.

Exemplo de IP fixo em função do MAC no arquivo dhcp.conf

host impressora {

hardware ethernet 0A:01:2b:3c:42:A0;

fixed-address 192.168.1.2;

}

A interface com o servidor DHCP deve ter um endereço IP fixo e fora da faixa de atribuição dinâmica do servidor, por exemplo para o cenário acima o servidor pode ter um endereço IP 192.168.1.10/24, para isso digite no terminal

ifconfig eth0 192.168.1.10 netmask 255.255.255.0

O servidor pode funcionar em um processo de daemon. Nesse caso, o servidor pode ser controlado pelos seguintes comandos

Parar: service isc-dhcp-server stop

Iniciar: service isc-dhcp-server start

Reiniciar: service isc-dhcp-server restart

A interface do cliente por padrão recebe a conexão de um servidor DHCP, mas é possível controlar esse processo. Para isso é necessário finalizar o processo dhcpcd com o seguinte comando killall -9 dhcpcd. Na sequência é possível solicitar uma nova requisição ao servidor DHCP na interface eth0 pelo comando dhcpcd eth0.