Serviços de Rede: 02 - Servidor DHCP

Instalando e Configurando

Primeiro é necessário selecionar a distribuição em que o servidor DHCP será instalado. No Debian (e derivados) o pacote a ser instalado é isc-dhcp-server no Fedora (e CentOS) o pacote é dhcp. O Debian e Fedora habilitarão o daemon, mas o serviço não funcionará pois ainda não foi configurado. O CentOS exigirá que a execução e habilitação do daemon sejam feitas manualmente.

O arquivo de configuração é localizado em /etc/dhcp/dhcpd.conf. Com exceção do CentOS, o Fedora e Debian irão criar esse arquivo com diversas configurações já pré-definidas. Para seguir os passos desse exemplo, será necessário criar um arquivo vazio. Caso queira manter o arquivo original, é só fazer backup dele.


Abaixo há um exemplo de configuração do arquivo /etc/dhcp/dhcpd.conf para o DHCP. Nesse exemplo, está sendo usada a máscara de rede 10.10.96.0/22, mas isso é algo que pode ser alterado conforme as necessidades da rede.

default-lease-time 86400;
max-lease-time 86400;
option subnet-mask 255.255.252.0;
option broadcast-address 10.10.99.255;
option domain-name "local.lan";
authoritative;
subnet 10.10.96.0 netmask 255.255.252.0 {
range 10.10.99.100 10.10.99.254;
option routers 10.10.96.1;
option domain-name-servers 10.10.96.1;
}

Agora, entendendo essa configuração.

Em primeiro lugar, as duas primeiras linhas:

default-lease-time 86400;
max-lease-time 86400;

Nelas se definem quanto tempo, em segundos,o DHCP demorará para checar os IPs da rede. Esse número é listado duas vezes. O default-lease-time é dado a qualquer dispositivo que se conecte à rede, sem especificar o tempo que irá permanecer com o endereço IP ativo. O max-lease-time mlimita o tempo total que um dispositivo conectado à rede poderá permanecer com o IP. Nesse exemplo, eles são definidos com o mesmo valor, mas isso não é obrigatório.

As próximas duas linhas são:

option subnet-mask 255.255.252.0;
option broadcast-address 10.10.99.255;

Nelas são definidas a máscara de sub-rede que será repassada aos clientes, assim como o endereço de broadcast. A máscara de sub-rede identifica a rede que cada nó irá fazer parte. Quando os clientes checam a informação do IP após terem recebido um IP, a máscara de sub-rede será exibida. O endereço de broadcast é um endereço no qual os nós dentro da sub-rede será capaz de receber pacotes.

Considere as duas seguintes linhas:

option domain-name "local.lan";
authoritative;

Está sendo adicionado o nome de domínio local.lan aos nomes de hospedeiros que conectam na rede do servidor DHCP.  O que não é algo obrigatório, mas tem utilidade na normalização dos nomes de domínio dentro da rede. A configuração authoritative estabelece como primário o servidor DHCP na sub-rede.

Considerando as cinco próximas linhas:

subnet 10.10.96.0 netmask 255.255.252.0 {
range 10.10.99.1 10.10.99.254;
option routers 10.10.96.1;
option domain-name-servers 10.10.96.1;
}

Nesse bloco é identificado: a sub-rede (subnet), a máscara da sub-rede (netmask), a faixa de IPs (range), o gateway padrão, e o servidor DNS. Como foi usada a rede 10.10.96.0/22, as seguintes sub-redes foram criadas:

10.10.96.0
10.10.97.0
10.10.98.0
10.10.99.0

Nesse caso a faixa de IPs vai de 10.10.99.1 até 10.10.99.254, demonstrando que a rede usada é 10.10.99.0.

Se fosse necessário, a faixa poderia iniciar com 10.10.96.1 e terminar com 10.10.99.254, tendo nesse caso 1022 endereços IPs válidos. Nesse exemplo foi apenas utilizada apenas a rede 10.10.99.0 demonstrando-se um caso de uso aonde as outras três redes podem ser reservadas para outro própósito.

Essa configuração é mais ampla, e por isso mais complexa. Ela pode ser simplificada definindo uma rede de 24-bits , aonde a configuração seria semelhante a demonstrada logo abaixo:

default-lease-time 86400;
max-lease-time 86400;
option subnet-mask 255.255.255.0;
option broadcast-address 10.10.10.255;
option domain-name "local.lan";
authoritative;
subnet 10.10.10.0 netmask 255.255.255.0 {
range 10.10.10.10 10.10.10.254;
option routers 10.10.96.1;
option domain-name-servers 10.10.96.1;
}

Com essa configuração a faixa de IPs 10.10.10.1—10.10.10.9 (9 IPs) nunca serão usados automaticamente pelo servidor DHCP, sendo atribuídos de forma estática à um dispositivo qualquer.

IPs estáticos são úteis para os servidores. No caso da reserva estática, o cliente terá o IP checado e renovado a cada período de tempo, garantindo que ainda permanece ativo.

Configurar reservas estáticas não é difícil, sendo realizadas ao fim do arquivo /etc/dhcp/dhcpd.conf. Abaixo segue um exemplo:

host office {
hardware ethernet 28:B2:BD:05:1E:00;
fixed-address 10.10.97.4;
}

Nesse exemplo, tem-se um servidor de nome office com um endereço MAC 28:B2:BD:05:1E:00. O nome é arbitrário; ele não possui outro significado senão manter registrado para quem a reserva foi destinada. As duas linhas dentro do bloco indicam que o dispositivo com endereço MAC 28:B2:BD:05:1E:00 terá o IP 10.10.97.4 atribuído a ele. E para cada reserva que deseja se realizar é só criar um novo bloco como o do exemplo acima.

O último passo para que o servidor execute corretamente é iniciá-lo e configurá-lo junto ao boot do sistema. No Debian e no Fedora só será necessário reiniciá-lo para carregar todo o layout implementado no tutorial.

# systemctl restart isc-dhcp-server

No CentOS, é necessário habilitar e iniciar o servidor com os comandos abaixo:

# systemctl enable dhcpd
# systemctl start dhcpd

Como pode ser percebido, a configuração de um servidor DHCP no Linux não é complicada e facilmente ele é implementado. Claro, há diversos cenários de utilização e várias configurações adicionais.  Mas para propósito mais geral, as configurações acima são suficientes.

Comentários

Postagens mais visitadas