この記事は CentOS 6 を前提にした古いサーバー構築・保守手順の記録です。CentOS 6 は既にサポートが終了しているため、新規構築では現行の Linux ディストリビューションを利用してください。ここでは、当時の環境を保守・確認するための資料として整理しています。
参考書籍
マスタリング TCP/IP 入門編 第6版
TCP/IP、Ethernet、VLAN、ルーティングなど、ネットワークの基礎を体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。
概要
CentOS 6 における ISC-DHCP を使用した DHCP サーバーの構築手順です。
インストール
dhcp をインストールします。
yum -y install dhcp/etc/dhcp/dhcpd.conf
/etc/dhcp/dhcpd.conf を編集します。
cat > /etc/dhcp/dhcpd.conf <<'EOF'
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;
}
EOFlog-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 は当時の NetBIOS 名解決を想定した設定です。利用していない環境では省略できます。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 を編集します。DHCPDARGS は、dhcpd が動作するインターフェイスを指定する起動オプションです。この例では eth0 を指定しており、eth0 に接続されたネットワーク上の DHCP リクエストにのみ応答します。
cat > /etc/sysconfig/dhcpd <<'EOF'
DHCPDARGS=eth0
EOF/etc/logrotate.d/dhcpd
/etc/logrotate.d/dhcpd を編集します。
ログローテーションの設定をします。/etc/dhcp/dhcpd.conf で指定したファシリティ local6 は、syslog の設定で /var/log/dhcpd.log に書き込まれるようになっています。
cat > /etc/logrotate.d/dhcpd <<'EOF'
/var/log/dhcpd.log {
notifempty
missingok
postrotate
/sbin/service dhcpd condrestart 2> /dev/null > /dev/null || true
endscript
}
EOF/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 サービスを起動し、システムの起動時に有効になるように設定します。
service dhcpd start && chkconfig dhcpd on
chkconfig dhcpd --list関連記事
- CentOS 6 BIND 内部 DNS サーバー構築 – named.conf とゾーン設定
- CentOS 6 BIND 9.8.2 名前解決の失敗 – DNS トラブルの記録
- CentOS 6 OpenLDAP サーバー構築 – slapd と LDAP ディレクトリの基本
- CentOS 6 Linux 認証に LDAP を使う – NSS / PAM 連携の基本
- CentOS 6 Samba ファイルサーバー構築 – Windows 共有と認証設定
CentOS 6 ISC DHCP サーバー構築 – dhcpd.conf と配布設定




