このページではLinuxサーバーを利用してパソコンIPアドレス割り当てるDHCPサーバーの設定方法について初心者/ビギナー向けに解説します。
お便利サーバー.com+相互リンクサイト内をキーワードで検索
NTP SSH DHCPサーバーの構築

NTPサーバーについて

ntpdの設定(WBEL3,CentOS3)

ntpdの設定(WBEL4,CentOS4)

ntpdの設定(CentOS5)

ntpdのコントロール

ntpdの動作チェック


SSHサーバーについて

sshdの設定(WBEL3,CentOS3)

sshdの設定(WBEL4,CentOS4)

sshdの設定(CentOS5)

sshdのコントロール

sshdの動作チェック

ポートフォワーディングの設定


DHCPサーバーについて

DHCPのインストールと設定

DHCPのコントロール

DHCPの動作チェック


DHCPサーバーのインストール

この コンテンツ に従って普通に WBEL CentOS インストール すると、 構築中のLinuxサーバー には DHCPサーバー アプリケーション はインストールされていないはずです。

そこでまずDHCPをインストールします。

WBELやCentOSに標準でインストールされる DHCP は、インストール CD にも収録されていますから、これを利用してインストールを行うこともできます。

しかし既に yum が利用可能になっているのであれば yumによるシステムのアップデートの設定(WBEL3) yumによるシステムのアップデートの設定(CentOS3) yumによるシステムのアップデートの設定(WBEL4) yumによるシステムのアップデートの設定(CentOS4) yumによるシステムのアップデートの設定(CentOS5) 、以下のように簡単な コマンド 操作で ダウンロード とインストールを一気に行うことができます。

まず、 サブネット 内の適当な クライアント機 から SSHクライアント 構築中のLinuxサーバー ログイン します SSHクライアントでサーバーに接続する(WBEL3) SSHクライアントでサーバーに接続する(CentOS3) SSHクライアントでサーバーに接続する(WBEL4) SSHクライアントでサーバーに接続する(CentOS4) SSHクライアントでサーバーに接続する(CentOS5)

それから su コマンド ユーザーアカウント "root" に変更し、yumコマンドでDHCPのインストールを行います。

[tanaka@web1 ~]$ su -Enter
Password: "root"のパスワードを入力します。 Enter
[root@web1 ~]# yum install dhcpEnter
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
addons                          | 951 B   00:00
base                           | 2.1 kB   00:00
extras                          | 2.1 kB   00:00
updates                         | 1.9 kB   00:00
updates/primary_db                    | 186 kB   00:00
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package dhcp.i386 12:3.0.5-23.el5 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
Package    Arch      Version           Repository   Size
================================================================================
Installing:
dhcp      i386      12:3.0.5-23.el5       base      866 k

Transaction Summary
================================================================================
Install    1 Package(s)
Upgrade    0 Package(s)

Total download size: 866 k
Is this ok [y/N]: yEnter
Downloading Packages:
dhcp-3.0.5-23.el5.i386.rpm                | 866 kB   00:00
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
 Installing   : dhcp                           1/1

Installed:
 dhcp.i386 12:3.0.5-23.el5

Complete!
[root@web1 ~]#

これでDHCPのインストール作業は終了です。

このページの先頭へ↑

DHCPの構築に必要なファイル

yum WBEL 及び CentOS の標準的な方法で 構築中のLinuxサーバー インストール された DHCP とその設定に必要なファイルを以下に示します。

DHCPの必要ファイル一覧
DHCPの必要ファイル一覧

DHCPの本体プログラムは"/usr/sbin/dhcpd"ですが、これを直接呼び出すことはまずありません。

実際にはこの"/usr/sbin/dhcpd"を用いて、起動や終了を容易にコントロールできるように記述された スクリプト である "/etc/rc.d/init.d/dhcpd" を用います。

また"/etc/rc.d/init.d/"の シンボリックリンク が"/etc/init.d/"になっていますので、スクリプトは "/etc/init.d/dhcpd" でも呼び出すことができます。

例えば、

"/etc/rc.d/init.d/" には パス が通っていません パスが通っていないディレクトリにあるファイルの実行 から、パスを省略して実行することはできません。

"/etc/init.d/dhcpd start" →DHCPの起動

"/etc/init.d/dhcpd stop" →DHCPの停止

という使い方になります。

DHCPの設定ファイルは "/etc/dhcpd.conf" です。

DHCPはほとんどの動作についてこの"/etc/dhcpd.conf"の内容を参照しますから、設定に関して書き換えが必要なファイルはこの"/etc/dhcpd.conf"だけだと思ってよいでしょう。

またDHCPは、 クライアント に割り当てた ノード の情報を "/var/lib/dhcp/dhcpd.leases" という テキスト ファイルに記録しますので、このファイルの内容を参照することで IPアドレス の割り当て状況を確認することができるようになっています DHCPのリース状況の確認

