DHCP no GNU/Linux - Guia para ISC-DHCP Server

Disponibilizo este pequeno guia, explorando alguns recursos do ISC DHCP. Apesar de ser um assunto bem fácil, sem segredos ou mistérios, espero que auxilie a organizar seu dhcpd.conf, e/ou escolher qual melhor formato para implantar um serviço de DHCP.

[ Hits: 131.969 ]

Por: Esli Silva em 29/08/2012 | Blog: https://esli.blog.br


DHCP



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.

    Próxima página

Páginas do artigo
   1. DHCP
   2. Funcionamento do DHCP - ISC-DHCP Server
   3. Instalação - Configuração básica
   4. Monitorando o servidor e o cliente - ISC-DHCP Cliente
   5. Modelos de dhcpd.conf e configurações opcionais/avançadas
   6. Interface gráfica e interface web para gerenciamento e monitoramento
   7. Coisas que faltaram...
Outros artigos deste autor

Guia SSD no Linux: tudo que você precisa saber e o que precisa esquecer!

Rootsh - Auditando/monitorando o root e demais usuários do GNU/Linux

Certificados e OpenSSL - A Sopa de Letras

Leitura recomendada

Com vocês, Larry, a vaca

A importância do ensino de Arte Digital nas comunidades da periferia de São Paulo

Mais desempenho no GNU Emacs com o YASnippet

Servidor de rede (PDC - Proxy Transparente - DNS)

Linux também pode ser bom para a terceira idade - "Ginástica" mental pode ajudar a prevenir Alzheimer

  
Comentários
[1] Comentário enviado por corrosiontears em 29/08/2012 - 11:32h

Amigo! Excelente Artigo era o que eu estava precisando aqui! :D Obrigado!

[2] Comentário enviado por removido em 29/08/2012 - 11:59h

Bom trabalho amigo, ficou muito bom.

[3] Comentário enviado por danniel-lara em 29/08/2012 - 12:40h

Parabéns pelo artigo
muito bem mesmo

[4] Comentário enviado por Nicolas777 em 30/08/2012 - 10:19h

Muito bom este artigo... essencial para qualquer sysadmin... parabens!!!

[5] Comentário enviado por bruno.prestes em 22/12/2012 - 13:01h

estou montando um server centos no meu trampo e estava precisando de algo bem especifico como seu artigo, só tenho q agradecer!!! parabéns

[6] Comentário enviado por fernandoborges em 21/03/2013 - 18:03h

Parabéns, amigo.

[7] Comentário enviado por Valdivino Aquino em 18/07/2013 - 09:37h

Bom artigo !

[8] Comentário enviado por alexandremc em 25/10/2013 - 10:58h

Boa tarde.

Tenho uma rede mista formada pelo ubuntu 10.04 com GNOME2 e Debian 7.2 com o Mate 1.6 em processo de migração.

Servidor também e Ubuntu 10.04.

As maquinas com ubuntu pegam normalmente o nome pelo DHCP, bastando omitir o arquivo /etc/hostname(ou seja deixando em branco ou excluindo).

Nas Debian ele define o nome como (none) ...

Sendo necessário eu dar o dhclient [nome da interface], para máquina pegar o nome normal.

Ou seja preciso ir em cada estação e pedir para pegar o ip.

O arquivo /etc/network/interfaces está assim:

#--Início ---
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp
#--Fim ---

Como configuro isso no cliente?

PS:

Já copiei o arquivo /etc/dhcpd3/dhclient.conf do ubuntu para o Debian, mas nada feito.


Abraços

[9] Comentário enviado por vandocouto em 03/02/2014 - 20:33h

Muito bom o seu artigo, parabéns!

Fica dica para quem deseja administrar o serviço de Dchp pela interface Web.

http://dhcpweb.tutoriaisgnulinux.com/

Obrigado!

Abs,

Evandro Couto
http://tutoriaisgnulinux.com

[10] Comentário enviado por wos- em 17/10/2014 - 09:52h

Muito bom, parabéns, me ajudou bastante.

[11] Comentário enviado por tedbernacchi em 22/05/2015 - 11:09h


Olá amigo, muito bom o tutorial, bem explicado e tal. Dúvida, eu consigo enviar via DHCP o horário do servidor, assim, minha máquina que é o DHCP da rede também é o NTP-server da rede, eu consigo fazer com que às máquinas clientes sincronizem a hora quando elas adquirem um IP via DHCP?Obrigado!

[12] Comentário enviado por luizpratini83 em 05/02/2016 - 17:29h

Obrigado por compartilhar! Ótimo tutorial!

[13] Comentário enviado por lxpx em 13/07/2016 - 12:35h

Bom dia,

Tenho um IP VIRTUAL (alias IP) na eth1 e gostaria de servir IP´s para essa rede.
Por exemplo, meus endereços são:
eth1 192.168.20.1/24
eth1:0 192.168.30.1/24

Gostaria de ofecer IP´s para eth1:0, ou seja, para a rede 192.168.30.0/24.
Não funcionou ao determinar a interface com eth1, nem como eth1:0 em /etc/default/idc-dhcp-server.
Falta alguma configuração?
Obrigado!



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts