Rede · 8 min read · Nov 12, 2025
Como Configurar Failover DHCP No Centos 5.1
Como Configurar Failover DHCP No Centos 5.1
Versão 1.0.0
Autor: Andrew Colin Kissa
Introdução
Este tutorial irá guiá-lo na configuração de failover DHCP no CentOS 5.1 usando o servidor ISC dhcp padrão, isso pode ser facilmente adaptado para qualquer outra distribuição Linux. Você provavelmente precisará de Failover em ambientes onde o tempo de inatividade da rede não pode ser tolerado. Minha casa está rodando uma configuração DLNA, então preciso que meus dispositivos possam obter parâmetros de rede o tempo todo.
Como DHCP e DNS geralmente andam de mãos dadas, estarei configurando um servidor DNS local que permite atualizações dinâmicas, de modo que os nomes de host sejam atualizados automaticamente no DNS sempre que um lease for concedido a um cliente.
Minha configuração usará o seguinte, por favor, substitua para refletir sua própria rede.
- Nome de domínio - home.topdog-software.com
- Rede - 192.168.1.0/24
- Servidores DHCP - 192.168.1.2,192.168.1.3
- Gateway - 192.168.1.254
- Servidores DNS - 192.168.1.2,192.168.1.3
Instalar Pacotes Requeridos
- DHCP
# yum install dhcp -y - DNS
# yum install bind bind-chroot caching-nameserver -y - NTP
# yum install ntp -y
Configuração
DHCP
Faça backup de sua configuração original no Master 192.168.1.2:
Edite a configuração DHCP /etc/dhcpd.conf no master 192.168.1.2 e adicione o seguinte, leia os comentários para entender as opções:
authoritative; # o servidor é autoritativo
option domain-name "home.topdog-software.com"; # o nome de domínio emitido
option domain-name-servers 192.168.1.2,192.168.1.3; # servidores de nome emitidos
option netbios-name-servers 192.168.1.2; # servidores netbios
allow booting; # permitir inicialização pela rede
allow bootp; # permitir inicialização
next-server 192.168.1.2; # servidor TFTP para inicialização
filename "pxelinux.0"; # kernel para inicialização pela rede
ddns-update-style interim; # configurar atualizações dinâmicas de DNS
ddns-updates on;
ddns-domainname "home.topdog-software.com"; # nome de domínio para atualizações DDNS
key rndckey {
algorithm hmac-md5;
secret "xxxxxxxxxx"; # obter do arquivo /etc/rndc.key
}
zone home.topdog-software.com # zona de encaminhamento para atualizar
{
primary 127.0.0.1; # atualizar na máquina local
key rndckey; # chave a ser usada para a atualização
}
zone 1.168.192.in-addr.arpa # zona reversa para atualizar
{
primary 127.0.0.1; # atualizar na máquina local
key rndckey; # chave para atualização
}
failover peer "home-net" { # configuração de failover
primary; # Este é o primário
address 192.168.1.2; # endereço IP do primário
port 647;
peer address 192.168.1.3; # endereço IP do peer
peer port 647;
max-response-delay 60;
max-unacked-updates 10;
mclt 3600;
split 128;
load balance max seconds 3;
}
subnet 192.168.1.0 netmask 255.255.255.0 # zona para emitir endereços
{
pool {
failover peer "home-net"; # pool para leases dhcp com failover bootp não permitido
deny dynamic bootp clients;
option routers 192.168.1.254;
range 192.168.1.25 192.168.1.50;
}
pool { # acomodar nossos clientes bootp aqui sem replicação e failover
option routers 192.168.1.254;
range 192.168.1.51 192.168.1.55;
}
allow unknown-clients;
ignore client-updates;
}
Faça backup de sua configuração original no Slave 192.168.1.3:
Edite a configuração DHCP /etc/dhcpd.conf no slave 192.168.1.3 e adicione o seguinte, leia os comentários para entender as opções:
authoritative; # o servidor é autoritativo
option domain-name "home.topdog-software.com"; # o nome de domínio emitido
option domain-name-servers 192.168.1.2,192.168.1.3; # servidores de nome emitidos
option netbios-name-servers 192.168.1.2; # servidores netbios
allow booting; # permitir inicialização pela rede
allow bootp; # permitir inicialização
next-server 192.168.1.2; # servidor TFTP para inicialização
filename "pxelinux.0"; # kernel para inicialização pela rede
ddns-update-style interim; # configurar atualizações dinâmicas de DNS
ddns-updates on;
ddns-domainname "home.topdog-software.com"; # nome de domínio para atualizações DDNS
key rndckey {
algorithm hmac-md5;
secret "xxxxxxxxxx"; # obter do arquivo /etc/rndc.key no master
}
zone home.topdog-software.com # zona de encaminhamento para atualizar
{
primary 192.168.1.2; # atualizar na máquina local
key rndckey; # chave a ser usada para a atualização
}
zone 1.168.192.in-addr.arpa # zona reversa para atualizar
{
primary 192.168.1.2; # atualizar na máquina local
key rndckey; # chave para atualização
}
failover peer "home-net" { # configuração de failover
secondary; # Este é o secundário
address 192.168.1.3; # nosso endereço IP
port 647;
peer address 192.168.1.2; # endereço IP do primário
peer port 647;
max-response-delay 60;
max-unacked-updates 10;
mclt 3600;
load balance max seconds 3;
}
subnet 192.168.1.0 netmask 255.255.255.0 # zona para emitir endereços
{
pool {
failover peer "home-net"; # pool para leases dhcp com failover bootp não permitido
deny dynamic bootp clients;
option routers 192.168.1.254;
range 192.168.1.25 192.168.1.50;
}
pool { # acomodar nossos clientes bootp aqui sem replicação e failover
option routers 192.168.1.254;
range 192.168.1.51 192.168.1.55;
}
allow unknown-clients;
ignore client-updates;
}
DNS
Faça backup da configuração do Bind no master:
# cp /var/named/chroot/etc/named.caching-nameserver.conf /var/named/chroot/etc/named.caching-nameserver.conf.origEdite a configuração para refletir a configuração abaixo.
options {
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
query-source port 53;
query-source-v6 port 53;
allow-query { localhost; localnets; };
};
include "/etc/rndc.key";
include "/etc/named.rfc1912.zones";
zone "home.topdog-software.com" {
type master;
file "data/home.topdog-software.com.hosts";
allow-transfer { 192.168.1.3; };
allow-update { key "rndckey"; };
allow-query { any; };
};
zone "1.168.192.in-addr.arpa" {
type master;
file "data/1.168.192.in-addr.arpa.hosts";
allow-transfer { 192.168.1.3; };
allow-update { key "rndckey"; };
allow-query { any; };
};
Faça backup da configuração do Bind no slave:
# cp /var/named/chroot/etc/named.caching-nameserver.conf /var/named/chroot/etc/named.caching-nameserver.conf.origEdite a configuração para refletir a configuração abaixo.
options {
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
query-source port 53;
query-source-v6 port 53;
allow-query { localhost; localnets; };
};
include "/etc/rndc.key";
include "/etc/named.rfc1912.zones";
zone "home.topdog-software.com" {
type slave;
masters { 192.168.1.2; };
file "data/home.topdog-software.com.hosts";
};
zone "1.168.192.in-addr.arpa" {
type slave;
masters { 192.168.1.2; };
file "data/1.168.192.in-addr.arpa.hosts";
};
Crie os arquivos de zona no master
- /var/named/chroot/var/named/data/home.topdog-software.com.hosts
$ORIGIN . $TTL 38400 home.topdog-software.com IN SOA ns1.home.topdog-software.com. andrew.topdog.za.net. ( 2008061629 ; serial 10800 ; refresh (3 horas) 3600 ; retry (1 hora) 604800 ; expire (1 semana) 38400 ; mínimo (10 horas 40 minutos) ) NS ns1.home.topdog-software.com. NS ns2.home.topdog-software.com. ns1 IN A 192.168.1.2 ns2 IN A 192.168.1.3 - /var/named/chroot/var/named/data/1.168.192.in-addr.arpa.hosts
$ORIGIN . $TTL 38400 ; 10 horas 40 minutos 1.168.192.in-addr.arpa IN SOA ns1.home.topdog-software.com. andrew.topdog.za.net. ( 2008061644 ; serial 10800 ; refresh (3 horas) 3600 ; retry (1 hora) 604800 ; expire (1 semana) 38400 ; mínimo (10 horas 40 minutos) ) NS ns1.home.topdog-software.com. NS ns2.home.topdog-software.com. 2 IN PTR ns1.home.topdog-software.com. 3 IN PTR ns2.home.topdog-software.com.
NTP
NTP é necessário porque os dois servidores DHCP precisam estar sincronizados para que o failover e o DDNS ocorram. Você pode rodar um servidor NTP completo se quiser, eu apenas fornecerei instruções sobre como usar o cron para sincronizar o NTP com um servidor NTP externo a cada hora. Você precisa fazer isso em AMBOS os servidores.
- crie um arquivo /etc/cron.hourly/timesync e adicione o seguinte:
#!/bin/bash # tpdate -s 0.rhel.pool.ntp.org - torne o arquivo executável e execute-o pela primeira vez:
# /etc/cron.hourly/timesync
Finalmente
Bem, terminamos, vamos iniciar os serviços e começar a testar.
- no master: # service named start
- no slave: # service named start
Você deve ver o seguinte em seus logs no master:
Jun 16 13:58:56 kudusoft dhcpd: failover peer home-net: I move from recover to startup
Jun 16 13:58:56 kudusoft dhcpd: dhcpd startup succeeded
Jun 16 13:58:56 kudusoft dhcpd: failover peer home-net: I move from startup to recover
Jun 16 13:59:12 kudusoft dhcpd: failover peer home-net: peer moves from unknown-state to recover
Jun 16 13:59:12 kudusoft dhcpd: failover peer home-net: requesting full update from peer
Jun 16 13:59:12 kudusoft dhcpd: Sent update request all message to home-net
Jun 16 13:59:12 kudusoft dhcpd: failover peer home-net: peer moves from recover to recover
Jun 16 13:59:12 kudusoft dhcpd: failover peer home-net: requesting full update from peer
Jun 16 13:59:12 kudusoft dhcpd: Update request all from home-net: sending update
Jun 16 13:59:12 kudusoft dhcpd: failover peer home-net: peer update completed.
Jun 16 13:59:12 kudusoft dhcpd: failover peer home-net: I move from recover to recover-done
Jun 16 13:59:13 kudusoft dhcpd: Sent update done message to home-net
Jun 16 13:59:13 kudusoft dhcpd: failover peer home-net: peer moves from recover to recover-done
Jun 16 13:59:13 kudusoft dhcpd: failover peer home-net: I move from recover-done to normal
Jun 16 13:59:13 kudusoft dhcpd: failover peer home-net: peer moves from recover-done to normal
Jun 16 13:59:14 kudusoft dhcpd: pool 914eb10 192.168.1/24 total 26 free 25 backup 0 lts -12
Jun 16 13:59:14 kudusoft dhcpd: pool 914eb10 192.168.1/24 total 26 free 25 backup 0 lts 12
E no slave:
Jun 16 13:59:12 shaka dhcpd: Sending on Socket/fallback/fallback-net
Jun 16 13:59:12 shaka dhcpd: failover peer home-net: I move from recover to startup
Jun 16 13:59:12 shaka dhcpd: failover peer home-net: peer moves from unknown-state to recover
Jun 16 13:59:12 shaka dhcpd: dhcpd startup succeeded
Jun 16 13:59:12 shaka dhcpd: failover peer home-net: requesting full update from peer
Jun 16 13:59:12 shaka dhcpd: failover peer home-net: I move from startup to recover
Jun 16 13:59:12 shaka dhcpd: Sent update request all message to home-net
Jun 16 13:59:12 shaka dhcpd: Sent update done message to home-net
Jun 16 13:59:12 shaka dhcpd: Update request all from home-net: nothing pending
Jun 16 13:59:12 shaka dhcpd: failover peer home-net: peer moves from recover to recover-done
Jun 16 13:59:14 shaka dhcpd: failover peer home-net: peer update completed.
Jun 16 13:59:14 shaka dhcpd: failover peer home-net: I move from recover to recover-done
Jun 16 13:59:14 shaka dhcpd: failover peer home-net: peer moves from recover-done to normal
Jun 16 13:59:14 shaka dhcpd: failover peer home-net: I move from recover-done to normal
Jun 16 13:59:14 shaka dhcpd: pool 9d78ad8 192.168.1/24 total 26 free 25 backup 0 lts 12
Jun 16 13:59:14 shaka dhcpd: pool response: 12 leases
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.