Linux Tips

DHCPサーバを立てるには

北浦訓行
2004/1/8

 LinuxでDHCPサーバを立てるには、まず設定ファイル(dhcpd.conf)を用意する必要がある。dhcpd.confは/etcディレクトリに置かれるが、初めてDHCPサーバ機能を使う場合は、一から作成する必要がある。

 Red Hat LinuxやTurbolinux、Vine Linuxの場合、dhcpd.conf.sampleというサンプルファイルが用意されているので、そのファイルの場所をlocateコマンドなどで探して、/etcにdhcpd.confという名前でコピーする。Red Hat Linux 9の場合、以下のようになる。

# cp /usr/share/doc/dhcp-3.0pl1/dhcpd.conf.sample /etc/dhcpd.conf

 /etc/dhcpd.confをテキストエディタで開いて、適切な設定を行う。設定内容は環境によって異なるが、以下のような設定が必要になるだろう。

ddns-update-style interim;
ignore client-updates;

subnet 192.168.0.0 netmask 255.255.255.0 {

        option routers                  192.168.0.1; ←デフォルトゲートウェイ
        option subnet-mask              255.255.255.0; ←ネットマスク

        option domain-name              "example.jp"; ←ドメイン名
        option domain-name-servers      192.168.1.1; ←DNSサーバ

        option time-offset              -18000; # Eastern Standard Time

        range dynamic-bootp 192.168.0.128 192.168.0.255; ←割り当てるIPアドレスの範囲
        default-lease-time 21600; ←クライアントが期限を求めない場合の割り当て期間(秒)
        max-lease-time 43200; ←クライアントが期限を求めた場合の最大割り当て期間(秒)

}

 次に、dhcpd.leasesというファイルが存在しない場合は、このファイルを作成する(Red Hat Linux、Turbolinux、Vine Linuxではいずれも作成されている)。内容は空でいい。このファイルには、リースされたIPアドレスの情報が保存される。Red Hat LinuxとVine Linuxの場合は/var/lib/dhcpディレクトリに、Turbolinuxの場合は/var/dhcpディレクトリに作成する。

# touch /var/lib/dhcpd/dhcpd.leases

 ここまでの作業が終わったら、試しにdhcpdを起動してみる。-fおよび-dオプションを付けて、コマンドラインからdhcpdコマンドを実行すると、dhcpdがデーモンではなくフォアグランドプロセスとして実行される。また、ログが標準出力に出力されるため、dhcpd.confの設定が間違っていた場合は、画面上にエラーメッセージが表示される。

# dhcpd -f -d
Internet Software Consortium DHCP Server V3.0pl1
Copyright 1995-2001 Internet Software Consortium.
All rights reserved.
For info, please visit http://www.isc.org/products/DHCP
Address range 192.168.1.128 to 192.168.1.255 not on net 192.168.0.0/255.255.255.0! ←貸し出すIPアドレスの指定が間違っている

 設定に問題がないようであれば、[Ctrl]+[C]キーを押してdhcpdを終了させ、デーモンとして起動する。

# service dhcpd start

 dhcpd実行中に/etc/dhcpd.confを変更した場合は、必ずdhcpdを再起動しなければならない。

# service dhcpd restart

 システムを再起動してもdhcpdを実行するなら、以下のようにする。

# chkconfig dhcpd on

 なお、システムに複数のNICがある場合は、/etc/sysconfig/dhcpdで以下のようにインターフェイス名を指定する必要がある。

# Command line options here
DHCPDARGS=eth1

Linux Tips Index



 Linux Squareフォーラム Linux Tipsカテゴリ別インデックス
インストール/RPM ブート/ブートローダ
ファイル操作 環境設定
ユーザー管理 コンソール/ターミナル
X Window System セキュリティ
トラブルシューティング 他OS関係
ネットワーク ハードウェア
Webサーバ Samba
GNOME KDE
OpenOffice.org エミュレータ
ソフトウェア そのほか/FAQ
全Tips公開順インデックス Linux Tips月間ランキング
Linux Squareフォーラム全記事インデックス

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します


Linux & OSS フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Linux & OSS 記事ランキング

本日 月間