このページの先頭へ↑

"/etc/dhcpd.conf"の編集

WBEL3 CentOS3 、WBEL4、CentOS4では、 DHCP の設定ファイル "/etc/dhcpd.conf" デフォルト では存在しません。

CentOS5の場合は予め "/etc/dhcpd.conf" が準備されていますがその内容は、

#
# DHCP Server Configuration file.
#  see /usr/share/doc/dhcp*/dhcpd.conf.sample
#

と、ただの注釈文になっています。

"x.x.x" の部分はDHCPのバージョン番号になっているはずです。

そこで初めてDHCPを設定するときはそのテンプレートファイルである "/usr/share/doc/dhcp-x.x.x/dhcpd.conf.sample" をコピーして "/etc/dhcpd.conf" 作成する必要があります。

まず、 サブネット 内の適当な クライアント機 から SSHクライアント 構築中のLinuxサーバー ログイン します SSHクライアントでサーバーに接続する(WBEL3) SSHクライアントでサーバーに接続する(CentOS3) SSHクライアントでサーバーに接続する(WBEL4) SSHクライアントでサーバーに接続する(CentOS4) SSHクライアントでサーバーに接続する(CentOS5)

それから su コマンド ユーザーアカウント "root" に変更し、 cp コマンドで設定ファイルを作成します。

CentOS5ではコピー先に同名のファイル "/etc/dhcpd.conf" が存在するため、上書きの確認メッセージが出ますから y Enter でコピーを続行します。

その後、 nano エディタで "/etc/dhcpd.conf" を開きます nanoエディタでファイルを開く

[tanaka@web1 ~]$ su -Enter
Password: "root"のパスワードを入力します。 Enter
[root@web1 ~]# cp /usr/share/doc/dhcp-3.0.1/dhcpd.conf.samp
le /etc/dhcpd.conf
Enter
[root@web1 ~]# nano /etc/dhcpd.confEnter


nanoで/etc/dhcpd.confを開く
nanoで"/etc/dhcpd.conf"を開く

"/etc/dhcpd.conf" は、DHCPが動作中でも自由に書き換えることができます。

ただし、 WBEL CentOS サーバー アプリケーション は通常、設定ファイルを保存しただけでは設定は反映されません。もちろんDHCPも例外ではありません。

サーバーアプリケーションの設定ファイルは、通常サーバーアプリケーションの起動時に参照されて読み込まれますから、設定ファイルの保存後にサーバーアプリケーションの再起動を行うか、設定ファイルの再読み込みのコマンドを実行しなければ、設定ファイルの修正は有効になりませんので注意してください。

またDHCPは クライアント からの ノード の割り当ての要請がなければ具体的な動作しません。

そのため、 サーバー 側の設定を変更し、設定を反映させてもすぐにはクライアントのノード情報は変更されません。

具体的にはクライアントの接続をやり直すか、ノード情報のリース期限が切れて再度ノードの割り当てが実行されるまではクライアント側の情報は変更になりませんので注意してください。

DHCPの再起動、設定ファイルの再読み込みについては、 DHCPのコントロールについて で説明します。

このページの先頭へ↑

"/etc/dhcpd.conf"の編集

以下に編集前の"/etc/dhcpd.conf"の内容を示します。

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

subnet 192.168.0.0 netmask 255.255.255.0 {
   1. 「ノード情報を割り当てるネットワークの設定。」


# --- default gateway
    option routers         192.168.0.1;
    option subnet-mask       255.255.255.0;
   2. 「ゲートウェイアドレスの設定。」

    option nis-domain        "domain.org";
    option domain-name       "domain.org";
   3. 「クライアントに設定するドメイン名の設定。」

    option domain-name-servers   192.168.1.1;
   4. 「クライアントに利用させるDNSサーバーの設定。」

    option time-offset       -18000; # Eastern Standard Time
#    option ntp-servers       192.168.1.1;
#    option netbios-name-servers   192.168.1.1;
# --- Selects point-to-point node (default is hybrid). Don't change this unless
# -- you understand Netbios very well
#    option netbios-node-type 2;

    range dynamic-bootp 192.168.0.128 192.168.0.254;
   5. DHCPで割り当てるIPアドレスの予約範囲の設定。

    default-lease-time 21600;
   6. デフォルトのノード情報リース時間の設定。

    max-lease-time 43200;
   7. ノード情報の最大リース時間の設定。

    # we want the nameserver to appear at a fixed address
    host ns {
        next-server marvin.redhat.com;
        hardware ethernet 12:34:56:78:AB:CD;
        fixed-address 207.175.42.254;
   8. 特定のMACアドレスへの固定のIPアドレスの設定(例)。

    }
}

