特許第6397094号(P6397094)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ レノボ・シンガポール・プライベート・リミテッドの特許一覧

特許6397094ネットワーク・ブートの方法、コンピュータおよびコンピュータ・プログラム
<>
  • 特許6397094-ネットワーク・ブートの方法、コンピュータおよびコンピュータ・プログラム 図000002
  • 特許6397094-ネットワーク・ブートの方法、コンピュータおよびコンピュータ・プログラム 図000003
  • 特許6397094-ネットワーク・ブートの方法、コンピュータおよびコンピュータ・プログラム 図000004
  • 特許6397094-ネットワーク・ブートの方法、コンピュータおよびコンピュータ・プログラム 図000005
  • 特許6397094-ネットワーク・ブートの方法、コンピュータおよびコンピュータ・プログラム 図000006
  • 特許6397094-ネットワーク・ブートの方法、コンピュータおよびコンピュータ・プログラム 図000007
  • 特許6397094-ネットワーク・ブートの方法、コンピュータおよびコンピュータ・プログラム 図000008
  • 特許6397094-ネットワーク・ブートの方法、コンピュータおよびコンピュータ・プログラム 図000009
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】6397094
(24)【登録日】2018年9月7日
(45)【発行日】2018年9月26日
(54)【発明の名称】ネットワーク・ブートの方法、コンピュータおよびコンピュータ・プログラム
(51)【国際特許分類】
   G06F 9/445 20180101AFI20180913BHJP
   G06F 21/44 20130101ALI20180913BHJP
【FI】
   G06F9/445 130
   G06F21/44
