DHCPのインストールと設定

GNOMEなどを使っている場合は「ソフトウェアの追加と削除」で"dhcp"で検索して該当するパッケージを導入する。コマンドラインからインストールする場合は次の通り。

[root@vmserver ~]# yum install dhcp
	:
	:
[root@vmserver ~]# chkconfig --list dhcpd
dhcpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off

パッケージを導入したら、設定ファイル(/etc/dhcpd.conf)を変更する。このファイルは利用環境によって設定項目が変わって来るが、今回は必要最小限の設定に限定して、以下の内容とした。

[root@vmserver ~]# cat /etc/dhcpd.conf
ddns-update-style       none;
ignore                  client-updates;

subnet 192.168.1.0 netmask 255.255.255.0 {
	option routers			gateway12;
	option subnet-mask		255.255.255.0;

	option nis-domain		"localdomain";
	option domain-name		"localdomain";
	option domain-name-servers	dnsserver02, dnsserver01;

	option time-offset		32400;  # Japan Standard Time
	option ntp-servers		ntp.nict.jp, ntp.jst.mfeed.ad.jp;

	deny	unknown-clients; # デフォルトで allow
}

host bishop {
	hardware ethernet	00:12:34:56:78:9A;
	fixed-address		bishop;
	next-server		vmserver;
	filename		"/linux-install/pxelinux.0";
	default-lease-time	1296000; # 2 weeks
	max-lease-time		2592000; # 4 weeks
}

上の内容は、PXEブート用のDHCPサーバとは別に、DHCPクライアントにアドレスを割当てる通常運用のDHCPサーバが別に存在するケースであり、PXEブート用のDHCPサーバは予めこのファイルにMACアドレスを登録しているクライアントにしかサービスを行なわない。(通常運用のHDCPサーバより、高速のマシンであり先に応答することを前提としている。もし、DHCPサーバ同士がクライアントを取り合いするような場合は通常運用のHDCPサーバに、ディスクレスクライアントに反応しないように設定するか、一時的に停止するしかないだろう。)

「filename」はPXEブートのソフトウェア(NBP)のパスを記入する。tftpのルートディレクトリからのパスで、標準では /tftpbootの下からのパスになる。この場合は、/linux-install/pxelinux.0で、Linuxでのルートからのパスは/tftpboot/linux-install/pxelinux.0となる。("linux-install"というディレクトリ名は後述するネットブート設定ユーティリティが使うので、固定されてしまう。本来、NBPの設置場所はとこでも良い筈だが、netbootを利用する場合は固定される。)

なお、上の/etc/dhcpd.confの例の中で使われている"vmserver", "bishop", "gateway12", "dnsserver02" 等はホスト名で/etc/hostsの中で定義されている必要がある。(ここでは、 "vmserver" がPXEブートサーバとなり、"bishop" がディスクレス・クライアントという想定だ。)IPアドレスで記述すると、IPアドレスの変更があった場合/etc/hostsの他に/etc/dhcpd.conf等の変更も必要となり、設定忘れの原因となりかねないので、できる限りホスト名を使用する。また、"ntp.nict.jp"、"ntp.jst.mfeed.ad.jp"のFQDNDNSで名前解決が可能でなければ当然使えない。

設定が終わったらdhcpdを再起動する。

[root@vmserver ~]# service dhcpd restart
Shutting down dhcpd:                                       [  OK  ]
Starting dhcpd:                                            [  OK  ]

なお、GNOMEのサービスの設定もしくはコマンドラインのchkconfig等でDHCPサービスが該当ランレベルでサービスされるように設定、確認する。

[root@vmserver ~]# chkconfig  --list dhcpd
dhcpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off

この段階で、ディスクレスマシンをPXEブートさせてみる。勿論、まだブートは出来ないがDHCPで確実にIPアドレスを取得することを確認しておく。