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に入っています。