pxe-pdhcp + VIVER CORE Server 0.0.2

VIVER CORE Serverのバージョン0.0.2をリリースします。パッケージに「pxe-pdhcp」が加わり、DHCPサーバーの設定を変更せずにネットワークブートできるようになりました。


VIVER CORE Server 0.0.2
viver-core-server.0.0.2.tar.gz
viver-core-server.0.0.2.src.tar.gz
※2007/10/6追記: バージョン0.0.3をリリースしました > VIVER CORE Server 0.0.3リリース



0.0.1からの変更点:

  • pxe-pdhcpを追加
  • key="value value"のように「"」で囲むことで、ブートパラメータにスペースを含められるようになった
  • rooturl=にスペース区切りで複数のURLを指定できるようになった(負荷分散用)

pxe-pdhcp

PXEには3種類あるの件で、PXEの仕様上、DHCPサーバーの設定を変更せずにネットワークブートする方法があるらしいということで、その方法を実装してみました。


結局作ったプログラムは非常に単純で、Vendor Class Identifierの先頭9文字が"PXEClient"になっているDHCPDISCOVERを待ち受け、以下のようなDHCPOFFERを返すだけです。

  • ciaddr(クライアントに割り振るIPアドレス) = 0.0.0.0
  • siaddr(next server) = TFTPサーバーのアドレス
  • file(boot file name) = TFTPサーバー上のブートローダのパス
  • Vendor Class Identifier(option 60) = "PXEClient\0"
  • Vendor Encapsulated Options(option 43)
    • PXE_DISCOVERY_CONTROL = 8(3ビット目(→siaddrフィールドとfileフィールドを使う) のみ1)

67/udpを待ち受けるので、DHCPサーバーと同じホストで動かすことはできません。


Intel PRO/1000 + Intel Boot Agentと、Marvell 88E8001 + NVIDIA Boot Agentでブートできることを確認しました。このNIC+PXE ROMだとブートできない!ということがあれば、ぜひコメントください m(_ _)m

ソースコードは、VIVER CORE Serverのソースコードのserver/pxe-pdhcpに入っています。