サンプルの "/etc/dhcpd.conf" はこのように非常に簡単な内容になっていますが、実際には MACアドレス などを基準にして クライアント をグループ化して管理するなど、非常に柔軟で複雑な設定が可能です。

ただし今回はあくまで自宅内のネットワークを管理するためのDHCPサーバーの構築ですから、これに必要な部分だけに絞って説明します。

なお、 "#" で始まる行はコメント行として無視されますので適宜注釈文などの挿入に利用してください。

1. 「ノード情報を割り当てるネットワークの設定。」

この設定は以後に記述する設定の基本情報を決めるもので、平たく言えば、 DHCPサーバー の管轄の設定になります。

現在使用中の ネットワークアドレス サブネットマスク値 で単純に、

subnet 192.168.100.0 netmask 255.255.255.0 {

と書き換えてください。

最後の "{" は設定ファイルの最後の "}" とペアになっていますので削除しないようにしてください。

2. 「ゲートウェイアドレスの設定。」

クライアントに設定する ゲートウェイアドレス を設定します。

ルーター に割り当てている IPアドレス サブネットマスク値 で、

    option routers         192.168.100.1;
    option subnet-mask       255.255.255.0;

と書き換えてください。

3. 「クライアントに設定するドメイン名の設定。」

DHCPサーバー から ノード 情報を割り当てる クライアント に対して ドメイン名 を割り当てる設定です。

この設定により、 ホスト名 が設定されているクライアントに対して一括してドメイン名を付加し、 FQDN を設定することができるようになります。

ただしこの設定は 「クライアントの識別情報をFQDNで行う。」 という運用スタイルをとる場合にしか意味を持ちません。

例えば通常 LAN 内では、 WindowsOS の標準 プロトコル である NetBIOS over TCP/IP や、 MacintoshOS のAppleTalk over TCP/IPなどでファイル共有を行っているはずですが、これらは識別情報にFQDNを使うことはありません。

従って通常ここでの設定はほとんど意味を持たないことになります。

実際のところ、DHCPでノード情報を割り当てるクライアント機にサーバー機能を持たせ、それを 公開サーバー として稼動させるような 特殊な 場合に限り意味を持つ設定といえます。

従って通常は、

#    option nis-domain        "domain.org";
#    option domain-name       "domain.org";

のようにコメントアウトして設定を無効にするか、

#    option nis-domain        "domain.org";
    option domain-name       "obenri.com";

のように "option domain-name" にだけ自分で運用しているドメイン名を設定します。

"option nis-domain" のほうは NIS に関する設定ですが、これはまず利用することはないのでコメントアウトしてください。

4. 「クライアントに利用させるDNSサーバーの設定。」

DHCPサーバー から ノード 情報を与えられた クライアント は、ここで設定された DNSサーバー 名前解決 を行うようになります。

ただし、クライアントの多くはDHCPサーバーの設定に係わらず、独自に参照するDNSサーバーを設定できます。もちろんその場合にはクライアント個々の設定が優先されますから、この部分設定はクライアントに対して絶対的な拘束力をもっているわけではないことを覚えておいてください。

もしも 構築中のLinuxサーバー に自前のDNSサーバーを設置しない場合は、回線を契約している ISP 指定のDNSサーバーの IPアドレス を、

    option domain-name-servers   [DNSサーバー1],[DNSサーバー2];

のように "," で区切って優先順に記述します。

また、 ルーター 「DNSリカーシブ機能」 ルーターのDNSフォワード機能について を利用させたい場合はルーターのIPアドレスを直接、

    option domain-name-servers   192.168.100.1;

と設定します。

そして、 構築中のLinuxサーバー に自前のDNSサーバーを構築し、これを参照させる場合には

    option domain-name-servers   192.168.100.11;

と設定します。

5. DHCPで割り当てるIPアドレスの予約範囲の設定。

ここで設定した範囲が DHCPサーバー で割り当てる IPアドレス として予約され、重複しないように クライアント に設定されることになります。この範囲のことを一般に "DHCPスコープ" と呼びます。

例えば、

    range dynamic-bootp 192.168.100.101 192.168.0.116;

と設定すると、 "192.168.100.101〜192.168.100.116" の16個のIPアドレスがプールされますから、最大で16台の クライアント をDHCPで賄うことができるようになります。

DHCPスコープの先頭のIPアドレスの記述と末尾のIPアドレスの記述の間は スペース で区切ってください。

もっとも、家庭内の LAN 扱うクライアントの数がそんなに多いはずはありませんから、必要なければもっと範囲を狭くしても構いません。

しかし ネットワーククラス C で構築された一般的なLANでも、合計254ものノードを設定できるわけですから、むしろ余裕をもって範囲を設定しておいたほうが後々面倒がありません。

サーバー機 で構築する DHCPサーバー ルーター のDHCP機能よりも遥かに性能が良いので、ここで広い範囲を設定してもトラブルが起こることはまずあり得ませんので、安心して大きめに設定範囲を決めてください。

6. デフォルトのノード情報リース時間の設定。

DHCPサーバー から クライアント に割り当てられた ノード 情報は、いつまでも有効になるわけではありません。

DHCPサーバーによって設定されたノード情報は一定時間を経過すると一度クリアされ、クライアントが再び サブネット に認識されたときに改めてDHCPサーバーからノードを割り当ててもらうような仕組みになっています。

ここでは、同じノード情報を維持する時間(リース時間)を "秒" で設定します。

デフォルト の設定は、

    default-lease-time 21600;

となっていますから、リース時間は "21600/60/60=6時間" です。

正確にいうと、リース時間を越えてから初めて通信が途絶えたとき、が更新のタイミングになります。

つまり、クライアント機が6時間以上動きっぱなしでも、ノード情報が割り当てられてから6時間後には必ず情報が更新されることになります。

ここで極端に短い時間(例えば数分)を設定するとDHCPサーバーは頻繁に更新作業を行わなければならなくなりますが、接続しているクライアントが数台程度であれば大した負荷にはなりません。

逆に極端に長い時間(例えば数日)を設定すると、一度リースされたノード情報がいつまでも開放されないため、場合によっては割り当てるIPアドレスの数が不足するかもしれません。ただしこの場合でも、接続しているクライアントが数台に限られていれば問題はありません。

実際のところここの部分の設定は、一般に1時間(3600)以上2日間(172800)以下であれば、実用上はあまり大きな差はないと考えてください。

というわけですからここは デフォルトのままでOKです

蛇足ですが、例えばパソコン教室のように「台数は多いが接続するパソコンは決まっている。」という環境の場合は、この値を大きめにしてサーバーの負荷を減らしたほうがベターです。

逆に公共ネットワークなどで不特定多数のユーザーが自分のパソコンを持ち込んで接続するような環境では、この値を小さめにして使わなくなったノードを早く開放したほうが効率よく運用できるようになります。

いずれにせよ自宅内の LAN では、あまり真剣に考えるべきパラメータではありません。

7. ノード情報の最大リース時間の設定。

一般にはあまり利用されることはありませんが、 DHCP では クライアント 側から、リース時間を指定できるものがあります。

ただ、非常識に長いリース時間を設定されては困ることがありますので、そういう場合でもこの設定でサーバー側で上限を定めることができます。

通常は上で設定した "default-lease-time" の2倍程度の値を設定しておけばOKですから、 "default-lease-time" をデフォルトのまま使用する場合にはここも、

    max-lease-time 43200;

とデフォルトでOKです。

8. 特定のMACアドレスへの固定のIPアドレスの設定。

DHCPサーバー は、管理可能な サブネット 内の NIC に対して特定の ノード 情報を設定することができます。

設定すべきNICを特定するには、通常DHCPサーバーはそのNICの MACアドレス を利用します。

この仕組みを利用すると、例えば自分のノートパソコンを常に DHCP クライアント に設定したままで、

「外出先では接続先のDHCPサーバーに応じてノード情報をもらい、自宅の LAN に接続した場合は常に同じIPアドレス設定させる。」

という特殊な運用が可能になります。

ポートフォワーディングを設定するには、設定対象の ホスト プライベートIPアドレス が固定されている必要があるからですね。

これはそのノートパソコンを自宅の LAN 内に接続した場合に限って ポートフォワーディング を設定したいような場合に便利な設定です。

例えばネットワーク対戦ゲームを楽しむ場合や、特定の業者と提携して映像のストリーミング再生のサービスを受ける場合などに有効な設定といえます。

しかしながらこの設定は「常時稼動の自宅サーバーの構築を支援する」というこの コンテンツ の主旨とは少し離れてしまいますのでここでの説明は割愛します。

興味のある方はインターネット上の情報などを参考にチャレンジしてみてください。

というわけで、通常は該当する設定部分を、

    # we want the nameserver to appear at a fixed address
#    host ns {
#        next-server marvin.redhat.com;
#        hardware ethernet 12:34:56:78:AB:CD;
#        fixed-address 207.175.42.254;
#    }

のようにすべてコメントアウトしてください。

このサイトは既に更新を終了していますが、今のところ店じまいの予定はありません。 リンクフリー ですので、趣味や勉強のためでしたら、引用、転用、コピー、朗読、その他OKです。このサイトへのリンクについては こちら をご覧ください。
Powered by Apache
”Linux”は、Linus Torvalds 氏の各国における登録商標です。”Red Hat”及びRed Hatのロゴおよび Red Hat をベースとしたすべての商標とロゴは、各国におけるRed Hat, Inc. 社の商標または登録商標です。その他のプログラム名、システム名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。
www.centos.org - The Community ENTerprise Operating System