スポンサーリンク

BOOTPTAB(5) FreeBSD ファイルフォーマットマニュアル 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) のサーバアドレス

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

以下のタグは空白で区切られた IP アドレスのリストを取ります: cs, ds, gw, im, lg, lp, ns, nt, ra, rl, ts 。また ip, sa, sw, sm, ys タグはそれぞれ単 一の 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

FreeBSD 10.0 October 31, 1991 FreeBSD 10.0

スポンサーリンク