EN JA
BOOTPTAB(5)
BOOTPTAB(5) FreeBSD File Formats Manual BOOTPTAB(5)

名称

bootptabインターネットブートストラッププロトコルサーバのデータベース

解説

bootptab ファイルは、 bootpd(8) すなわちインターネットブートストラッププロトコルサーバの設定データベースファイルです。このフォーマットは termcap(5) のものに似ており、2 文字の大文字小文字を区別するタグシンボルがホストパラメータを表現します。これらのパラメータ宣言は、コロン (:) によって分けられ、次のような形式になります。

hostname:tg=value. . . :tg=value. . . :tg=value. . . .

ここで hostname は、実際の bootp クライアントの名前 (もしくは「ダミーエントリ」) であり、 tg は、2 文字のタグシンボルです。ダミーエントリは、不正なホスト名 ("."を最初の文字とする名前) を持ち、 tc=.dummy-entry 機構を介して他のエントリにデフォルト値を提供します。ほとんどのタグの後には、上記のように等号と値を続ける必要があります。 value (i.e. :tg: の形式です)。現在、認識されるタグを示します:

bf
ブートファイル
bs
512 オクテットブロックでのブートファイルの大きさ
cs
クッキーサーバのアドレスリスト
df
メリットダンプファイル
dn
ドメイン名
ds
ドメインネームサーバのアドレスリスト
ef
拡張ファイル
gw
ゲートウェイのアドレスリスト
ha
ホストのハードウェアアドレス
hd
ブートファイルのホームディレクトリ
hn
クライアントのホスト名をクライアントに送る
ht
ホストのハードウェアタイプ (Assigned Numbers RFC を参照)
im
インプレスサーバのアドレスリスト
ip
ホストの IP アドレス
lg
ログサーバのアドレスリスト
lp
LPR サーバのアドレスリスト
ns
IEN-116 ネームサーバのアドレスリスト
nt
NTP (時刻) サーバ (RFC 1129)
ra
返答アドレスの上書き
rl
リソースロケーションプロトコルサーバのアドレスリスト
rp
ルートとしてマウントするルートパス
sa
クライアントが使用すべき TFTP サーバのアドレス
sm
ホストのサブネットマスク
sw
スワップサーバのアドレス
tc
テーブル継続 (同様の「テンプレート」ホストエントリを指します)
td
「安全な」 TFTP サーバが使用するルートディレクトリ
to
秒で表現した UTC からのオフセット
ts
タイムサーバのアドレスリスト
vm
ベンダマジッククッキーセレクタ
yd
YP (NIS) のドメイン名
ys
YP (NIS) のサーバアドレス

包括的な T n タグもあります。ここで n は、RFC1084 のベンダフィールドタグ番号です。これにより、まず bootpd を変更しなくとも、 RFC1084 に対する将来の拡張の利点をすぐに利用することができます。包括的なデータは、 16 進数のストリームもしくはクォートされた ASCII 文字列として表現されます。包括的なデータの長さは、自動的に判定され、 RFC1084 スタイルのブートストラップリプライの適切なフィールドに挿入されます。

以下のタグは、空白で区切られた IP アドレスのリストを取ります: cs, ds, gw, im, lg, lp, ns, nt, ra, rlts。また ip, sa, sw, smys タグは、それぞれ単一の IP アドレスを取ります。 IP アドレスは、全て標準のインターネット「ドット」表記で指定されます。 10 進数、8 進数、16 進数のいずれも使用可能です (8 進数は、0 から始まり、16 進数は、'0x' または '0X' から始まります)。 IP アドレスは、代りにホスト名で指定可能です。この場合、 bootpd は、そのホスト名の IP アドレスを得るために gethostbyname(3) を使用します。もし ip タグが指定されなかった場合、 bootpd は、エントリ名をホスト名とすることにより IP アドレスを判定します。 (ダミーエントリは、不正なホスト名とすることにより、自動的な IP 検索を避けます)

