Redes · 8 min read · Nov 12, 2025
Cómo Configurar la Conmutación por Error de DHCP en Centos 5.1
Cómo Configurar la Conmutación por Error de DHCP en Centos 5.1
Versión 1.0.0
Autor: Andrew Colin Kissa
Introducción
Este tutorial te guiará a través de la configuración de la conmutación por error de DHCP en CentOS 5.1 utilizando el servidor DHCP ISC por defecto, esto se puede adaptar fácilmente a cualquier otra distribución de Linux. Lo más probable es que necesites la conmutación por error en entornos donde el tiempo de inactividad de la red no se puede tolerar. Mi hogar está ejecutando una configuración DLNA, así que necesito que mis dispositivos puedan obtener parámetros de red en todo momento.
Dado que DHCP y DNS a menudo van de la mano, configuraré un servidor DNS local que permite actualizaciones dinámicas, de modo que los nombres de host se actualizarán automáticamente en DNS cada vez que se otorgue un arrendamiento a un cliente.
Mi configuración utilizará lo siguiente, por favor sustituye para reflejar tu propia red.
- Nombre de dominio - home.topdog-software.com
- Red - 192.168.1.0/24
- Servidores DHCP - 192.168.1.2,192.168.1.3
- Puerta de enlace - 192.168.1.254
- Servidores DNS - 192.168.1.2,192.168.1.3
Instalar paquetes requeridos
- DHCP
# yum install dhcp -y - DNS
# yum install bind bind-chroot caching-nameserver -y - NTP
# yum install ntp -y
Configuración
DHCP
Haz una copia de seguridad de tu configuración original en el Maestro 192.168.1.2:
Edita la configuración de DHCP /etc/dhcpd.conf en el maestro 192.168.1.2 y agrega lo siguiente, lee los comentarios para entender las opciones:
authoritative; # el servidor es autoritativo
option domain-name "home.topdog-software.com"; # el nombre de dominio emitido
option domain-name-servers 192.168.1.2,192.168.1.3; # servidores de nombres emitidos
option netbios-name-servers 192.168.1.2; # servidores netbios
allow booting; # permitir el arranque a través de la red
allow bootp; # permitir el arranque
next-server 192.168.1.2; # servidor TFTP para el arranque
filename "pxelinux.0"; # kernel para el arranque por red
ddns-update-style interim; # configurar actualizaciones dinámicas de DNS
ddns-updates on;
ddns-domainname "home.topdog-software.com"; # nombre de dominio para actualizaciones de DDNS
key rndckey {
algorithm hmac-md5;
secret "xxxxxxxxxx"; # obtener del archivo /etc/rndc.key
}
zone home.topdog-software.com # zona directa para actualizar
{
primary 127.0.0.1; # actualizar en la máquina local
key rndckey; # clave a usar para la actualización
}
zone 1.168.192.in-addr.arpa # zona inversa para actualizar
{
primary 127.0.0.1; # actualizar en la máquina local
key rndckey; # clave para la actualización
}
failover peer "home-net" { # configuración de conmutación por error
primary; # Este es el primario
address 192.168.1.2; # dirección IP del primario
port 647;
peer address 192.168.1.3; # dirección IP del par
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 direcciones
{
pool {
failover peer "home-net"; # pool para arrendamientos dhcp con conmutación por error bootp no permitido
deny dynamic bootp clients;
option routers 192.168.1.254;
range 192.168.1.25 192.168.1.50;
}
pool { # acomodar nuestros clientes bootp aquí sin replicación y conmutación por error
option routers 192.168.1.254;
range 192.168.1.51 192.168.1.55;
}
allow unknown-clients;
ignore client-updates;
}
Haz una copia de seguridad de tu configuración original en el Esclavo 192.168.1.3:
Edita la configuración de DHCP /etc/dhcpd.conf en el esclavo 192.168.1.3 y agrega lo siguiente, lee los comentarios para entender las opciones:
authoritative; # el servidor es autoritativo
option domain-name "home.topdog-software.com"; # el nombre de dominio emitido
option domain-name-servers 192.168.1.2,192.168.1.3; # servidores de nombres emitidos
option netbios-name-servers 192.168.1.2; # servidores netbios
allow booting; # permitir el arranque a través de la red
allow bootp; # permitir el arranque
next-server 192.168.1.2; # servidor TFTP para el arranque
filename "pxelinux.0"; # kernel para el arranque por red
ddns-update-style interim; # configurar actualizaciones dinámicas de DNS
ddns-updates on;
ddns-domainname "home.topdog-software.com"; # nombre de dominio para actualizaciones de DDNS
key rndckey {
algorithm hmac-md5;
secret "xxxxxxxxxx"; # obtener del archivo /etc/rndc.key en el maestro
}
zone home.topdog-software.com # zona directa para actualizar
{
primary 192.168.1.2; # actualizar en la máquina local
key rndckey; # clave a usar para la actualización
}
zone 1.168.192.in-addr.arpa # zona inversa para actualizar
{
primary 192.168.1.2; # actualizar en la máquina local
key rndckey; # clave para la actualización
}
failover peer "home-net" { # configuración de conmutación por error
secondary; # Este es el secundario
address 192.168.1.3; # nuestra dirección IP
port 647;
peer address 192.168.1.2; # dirección IP del primario
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 direcciones
{
pool {
failover peer "home-net"; # pool para arrendamientos dhcp con conmutación por error bootp no permitido
deny dynamic bootp clients;
option routers 192.168.1.254;
range 192.168.1.25 192.168.1.50;
}
pool { # acomodar nuestros clientes bootp aquí sin replicación y conmutación por error
option routers 192.168.1.254;
range 192.168.1.51 192.168.1.55;
}
allow unknown-clients;
ignore client-updates;
}
DNS
Haz una copia de seguridad de la configuración de Bind en el maestro:
# cp /var/named/chroot/etc/named.caching-nameserver.conf /var/named/chroot/etc/named.caching-nameserver.conf.origEdita la configuración para reflejar la configuración a continuación.
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; };
};
Haz una copia de seguridad de la configuración de Bind en el esclavo:
# cp /var/named/chroot/etc/named.caching-nameserver.conf /var/named/chroot/etc/named.caching-nameserver.conf.origEdita la configuración para reflejar la configuración a continuación.
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";
};
Crea los archivos de zona en el maestro
- /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 ; minimum (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 ; minimum (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 es necesario porque los dos servidores DHCP necesitan estar sincronizados para que la conmutación por error y DDNS se realicen. Puedes ejecutar un servidor NTP completo si lo deseas, solo te proporcionaré instrucciones sobre cómo usar cron para sincronizar NTP con un servidor NTP externo cada hora. Necesitas hacer esto en AMBOS servidores.
- crea un archivo /etc/cron.hourly/timesync y agrega lo siguiente:
#!/bin/bash # tpdate -s 0.rhel.pool.ntp.org - haz que el archivo sea ejecutable y ejecútalo por primera vez:
# /etc/cron.hourly/timesync
Finalmente
Bueno, hemos terminado, vamos a iniciar los servicios y comenzar a probar.
- en el maestro: # service named start
- en el esclavo: # service named start
Deberías ver lo siguiente en tus registros en el maestro:
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
Y en el esclavo:
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
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.