네트워크 설정 · 7 min read · Nov 12, 2025
Centos 5.1에서 DHCP Failover 설정하는 방법
Centos 5.1에서 DHCP Failover 설정하는 방법
버전 1.0.0
저자: Andrew Colin Kissa
소개
이 튜토리얼은 기본 ISC DHCP 서버를 사용하여 CentOS 5.1에서 DHCP failover를 설정하는 방법을 안내합니다. 이는 다른 리눅스 배포판에도 쉽게 적용할 수 있습니다. 네트워크 다운타임을 허용할 수 없는 환경에서는 Failover가 필요할 것입니다. 제 집은 DLNA 설정을 운영하고 있으므로, 제 장치가 항상 네트워크 매개변수를 얻을 수 있어야 합니다.
DHCP와 DNS는 종종 함께 사용되므로, 클라이언트에게 임대가 부여될 때마다 호스트 이름이 DNS에 자동으로 업데이트되도록 동적 업데이트를 허용하는 로컬 DNS 서버를 구성할 것입니다.
제 구성은 다음과 같습니다. 자신의 네트워크에 맞게 변경해 주세요.
- 도메인 이름 - home.topdog-software.com
- 네트워크 - 192.168.1.0/24
- DHCP 서버 - 192.168.1.2,192.168.1.3
- 게이트웨이 - 192.168.1.254
- DNS 서버 - 192.168.1.2,192.168.1.3
필요한 패키지 설치
- DHCP
# yum install dhcp -y - DNS
# yum install bind bind-chroot caching-nameserver -y - NTP
# yum install ntp -y
구성
DHCP
마스터 192.168.1.2에서 원본 구성을 백업합니다:
마스터 192.168.1.2에서 DHCP 구성 /etc/dhcpd.conf를 편집하고 다음을 추가합니다. 옵션을 이해하기 위해 주석을 읽어보세요:
authoritative; # 서버는 권위적입니다
option domain-name "home.topdog-software.com"; # 발급된 도메인 이름
option domain-name-servers 192.168.1.2,192.168.1.3; # 발급된 이름 서버
option netbios-name-servers 192.168.1.2; # netbios 서버
allow booting; # 네트워크를 통한 부팅 허용
allow bootp; # 부팅 허용
next-server 192.168.1.2; # 부팅을 위한 TFTP 서버
filename "pxelinux.0"; # 네트워크 부팅을 위한 커널
ddns-update-style interim; # 동적 DNS 업데이트 설정
ddns-updates on;
ddns-domainname "home.topdog-software.com"; # DDNS 업데이트를 위한 도메인 이름
key rndckey {
algorithm hmac-md5;
secret "xxxxxxxxxx"; # /etc/rndc.key 파일에서 가져오기
}
zone home.topdog-software.com # 업데이트할 포워드 존
{
primary 127.0.0.1; # 로컬 머신에서 업데이트
key rndckey; # 업데이트에 사용할 키
}
zone 1.168.192.in-addr.arpa # 업데이트할 리버스 존
{
primary 127.0.0.1; # 로컬 머신에서 업데이트
key rndckey; # 업데이트에 사용할 키
}
failover peer "home-net" { # failover 구성
primary; # 이것은 기본입니다
address 192.168.1.2; # 기본 IP 주소
port 647;
peer address 192.168.1.3; # 피어의 IP 주소
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 # 주소를 발급할 존
{
pool {
failover peer "home-net"; # failover bootp가 허용되지 않는 DHCP 임대 풀
deny dynamic bootp clients;
option routers 192.168.1.254;
range 192.168.1.25 192.168.1.50;
}
pool { # 부팅 클라이언트를 위한 공간, 복제 및 failover 없음
option routers 192.168.1.254;
range 192.168.1.51 192.168.1.55;
}
allow unknown-clients;
ignore client-updates;
}슬레이브 192.168.1.3에서 원본 구성을 백업합니다:
슬레이브 192.168.1.3에서 DHCP 구성 /etc/dhcpd.conf를 편집하고 다음을 추가합니다. 옵션을 이해하기 위해 주석을 읽어보세요:
authoritative; # 서버는 권위적입니다
option domain-name "home.topdog-software.com"; # 발급된 도메인 이름
option domain-name-servers 192.168.1.2,192.168.1.3; # 발급된 이름 서버
option netbios-name-servers 192.168.1.2; # netbios 서버
allow booting; # 네트워크를 통한 부팅 허용
allow bootp; # 부팅 허용
next-server 192.168.1.2; # 부팅을 위한 TFTP 서버
filename "pxelinux.0"; # 네트워크 부팅을 위한 커널
ddns-update-style interim; # 동적 DNS 업데이트 설정
ddns-updates on;
ddns-domainname "home.topdog-software.com"; # DDNS 업데이트를 위한 도메인 이름
key rndckey {
algorithm hmac-md5;
secret "xxxxxxxxxx"; # 마스터의 /etc/rndc.key 파일에서 가져오기
}
zone home.topdog-software.com # 업데이트할 포워드 존
{
primary 192.168.1.2; # 로컬 머신에서 업데이트
key rndckey; # 업데이트에 사용할 키
}
zone 1.168.192.in-addr.arpa # 업데이트할 리버스 존
{
primary 192.168.1.2; # 로컬 머신에서 업데이트
key rndckey; # 업데이트에 사용할 키
}
failover peer "home-net" { # fail over 구성
secondary; # 이것은 보조입니다
address 192.168.1.3; # 우리의 IP 주소
port 647;
peer address 192.168.1.2; # 기본의 IP 주소
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 # 주소를 발급할 존
{
pool {
failover peer "home-net"; # failover bootp가 허용되지 않는 DHCP 임대 풀
deny dynamic bootp clients;
option routers 192.168.1.254;
range 192.168.1.25 192.168.1.50;
}
pool { # 부팅 클라이언트를 위한 공간, 복제 및 failover 없음
option routers 192.168.1.254;
range 192.168.1.51 192.168.1.55;
}
allow unknown-clients;
ignore client-updates;
}DNS
마스터에서 Bind 구성을 백업합니다:
# cp /var/named/chroot/etc/named.caching-nameserver.conf /var/named/chroot/etc/named.caching-nameserver.conf.orig구성을 아래와 같이 반영하도록 편집합니다.
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; };
};슬레이브에서 Bind 구성을 백업합니다:
# cp /var/named/chroot/etc/named.caching-nameserver.conf /var/named/chroot/etc/named.caching-nameserver.conf.orig구성을 아래와 같이 반영하도록 편집합니다.
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";
};마스터에서 존 파일 생성
- /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 ; 시리얼 10800 ; 새로 고침 (3시간) 3600 ; 재시도 (1시간) 604800 ; 만료 (1주) 38400 ; 최소 (10시간 40분) ) 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시간 40분 1.168.192.in-addr.arpa IN SOA ns1.home.topdog-software.com. andrew.topdog.za.net. ( 2008061644 ; 시리얼 10800 ; 새로 고침 (3시간) 3600 ; 재시도 (1시간) 604800 ; 만료 (1주) 38400 ; 최소 (10시간 40분) ) 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는 두 DHCP 서버가 failover 및 DDNS가 발생하기 위해 동기화되어야 하므로 필요합니다. 원하신다면 완전한 NTP 서버를 운영할 수 있지만, 저는 외부 NTP 서버에 매시간 NTP를 동기화하는 방법에 대한 지침만 제공하겠습니다. 두 서버 모두에서 이 작업을 수행해야 합니다.
- /etc/cron.hourly/timesync 파일을 생성하고 다음을 추가합니다:
#!/bin/bash # tpdate -s 0.rhel.pool.ntp.org - 파일을 실행 가능하게 만들고 처음으로 실행합니다:
# /etc/cron.hourly/timesync
마지막으로
이제 완료되었습니다. 서비스를 시작하고 테스트를 시작합시다.
- 마스터에서: # service named start
- 슬레이브에서: # service named start
마스터의 로그에서 다음을 확인할 수 있어야 합니다:
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슬레이브에서:
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새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.