手当たり次第に書くんだ

飽きっぽいのは本能

CentOS 6 DHCP サーバー構築

Overview

CentOS 6 における DHCP サーバー (ISC DHCP) の構築手順です。

インストール

DHCP サーバーをインストールします。

[root@centos-6 ~]# yum -y install dhcp

/etc/dhcp/dhcpd.conf

/etc/dhcp/dhcpd.conf を編集します。

[root@centos-6 ~]# cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.orig
[root@centos-6 ~]# vim /etc/dhcp/dhcpd.conf
log-facility local6;
subnet 10.0.0.0 netmask 255.255.255.0 {
    option routers 10.0.0.1;
    option subnet-mask 255.255.255.0;
    option domain-name "si1230.com";
    option domain-name-servers 10.0.0.53;
    option netbios-name-servers 10.0.0.10;
    range dynamic-bootp 10.0.0.100 10.0.0.109;
}

log-facility local6;

DHCP サーバーのログの出力先を local6 に設定しています。このファシリティは、rsyslog の設定値に合わせています。設定しない場合、DHCP サーバーのログは /var/log/messages に出力されます。

subnet 10.0.0.0 netmask 255.255.255.0 {...}

  • DHCP サーバーが管理するサブネットを定義しています。このサブネットに含まれる IP アドレスが設定されたインターフェイスで DHCP サーバーが有効になります。
  • 10.0.0.0 から 10.0.0.255 までの IP アドレス範囲を表しています。
  • netmask 255.255.255.0 はサブネットのネットワークマスクを示しています。

option routers 10.0.0.1;

クライアントデバイスに割り当てるデフォルトゲートウェイ(ルーター)の IP アドレスを 10.0.0.1 に設定しています。

option subnet-mask 255.255.255.0;

クライアントデバイスに割り当てるサブネットマスクを 255.255.255.0 に設定しています。

option domain-name "si1230.com";

クライアントデバイスに割り当てるドメイン名を si1230.com に設定しています。

option domain-name-servers 10.0.0.53;

クライアントデバイスに割り当てる DNS サーバーの IP アドレスを 10.0.0.53 に設定しています。

option netbios-name-servers 10.0.0.10;

クライアントデバイスに割り当てる NetBIOS 名前解決サーバーの IP アドレスを 10.0.0.10 に設定しています。NetBIOS (WINS) は将来的に廃止される可能性が高く、現在では DNS のみで十分な場合がほとんどです。Windows の管理者に確認の上、本当に必要な場合にのみ使用して下さい。

range dynamic-bootp 10.0.0.100 10.0.0.109;

クライアントデバイスに割り当てる IP アドレスの範囲を 10.0.0.100 から 10.0.0.109 までとしています。

/etc/sysconfig/dhcpd

DHCP を有効にするインターフェイスを指定します。これは、DHCP サーバーが、IP アドレスが設定された複数のインターフェイスを持ち、且つ、/etc/dhcp/dhcpd.conf のサブネットにそれらが含まれていない場合、DHCP サーバーが警告を出力するためです。インターフェイスが 1 つの場合でも設定することが望ましいと思います。以下の例では eth0 を指定していますが、環境に応じて変更して下さい。

[root@centos-6 ~]# cp /etc/sysconfig/dhcpd /etc/sysconfig/dhcpd.orig
[root@centos-6 ~]# vim /etc/sysconfig/dhcpd
DHCPDARGS=eth0

/etc/logrotate.d/dhcpd

ログローテーションの設定をします。/etc/dhcp/dhcpd.conf で指定したファシリティ local6 は、syslog の設定で /var/log/dhcpd.log に書き込まれるようになっています。

[root@centos-6 ~]# vim /etc/logrotate.d/dhcpd
/var/log/dhcpd.log {
    notifempty
    missingok
    postrotate
        /sbin/service dhcpd condrestart 2> /dev/null > /dev/null || true
    endscript
}

/var/log/dhcpd.log {...}

ログローテーションの対象となるログファイルを指定しています。この場合は /var/log/dhcpd.log です。

notifempty

空のログファイルはローテーションを行わないという設定です。ログファイルが空の場合、ローテーションはスキップされます。

missingok

ログファイルが存在しない場合でもエラーを出力せずに処理を続行します。これにより、ログファイルが存在しない場合でもローテーションがスムーズに行われます。

postrotate

ローテーション後に実行するコマンドを指定します。

/sbin/service dhcpd condrestart 2> /dev/null > /dev/null || true

  • dhcpd を condrestart コマンドで再起動します。
  • 2> /dev/null> /dev/null は標準エラー出力と標準出力を捨てるためのものです。
  • || true は前のコマンドが失敗した場合でもエラーを無視して処理を続行するためのものです。

endscript

postrotate ブロックの終了を示します。

サービス起動設定

DHCP サービスを起動し、システムの起動時に有効になるように設定します。

[root@centos-6 ~]# service dhcpd start && chkconfig dhcpd
[root@centos-6 ~]# chkconfig dhcpd --list
CentOS 6 DHCP サーバー構築

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る