DHCPサーバー(dhcpd)
20120127
動作環境
CentOS6.x
概要
1.二つのネットワークセグメントに対して動作するDHCPサーバーを構築する。
→NICを二つ用意するか、仮想NICでそれぞれのセグメントに属するインターフェースを用意します。
2.冗長構成としてルーターのDHCP機能を残したままの状態とする。
→これに伴い、同一セグメントで複数のDHCPサーバーが動作する事への対処として管理アドレスを厳格化します。
ネットワーク環境
LinuxによるDHCPサーバー
ネットワーク1(192.168.0.0/24)
配布アドレス : 192.168.0.8 〜 192.168.0.31
配布先IPアドレスを一部固定 : 192.168.0.8
DHCPサーバーアドレス : 192.168.0.3
NTPサーバーアドレス : 192.168.0.3
WINSサーバーアドレス : 192.168.0.3
デフォルトゲートウェイ : 192.168.0.1
ブロードキャストアドレス : 192.168.0.255
ネットワーク2(192.168.10.0/24)
配布アドレス : 192.168.10.8 〜 192.168.10.31
配布先IPアドレスを一部固定 : 192.168.10.8
DHCPサーバーアドレス : 192.168.10.3
NTPサーバーアドレス : 192.168.10.3
WINSサーバーアドレス : 192.168.10.3
デフォルトゲートウェイ : 192.168.10.1
ブロードキャストアドレス : 192.168.10.255
----------------------------------------------------------------------------------------------------
ルーターによるDHCPサーバー
ネットワーク1(192.168.0.0/24)
配布アドレス : 192.168.0.32 〜 192.168.0.63
以下同一につき省略
ネットワーク2(192.168.10.0/24)
配布アドレス : 192.168.10.32 〜 192.168.10.63
以下同一につき省略
→ルーター設定については各自適した方法で設定。
→ルーターによる冗長構成を用いない場合は設定不要。
◆まずはインストール
[root@Server ~]# yum -y install dhcp
◆設定ファイル編集
[root@Server ~]# vi /etc/dhcp/dhcpd.conf (CentOS5.xの場合は「/etc/dhcpd.conf」)
# 20120125
# ログ出力facility。デフォルト「7」はciscoのログ出力と被るので変更
# 各自環境に合わせて変更して下さい。
log-facility local3;
# ネットワーク設定その1
# DHCPサーバーとして稼動させるネットワークの設定
subnet 192.168.0.0 netmask 255.255.255.0 {
# 配布アドレスの設定。この場合192.168.0.8〜192.168.0.31
range 192.168.0.8 192.168.0.31;
# 動作が不安定な場合や、別のDHCPサーバーを優先して使用したい場合はコメントアウト(#)を外して下さい。
# not authoritative;
# DNSサーバーのアドレスを設定。複数設定やドメイン名での指定も可能。省略可能
option domain-name-servers 192.168.0.3, 192.168.0.1;
# NTPサーバーの設定。複数設定やドメイン名での指定も可能。省略可能
option ntp-servers 192.168.0.3;
# WINSサーバーの設定。複数設定やドメイン名での指定も可能。省略可能
option netbios-name-servers 192.168.0.3;
# デフォルトゲートウェイの設定。通常はルーターのIPアドレス。
option routers 192.168.0.1;
# ブロードキャストアドレスの設定。
option broadcast-address 192.168.0.255;
# 配布したIPアドレスのリリース期限設定。秒数で設定。
default-lease-time 43200;
max-lease-time 86400;
}
# ネットワーク設定その2
# 二つ以上のセグメントに対してDHCPサーバーとして稼動させない場合は必要ありません。
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.8 192.168.10.31;
option domain-name-servers 192.168.10.3, 192.168.10.1;
option ntp-servers 192.168.10.3;
option netbios-name-servers 192.168.10.3;
option routers 192.168.10.1;
option broadcast-address 192.168.10.255;
default-lease-time 43200;
max-lease-time 86400;
}
# 固定IP割り当て
# ホスト名等、適当にわかりやすい名前を設定。
host PC-1 {
# 対象ホスト(NIC)のMACアドレスを設定
hardware ethernet 08:00:07:26:c0:a5;
# 配布するIPアドレスを設定
# 「subnet」で指定した配布アドレス領域以外のIPアドレスを指定する事も可能です。
# この場合「not authoritative」とログ出力し、クライアントに「DHCP NAK」を通知するが動作に支障はない模様。
fixed-address 192.168.0.8;
}
host PC-10 {
hardware ethernet 08:00:07:26:c0:a6;
fixed-address 192.168.10.8;
}
→環境に合わせて設定する事。
◆DHCPサーバーとしてIP配布を行うインターフェースを指定する。
[root@Server ~]# vi /etc/sysconfig/dhcpd
# Command line options here
DHCPDARGS="eth0 eth1"
→環境によって変更する事。
→複数のNICが存在する場合は設定必須。
◆rsyslog(syslog)の設定を変更する。
[root@Server ~]# vi /etc/rsyslog.conf
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none;local1.none;local3.none;local7.none /var/log/messages
→赤文字部分を追加。
→log-facilityで指定した値を設定
# DHCP
local3.* /var/log/dhcpd.log
→末尾でもどこでもいいのでこの2行を追記
→rsyslog(syslog)の設定方法についてはrsyslog&syslog を参考して下さい。
◆logrotateの設定
[root@Server ~]# vi /etc/logrotate.d/dhcp
# 20120124
/var/log/dhcpd.log {
notifempty
olddir /var/log/old
missingok
sharedscripts
copytruncate
}
→olddir設定は環境によって設定する事。
→logrotateについてはログローテーション設定(logrotate)を参考にして下さい。
◆起動してみる。
[root@Server ~]# /etc/rc.d/init.d/dhcpd
dhcpd を起動中: [ OK ]
→「NG」となり、ログに下記エラーが出ている場合はインターフェース指定やsbunet設定を間違えている可能性があります。
→「Jan 23 17:55:52 Server dhcpd: No subnet declaration for eth1 (192.168.0.3).」
◆最後に自動起動の設定
[root@Server ~]# chkconfig dhcpd on
以上