15.7. DHCP フェイルオーバー

Turbolinux 11 Server の DHCP サーバーは、DHCP フェイルオーバー機能をサポートしています。DHCP サーバーに障害が発生した場合、DHCP クライアントは必要なネットワーク情報を取得できなくなるため、ネットワークへのアクセスが不可能な状態に陥ってしまいます。そこで、障害発生時には、プライマリの DHCP サーバーに代わってセカンダリの DHCP サーバーが処理を引き継ぐことでクライアントのネットワークアクセスを保持するのが DHCP フェイルオーバー機能です。

注意

DHCP フェイルオーバー機能を利用するためには、プライマリとセカンダリの DHCP サーバーのバージョンは必ず揃えてください。

まず、はじめにプライマリとセカンダリの DHCP サーバーは NTP サーバーなどを利用して時刻の同期をとっておきます。

プライマリサーバーの設定例

プライマリサーバーの dhcpd.conf ファイルは以下の例のように設定します。failover peer には、任意の共通の名前を指定します。プライマリサーバーは、必ず "primary;" と指定します。address および port には、プライマリサーバー自身の IP アドレス(または FQDN)とポート番号を指定し、peer address と peer port には、フェイルオーバー機能を使用する際に接続をするセカンダリサーバーの IP アドレス(または FQDN)とポート番号を指定します。

failover peer "foo" {
  primary;
  address 192.168.1.10;
  port 519;
  peer address 192.168.1.20;
  peer port 520;
  max-response-delay 60;
  max-unacked-updates 10;
  mclt 3600;
  split 128;
  load balance max seconds 3;
}
include "/etc/dhcpd.conf.master";

プライマリ、セカンダリともに include によって読み込んでいる /etc/dhcpd.conf.master ファイルには共通の項目として以下を指定しておきます。

default-lease-time 21600;
max-lease-time 43200;

option subnet-mask 255.255.255.0;
option domain-name "musasabi.net";
option domain-name-servers 192.168.1.30;
ddns-update-style ad-hoc;

subnet 192.168.1.0 netmask 255.255.255.0{
  option broadcast-address 192.168.1.255;
  pool {
    failover peer "foo";
    range 192.168.1.100 192.168.1.200;
    deny dynamic bootp clients;
  }
}

pool 宣言文内には、特定のアドレスプールを指定することができます。上記は、フェイルオーバー用のアドレスプールと、フェイルオーバーと互換性のない dynamic bootp クライアントを許可しないようにアクセス制御を指定しています。

セカンダリサーバーの設定例

セカンダリサーバーの dhcpd.conf ファイルは以下の例のように設定します。failover peer には、プライマリサーバーと共通の名前を指定します。セカンダリサーバーは、必ず "secondary;" と指定します。address および port には、セカンダリサーバー自身の IP アドレス(または FQDN)とポート番号を指定し、peer address と peer port には、フェイルオーバー機能を使用する際に接続をするプライマリサーバーの IP アドレス(または FQDN)とポート番号を指定します。

failover peer "foo" {
  secondary;
  address 192.168.1.20;
  port 520;
  peer address 192.168.1.10;
  peer port 519;
  max-response-delay 60;
  max-unacked-updates 10;
}
include "/etc/dhcpd.conf.master";

プライマリ、セカンダリともに include によって読み込んでいる /etc/dhcpd.conf.master ファイルには共通の項目として以下を指定しておきます。

default-lease-time 21600;
max-lease-time 43200;

option subnet-mask 255.255.255.0;
option domain-name "musasabi.net";
option domain-name-servers 192.168.1.30;
ddns-update-style ad-hoc;

subnet 192.168.1.0 netmask 255.255.255.0{
  option broadcast-address 192.168.1.255;
  pool {
    failover peer "foo";
    range 192.168.1.100 192.168.1.200;
    deny dynamic bootp clients;
  }
}

設定が完了したら、DHCP サーバーを再起動します。

# /etc/init.d/dhcpd restart