Este pequeno guia faz parte de um artigo postado no site
esli-nux.com, porém lá, além de DHCP Server usando GNU/Linux, também há um passo a passo demonstrando sob Windows Server, Equipamento CISCO (via CLI) e esses roteadores SOHO "tudo em 1", de R$ 100.
Claro que meu foco é favorecer o uso do
GNU/Linux para prover este serviço, para isto, mostro desde a configuração mais simples, até algumas avançadas, tanto em modo texto, quanto as mais variadas interfaces gráficas existentes no S.O., para configurar e monitorar este simples serviço de rede.
No GNU/Linux, abordo o DHCP Server mais utilizado no mundo (da ISC), as configurações mais utilizadas, o cliente de DHCP e alguns macetes a mais.
Softwares para prover o serviço
Diferentemente do Windows Server, cujo software que irá prover o serviço de DHCP já está incluso no sistema operacional, cabendo ao administrador ativá-lo e configurar; não havendo, portanto, uma opção de escolha sobre o software, já que não é o sistema operacional que provê o serviço, e sim um software nele instalado, no GNU/Linux existe esta capacidade, pois seu Kernel não é fechado, e nenhum software exerce um monopólio sobre algum serviço.
Dentre os programas que podem ser instalados nas distribuições GNU/Linux e prover o servidor de DHCP, há o
BusyBox,
Dibbler,
ISC DHCP, e mais alguns.
BusyBox DHCP server, ou também conhecido como "udhcpd" (servidor) e "udhcpc" (cliente), é famoso por ser um pequeno servidor/cliente. Geralmente adotado em sistemas embarcados ou em situações onde as memórias ROM e RAM, são extremamente escassas, e que o sistema GNU/Linux é modificado para ocupar, por exemplo 20 MB de espaço no disco e 8 ou 10 MB na memória RAM.
Wide-DHCPv6 originalmente desenvolvido no projeto KAME, pela universidade Keio do Japão (Minato, Tokyo), é um servidor DHCPv6, ou seja, somente IPv6, para os sistemas operacionais GNU/Linux e BSD, ele foi concluído e parado em 2006.
Há também uma modificação do Wide-DHCPv6, chamada
Dibbler, que provê o DHCPv6 server e provê endereçamento para GNU/Linux (kernel 2.4 e 2.6), Windows (a partir do XP, 2003 e superiores), Windows NT4 e 2000 (mas é experimental), e Mac OS X. Porém, o Dibbler está com seu desenvolvimento parado.
DHCP é a sigla para:
Dynamic Host Configuration Protocol, ou Protocolo de Configuração Dinâmica de Hosts. O Protocolo DHCP é definido pela RFC 2131 (Request For Coments).
Além das RFC 3315 (para DHCP com IPv6), RFC 2132 (opções de extensões e parâmetros DHCP e BOOTP), RFC 2489 (processo para a definição de novas opções DHCP) e RFC 1584 (interoperabilidade entre o DHCP e BOOTP).
As documentações e textos das RFCs, não só as citadas acima, mas todas as RFCs existentes estão disponíveis online, através do endereço:
A função do serviço DHCP (ou de um servidor de DHCP), é atribuir números de IP para os computadores, ou qualquer interface conectada em uma rede, o principal formato deste serviço, e também um dos principais motivos de sua adoção, é para utilizar a forma dinâmica de endereçamento.
O DHCP é uma evolução do Bootstrap Protocol (BOOTP, descrito na RFC 951), que por sua vez, vem do protocolo RARP, para que uma máquina soubesse seu endereço de IP, era utilizado o RARP (Reverse Address Resolution Protocol), ou Protocolo reverso de resolução de endereços, definido na RCF 903. Este protocolo permite que uma estação, recém inicializada com seu sistema operacional obtido através de um servidor de arquivos remoto, informasse seu endereço físico na rede, solicitando o seu endereço IP, o servidor RARP recebia esta solicitação, consulta o endereço físico da máquina na rede e respondia com o seu endereço IP correspondente.
Seu problema era que o servidor tinha que estar em cada rede, pois a mensagem de difusão solicitando o endereçamento não passava pelos roteadores. Para solucionar este problema, foi criado um protocolo alternativo de inicialização, o chamado BOOTP, que utiliza mensagem UDP, sendo assim possível sua retransmissão, ou encaminhamento pelos roteadores.
O BOOTP já possui a capacidade de informar outras configurações para a máquina cliente, como o endereço do roteador (chamado gateway), máscara de sub-rede e o endereço do servidor de arquivo que contém a imagem da memória.
Porém, o principal problema no BOOTP, é que somente a atribuição manual de endereços IP é possível, ou seja, o administrador deve cadastrar no servidor BOOTP, todos os endereços físicos/endereço MAC (Media Access Control address) das máquinas conectadas à rede, e seus respectivos endereços IP.
Concluindo, portanto, que no BOOTP o endereço IP pertence à máquina cliente, o servidor apenas a informa quando solicitado.
No início da década de 90, o IETF (Internet Engineering Task Force) trabalhou em um substituto, capaz de superar as limitações do BOOTP e adicionasse recursos novos, definindo-o então, como DHCP através da RFC 2131 de Maio de 1997.
Nas documentações RFC, há uma tentativa de aplicar uma Interoperabilidade entre o BOOTP e DHCP, ou seja, servidores DHCP trabalhar com antigas máquinas cliente BOOTP, e servidores BOOTP com máquinas DHCP. Porém, o BOOTP possui muitas limitações, comparado ao DHCP.
Claro, esta interoperabilidade é funcional, porém, nem sempre ocorre. Mesmo assim, a troca dos equipamentos e o seu desuso faz com que esta interoperabilidade não seja adotada, nem necessária com o passar do tempo.