ネットワーク設定 · 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
Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。