DHCP (Dynamic Host Configuration Protocol) を使用すると、TCP/IP ネットワーク内のホストシステムを、ブート時にネットワークに合わせて自動的に構成できます。DHCP では、クライアント/サーバーメカニズムが使用されます。サーバーは、クライアントの構成情報を格納、管理し、クライアントの要求に応じてその構成情報を提供します。構成情報には、クライアントの IP アドレスと、クライアントが使用可能なネットワークサービス情報が含まれます。
DHCP の主な利点は、リースを通して IP アドレス割り当てを管理できることです。リースを使用すると、使用されていない IP アドレスを回収し、他のクライアントに割り当て直すことができます。この機能によって、1 つのサイトで使用する IP アドレスプールは、すべてのクライアントに常時アドレスを割り当てた場合に比べて、小さくなります。
DHCP を使用してネットワーク上で Solaris オペレーティング環境をインストールできるのは、一定の条件のクライアントシステムに限られます。この機能を使用できるのは、Sun Enterprise Ultra システムと Solaris オペレーティング環境を実行するためのハードウェア要件を満たしている x86 システムだけです。
次の作業マップに、クライアントが DHCP を使用してインストールパラメータを取得するために必要な作業を示します。
表 7–3 作業マップ: DHCP サービスによるシステム構成情報の事前設定
作業 |
説明 |
参照先 |
---|---|---|
インストールサーバーの構成 |
Solaris サーバーを設定して、ネットワークから Solaris オペレーティング環境をインストールする必要があるクライアントをサポートする | |
DHCP を使用してネットワーク経由で Solaris をインストールできるようにクライアントシステムを構成する |
add_install_client -d を使用して、特定のクラスあるいはマシンタイプに属するクライアントや特定のクライアント ID に対して、DHCP ネットワークインストールのサポートを追加する |
Solaris DVD を使用する場合 DVD イメージを使用してネットワークからインストールするシステムを追加する Solaris CD を使用する場合 CD イメージを使用してネットワークからインストールするシステムを追加する add_install_client(1M) |
DHCP サービスを使用するためにネットワークを準備する |
DHCP サーバーをどのように構成するかを決定する |
『Solaris のシステム管理 (IP サービス)』の「DHCP サービスの使用計画 (手順)」 |
DHCP サーバーを構成する |
DHCP マネージャを使用して DHCP サーバーを構成する |
『Solaris のシステム管理 (IP サービス)』の「DHCP サービスの構成 (手順)」 |
インストールパラメータ用の DHCP オプションとそのオプションを含むマクロの作成 |
DHCP マネージャまたは dhtadm を使用して、DHCP サーバーがインストール情報をクライアントに渡すときに使用できる、新しいベンダーオプションとマクロを作成する |
インストールサーバー上で add_install_client -d スクリプトを使用してクライアントを追加するとき、そのスクリプトは DHCP 構成情報を標準出力にレポートします。この情報は、ネットワークインストール情報をクライアントに伝えるために必要なオプションとマクロを作成する際に使用できます。
ネットワークから DHCP クライアントに対してインストールを行うには、ベンダーカテゴリオプションを作成して、Solaris オペレーティング環境をインストールするために必要な情報を伝える必要があります。表 7–4 に、作成する必要のあるオプションと、その作成に必要なプロパティを示します。次の表のベンダークライアントクラスは、各オプションを使用できるクライアントのクラスを表します。ここに示されているベンダークライアントクラスは単なる例です。ネットワークからインストールする必要がある実際のクライアントについて、クライアントクラスを指定する必要があります。クライアントのベンダークライアントクラスを調べる方法については、『 Solaris のシステム管理 (IP サービス)』の「DHCP オプションを使用した作業 (作業マップ)」を参照してください。
DHCP オプションの詳細については、『Solaris のシステム管理 (IP サービス)』の「DHCP のオプション」を参照してください。
表 7–4 Solaris クライアント用にベンダーカテゴリオプションを作成するための値
名前 |
コード |
データ型 |
データの単位数 (Granularity) |
最大値 |
ベンダークライアントクラス |
説明 |
---|---|---|---|---|---|---|
次のベンダーカテゴリオプションは、クライアントへの Solaris のインストールを DHCP サーバーでサポートするために必須のものです。これらのオプションは、Solaris クライアントの起動スクリプトで使用されます。 |
||||||
SrootIP4 |
2 |
IP アドレス |
1 |
1 |
SUNW.Sun-Blade-1000、SUNW.Sun-Fire-880、SUNW.i86pc |
ルートサーバーの IP アドレス |
SrootNM |
3 |
ASCII テキスト |
1 |
0 |
SUNW.Sun-Blade-1000、SUNW.Sun-Fire-880、SUNW.i86pc |
ルートサーバーのホスト名 |
SrootPTH |
4 |
ASCII テキスト |
1 |
0 |
SUNW.Sun-Blade-1000、SUNW.Sun-Fire-880、SUNW.i86pc |
ルートサーバーにあるクライアントのルートディレクトリへのパス |
SinstIP4 |
10 |
IP アドレス |
1 |
1 |
SUNW.Sun-Blade-1000、SUNW.Sun-Fire-880、SUNW.i86pc |
JumpStart インストールサーバーの IP アドレス |
SinstNM |
11 |
ASCII テキスト |
1 |
0 |
SUNW.Sun-Blade-1000、SUNW.Sun-Fire-880、SUNW.i86pc |
インストールサーバーのホスト名 |
SinstPTH |
12 |
ASCII テキスト |
1 |
0 |
SUNW.Sun-Blade-1000、SUNW.Sun-Fire-880、SUNW.i86pc |
インストールサーバーにあるインストールイメージへのパス |
次のオプションは、クライアントの起動スクリプトで使用できますが、必須ではありません。 |
||||||
SrootOpt |
1 |
ASCII テキスト |
1 |
0 |
SUNW.Sun-Blade-1000、SUNW.Sun-Fire-880、SUNW.i86pc |
クライアントのルートファイルシステム用の NFS マウントオプション |
SbootFIL |
7 |
ASCII テキスト |
1 |
0 |
SUNW.Sun-Blade-1000、SUNW.Sun-Fire-880、SUNW.i86pc |
クライアントのブートファイルへのパス |
SbootRS |
9 |
数値 |
2 |
1 |
SUNW.Sun-Blade-1000、SUNW.Sun-Fire-880、SUNW.i86pc |
カーネルを読み込む際にスタンドアロンのブートプログラムが使用する NFS 読み込みサイズ |
SsysidCF |
13 |
ASCII テキスト |
1 |
0 |
SUNW.Sun-Blade-1000、SUNW.Sun-Fire-880、SUNW.i86pc |
server:/path という形式での、sysidcfg ファイルへのパス |
SjumpsCF |
14 |
ASCII テキスト |
1 |
0 |
SUNW.Sun-Blade-1000、SUNW.Sun-Fire-880、SUNW.i86pc |
server:/path という形式での、JumpStart 構成ファイルへのパス |
16 |
ASCII テキスト |
1 |
0 |
SUNW.Sun-Blade-1000、SUNW.Sun-Fire-880、SUNW.i86pc |
スタンドアロンのブートファイルへのパスまたは WAN ブートファイルへのパス。スタンドアロンのブートファイルの場合は、次の形式を使用する tftp://inetboot.sun4u WAN ブートファイルの場合は、次の形式を使用する http://host.domain/path-to-file このオプションを使用すると、BootFile と siaddr の設定を無効にし、スタンドアロンのブートファイルを検出させることができる。サポートされているプロトコルは、tftp (inetboot) および http (wanboot)。たとえば、次の形式を使用する tftp://inetboot.sun4u |
|
17 |
ASCII テキスト |
1 |
0 |
SUNW.Sun-Blade-1000、SUNW.Sun-Fire-880、SUNW.i86pc |
ネットワーク上で使用されているプロキシサーバーの IP アドレスとポート番号。このオプションが必要なのは、クライアントが WAN を介してブートされる場合で、ローカルネットワークでプロキシサーバーが使用されているときだけです。たとえば、次の形式を使用する 198.162.10.5:8080 |
|
次のオプションは、Solaris クライアントの起動スクリプトで現在は使用されていません。起動スクリプトを編集する場合だけ、これらのオプションを使用できます。 |
||||||
SswapIP4 |
5 |
IP アドレス |
1 |
0 |
SUNW.Sun-Blade-1000、SUNW.Sun-Fire-880、SUNW.i86pc |
スワップサーバーの IP アドレス |
SswapPTH |
6 |
ASCII テキスト |
1 |
0 |
SUNW.Sun-Blade-1000、SUNW.Sun-Fire-880、SUNW.i86pc |
スワップサーバーにあるクライアントのスワップファイルへのパス |
Stz |
8 |
ASCII テキスト |
1 |
0 |
SUNW.Sun-Blade-1000、SUNW.Sun-Fire-880、SUNW.i86pc |
クライアントのタイムゾーン |
Sterm |
15 |
ASCII テキスト |
1 |
0 |
SUNW.Sun-Blade-1000、SUNW.Sun-Fire-880、SUNW.i86pc |
端末タイプ |
オプションがすでに作成されていれば、これらのオプションを含んだマクロを作成することができます。次に、クライアントに対する Solaris のインストールをサポートするために作成できるマクロの例を示します。
表 7–5 ネットワークインストールクライアントをサポートするマクロの例
マクロ名 |
含まれるオプションとマクロ |
---|---|
Solaris |
SrootIP4、SrootNM、SinstIP4、SinstNM |
sparc |
SrootPTH、SinstPTH |
sun4u |
Solaris マクロと sparc マクロ |
i86pc |
Solaris マクロ、SrootPTH、SinstPTH、SbootFIL |
SUNW.i86pc |
i86pc マクロ |
SUNW.Sun-Blade-1000 |
sun4u マクロ、SbootFIL |
SUNW.Sun-Fire-880 |
sun4u マクロ、SbootFIL |
xxx.xxx.xxx.xxx ネットワークアドレスマクロ |
BootSrvA オプションは既存のネットワークアドレスマクロに追加できる。BootSrvA の値は tftboot サーバーを示す必要がある |
上記の表に示されているマクロ名は、ネットワークからインストールする必要のあるクライアントのベンダークライアントクラスと一致します。これらの名前は、ネットワーク上にあるクライアントの例です。クライアントのベンダークライアントクラスを調べる方法については、『Solaris のシステム管理 (IP サービス)』の「DHCP オプションを使用した作業 (作業マップ)」を参照してください。
これらのオプションとマクロは、次の方法で作成できます。
dhtadm コマンドを使ってオプションとマクロを作成するスクリプトを記述する。これらのオプションとマクロを作成するスクリプトの記述方法については、dhtadm を使用してオプションとマクロを作成するスクリプトの作成を参照
オプションとマクロを DHCP マネージャで作成する。オプションとマクロを DHCP マネージャで作成する方法については、DHCP マネージャを使用したインストールオプションとマクロの作成を参照
例 7–1 の例を変更して Korn シェルスクリプトを作成し、表 7–4 に示されているすべてのオプションと、いくつかの便利なマクロを作成できます。引用符に囲まれたすべての IP アドレスと値を、実際のネットワークの IP アドレス、サーバー名、およびパスに変更してください。また、Vendor= キーを編集して、使用するクライアントのクラスを示す必要もあります。add_install_client -d の情報を使って、スクリプトを変更するために必要なデータを取得します。
# Solaris ベンダー固有のオプションを読み込みます。 # Sun-Blade-1000、Sun-Fire-880、および i86 プラットフォームのサポートを開始します。 # -A を -M に変更すると、値を追加するのではなく、現在の値に上書きします。 dhtadm -A -s SrootOpt -d \ 'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,1,ASCII,1,0' dhtadm -A -s SrootIP4 -d \ 'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,2,IP,1,1' dhtadm -A -s SrootNM -d \ 'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,3,ASCII,1,0' dhtadm -A -s SrootPTH -d \ 'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,4,ASCII,1,0' dhtadm -A -s SswapIP4 -d \ 'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,5,IP,1,0' dhtadm -A -s SswapPTH -d \ 'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,6,ASCII,1,0' dhtadm -A -s SbootFIL -d \ 'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,7,ASCII,1,0' dhtadm -A -s Stz -d \ 'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,8,ASCII,1,0' dhtadm -A -s SbootRS -d \ 'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,9,NUMBER,2,1' dhtadm -A -s SinstIP4 -d \ 'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,10,IP,1,1' dhtadm -A -s SinstNM -d \ 'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,11,ASCII,1,0' dhtadm -A -s SinstPTH -d \ 'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,12,ASCII,1,0' dhtadm -A -s SsysidCF -d \ 'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,13,ASCII,1,0' dhtadm -A -s SjumpsCF -d \ 'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,14,ASCII,1,0' dhtadm -A -s Sterm -d \ 'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,15,ASCII,1,0' dhtadm -A -s SbootURI -d \ 'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,16,ASCII,1,0' dhtadm -A -s SHTTPproxy -d \ 'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,17,ASCII,1,0' # 役立つマクロ定義をいくつか読み込みます。 # Solaris 汎用のオプションをすべて、この Solaris というマクロに定義します。 dhtadm -A -m Solaris -d \ ':SrootIP4=10.21.0.2:SrootNM="blue2":SinstIP4=10.21.0.2:SinstNM="red5":' # sparc プラットフォーム固有のオプションをすべて、この sparc というマクロに定義します。 dhtadm -A -m sparc -d \ ':SrootPTH="/export/sparc/root":SinstPTH="/export/sparc/install":' # sun4u アーキテクチャ固有のオプションをすべて、この sun4u というマクロに定義します。 # (Solaris マクロと sparc マクロも含む) dhtadm -A -m sun4u -d ':Include=Solaris:Include=sparc:' # Solaris on IA32 プラットフォーム固有のパラメータを、この i86pc というマクロに定義します。 dhtadm -A -m i86pc -d \ ':Include=Solaris:SrootPTH="/export/i86pc/root":SinstPTH="/export/i86pc/install"\ :SbootFIL="/platform/i86pc/kernel/unix":' # Solaris on IA32 マシンは、"SUNW.i86pc" クラスによって識別されます。 # このクラスのメンバーとして識別されるクライアントはすべて、 # SUNW.i86pc というマクロ内のパラメータを認識できます。このマクロには、i86pc マクロが含まれています。 dhtadm -A -m SUNW.i86pc -d ':Include=i86pc:' # Sun-Blade-1000 プラットフォームは、 # "SUNW.Sun-Blade-1000" クラスの一部として識別されます。 # このクラスのメンバーとして識別されるクライアントはすべて、 # これらのパラメータを認識できます。 dhtadm -A -m SUNW.Sun-Blade-1000 -d \ ':SbootFIL="/platform/sun4u/kernel/sparcv9/unix":\ Include=sun4u:' # Sun-Fire-880 プラットフォームは、"SUNW.Sun-Fire-880" クラスの一部として識別されます。 # このクラスのメンバーとして識別されるクライアントはすべて、これらのパラメータを認識できます。 dhtadm -A -m SUNW.Sun-Fire-880 -d \ ':SbootFIL="/platform/sun4u/kernel/sparcv9/unix":Include=sun4u:' # DHCP サーバーで管理されるトポロジーについて、各ネットワークマクロにブートサーバー IP を追加します。 # ブートサーバーは DHCP サーバーと同じマシンで実行されています。 dhtadm -M -m 10.20.64.64 -e BootSrvA=10.21.0.2 dhtadm -M -m 10.20.64.0 -e BootSrvA=10.21.0.2 dhtadm -M -m 10.20.64.128 -e BootSrvA=10.21.0.2 dhtadm -M -m 10.21.0.0 -e BootSrvA=10.21.0.2 dhtadm -M -m 10.22.0.0 -e BootSrvA=10.21.0.2 # ホスト名がクライアントに返されるようにします。 dhtadm -M -m DHCP-servername -e Hostname=_NULL_VALUE_ # この MAC アドレスを持つクライアントはディスクレスクライアントです。 # インストール用のネットワーク範囲設定ルート設定を、クライアントのルートディレクトリで置き換えます。 dhtadm -A -m 0800201AC25E -d \ ':SrootIP4=10.23.128.2:SrootNM="orange-svr-2":SrootPTH="/export/root/10.23.128.12":' |
スーパーユーザーになり、dhtadm をバッチモードで実行します。オプションとマクロを dhcptab に追加するためのスクリプトの名前を指定します。たとえば、スクリプトの名前が netinstalloptions の場合、次のコマンドを入力します。
# dhtadm -B netinstalloptions |
Vendor= 文字列に指定されているベンダークライアントクラスを持つクライアントが、DHCP を使ってネットワーク経由でインストールできるようになります。
dhtadm コマンドの使用方法の詳細については、dhtadm(1M) のマニュアルページを参照してください。dhcptab ファイルの詳細は、dhcptab(4) のマニュアルページを参照してください。
DHCP マネージャを使って、表 7–4 のオプションと表 7–5 のマクロを作成できます。
この手順では、DHCP サーバーを構成済みであると仮定します。DHCP サーバーの構成を完了していない場合は、『Solaris のシステム管理 (IP サービス)』の「DHCP サービスの使用計画 (手順)」を参照してください。
DHCP サーバーシステム上でスーパーユーザーになります。
DHCP マネージャを起動します。
# /usr/sadm/admin/bin/dhcpmgr & |
「DHCP マネージャ (DHCP Manager)」ウィンドウが表示されます。
DHCP マネージャで「オプション (Options)」を選択します。
「編集 (Edit)」メニューから「作成 (Create)」を選択します。
「オプションの作成 (Create Option)」ダイアログボックスが開きます。
最初のオプションのオプション名を入力し、そのオプションに値を入力します。
表 7–4 を使用して、作成する必要があるオプションの名前と値を調べます。ベンダークライアントクラスは推奨値に過ぎないことに注意してください。DHCP サービスから Solaris インストールパラメータを取得する必要がある実際のクライアントのタイプを示すクラスを作成する必要があります。 クライアントのベンダークライアントクラスを調べる方法については、『Solaris のシステム管理 (IP サービス)』の「DHCP オプションを使用した作業 (作業マップ)」を参照してください。
すべての値を入力したら、「了解 (OK)」をクリックします。
「オプション (Options)」タブで、今作成したオプションを選択します。
「編集 (Edit)」メニューから「複製 (Duplicate)」を選択します。
「オプションの複製 (Duplicate Option)」ダイアログボックスが開きます。
別のオプションの名前を入力し、その他の値を適宜変更します。
コード、データ型、データの単位数、最大値は通常は変更する必要があります。これらの値については、表 7–4 を参照してください。
すべてのオプションを作成するまで、手順 7 から 手順 9 までを繰り返します。
次の手順の説明に従って、ネットワークインストールクライアントにオプションを渡すマクロを作成できます。
これらのオプションはすでに Solaris クライアントの /etc/dhcp/inittab ファイルに含まれているので、わざわざ追加する必要はありません。
この手順では、DHCP サーバーを構成済みであると仮定します。DHCP サーバーの構成を完了していない場合は、『Solaris のシステム管理 (IP サービス)』の「DHCP サービスの使用計画 (手順)」を参照してください。
DHCP マネージャで「マクロ (Macros)」を選択します。
「編集 (Edit)」メニューから「作成 (Create)」を選択します。
「マクロの作成 (Create Macro)」ダイアログボックスが開きます。
マクロの名前を入力します。
使用できるマクロ名については、表 7–5 を参照してください。
「選択 (Select)」ボタンをクリックします。
「オプションの選択 (Select Option)」ダイアログボックスが開きます。
「カテゴリ (Category)」リストで「ベンダー (Vendor)」を選択します。
作成したベンダーオプションがリストされます。
マクロに追加するオプションを選択して、「了解 (OK)」をクリックします。
オプションの値を入力します。
オプションのデータ型については表 7–4 を参照してください。add_install_client -d の情報も参照してください。
すべてのオプションを追加するまで、手順 6 から手順 7 までを繰り返します。
別のマクロを追加するには、オプション名に Include と入力し、オプション値にそのマクロ名を入力します。
マクロが完成したら、「了解 (OK)」をクリックします。