Neste artigo, o quarto da série, descrevo o funcionamento do DHCP (Dynamic Host Configuration Protocol), o protocolo de configuração dinâmica de hosts. Parto de uma configuração simples e vou aumentando a complexidade, passando por reservas de IP e Relay.
No começo da minha vida profissional, a empresa onde trabalhava tinha cerca de 200 estações de trabalho em rede. Tínhamos um servidor de arquivos e uma pasta compartilhada chamado "informática" e nela, uma planilha contendo todos os IPs da rede. Cada estação de trabalho com seu nome e localização, amarrada ao seu IP. Cada vez que alterávamos a configuração de uma estação de trabalho, tínhamos que atualizar a planilha.
Nem preciso dizer que alguém sempre esquecia de atualizar a planilha, e aí os conflitos de IP começavam a aparecer.
Quando a rede é pequena, com menos de 20 estações, é fácil controlar os IPs através de uma planilha. Mas a administração fica complicada na medida em que a rede cresce. E quando ocorrem um conflito de IP, fica cada vez mais difícil saber onde está a máquina com problema.
Para resolver isso nasceu o DHCP, sigla de Dynamic Host Configuration Protocol, ou Protocolo de Configuração Dinâmica de Host. O DHCP fornece e controla todos as configurações de rede das estações de forma transparente e automática. Isso evita o conflito de IPs, além de possibilitar que uma mesma configuração seja replicada para todas as estações de trabalho automaticamente.
Antes de instalarmos o DHCP, vamos ver como é o seu funcionamento.
Funcionamento do DHCP
Quando uma estação de trabalho está trabalhando com DHCP, ao ligar pela primeira vez, esta não possui um IP. Ela dispara na rede um pacote de broadcast chamado DHCP DISCOVERY.
Este pacote, como mostrei em meu primeiro artigo, não possui em seu cabeçalho o IP de origem (pois ainda não há IP configurado na interface de rede), apenas o MAC address de origem. Todas as estações recebem esse broadcast, e somente servidores DHCP respondem. Numa rede com vários servidores DHCP, TODOS respondem ao cliente com um pacote DHCP OFFER, informando qual o IP do servidor DHCP. O cliente, então, decide para qual servidor DHCP solicitará um endereço IP.
Escolhido o servidor, o cliente envia um DHCP REQUEST exclusivamente ao servidor escolhido. Ou seja, esse pacote não é um broadcast. O servidor então consulta em suas tabelas qual o IP disponível ou reservado para o cliente, bem como as configurações de DNS, roteamento, entre outros.
O servidor atualiza seu banco de dados relacionando o MAC address com o IP reservado ao cliente e envia um DHCP ACC ao cliente. Somente depois disso a estação está pronta para usar a rede.
Há um tempo de concessão do endereço IP fornecido pelo DHCP. Depois de expirado esse tempo, o cliente deve renovar a concessão. Se o cliente não renovar dentro de um limite de tempo preestabelecido, o endereço IP é então colocado à disposição para outros cliente. A estação não pode renovar a concessão antes de um período mínimo. Um tempo longo pode fazer com que a estação sempre pegue o mesmo IP.
Já provedores de Internet configuram um tempo pequeno para que o endereço esteja disponível o mais rápido possível. Por isso, é pouco provável que uma estação pegue o mesmo IP.
É possível amarrar um endereço MAC a um IP, fazendo com que um cliente receba sempre o mesmo endereço. Isto é útil para estações que possuem regras específicas de firewall, ou estações importantes como máquinas de diretores, ou impressoras departamentais.
Muitas outras configurações podem ser passadas via DHCP, como roteamentos adicionais, strings para VoIP, etc.
Antes de começarmos a instalar o DHCP server, lembre-se que isso NÃO PODE ser testado em um ambiente de rede em produção. Levantar um DHCP numa rede vai fazer com que as estações peguem o endereço IP desse novo DHCP, causando conflitos e outros problema estranhos. Portanto, faça isso em uma rede virtual. Use o VirtualBox, VMWare ou Xen para estes testes, ou uma rede de laboratório.
Neste tutorial eu uso Debian 6, mas deve servir para qualquer distro.
[5] Comentário enviado por ribafs em 29/11/2011 - 10:58h
Hoje administro uma rede Linux mas caí de para-quedas em termos de conhecimento de rede. Aprendi a instalar e configurar os serviços mas sempre senti que precisava deste conhecimento básico, o que você compartilha nas 4 partes do tutorial.
Muito obrigado, pois não é nada fácil encontrar um material assim, com qualidade e bem explicado.
Valeu Ricardo!