Contents
Overview
CentOS 6 における ISC-DHCP を使用した 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
/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 サーバーが有効になります。option routers 10.0.0.1;
: DHCP クライアントに割り当てるデフォルトゲートウェイの IP アドレスを10.0.0.1
に設定しています。option subnet-mask 255.255.255.0;
: DHCP クライアントに割り当てるサブネットマスクを255.255.255.0
に設定しています。option domain-name "si1230.com";
: DHCP クライアントに割り当てるドメイン名をsi1230.com
に設定しています。option domain-name-servers 10.0.0.53;
: DHCP クライアントに割り当てる DNS サーバーの IP アドレスを10.0.0.53
に設定しています。option netbios-name-servers 10.0.0.10;
: DHCP クライアントに割り当てる WINS サーバーの IP アドレスを10.0.0.10
に設定しています。WINS は将来的に廃止される可能性が高く、現在では DNS のみで十分な場合がほとんどです。Windows の管理者に確認の上、本当に必要な場合にのみ使用して下さい。range dynamic-bootp 10.0.0.100 10.0.0.109;
: DHCP クライアントに割り当てる IP アドレスの範囲を10.0.0.100
から10.0.0.109
までとしています。
/etc/sysconfig/dhcpd
をバックアップし、エディターで開きます。/etc/sysconfig/dhcpd
[root@centos-6 ~]# cp /etc/sysconfig/dhcpd /etc/sysconfig/dhcpd.orig
[root@centos-6 ~]# vim /etc/sysconfig/dhcpd
/etc/sysconfig/dhcpd
を編集します。DHCPDARGS
は、dhcpd が動作するインターフェイスを指定する起動オプションです。この例では eth0
を指定しており、eth0
に接続されたネットワーク上の DHCP リクエストにのみ応答します。
DHCPDARGS=eth0
/etc/logrotate.d/dhcpd
/etc/logrotate.d/dhcpd
をバックアップし、エディターで開きます。
[root@centos-6 ~]# cp /etc/logrotate.d/dhcpd /etc/logrotate.d/dhcpd.orig
[root@centos-6 ~]# vim /etc/logrotate.d/dhcpd
/etc/logrotate.d/dhcpd
を編集します。
ログローテーションの設定をします。/etc/dhcp/dhcpd.conf で指定したファシリティ local6 は、syslog の設定で /var/log/dhcpd.log に書き込まれるようになっています。
/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
ブロックの終了を示します。
サービス起動設定
dhcpd
サービスを起動し、システムの起動時に有効になるように設定します。
[root@centos-6 ~]# service dhcpd start && chkconfig dhcpd on
[root@centos-6 ~]# chkconfig dhcpd --list
CentOS 6 ISC-DHCP DHCP サーバー構築