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.975 ]

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


Instalação - Configuração básica



Instalação e configuração do ISC-DHCP

A versão mais recente, pode ser obtida no endereço:
Após baixar, basta descompactar e compilar o pacote.

Outra forma de instalar o ISC-DHCP server, é através do repositório da distribuição GNU/Linux que está sendo utilizada. O repositório é basicamente um servidor de arquivos disponível na Internet, onde possui diversos programas e pacotes pré-compilados para a distribuição GNU/Linux especifica, a maioria dos repositórios somente são acessíveis através do gerenciador de pacotes presente na distribuição GNU/Linux, basta que a máquina em questão esteja conectada com a Internet.

Nas distribuições derivadas do Debian (Ubuntu, Kurumin, Linux Mint, etc...), o pacote correspondente ao servidor DHCP chama-se "dhcp3-server". Para instalá-lo, basta digitar:

# apt-get install dhcp3-server

No Red Hat (e distribuições derivadas dele, como o Fedora e CentOS), o pacote chama-se, simplesmente, "dhcp". Para instalá-lo, basta digitar:

# yum install dhcp

Embora o pacote chama-se apenas "dhcp", o script referente ao serviço, chama-se "dhcpd", de forma que os comandos para iniciar, parar o serviço, ou reiniciá-lo, são:

# service dhcpd start
# service dhcpd stop
# service dhcpd restart


Ou também, através dos comandos:

# /etc/init.d/dhcp3-server start
# /etc/init.d/dhcp3-server stop
# /etc/init.d/dhcp3-server restart


Também pode haver a necessidade de ativá-lo, ou desativar manualmente para iniciar junto com o sistema (junto ao boot), usando o comando chkconfig:

# chkconfig dhcpd on
# chkconfig dhcpd off


Configuração básica

O arquivo de configuração é o "dhcpd.conf". Neste, será configurado o servidor, e lá estará inserido todas as informações a cerca de seu funcionamento. Ao instalar o serviço, ele já adiciona o arquivo, porém, como não está configurado, o serviço não ficará ativo até que esteja configurado corretamente e dado o comando para iniciar o serviço.

Este arquivo, originalmente, possui cerca de 110 linhas, sendo que 90% delas são textos comentados, explicando cada item da configuração, como configurar e dando exemplos de configurações.

A localização do arquivo "dhcpd.conf" no sistema GNU/Linux é /etc/dhcp3/dhcpd.conf, em algumas distribuições, pode ser em /etc/dhcpd.conf.

Após instalar o ISC-DHCP, deve-se determinar, caso haja mais de uma, qual placa de rede o servidor DHCP estará ativo, ou seja, em qual placa ele atenderá as requisições.

Para isto, basta editar o arquivo presente em /etc/default/dhcp3-server, na maioria das distribuições. Ao editar o arquivo, haverá uma linha apenas escrito “INTERFACES” nela, deverá ser inserido o nome da placa de rede em que deseja que o serviço seja ativado:

INTERFACES=”eth0”


O GNU/Linux identifica as placas de rede como “eth”, seguido do número a partir do 0, caso tenha 3 placas, serão respectivamente, “eth0”, “eth1” e “eth2”. Em caso de utilização de placa Wireless, ela pode ser identificada “wlan0”, “ath0” ou “ra0”, por exemplo. Ao definir em qual placa o servidor DHCP irá atender, deve-se finalmente configurar.

Nesta etapa, há 3 opções:
  1. Utilizar o arquivo "dhcpd.conf" original, seguindo as instruções e usando a configuração desejada;
  2. Criar um novo arquivo "dhcpd.conf" e adicionar a configuração;
  3. Utilizar um aplicativo em modo gráfico para a configuração.

Nas 2 primeiras opções, o arquivo "dhcpd.conf" ficará, basicamente, semelhante ao seguinte:

# /etc/dhcp3/dhcpd.conf
ddns-update-style none;
default-lease-time 1800;
max-lease-time 14400;
authoritative;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.250;
option routers 192.168.1.1;
option domain-name-servers 8.8.8.8,8.8.4.4;
option broadcast-address 192.168.1.255;