ht タグは、10 進数・8 進数・16 進数の符号無し整数、もしくは以下のいずれかのシンボル名をもって、ハードウェアタイプコードを指定します。 ethernet, ether は、10Mb イーサネットを、 ethernet3, ether3 は、3Mb の実験的イーサネットを、 ieee802, tr, token-ring は、IEEE 802 ネットワークを、 pronet は、Proteon ProNET Token Ring を、 chaos, arcnet, ax.25 は、Chaos, ARCNET, AX.25 Amateur Radio networks を、それぞれ表現します。 ha タグは、ホスト名もしくは数値形式で、ハードウェアアドレスを指定します。数値形式は、16 進数で指定する 必要があります 。可読性のためにピリオドを付けたり、前に '0x' を付けても良いです。 ha タグの前に ht タグがある必要があります (明示的でも暗黙的でもかまいません。後述の tc 参照)。ハードウェアアドレスが指定されない場合、指定されたタイプが "ethernet"もしくは "ieee802"の場合、 bootpdether_hostton(3) を使用してハードウェアアドレスを決定しようとします。

ホスト名・ホームディレクトリ・ブートファイルは ASCII 文字列であり、ダブルクォート (") で括ることもできます。クライアントのリクエストおよび hd シンボルと bf シンボルの値は、bootp リプライパケットのブートファイルフィールドをサーバがどのように埋めるかを決定します。

クライアントがファイル名を指定した場合、それは、そのまま残されます。そうでない場合は、 bf オプションが指定されていれば、その値がリプライパケットにコピーされます。もし hd オプションも指定されている場合には、その値がリプライパケットにコピーされるブートファイルの前に付きます。ブートファイルの存在確認は bs=auto オプションが使用されているときのみ行われます (ブートファイルサイズ確認のためです)。ブートファイルが存在しようとしまいと、リプライは、送られます。

新しいバージョンの tftpd(8) では、 chroot(2) システムコールを使用してルートディレクトリを変更するというセキュリティ機能を提供します。 td タグは、 tftpd が使用するこの特殊ルートディレクトリを bootpd に通知するために使用します。 (代りに bootpd -c chdir オプションを使用したいかもしれません。) 実際、 hd タグは td タグにより指定されるルートディレクトリからの相対指定です。例えば、BOOTP クライアントブートファイルの現実の絶対パスが /tftpboot/bootfiles/bootimage であり、 tftpd/tftpboot を「安全な」ディレクトリとする場合、 bootptab では、次のように指定します。

:td=/tftpboot:hd=/bootfiles:bf=bootimage:

ブートファイルを直接 /tftpboot に置く場合には、次のようにします。

:td=/tftpboot:hd=/:bf=bootimage:

sa タグは、あなたがクライアントに使用させたい特定の TFTP サーバの IP アドレスを指定するために使用します。このタグを指定しないと、 bootpd が実行されているのと同じマシンに対して TFTP を行うように、 bootpd は、クライアントに指示します。

時刻オフセット to は、クライアントの UTC からのタイムゾーンオフセットを秒で表現した符号付き 10 進数、またはサーバのタイムゾーンオフセットを使用することを意味するキーワード auto です。 to シンボルをブール値として指定することは、 auto を値として指定するのと同じ効果があります。

ブートファイルサイズ bs は、10 進数・8 進数・16 進数の整数でブートファイルのサイズを 512 オクテットブロックで表現したもの、またはサーバが各リクエストに際してブートファイルサイズを自動的に計算することを示すキーワード auto です。時刻オフセットと同じく、 bs シンボルをブール値として指定することは、 auto を値として指定するのと同じ効果があります。

ベンダマジッククッキーセレクタ ( vm タグ) は、以下のキーワードのいずれかを取ります。 auto (ベンダ情報をクライアントリクエストから判別)、 rfc1048 または rfc1084 (常に RFC1084 スタイルのリプライを強制)、または cmu (常に CMU スタイルのリプライを強制) です。

hn タグは、厳密にブール値のタグです。通常の等号および値を取りません。このタグが存在すると、ホスト名を RFC1084 クライアントに送ることを意味します。 bootpd は、設定ファイルで指定されるホスト名全体を送ろうとします。リプライパケットに収まらない場合、名前は、(存在するならば最初のピリオドまでの) ホストフィールドのみに縮められ、再度試されます。任意の長さに縮められたホスト名が送られてしまうということはありません (収まるものがない場合には、なにも送られません)。

しばしば、多くのホストエントリが特定のタグの共通の値を共有します (ネームサーバなど)。これらのタグを何度も書くのではなく、全体仕様を 1 つのホストエントリに記述してこれを tc (テーブル継続) 機構を介して共有することができます。多くの場合、このテンプレートエントリは、実際には存在しないダミーホストであり、 bootp リクエストを送ることはありません。この機能は、 termcap(5) で似た端末を記述するための tc 機能に似ています。 termcap では、最後のタグでなければなりませんが、 bootpd では tc タグシンボルがホストエントリ中のどこにあらわれても良いことに注意してください。ホストに対して明示的に指定した情報は、エントリ中の tc タグシンボルの位置にかかわらず、これにより暗黙に指定される情報を上書きします。 tc タグの値は、ホスト名もしくは設定ファイルで前に記述されている IP アドレスです。

tc タグで暗示された特定のタグの削除が必要になることがあります。これは tag@ 構造を使用することにより、 termcap(5) の場合と同様に tag の効果を削除することにより実現できます。例えば、IEN-116 ネームサーバ仕様を完全に無効にしたい場合には、設定ファイルのエントリの適切な位置に :ns@: を置きます。 @ を使用して削除を行った後には、 tc 機構を使用してそのタグを再度設定することができます。

設定ファイル中の、空行および "#"で始まる行は、無視されます。ホストエントリは、改行で分けられます。単一のホストエントリは、行がバックスラッシュ (\) で終る場合に複数行にまたがることができます。行が 80 文字を越えることも許されます。タグは、任意の順序で現われてかまいませんが、次のような例外があります。ホスト名は、エントリの最初のフィールドである必要があり、ハードウェアタイプは、ハードウェアアドレスの前に指定する必要があります。

使用例の /etc/bootptab ファイルは、次の通りです:

# Sample bootptab file (domain=andrew.cmu.edu) 
 
.default:\ 
 :hd=/usr/boot:bf=null:\ 
 :ds=netserver, lancaster:\ 
 :ns=pcs2, pcs1:\ 
 :ts=pcs2, pcs1:\ 
 :sm=255.255.255.0:\ 
 :gw=gw.cs.cmu.edu:\ 
 :hn:to=-18000: 
 
carnegie:ht=6:ha=7FF8100000AF:tc=.default: 
baldwin:ht=1:ha=0800200159C3:tc=.default: 
wylie:ht=1:ha=00DD00CADF00:tc=.default: 
arnold:ht=1:ha=0800200102AD:tc=.default: 
bairdford:ht=1:ha=08002B02A2F9:tc=.default: 
bakerstown:ht=1:ha=08002B0287C8:tc=.default: 
 
# Special domain name server and option tags for next host 
butlerjct:ha=08002001560D:ds=128.2.13.42:\ 
 :T37=0x12345927AD3BCF:\ 
 :T99="Special ASCII string":\ 
 :tc=.default: 
 
gastonville:ht=6:ha=7FFF81000A47:tc=.default: 
hahntown:ht=6:ha=7FFF81000434:tc=.default: 
hickman:ht=6:ha=7FFF810001BA:tc=.default: 
lowber:ht=1:ha=00DD00CAF000:tc=.default: 
mtoliver:ht=1:ha=00DD00FE1600:tc=.default:

関連ファイル

/etc/bootptab

関連項目

bootpd(8), tftpd(8)

DARPA Internet Request For Comments RFC951, RFC1048, RFC1084, Assigned Numbers

October 31, 1991 FreeBSD