Servidor DHCP, Instalar e Configurar

Dando continuidade ao tutorial anterior, vamos agora ver como configurar o Raspberry com o serviço de DHCP.

De forma a contextualizar o tutorial, vamos em primeiro ver alguns aspectos teóricos do protocolo DHCP.

Este protocolo permite uma configuração automática de IP's nos mais diversos equipamentos de rede. Pode  e deve ser usado ao nível particular ou empresarial. A sua utilidade vai crescendo à medida que a rede cresce, pois cada vez mais os mais comuns equipamentos estão ligados à rede.

Todos nós utilizamos o protocolo DHCP no nosso dia a dia sem nos apercebemos disso. Por exemplo, sempre que nos ligamos a uma rede wireless é nos atribuído um endereço IP automaticamente, quem o faz é o serviço DHCP. Portanto a sua utilização é transparente para os utilizadores.

O servidor DHCP irá responder a pedidos de configuração vindos da rede.
Ele reponde a esse pedidos com (entre outros):
  • IP atribuído
  • Máscara de rede
  • Gateway predefinido (ip do router)
  • Servidores DNS Primário e Secundário
A esta informação dá-se o nome de Lease que é obtida a partir do servidor DHCP.
Para realizar esta atribuição o servidor utiliza uma Pool de endereços IP disponíveis para este efeito.
Os IP's atribuídos a partir da Pool são dinâmicos, isto significa que um mesmo computador poderá receber IP's diferentes em dias diferentes, daí o termo dinâmico.
Mas é possível configurar o servidor DHCP para atribuir sempre o mesmo IP a um determinado equipamento de rede (neste caso o conceito de Lease não se aplica).

O que é uma Lease ? Não é nada mais do que uma reserva. E porquê uma reserva ? Para garantir que um determinado IP não é atribuído simultaneamente a vários equipamentos de rede. Portanto a reserva é feita por um determinado período de tempo, podendo ser consecutivamente renovada de forma automática e  transparente para o utilizador. 

Quando um equipamento se desliga da rede a Lease continua atribuída até o período de validade terminar, libertando desta forma o IP para outro equipamento (note-se que o serviço de DHCP não tem mecanismo de verificação de actividade por parte dos clientes, logo não "adivinha" quando um cliente se desliga).

Como se processa o mecanismo de atribuição de IP's ?
Existem 4 fases :
  • - Cliente DHCP envia para a rede (em modo broadcast) uma mensagem do tipo DHCP Discover. Esta mensagem é enviada para o porto de destino 67 com ip de destino 255.255.255.255 (broadcast). Como o cliente ainda não tem ip definido, o IP de origem vai preenchido com 0.0.0.0  e o pedido é recebido por um ou mais servidores DHCP da rede.

  • - O ou os servidores DHCP respondem com uma mensagem do tipo DHCP Offer enviada para o porto 68 do cliente. Esta mensagem contém (entre outras informações) o endereço IP oferecido (daí o termo Offer), a máscara de rede, o endereço IP do servidor. O servidor DHCP após o envio desta mensagem faz uma reserva da Lease oferecida. Esta reserva dura até que o cliente aceite, rejeite ou  exista uma falta de resposta ao DHCP Offer.

  • - O cliente após receber o DHCP Offer vindo do servidor ou servidores, escolhe um e responde com uma mensagem do tipo DHCP Request. Esta resposta também é enviada em modo broadcast e contém o IP atribuído ao cliente e o IP do servidor DHCP escolhido, como é enviada em modo Broadcast os restantes servidores DHCP também a recebem, podendo então libertar a reserva provisória.

  • - O servidor DHCP escolhido pelo cliente responde com uma mensagem do tipo DHCP Acknowledge (informando que tomou conhecimento), o cliente pode então começar a usar a configuração IP atribuída pelo servidor.    

Não é muito usual existir mais do que um servidor DHCP numa rede, mas tecnicamente é possível, porquê ? Para garantir redundância neste serviço.

A Lease é atribuída por determinado tempo, cabendo ao cliente efectuar uma renovação da mesma, sendo que normalmente esta é feita a meio do período do tempo. O processo de renovação da Lease dá origem aos quatro passos explicados anteriormente.

