Configure um sistema DHCP Failover

O DHCP, Dynamic Host Configuration Protocol, é um protocolo de serviço TCP/IP que distribui automaticamente configurações de rede aos terminais, que se liguem na rede.

Para além de um endereço de rede (IP), este servidor oferece também a máscara de rede, Default Gateway, servidor(es) de DNS, domínio a que as máquinas pertencem, etc.

No artigo anterior explicamos como funciona o serviço de DHCP e exemplificamos como devem ser as configurações básicas num servidor de DHCP. E se o servidor DHCP falhar, o que acontece à nossa rede?

E se o nosso servidor parar de atribuir IP’s, o que acontece?

Caso o servidor de DHCP falhe, temos um caso muito sério para resolver, porque temos os colaboradores da nossa empresa todos offline e não podem aceder a recursos de rede, logo não estão a produzir, não estão a gerar lucro.

Qual a solução?

Hoje vou apresentar-vos uma solução baseada em software opensource, que resolverá o problema descrito acima, instalando um sistema de DHCP Failover.

Como funciona o DHCP Failover?

O DHCP Failover consiste em termos dois servidores de DHCP (um primário e outro secundário), que partilham a(s) mesma(s) pool(s) de IP’s e comunicam entre si, para que saibam sempre quais são os IP’s que já estão alugados. No case de um dos servidores falhar o outro assume automaticamente as funções, mantendo sempre os alugueres que foram atribuídos pelo outro servidor.

DHCP failover

Caso prático

Para este caso prático vamos precisar de duas máquinas com Ubuntu Server, o software isc-dhcp-server e um switch para ligar máquinas.

Nota: Vai ser utilizada a máquina configurada no tutorial anterior.

Inicialmente as máquinas foram configuradas com IP estático. Para isso basta editar o ficheiro/etc/network/interfaces

  • Máquina 1 – IP: 10.10.10.1/24, na interface eth1
  • Máquina 2 – IP: 10.10.10.2/24, na interface eth1

Instale o servidor de DHCP em ambas as máquinas (Pode consultar como aqui ou seguir os passos)

sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install isc-dhcp-server

Depois de instalado o software, é necessário definir o interface de rede onde o servidor vai estar à escuta. Para isso basta editar o ficheiro /etc/default/isc-server-dhcp e colocar a interface que vai estar a escuta, no nosso caso é a “eth1”.

Vamos agora à parte mais importante, que é configurar o ficheiro /etc/dhcp/dhcpd.conf.

Configuração da Máquina 1

option domain-name "techemportugues.com";
option domain-name-servers ns1.techemportugues.com;

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

failover peer "dhcp-failover" {
primary;
address 10.10.10.1;
port 647;
peer address 10.10.10.2;
peer port 647;
max-response-delay 30;
max-unacked-updates 10;
load balance max seconds 3;
mclt 1800;
split 128;
}
subnet 10.10.10.0 netmask 255.255.255.0 {
option routers 10.10.10.254;
option domain-name "techemportugues.com";
option domain-name-servers 10.10.10.254;
pool {
failover peer "dhcp-failover";
max-lease-time 1800;
range 10.10.10.10 10.10.10.253;
}
}

Como se vê no excerto do ficheiro de configuração, existe uma declaração de um “cluster” de DHCP, em que o primário usa o IP 10.10.10.1 e o secundário usa o 10.10.10.2, comunicando através da porta 647.

Configuração da Máquina 2

option domain-name "techemportugues.com";
option domain-name-servers ns1.techemportugues.com;

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

failover peer "dhcp-failover" {
secondary;
address 10.10.10.2;
port 647;
peer address 10.10.10.1;
peer port 647;
max-response-delay 30;
max-unacked-updates 10;
load balance max seconds 3;
}
subnet 10.10.10.0 netmask 255.255.255.0 {
option routers 10.10.10.254;
option domain-name "techemportugues.com";
option domain-name-servers 10.10.10.254;
pool {
failover peer "dhcp-failover";
max-lease-time 1800;
range 10.10.10.10 10.10.10.253;
}
}

No final de todas as configurações, deve guardar os ficheiros e fazer um restart no serviço em ambas as máquinas, recorrendo ao comando:

sudo service isc-dhcp-server restart

Se tudo correu bem, ser-lhe-á mostrada uma mensagem de sucesso e o número de processo.

Para testar esta solução pode abrir o log de ambas as máquinas, recorrendo ao comando tail –f /var/log/syslog e verificar que as máquinas estão a comunicar.

Ao ligar máquinas à rede, irá verificar que ambas fazem ofertas, mas apenas uma delas satisfaz o pedido. Por fim aconselho a desligar um deles para testarem o failover e constatarem que o serviço é assegurado pela máquina que ficou activa.

DHCP Failover

Para quem a disponibilidade de serviços é um factor importante, nada melhor que ter um serviço redundante. Como vimos, configurar um DHCP com failover é algo bastante simples e rápido.

Que outros serviços gostariam de ver aqui explicados?

Fonte das imagens