host Win2003 {
hardware ethernet 09:0F:B0:FF:EA:10;
fixed-address 192.168.1.2;
}
}


Com a exceção de que, na primeira opção de configuração, entre cada uma dessas linhas haverá textos explicando cada função, para que serve, como funciona e um exemplo de configuração.

default-lease-time 1800;


Nesta linha, é indicado ao servidor, checar a cada 1800 segundos (30 minutos), se a máquina está ativa, ou seja, utilizando o endereço DHCP.

max-lease-time 14400;


Nesta opção, a máquina cliente irá receber o “aluguel” do endereço IP por 14400 segundos (4 horas), ou seja, é o tempo que a máquina vai receber para utilizar o endereço. Depois de decorrido um percentual deste tempo, a máquina cliente vai requisitar a renovação.

Caso a rede possua, por algum motivo, um pool de endereços pequeno, e haja mais máquinas do que IP’s disponíveis, estas duas configurações deverão ter seu tempo reduzido, pois assim, a máquina utiliza o IP apenas pelo tempo em que necessita, e caso seja desligada ou desconectada da rede, o servidor DHCP irá detectar isso em menos tempo, tendo assim o endereço IP, disponível novamente para ser atribuído à outro host.

subnet 192.168.1.0 netmask 255.255.255.0


Essa linha determina a rede, sub-rede e a máscara da rede em que o servidor irá trabalhar, atribuindo os endereços IP. As linhas de configuração seguintes definirão a rede, o pool de endereços (range), exceções (IP fixo), endereços de servidores de nome de domínio.

range 192.168.1.100 192.168.1.250;


Range, define o pool de endereços que ficarão disponíveis para a atribuição automática de endereços. Neste exemplo, os endereços que o servidor irá atribuir ficam no “espaço” entre "192.168.1.100" e "192.168.1.250", ou seja, há 150 endereços disponíveis para os hosts da rede.

Conclui-se portanto, que há 102 endereços que não fazem parte do range, destinados portanto para máquinas que desempenham algum papel importante na rede e precisam de um endereço físico.

option routers 192.168.1.1;


Esta linha informa para as máquinas qual é o endereço de “gateway” ou do roteador, que está na “divisa” entre a rede interna e a Internet, por exemplo, exercendo a função de firewall ou proxy na maioria dos casos.

option domain-name-servers 8.8.8.8,8.8.4.4;


Aqui, deve ser informado (opcionalmente) os endereços de servidores de resolução de nomes de endereço/domínio, ou DNS. Redes pequenas, em sua maioria, não possuem DNS’s próprios, os endereços aqui inseridos são os DNS’s fornecidos pela provedora de Internet, pode-se usar qualquer endereço de DNS público, como por exemplo, o OpenDNS (208.67.222.222 e 208.67.220.220) ou o DNS do Google (8.8.8.8 e 8.8.4.4).

option broadcast-address 192.168.1.255;


Informado opcionalmente, o endereço de broadcast da rede. O endereço com final 255 é reservado para broadcast.

host Win2003 {
hardware ethernet 09:0F:B0:FF:EA:10;
fixed-address 192.168.1.2;
}


O bloco acima é para definir a atribuição manual de IP fixo para uma determinada máquina, inicia-se com o nome da máquina.

Neste exemplo, ela chama-se “Win2003”, declarando que trata-se de um servidor Microsoft Windows 2003, e que desempenha algum serviço importante na rede, após o nome, indica-se o seu endereço físico de rede (o MAC da placa), e finalmente, o IP que sempre será dado a esta máquina quando ela requisitar. Para adicionar mais máquinas que receberão este tipo de atribuição, basta inserir um bloco semelhante a este, mudando apenas o nome, o MAC e o IP destinado a ela.

Página anterior     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

Truques e dicas para o Acer Aspire One e o Linpus Linux Lite

Comando du - encontrando as maiores pastas e arquivos no Linux

Mais desempenho no GNU Emacs com o YASnippet

WebCDWrite: O incrível serviço de gravação de CD-R sob demanda via HTTP

Utilizando ferramentas de virtualização para testar distros

  
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