Pular para o conteúdo

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.
Esli Silva Eslih
Hits: 134.969 Categoria: Linux Subcategoria: Miscelânea
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Parte 3: 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 Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.


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.

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
   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...

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

Instalando Metaframe Citrix Client numa estação Linux

Compactação de Arquivos

Servidor VNC no Fedora

VIM avançado (parte 2)

APTonCD: Ubuntu Linux sem dependência de internet

#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
#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

Entre na sua conta para comentar.