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