Agora que os aspectos teóricos mais relevante estão explicados, vamos então dar início ao processo de instalação e configuração do servidor DHCP no Raspberry.

Em primeiro devemos executar um

apt-get update

e de seguida um

apt-get install isc-dhcp-server

Em linux todos os serviços tem um daemon neste caso com o nome de dhcpd

O serviço é configurado no ficheiro de configuração dhcpd.conf
Vamos então editar o mesmo usando o pico, nano ou vi para os mais aventureiros.

Aconselho efectuarem uma cópia deste ficheiro, poderá dar jeito caso façam asneira e queiram voltar atrás.

cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bak

Vamos então editar o ficheiro de configuração:

pico /etc/dhcp/dhcpd.conf

# Para que o servidor DHCP informe o servidor DNS de uma 
# nova máquina (Lease) na rede. 
# Desta forma o servidor DNS 
# adiciona uma nova entrada ao domínio com o 
# nome da maquina que recebeu a Lease. 
# Fica a none pois não queremos para já este
# tipo de configuração 

ddns-update-style none;

# O domínio onde os clientes DHCP vão funcionar
# Os dois servidores DNS da minha rede, 
# aqui poderiam colocar
# por exemplo o 8.8.8.8 e 8.8.4.4 
# que são os servidores DNS da google

option domain-name "gondor.pt";
option domain-name-servers 192.168.100.253, 192.168.100.246;

# Os temporizadores utilizados 
# por defeito pelo serviço DHCP

default-lease-time 600;
max-lease-time 7200;

# Para tornar este servidor DHCP como
# o "principal" da rede, caso existam mais

authoritative;

# Configuração de destino dos logs

log-facility local7;


# A declaração da sub-rede, neste caso 
# vamos definir uma pool de endereços
# dinâmicos entre o ip 192.168.100.50

# e o ip 192.168.100.70  



subnet 192.168.100.0 netmask 255.255.255.0 {
  range 192.168.100.50 192.168.100.70;
  # o IP do router
  option routers 192.168.100.254;
  # Embora optional, o ip de broadcast
  option broadcast-address 192.168.100.255;
}

# Nesta secção podemos configurar IP reservados
# para determinados equipamentos, fica
# o exemplo para a minha impressora receber 
# sempre o mesmo IP, pode ser aplicado
# a qualquer equipamento desde que se saiba
# previamente qual o MAC Address, que é 
# necessário para fazer o mapeamento MAP -> IP

host brother-7055W {
  hardware ethernet 00:80:92:XX:XX:XX;
  fixed-address 192.168.100.10;
}



Depois de gravar o ficheiro, e antes de reiniciar o serviço de DHCP para que assuma as configurações do ficheiro dhcpd.conf, devemos ir ao router e retirar a configuração de DHCP para que este não responda a pedidos DHCP.

Acedendo ao router MEO devem ir a Início > Rede doméstica > Interfaces > LocalNetwork
mudar para configuração e aí retirar o visto no servidor DHCPv4 aplicar e esperar que o router reinicie.

Agora estamos em condições de reiniciar o serviço de DHCP no Raspberry usando o comando

service isc-dhcp-server restart

Ou caso seja o primeiro start

service isc-dhcp-server start

Para verificar o correcto funcionamento do serviço, poderão executar o comando netstat  e ver que  o Raspberry tem um serviço à escuta no porto UDP 67 

netstat -an  | grep 67


Podem também verificar se o daemon está a correr, verificando o processo em memória


ps aux | grep dhcpd

Podem ainda "deitar um olho" ao syslog e ver se o raspberry está a receber e responder a pedidos DHCP
usando o comando 

tail -f /var/log/syslog

A análise deste log é imperativa para verem o servidor a trocar mensagens com os clientes, desta forma poderão entender melhor o funcionamento das quatro fases do protocolo DHCP

Podem ainda analisar o ficheiro onde o servidor guarda a informação sobre as Leases atribuídas

usando o comando

cat /var/lib/dhcp/dhcpd.leases

De notar que este tutorial foi realizado num Raspberry com SO Raspbian mas pode ser aplicado em outras distribuições de Linux.

Sem comentários:

Enviar um comentário