【請求項の数】15
【全頁数】14
(21)【出願番号】特願2017-156318(P2017-156318)
(22)【出願日】2017年8月14日
【審査請求日】2017年8月24日
(73)【特許権者】
【識別番号】505205731
【氏名又は名称】レノボ・シンガポール・プライベート・リミテッド
(74)【代理人】
【識別番号】100106699
【弁理士】
【氏名又は名称】渡部 弘道
(72)【発明者】
【氏名】森重 勇作
(72)【発明者】
【氏名】佐々木 健
(72)【発明者】
【氏名】荒木 直幸
(72)【発明者】
【氏名】内田 宏幸
【審査官】 塚田 肇
(56)【参考文献】
【文献】 特開2006−011506(JP,A)
【文献】 特開2007−020050(JP,A)
【文献】 特開2010−233006(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/445
G06F 21/44
(57)【特許請求の範囲】
【請求項1】
ネットワーク・ブートが可能なコンピュータであって、
ブート・イメージを展開するシステム・メモリと、
ネットワーク上の物理アドレスを保有するネットワーク・コントローラに接続が可能なインターフェースと、
前記ネットワーク上の物理アドレスとして利用可能なブート識別子を格納する第1の記憶領域と、
前記コンピュータのリセットに応じて前記物理アドレスを前記ブート識別子で書き換えてから前記ネットワーク・コントローラを通じて前記ネットワーク・ブートの要求フレームをブート・サーバに送信する機能を前記コンピュータに実現させるシステム・ファームウェアを格納する第2の記憶領域と
を有するコンピュータ。
【請求項2】
前記ネットワーク・コントローラが前記コンピュータに着脱可能に接続された機能拡張装置に実装されている請求項1に記載のコンピュータ。
【請求項3】
前記コンピュータがネットワークに接続するためのネットワーク・コントローラを実装していない請求項2に記載のコンピュータ。
【請求項4】
前記システム・ファームウェアが、前記コンピュータにオペレーティング・システムにプロセッサの制御権を渡す前に前記ネットワーク・コントローラを停止する機能を実現させる請求項3に記載のコンピュータ。
【請求項5】
他のコンピュータに接続された前記機能拡張装置が前記ネットワーク・コントローラを通じて前記他のコンピュータによる前記ネットワーク・ブートの要求フレームを前記ブート・サーバに送信する請求項2に記載のコンピュータ。
【請求項6】
前記ネットワーク・コントローラが前記コンピュータに交換が容易な接続構造で実装されている請求項1に記載のコンピュータ。
【請求項7】
前記第1の記憶領域が、オペレーティング・システムにプロセッサの制御権を渡す前に前記システム・ファームウェアによるライト・ロックが可能な請求項1に記載のコンピュータ。
【請求項8】
前記第1の記憶領域が前記コンピュータに交換が困難な接続構造で実装されている請求項1に記載のコンピュータ。
【請求項9】
前記システム・ファームウェアが、前記コンピュータにオペレーティング・システムにプロセッサの制御権を渡す前に前記ブート識別子を前記物理アドレスで書き換える機能を実現させる請求項1に記載のコンピュータ。
【請求項10】
コンピュータがネットワーク・ブートをする方法であって、
システム・ファームウェアがアクセス可能な記憶装置にネットワーク上の物理アドレスに相当するブート識別子を格納するステップと、
前記コンピュータをリセットして前記システム・ファームウェアの実行を開始させるステップと、
前記システム・ファームウェアが前記コンピュータにネットワーク・コントローラが保有する物理アドレスを前記ブート識別子で書き換える機能を実現させるステップと、
前記システム・ファームウェアが前記コンピュータに前記ネットワーク・コントローラを通じて前記ブート識別子を含む前記ネットワーク・ブートの要求フレームをブート・サーバに送信する機能を実現させるステップと
を有する方法。
【請求項11】
前記システム・ファームウェアが前記コンピュータに前記ブート・サーバを認証する機能を実現させるステップを有し、前記システム・ファームウェアが前記コンピュータに前記ブート・サーバの認証が成功したときだけ前記物理アドレスの書き換えを実行する機能を実現させる請求項10に記載の方法。
【請求項12】
前記システム・ファームウェアが前記コンピュータに前記ブート・サーバの認証が失敗したときに前記ネットワーク・ブートを停止する機能を実現させる請求項11に記載の方法。
【請求項13】
ネットワーク・ブートをすることが可能なコンピュータに、
前記コンピュータが実装する記憶装置に格納されたネットワーク上の物理アドレスに相当するブート識別子にアクセスする機能と、
前記コンピュータがリセットされたことに応じてネットワーク・コントローラが保有する物理アドレスを前記ブート識別子で書き換える機能と、
前記ブート識別子を含む前記ネットワーク・ブートの要求フレームをブート・サーバに送信する機能と
を実現させるためのコンピュータ・プログラム。
【請求項14】
前記物理アドレスがMACアドレスである請求項13に記載のコンピュータ・プログラム。
【請求項15】
前記ブート識別子が、前記MACアドレスと同じビット数のデータである請求項14に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータがネットワークからブート・イメージを取得して起動するネットワーク・ブートに関する。
【背景技術】
【0002】
コンピュータをブートさせる手法の1つに、インテル(登録商標)社が策定したPXE(Preboot eXecution Environment)というネットワーク・ブートの規格がある。PXEを利用すると、ストレージ・デバイスを備えていないコンピュータや、ストレージ・デバイスが格納するOSとは異なるOSで動作したいコンピュータが、サーバからOSを実行するためのファイルをまとめたイメージ・ファイル(ブート・イメージ)を取得してシステム・メモリにロードすることができる。
【0003】
ネットワーク・ブートの際に、ラップトップ型のパーソナル・コンピュータ(PC)は、自らの筐体に実装している有線LANや無線LANに接続するNIC(Network Interface Card or Network Interface Controller)を通じてネットワーク上のブート・サーバにアクセスする。PCはまた外部ディスプレイや外部キーボードなどを使用するための機能拡張装置に実装されたNICを通じてブート・サーバにアクセスすることができる。特許文献1は、シンクライアントをネットワーク・ストレージに接続してOSのイメージ・ファイルをロードするSCC(Storage Centric Computing)を開示する。同文献には、データ(ストレージ)をサーバや管理者側で管理することを記載する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2007−299136号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ネットワークに接続されるすべてのPCは、常に、ネットワークからの攻撃にさらされる。どのように強固なハードウェア上およびソフトウェア上のセキュリティ対策を施しても、セキュリティ・ホールや利用者の不注意などにより情報漏洩や乗っ取りなどの危険性が残る。ある限定された作業や機械の制御などに使用するPCは、ネットワークに接続する必要がない場合がある。このようなPCからNICを取り外せば、ネットワークからの攻撃を完全に防ぐことができる。
【0006】
NICを実装していないPCは、NICを備えるドッキング・ステーションやドングルといった機能拡張装置を利用してネットワークに接続することができるインターフェースを備えることができる。したがって、このようなPCが機能拡張装置を利用してネットワーク・ブートを実現できれば都合がよい。このとき、NICを実装しないことでセキュリティを向上させたPCは、ネットワーク・ブート以外の目的でネットワークに接続できないようにすることが望ましい。
【0007】
図7はPC11が、USBケーブルで接続するドッキング・ステーション21を利用してネットワーク・ブートをする様子を説明するための図である。ドッキング・ステーション21は、イーサネット(登録商標)規格のNIC23でブート・サーバ31に接続される。ブート・サーバ31は、クライアントによるネットワークへのアクセスを処理するDHCPサーバ33、クライアントを管理する管理サーバ35およびブート・イメージを格納するファイル・サーバ37を含んでいる。
【0008】
ドッキング・ステーション21には、PC11に代えてPC13をUSBケーブルで接続することができる。PC11が、ネットワーク・ブート際にNIC23を通じてブート・サーバ31にイーサネット・フレームを出力する。イーサネット・フレームには、PC11が実装するデバイス・ドライバによりNIC23が保有するMACアドレス(Media Access Control address)25が埋め込まれる。管理サーバ35は、MACアドレス25とPC11に送信するブート・イメージを関連付けて管理しており、ネットワーク・ブートのリクエストがあるとイーサネット・フレームが含むMACアドレス25に基づいてPC11に適応するブート・イメージを選択する。
【0009】
このときPC13がドッキング・ステーション21を通じてネットワーク・ブートをすると、管理サーバ35は、MACアドレス25でPC11とPC13を区別することができなくなる。PC11が他のドッキング・ステーションを使ってネットワーク・ブートをする場合も、管理サーバ35は、PC11に提供する適切なブート・イメージを選択することができなくなる。
【0010】
図8はPC15がNIC17を通じてネットワーク・ブートをするときの様子を説明するための図である。PC15は、MACアドレス19を保有するNIC17を実装する。NIC17は、マザーボードに対して着脱可能なドーターボードに実装されている場合が多い。PC15はNIC17を通じてネットワーク・ブートするとブート・サーバ31は、MACアドレス19でPC15を管理する。
【0011】
ユーザは、国ごとの電波の認証基準に従ってまたは性能の向上を目的としてNIC17を、MACアドレス23を保有するNIC21と交換する場合がある。PC15がNIC21を通じてネットワーク・ブートをするとブート・サーバ31は、MACアドレス23でPC15を管理するようになるため、MACアドレス19に関連付けていたブート・イメージをMACアドレス23に関連付けることができなくなる。本発明の目的は、ネットワーク・ブートに生ずるこのような問題を解決することにある。
【課題を解決するための手段】
【0012】
本発明の一の態様は、ネットワーク・ブートが可能なコンピュータを提供する。コンピュータは、ブート・イメージを展開するシステム・メモリと、ネットワーク上の物理アドレスを保有するネットワーク・コントローラに接続が可能なインターフェースと、ネットワーク上の物理アドレスとして利用可能なブート識別子を格納する第1の記憶領域と、コンピュータのリセットに応じて物理アドレスをブート識別子で書き換えてからネットワーク・コントローラを通じてネットワーク・ブートの要求フレームをブート・サーバに送信する機能をコンピュータに実現させるシステム・ファームウェアを格納する第2の記憶領域とを有する。
【0013】
本発明の他の態様は、コンピュータがネットワーク・ブートをする方法を提供する。この方法は、システム・ファームウェアがアクセス可能な記憶装置にネットワーク上の物理アドレスに相当するブート識別子を格納し、コンピュータをリセットしてシステム・ファームウェアの実行を開始させ、システム・ファームウェアがコンピュータにネットワーク・コントローラが保有する物理アドレスをブート識別子で書き換える機能を実現させ、システム・ファームウェアがコンピュータにネットワーク・コントローラを通じてブート識別子を含むネットワーク・ブートの要求フレームをブート・サーバに送信する機能を実現させる。
を有する方法。
【0014】
本発明のさらに他の態様は、ネットワーク・ブートをすることが可能なコンピュータに実装可能なコンピュータ・プログラムを提供する。コンピュータ・プログラムは、コンピュータが実装する記憶装置に格納されたネットワーク上の物理アドレスに相当するブート識別子にアクセスする機能と、コンピュータがリセットされたことに応じてネットワーク・コントローラが保有する物理アドレスをブート識別子で書き換える機能と、ブート識別子を含むネットワーク・ブートの要求フレームをブート・サーバに送信する機能とをコンピュータに実現させる。
【発明の効果】
【0015】
本発明の一の態様により、ネットワーク・ブートのブート・イメージとシステム本体を関連付けて管理することができた。本発明の他の態様によりシステム本体とネットワーク・コントローラの物理的一体性を維持できない場合にブート・イメージを適切に管理することができた。本発明のさらに他の態様により、コンピュータのセキュリティを向上させることができた。
【図面の簡単な説明】
【0016】
図1】PC100の主要なハードウェアの構成を示す概略の機能ブロック図である。
図2】PC100がドッキング・ステーション300を通じてネットワーク・ブートをするときの様子を説明するための図である。
図3】ファームウェアROM111の構成の一例を説明するための図である。
図4】PC100がドッキング・ステーション300を通じてネットワーク・ブートする手順を示すフローチャートである。
図5図4に続いてPC100がドッキング・ステーション300を通じてネットワーク・ブートする手順を示すフローチャートである。
図6】本実施の形態にかかる他のPC600の構成を示す概略の機能ブロック図である。
図7】PC11がドッキング・ステーション21を通じてネットワーク・ブートをするときの様子を説明するための図である。
図8】PC15がNIC17を通じてネットワーク・ブートをするときの様子を説明するための図である。
【発明を実施するための形態】
【0017】
[ハードウェアの概略構成]
図1は、PCの一例であるラップトップ型のPC100の主要なハードウェアの構成を示す機能ブロック図である。本実施の形態が適用できるPCには、デスクトップ型、ラップトップ型、およびタブレット型などのネットワーク・ブートが可能な情報処理装置全般を挙げることができる。
【0018】
図1には、本実施の形態を理解する上で必要なデバイスだけを示している。図2は、PC100がドッキング・ステーション300を利用してネットワーク・ブートをする様子を説明するための図である。図2(A)は、ブート・サーバ51に接続しないときの状態を示し、図2(B)はネットワーク・ブートをするときの状態を示している。図3は、ファームウェアROM111の構成の一例を説明するための図である。
【0019】
図1でチップ・セット103はさまざまな規格のインターフェース・コントローラを備えており、CPU101、システム・メモリ105、USBコネクタ107、入出力デバイス109、およびファームウェアROM111などが接続されている。一例においてUSBコネクタ107は、チップ・セット103のUSBコントローラに接続され、ファームウェアROM111はチップ・セット103のSPI(Serial Peripheral Interface)コントローラに接続される。
【0020】
USBコネクタ107はPC100の筐体に実装され、本実施の形態においてはドッキング・ステーション300(図2)に有線で接続するために利用する。ドッキング・ステーション300には、PC100に接続するUSBコネクタの他に、図示しない外部ディスプレイ、キーボード、マウス、ストレージ・デバイスおよびイーサネット(登録商標)用のケーブルなどを接続するコントローラやコネクタを実装することができる。したがって、ラップトップ型のPC100は、オフィスに配置したドッキング・ステーション300にUSBケーブルで接続するだけでデスクトップ型のPCのように使用できる。
【0021】
PC100はたとえば無線USBのコントローラを実装してドッキング・ステーション300に無線で接続するものであってもよい。またPC100とドッキング・ステーション300の接続規格はUSBに限る必要はない。PC100は、一例において有線および無線のNICを搭載していない。従って、PC100は単独ではネットワークに接続することができない。ただし、PC100がNICを備えている場合に、ドッキング・ステーション300に接続したときは、ドッキング・ステーション300のNIC301が有効になるような設定がされている場合には本実施の形態を適用できる。
【0022】
図2(A)において、ドッキング・ステーション300はLAN(Local Area Network)に接続するためのイーサネット(登録商標)規格のNIC301を搭載する。ドッキング・ステーション300は、イーサネット(登録商標)規格のNIC301に代えてWiFi規格のNICを搭載してもよい。NIC301は、製造時に付与されたMACアドレス303を格納する不揮発性メモリを備える。
【0023】
MACアドレスはOSI参照モデルのデータリンク層で扱う物理アドレスに相当し、IEEEによって重複しないように管理されている。PC100はドッキング・ステーション300に代えてイーサネット(登録商標)とUSBのプロトコルを変換する変換器とイーサネット(登録商標)規格のNICを備える小型の接続装置(ドングル)を利用してネットワーク・ブートをする場合にも本実施の形態を適用することができる。
【0024】
ブート・サーバ51は、ネットワーク・ブートをするPC100の認証やPC100にブート・イメージの所在を知らせるための処理などをするDHCPサーバ53、クライアントをMACアドレスや後に説明するブート識別子265で管理する管理サーバ55およびブート・イメージを格納するファイル・サーバ57を含んでいる。管理サーバ55は、ブート識別子265をMACアドレスと同じように扱ってクライアントのシステム本体とブート・イメージを関連付けて管理することができる。
【0025】
[ファームウェアROMのデータ構成]
図3において、ファームウェアROM111は、記憶内容の電気的な書き替えが可能な不揮発性メモリで、システム・ファームウェアの一例としてのUEFIを格納する。システム・ファームウェアはBIOSであってもよい。ファームウェアROM111は一例としてコード領域201、変数領域203、ブート管理領域205の3ブロックに区分している。
【0026】
コード領域201、変数領域203の一部およびブート管理領域205には、チップ・セット103のSPIコントローラでライト・ロックが可能な記録領域を割り当てている。ライト・ロックが実行された記録領域に対しては、チップ・セット103がリセットされるまで書き込みができない。UEFIファームウェアは、ブート時にCPU101の制御権をOSに渡す前にライト・ロックを実行する。したがって、OSの実行環境ではいずれのプログラムもライト・ロックされた領域にアクセスすることができないため、ブート識別子265およびブート・サーバ識別子267の一貫性は確保される。
【0027】
コード領域201はPOSTコード251、ブート・マネージャ253、UEFIドライバ255およびセット・アップ・コード257などのモジュールを含むUEFIファームウェアを格納する。POSTコード251は、所定のデバイスの検出、検査および初期化を実行する。ブート・マネージャ253は、本実施の形態にかかるネットワーク・ブートを処理する。UEFIドライバ255は、チップ・セット103に組み込んだUSBホスト、ドッキング・ステーション300が搭載するUSBターゲット、およびNIC301などのネットワーク・ブートに必要なハードウェアを制御するコードを含む。
【0028】
セット・アップ・コード257は、ブートの間に所定のキーが押下されたときにディスプレイにセット・アップ画面を表示する。変数領域203は、GV(Global Variables)、CV(Configuration Variables)およびUV(User Variables)などのUEFIファームウェアが管理する変数を格納する。ブート管理領域205は、ブート識別子265およびブート・サーバ識別子267を格納する。ブート識別子265およびブート・サーバ識別子267は、セット・アップ画面を通じて書き込むことができる。
【0029】
ブート識別子265はMACアドレスと同じビット数のデータに相当する。ブート識別子265はPC100を出荷する際に工場で書き込まれ、それ以後はスーパーバイザ・パスワードを保有する特別の権限があるユーザ以外はセット・アップ画面から改変できないようにしている。ネットワーク・ブートの際に、ブート識別子265が重複使用されないようにするために、コンピュータ・メーカは自社で出荷するPCに割り当てるブート識別子を管理する。ネットワーク・ブートの管理者は、PC100にネットワーク・ブートを許可する際に、PC100から取得したブート識別子265をブート・サーバ51に登録する。
【0030】
ブート・サーバ識別子267は、IPアドレスのオファー・コマンドを送信したDHCPサーバ53が、ネットワーク・ブートをサポートする真正なブート・サーバであることをPC100が検証するための識別子に相当する。ブート・サーバ識別子267は、DHCPサーバ53のMACアドレスまたはブート・サーバ51を特定することができる識別子とすることができる。ブート・サーバ識別子267は、ブート・サーバ51の管理者により、ネットワーク・ブートをサポートするPCのユーザに対して配布することができる。ユーザは受け取ったブート・サーバ識別子267を、UEFIファームウェアのセット・アップ画面からブート管理領域205に書き込むことができる。
【0031】
ファームウェアROM111は、マザーボードや筐体にユーザによる交換が困難な接続構造で実装されている。交換が困難な接続構造は、ユーザによる交換を想定しない実装方法に相当し、一例として半田による接続構造、着脱に特殊工具が必要な接続構造、または取り外すとマザーボードが損傷するような接続構造を挙げることができる。これとは対照的に交換が容易な接続構造は、ユーザによる交換を想定した実装方法に相当し、一例としてマザーボードにコネクタやソケットで接続されるドーターボードまたはアドイン・カードによる接続構造や筐体に形成したカード用のベイに対する接続構造を挙げることができる。
【0032】
ファームウェアROM111がPC100に交換が困難な接続構造で装着されていることにより、ブート識別子265はマザーボード、すなわちPC100のシステム本体と物理的な一体性を維持することが保証される。他の例ではブート識別子265をマザーボードや筐体に交換が困難な接続構造で実装した、UEFIファームウェアによるライト・ロックが可能な不揮発性メモリに格納することもできる。
【0033】
[PC100によるネットワーク・ブートの手順]
図4図5は、PC100がドッキング・ステーション300を利用してネットワーク・ブートをする手順を示すフローチャートである。ブロック401で、PC100とドッキング・ステーション300がUSBケーブルで接続される。この時点ではNIC301の不揮発性メモリには、図2(A)に示すようにMACアドレス303が格納されている。電源が投入されたPC100はCPU101およびチップ・セット103がリセットされる。
【0034】
PC100はCPU101がリセットされたときに必ずUEFIファームウェアを所定のアドレスから実行する。ブロック403でシステム・メモリ105にロードされたUEFIファームウェアがコールド・ブートを開始する。コールド・ブートは、電源が停止した状態から開始するブートに相当し、POSTコード251は原則としてすべてのデバイスの検出、検査および初期化を行う。
【0035】
POSTコード251は、最初にブートに必要な基本的なデバイスに対してPOSTを実行する。ブロック404でブート・マネージャ253は、ブート管理領域205からブート識別子265を取得する。ブート・マネージャ253は一例において、Simple Network Protocol-StationAddress()というUEFIプロトコルに、ブート識別子265を設定してNIC301が不揮発性メモリに記憶するMACアドレス303をブート識別子265で書き換える。
【0036】
MACアドレス303の書き換えは他のコマンドを利用して行ってもよい。このときの様子を図2(B)に示している。ブロック405で、ネットワークにアクセスするために必要なデバイスが利用可能になると、ブート・マネージャ253はブロード・キャスト・アドレスを含むイーサネット・フレームでDHCPのディスカバー・コマンドを出力する。
【0037】
ブロック501でネットワークに存在する複数のDHCPサーバが、ディスカバー・コマンドに対してPC100に割り当てが可能なIPアドレスを通知するためのオファー・コマンドを返送する。このとき、ネットワーク・ブートをサポートするDHCPサーバ53は、ブート・サーバ識別子267を含むイーサネット・フレームを送信する。ブロック407でブート・マネージャ253は、受け取ったイーサネット・フレームからブート・サーバ識別子267を抽出する。
【0038】
ブロック409でブート・マネージャ253は、ブート・サーバ51を認証する。ブート・マネージャ253はブート管理領域205に格納したブート・サーバ識別子267と、イーサネット・フレームが含むブート・サーバ識別子267を比較する。ブート・マネージャ253は、ブート・サーバ識別子267を含むイーサネット・フレームを受け取ったときはブート・サーバ51の認証が成功したと判断する。
【0039】
ブロック411でブート・マネージャ253は、ブート・サーバ識別子267を保持するブート・サーバ51のMACアドレスとIPアドレスおよびPC100に割り当てられたIPアドレスを取得する。いずれのオファー・コマンドのイーサネット・フレームにもブート・サーバ識別子267が含まれていないときは、ブート・マネージャ253はブロック415でネットワーク・ブートを中止する。この場合PC100は、ブートするために適切なブート・サーバにアクセスできる環境で再度電源を起動する必要がある。
【0040】
図5のブロック421で、ブート・マネージャ253はDHCPのリクエスト・コマンドを出力する。ブート・マネージャ253は、ブロード・キャスト・アドレスと自らに割り当てられたIPアドレスを含むイーサネット・フレームを出力する。NIC301のMACアドレス303はブート識別子265で書き換えられているため、UEFIドライバ255はDHCPリクエストをする際に、イーサネット・フレームの送信元のMACアドレスのフィールドにブート識別子265を埋め込む。
【0041】
ブロック521で自らが提案したIPアドレスを含むイーサネット・フレームを受信したDHCPサーバ53は、PC100にアック・コマンドを返送してPC100のIPアドレスを確定させる。ブロック523でDHCPサーバ53は、受け取ったイーサネット・フレームからブート識別子265を抽出する。ブロック525で、DHCPサーバ53は、ブート識別子265があらかじめ管理者が登録したブート識別子に合致するか否かを判断する。
【0042】
ブロック527でブート識別子が一致して認証が成功すると、ブロック529でDHCPサーバ53は、管理サーバ55のIPアドレス、管理サーバ55のMACアドレス、および今回PC100に割り当てたIPアドレスなどを含むネットワーク・ブートに必要なパラメータを送信する。パラメータを送信するイーサネット・フレームの宛先となるMACアドレスのフィールドには、ブート識別子265が埋め込まれる。ブロック527で認証が失敗したときはブロック537でDHCPサーバ53は、ネットワーク・ブートを中止する。このときDHCPサーバ53は、PC100にネットワーク・ブートを中止したことを通知してもよい。
【0043】
ブロック423でパラメータを受け取ったブート・マネージャ253は、管理サーバ55にネットワーク・ブートを要求する。ブロック531で管理サーバ55は、PC100がOSのブート・イメージを取得して起動するためのプログラムであるNBP(Network Bootstrap Program)のファイル名をPC100に知らせる。ブロック425でブート・マネージャ253は管理サーバ55にNBPを要求する。
【0044】
ブロック533で管理サーバ55がNBPと、ブート・イメージの格納場所を示すファイル・サーバ57のアドレスを送信する。管理サーバ55は、MACアドレスとブート・イメージを関連付けて管理することができる。これに加えて本実施の形態では管理サーバ55が、ブート識別子265とブート・イメージを関連付けて管理する。前述のようにブート識別子265は、システム本体に対する物理的な一体性が保証されている。したがってブート・イメージのバージョンが変更されたり、PC100によってブート・イメージが更新されたりしたときに、ブート識別子265にシステム本体が関連付けられた過去のブート・イメージに対応する適切なブート・イメージを選択することができる。
【0045】
ブロック427でブート・マネージャ253がファイル・サーバ57にNBPをリクエストするとブート・イメージが呼び出される。ブロック535でファイル・サーバ57が、TFTPでブート・イメージを送信すると、ブロック429でブート・イメージがシステム・メモリ105にロードされる。NICを搭載しないPC100に対して、ネットワーク・ブート以外の目的でのネットワークへの接続を禁止する場合は、ブロック431でブート・マネージャ253が、残りのPOSTが終了してCPU101の制御権をOSに渡す直前にNIC301の動作を停止する。
【0046】
ブート・マネージャ253は、PC100に対してOSの実行環境下でのインターネットへのアクセスを許可する場合はブロック433で、NIC301の不揮発性メモリが記憶するブート識別子265をMACアドレス303に書き戻す。以後OSのデバイス・ドライバは、NIC301が出力するイーサネット・フレームの発信元のMACアドレスのフィールドにMACアドレス303を埋め込む。
【0047】
ブロック435でCPU101の制御権がOSに移って、ブート・イメージが順番に実行されてブートが完了する。ブロック415の手順によりUEFIファームウェアの実行環境下で、ブート識別子265が埋め込まれたイーサネット・フレームがネットワークを流れるのは、ブート・サーバ51に対する通信のときだけである。したがって、たとえブート識別子265と同じMACアドレスを保有するNICを搭載するPCが存在してもネットワークの動作に障害をもたらすことはほとんどない。また、OSの実行環境下では、MACアドレス303を含むイーサネット・フレームでネットワークと通信することができる。
【0048】
図6は、図4図5の手順でネットワーク・ブートができるPC600の機能ブロック図である。PC600はPC100と異なり、有線または無線のNIC601を含む。さらにNIC601はPC600に対して交換が容易な接続構造で実装されている。NIC601は、MACアドレス603を格納する不揮発性メモリを備える。そして、ネットワーク・ブートの際には、MACアドレス603がブート識別子265で書き換えられ、ブート・イメージを取得するとブート識別子265がMACアドレス6013に書き戻される。
【0049】
本実施の形態を適用すると、PC600は、UEFIファームウェアがネットワーク・ブートをする際には、ブート識別子265を使用してブート・サーバ51だけにアクセスし、ブートが完了した後はMACアドレス603を使用してネットワークにアクセスができる。PC600のNIC601が他のMACアドレスを有するNICに交換されても管理サーバ55はブート識別子265に関連付けたシステム本体に対してブート・イメージを管理したり、サービスの対象とするPCを認証したりすることができる。
【0050】
PC100、600はともにOSを格納する補助記憶装置がない例を説明したが、補助記憶装置からOSのブート・イメージをロードできるPCであっても異なるOSでブートするために図4図5で説明したネットワーク・ブートを利用することができる。これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることはいうまでもないことである。
【符号の説明】
【0051】
51 ブート・サーバ
53 DHCPサーバ
55 管理サーバ
57 ファール・サーバ
100、600 PC
111 ファームウェアROM
300 ドッキング・ステーション
301、601 NIC
303 603 MACアドレス
265 ブート識別子
267 ブート・サーバ識別子
【要約】      (修正有)
【課題】ネットワークからの攻撃に対するセキュリティを強化する。
【解決手段】コンピュータ100は、ドッキング・ステーション300を通じてネットワーク・ブートが可能である。コンピュータ100はシステムと一体性を保持できる記憶装置にブート識別子265を格納する。ブート識別子265はMACアドレスと同じビット数のデータに相当する。ドッキング・ステーション300のNIC301はMACアドレス303を保有する。コンピュータ100がドッキング・ステーション300を通じてブート・サーバ51にネットワーク・ブートを要求するときは、直前にシステム・ファームウェアがMACアドレス303をブート識別子265で書き換える。ブート・サーバ51は、コンピュータ100のブート識別子265でブート・イメージを管理することができる。
【選択図】図2
図1
図2
図3
図4
図5
図6
図7
図8