ネットワーク設定 · 5 min read · Nov 12, 2025
Centos 5.1でのDHCPフェイルオーバーの設定方法
Centos 5.1でのDHCPフェイルオーバーの設定方法
バージョン 1.0.0
著者: Andrew Colin Kissa
はじめに
このチュートリアルでは、デフォルトのISC DHCPサーバーを使用してCentOS 5.1でDHCPフェイルオーバーを設定する方法を説明します。これは、他のLinuxディストリビューションにも簡単に適応できます。ネットワークのダウンタイムが許容できない環境では、フェイルオーバーが必要になるでしょう。私の自宅では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" { # フェイルオーバー設定
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"; # フェイルオーバーを許可しないDHCPリース用のプール
deny dynamic bootp clients;
option routers 192.168.1.254;
range 192.168.1.25 192.168.1.50;
}
pool { # ここにブートクライアントを収容し、レプリケーションとフェイルオーバーはなし
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" { # フェイルオーバー設定
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"; # フェイルオーバーを許可しないDHCPリース用のプール
deny dynamic bootp clients;
option routers 192.168.1.254;
range 192.168.1.25 192.168.1.50;
}
pool { # ここにブートクライアントを収容し、レプリケーションとフェイルオーバーはなし
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は、2つのDHCPサーバーがフェイルオーバーとDDNSを実行するために同期する必要があるため、必要です。完全なNTPサーバーを実行することもできますが、私は外部NTPサーバーに毎時NTPを同期させるためのcronを使用する手順のみを提供します。これを両方のサーバーで実行する必要があります。
- /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新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。