From 0608949ce1665956d5be6dead4e75b399120f20c Mon Sep 17 00:00:00 2001 From: Jun Kuriyama Date: Mon, 7 Aug 2000 07:03:10 +0000 Subject: [PATCH] Merge changes in the English version (1.19 -> 1.27). --- .../handbook/advanced-networking/chapter.sgml | 700 ++++++++++++++++-- 1 file changed, 636 insertions(+), 64 deletions(-) diff --git a/ja_JP.eucJP/books/handbook/advanced-networking/chapter.sgml b/ja_JP.eucJP/books/handbook/advanced-networking/chapter.sgml index d15330974e..8b5536403d 100644 --- a/ja_JP.eucJP/books/handbook/advanced-networking/chapter.sgml +++ b/ja_JP.eucJP/books/handbook/advanced-networking/chapter.sgml @@ -2,13 +2,22 @@ The FreeBSD Documentation Project The FreeBSD Japanese Documentation Project - Original revision: 1.19 - $FreeBSD: doc/ja_JP.eucJP/books/handbook/advanced-networking/chapter.sgml,v 1.7 2000/01/11 08:41:57 motoyuki Exp $ + Original revision: 1.27 + $FreeBSD: doc/ja_JP.eucJP/books/handbook/advanced-networking/chapter.sgml,v 1.8 2000/02/27 03:47:20 motoyuki Exp $ --> 高度なネットワーク + + 概要 + + 以下の章では, UNIX システム上で頻繁に利用されるネットワーク + サービスに言及しています. これはもちろん, + あなたの FreeBSD システムでそのようなサービスを設定する場合に + 関係してきます. + + ゲートウェイとルート @@ -21,18 +30,18 @@ ある計算機が他の計算機をみつけることができるようにするには, ある計算機から他の計算機へ, どのようにたどり着くかを適切に記述するための仕組みが必要です. - この仕組みをルーティングと呼びます. “ルート(経路)”は - “destination (目的地) ”と “gateway - (ゲートウェイ) ”の 2つのアドレスの組で定義します. あなたが + この仕組みをルーティングと呼びます. ルート(経路)は + destination (目的地)gateway + (ゲートウェイ) の 2 つのアドレスの組で定義します. あなたが destination へアクセスしようとした場合, gateway を通って送られることをこのペアは示しています. destination - には個々のホスト, サブネット, “デフォルト”の 3つの + には個々のホスト, サブネット, デフォルト の 3つの タイプがあります. - “デフォルトルート”は他への経路が適用できない + デフォルトルート は他への経路が適用できない 場合に使われます. のちほどデフォルトルートについて少し述べること するとして, ここでは, 個々のホスト, インタフェース - (“リンク”と も呼ばれます), + (リンク とも呼ばれます), イーサネットハードウェアアドレスという 3つのタイ プのゲートウェイについて説明します. @@ -195,7 +204,7 @@ host2.foobar.com link#1 UC 0 0 から接続できるかどうかをチェックします. 知っているパスがすべて駄目だった場合でも, システムには - 最後の切り札の “デフォルト”ルートがあります. + 最後の切り札の デフォルト ルートがあります. このルートは ゲートウェイルート (普通はシステムに 1つしかありません) の特別なものです. そして, フラグフィールドは必ず c @@ -253,9 +262,9 @@ host2.foobar.com link#1 UC 0 0 - “なぜ (あるいは, どうやって) Local1 の + なぜ (あるいは, どうやって) Local1 の デフォルトゲートウェイをISPのサーバでなく - T1-GWにセットするのか”という質問がよくあります. + T1-GWにセットするのか という質問がよくあります. コネクションのローカルの側については, PPPのインタフェースは @@ -334,7 +343,7 @@ Local1 (10.20.30.1, 10.9.9.30) --> T1-GW (10.9.9.1) 割り当てられているすべてのアドレス空間の経路を維持する (分散している DNS 情報とよく似た) システムがあり, そのインターネット バックボーンへの接続点を定義しています. - “バックボーン” とは国を越え, + バックボーン とは国を越え, 世界中のインターネットのトラフィックを運ぶ主要 な信用できる幹線のことです. どのバックボーンマシンも, あるネットワークから特定のバックボーンのマシンへ @@ -373,9 +382,420 @@ Local1 (10.20.30.1, 10.9.9.30) --> T1-GW (10.9.9.1) + + Bridging + + Written by Steve Peterson + steve@zpfe.com. + + + はじめに + + IP サブネットを作成し, それらのセグメントをルータを + 使って接続したりせずに, (Ethernet セグメントのような) + 物理ネットワークを二つのネットワークセグメントに分割することは + とても有効な場合があります. + このような二つのネットワークを繋ぐデバイスはブリッジと呼ばれます. + そして, 二つのネットワークインターフェイスカードを持つ FreeBSD + システムは, ブリッジとして動作することができます. + + ブリッジは, 各ネットワークインターフェイスに繋がる + デバイスの MAC 層のアドレス (例えば Ethernet アドレス) + を記憶します. + ブリッジはトラフィックの送信元と受信先が異なったネットワーク上に + ある場合にのみ, トラフィックを転送します. + + すなわち, ブリッジはポート数の少ない Ethernet スイッチ + だ, ということができます. + + + + ブリッジがふさわしい状況とは + + 今日ブリッジが活躍する場面は大きく分けて二つあります. + + + トラフィックの激しいセグメント + + ひとつは, 物理ネットワークセグメントがトラフィック + 過剰になっているが, なんらかの理由によりネットワークを + サブネットに分け, ルータで接続することができない場合です. + + 編集部門と製作部門がおなじサブネットに同居している + 新聞社を例に考えてみましょう. + 編集部門のユーザはファイルサーバとして全員サーバ A を利用し, + 製作部門のユーザはサーバ B を利用します. + すべてのユーザを接続するのには Ethernet が使われており, + 高負荷となったネットワークは遅くなってしまいます. + + もし編集部門のユーザを一つのネットワークセグメントに + 分離することができ, 製作部門もユーザも同様にできるのなら, + 二つのネットワークセグメントをブリッジで繋ぐことができます. + ブリッジの "反対" 側へ向かうネットワークトラフィックだけが + 転送され, 各ネットワークセグメントの混雑は緩和されます. + + + + パケットフィルタ/帯域制御用ファイアウォール + + もうひとつは, IP Masquerading (NAT) を使わずに + ファイアウォール機能を利用したい場合です. + + ここでは DSL もしくは ISDN で ISP に接続している + 小さな会社を例にとってみましょう. + この会社は ISP から 13 個のグローバル IP アドレスの割り当て + を受けており, ネットワーク内には 10 台の PC が存在します. + このような状況では, サブネット化にまつわる問題から + ルータを用いたファイアウォールを利用することは困難です. + + ブリッジを用いたファイアウォールなら, + IP アドレスの問題を気にすること無く, DSL/ISDN ルータの + 下流側に置くように設定できます. + + + + + ブリッジを設定する + + + ネットワークインターフェイスカードの選択 + + ブリッジを利用するには少なくとも二つのネットワークカードが + 必要です. + 残念なことに, FreeBSD 4.0 ではすべてのネットワークインターフェイス + カードがブリッジ機能をサポートしているわけではありません. + カードがサポートされているかどうかについては &man.bridge.4; + を参照してください. + + 以下に進む前に, 二つのネットワークカードをインストールして + テストしてください. + + + + カーネルコンフィグレーションの変更 + + カーネルでブリッジ機能を有効にするには + + option BRIDGE + + という行をカーネルコンフィグレーションファイルに追加して + カーネルを再構築してください. + + + + ファイアウォール機能 + + ブリッジと同時にファイアウォール機能も利用しようとしている + 場合には, IPFIREWALL オプションも指定する必要があります. + ブリッジをファイアウォールとして設定する際の一般的な + 情報に関しては, + を参照してください. + + IP 以外のパケット (ARP など) がブリッジを通過するように + するためには, ドキュメント化されていないファイアウォール用 + オプションを設定する必要があります. このオプションは + IPFIREWALL_DEFAULT_TO_ACCEPT です. + この変更により, デフォルトではファイアウォールがすべての + パケットを accept するようになることに注意してください. + この設定を行う前に, この変更が自分のルールセットにどのような + 影響をおよぼすかを把握しておかなければなりません. + + + + 帯域制御機能 + + ブリッジで帯域制御機能を利用したい場合, + カーネルコンフィグレーションで DUMMYNET + オプションを加える必要があります. + 詳しい情報に関しては &man.dummynet.4; を参照 + してください. + + + + + ブリッジを有効にする + + ブリッジを有効にするには, + /etc/sysctl.conf に以下の行を加えてください: + + + net.link.ether.bridge=1 + + ブリッジを経由したパケットを ipfw でフィルタしたい場合には, + + + net.link.ether.bridge_ipfw=1 + + という行も付け加える必要があります. + + + + パフォーマンス + + 私のブリッジ/ファイアウォールは Pentium 90 で, + 3Com 3C900B と 3c905B を使っています. + 防護される側のネットワークは 10Mbps の half duplex で, + ブリッジとルータ (Cisco 675) の間は 100Mbps full duplex で + 動作しています. + パケットフィルタを利用しない場合, 防護されている 10Mbps + ネットワークから Cisco 675 への ping では, + ブリッジにより 0.4 ミリ秒の遅延が発生しています. + + + + その他の情報 + + ネットワークからブリッジに telnet したい場合, + ネットワークカードの一つに IP アドレスを割り当てれば OK です. + 一般的に, 両方のカードに IP アドレスを割り当てるのは + よいアイデアではないとされています. + + ネットワーク内に複数のブリッジを設置する場合, + 任意のワークステーション間で一つ以上の経路を持つことは + できません. 技術的には, これは spanning tree link management + はサポートされていない, ということを意味します. + + + NFS + Written by &a.unfurl;, 4 March 2000. + + FreeBSD がサポートしている多くのファイルシステムの中でも, + NFS, すなわち Network File System は極めてユニークな存在です. + NFS はあるマシンから他のマシンへと, ネットワークを通じて + ディレクトリとファイルを共有することを可能にします. + NFS を使うことで, ユーザやプログラムはリモートシステムのファイルを, + それがローカルファイルであるかのようにアクセスすることができます. + + + NFS には以下の利点があります: + + + + 一般的に使われるデータを単一のマシンに納める + ことができ, ネットワーク上のユーザはデータにアクセスできる + ため, ローカルワークステーションは多くのディクスを + 必要としません. + + + + ネットワーク上のすべてのマシンに, + ユーザが独自のホームディレクトリを持つ必要がありません. + 一旦 NFS 経由でアクセスできるディレクトリができれば, + どこからでもアクセス可能です. + + + + フロッピーや CD-ROM ドライブなどのストレージデバイスを, + 追加のハードウェアなしにネットワーク上の他のマシンに + 使ってもらうことができます. + + + + + どのようにして動作するのか + + NFS はクライアント, サーバの二つの部分から + 構成されます. + これは 需要(want)/供給(have) の関係として考えることができます. + クライアントはサーバが 供給 している + データに対する 需要 があります. + サーバはそのデータをクライアントと共有します. + このシステムが適切に機能するために, いくつかのプロセスが + 設定され正しく動作していなければなりません. + + サーバは以下のデーモンを動作させなければなりません: + + + + nfsd - NFS クライアントからの + リクエストを処理する NFS デーモン. + + + + mountd - nfsd から渡された + リクエストを実際に実行する NFS マウントデーモン. + + + + クライアント側ではデーモンを一つ実行する必要があります: + + + + nfsiod - NFS サーバからのリクエストを + 処理する NFS 非同期 I/O デーモン. + + + + + + NFS を設定する + + 幸運なことに, FreeBSD システムで設定を行うのは簡単です. + 実行させなければならないプロセスは, /etc/rc.conf + ファイルをちょっと編集することでブート時から実行させる + ことができます. + + NFS サーバでは, 以下の設定が必要です: + + +nfs_server_enable="YES" +nfs_server_flags="-u -t -n 4" +mountd_flags="-r" + + mountd は NFS サーバが有効になっている + 場合, 自動的に実行されます. + nfsd への + , フラグは + クライアントに UDP と TCP のサービスを提供することを指示します. + フラグは nfsd + が 4 つのコピーを立ち上げることを指示します. + + クライアント側では, 以下のようにします: + + +nfs_client_enable="YES" +nfs_client_flags="-n 4" + + nfsd と同様に, + nfsiod + が 4 つのコピーを立ち上げることを指示します. + + 最後に /etc/exports という + 設定ファイルを作成します. + exports ファイルはサーバのどのファイルシステムが + 共有されるのか (exported といいます), + またどのクライアントが共有できるのかを指定します. + + ファイル中の各行は, 共有されるファイルシステムを + 指定します. + ファイル中で指定できるオプションはたくさんありますが, + そのうちの少ししか使うことはないでしょう. + より細かいことに関しては &man.exports.5; + マニュアルページをお読み下さい. + + + いくつか /etc/exports の設定例 + を示します: + + 以下の設定は, + サーバと同じドメイン名(ドメイン名が無いので)か, + /etc/hosts に記述のある三つのマシン + に対して, /cdrom を export します. + オプションは共有されるファイルシステムを + 読み込み専用にします. + このフラグにより, リモートシステムは共有されたファイルシステム + にたいして何の変更も行えなくなります. + + /cdrom -ro moe larry curly + + 以下の設定は, IP アドレスによる三つのホストに対して + /home を export します. + この設定はプライベートネットワークで DNS が走っていない + 場合に便利な設定でしょう. + フラグは指定されたファイルシステム + 以下のディレクトリに対しても同様に export します. + + /home -alldirs 10.0.0.2 10.0.0.3 10.0.0.4 + + 以下の設定は, サーバとは異なるドメイン名の二つの + マシンに対して /a を export します. + フラグは, リモートマシンの + root ユーザが共有されたファイルシステムに root として書き込むことを + 許可します. + -maproot=0 フラグが無ければ, リモートマシンの root 権限を + 持っていても共有されたファイルシステム上のファイルを変更する + ことはできません. + + + + /a -maproot=0 host.domain.com box.example.com + + クライアントが export されたファイルシステムを共有 + する際には, そのような権限が与えられていなければなりません. + /etc/exports ファイルに + クライアントが含まれているかどうか確認してください. + + + + 必要な変更はすべて行ったので, + FreeBSD を再起動してブート時からすべてが起動するようにするか, + root で以下のコマンドを実行します: + + NFS サーバでは: + + &prompt.root; nfsd -u -t -n 4 +&prompt.root; mountd -r + + NFS クライアントでは: + + &prompt.root; nfsiod -n 4 + + これでリモートのファイルシステムを実際にマウントする + 準備ができました. + やり方は二通りあります. + この例では, サーバの名前は server で, + クライアントの名前は client とします. + リモートファイルシステムを一時的にマウントするだけ, + もしくは設定をテストするだけなら, クライアント上で root + として以下のコマンドを実行してください: + + &prompt.root; mount server:/home /mnt + + これにより, クライアントの /mnt + ディレクトリにサーバの /home が + マウントされます. + もしすべてが正しく設定されていれば, クライアントの /mnt + に, サーバにあるファイルすべてが見えるようになっているはずです. + + + リモートファイルシステムを今後も (リブートする度に) + マウントしたいなら, /etc/fstab + ファイルに設定を追加する必要があります. + 例としてはこのようになります: + + server:/home /mnt nfs rw 0 0 + + ほかのオプションに関しては &man.fstab.5; マニュアル + ページをお読み下さい. + + + + 典型的な使い方 + + NFS にはいくつかすてきな使い方があります. + 私は自分が管理している LAN でそれらを利用しています. + そのうちにいくつかをここで紹介しましょう. + + ネットワークには幾つかのマシンがありますが, + CD-ROM ドライブを持っているのは一台だけです. + なぜかって? それは一台の CD-ROM ドライブをほかのマシンと + NFS 経由で共有しているからです. + フロッピードライブについても同じことがいえます. + + ネットワーク内に多くのマシンがあると, 様々な場所に + ちらばる個人的なファイルは日に日に古くなってしまいます. + 私はすべてのユーザのホームディレクトリを格納する, + 中心となる NFS サーバを用意し, LAN 上の残りのマシンと + 共有しています. そうすることで, どこにログインしても, + 同じホームディレクトリを使うことができるのです. + + マシンのひとつに FreeBSD を再インストールするなら, + NFS こそその方法です. ディストリビューション CD をファイル + サーバに入れ, 再インストールを実行するだけです. + + 共用の /usr/ports/distfiles + ディレクトリを用意して, すべてのマシンで共有しています. + この方法だと, 別のマシンで既にインストールしたことのある + port をインストールする場合, 再びすべてのソースをダウンロードする + 必要がなくなります. + + + + Problems integrating with other systems + 原作: &a.jlind;. 訳: &a.jp.tomo;. @@ -403,7 +823,7 @@ Local1 (10.20.30.1, 10.9.9.30) --> T1-GW (10.9.9.1) 再び実行することが唯一の解決法となります. - “正しい”解決法は, + 正しい解決法は, より高性能のイーサネットアダプタをFreeBSDシステムに インストールすることですが, 満足な操作ができるような簡単な方法があります. もし, @@ -472,10 +892,10 @@ freebox:/sharedfs /project nfs rw,-w=1024 0 0 失敗が発生したとき何が起きているか関心のある人に, なぜ回復不可能なのかも含めて説明します. NFSは通常 (より小さいサイズへ分割されるかもしれませんが) - 8Kの“ブロック” サイズで働きます. + 8Kのブロック サイズで働きます. イーサネットのパケットサイズは最大1500バイト程度なので, 上位階層のコードにとっては1つのユニットのままなのですが, - NFS“ブロック”は + NFS ブロックは 複数のイーサネットパケットに分割されます. そして受信され, 組み立て直されてから肯定応答 されなければなりません. @@ -500,12 +920,13 @@ freebox:/sharedfs /project nfs rw,-w=1024 0 0 が力任せに次々と PC システムにデータを送ったときには 踏みつぶし が起きるかもしれません. そのような踏みつぶし - は NFS “ユニット” + は NFS ユニット では保証されていません. 踏みつぶしが起こったとき, 影響を受けたユニットは再送されます. そして受信され, 組み立てられ, 肯定応答される公平な機会が与えられるでしょう. + @@ -630,7 +1051,7 @@ diskless:\ swapsize - diskless swapsize を Kbytes単位でセット + diskless swapsize を KBytes単位でセット @@ -1056,7 +1477,7 @@ ISDN BRI チャンネル割り当てや MPP などと混同しないでください. これは, 大変便利な機能です. - たとえば事務所で専用線インターネット ISDN 接続を使用していて, + たとえば事務所で専用線 ISDN 接続を使用していて, 別の ISDN ラインを購入したくないとします. この場合, 事務所のルータは, 一つの専用線 B チャンネル接続(64Kbs)を維持しつつ, 別 の B @@ -1122,9 +1543,9 @@ ISDN BRI NIS ドメイン名を決める ここでいうドメイン名は, 今まであなたが使っていた, - いわゆる“ドメイン名” + いわゆる ドメイン名 と呼んでいたものとは違います. - 正確には“NIS ドメイン名”と呼ばれます. + 正確には NIS ドメイン名 と呼ばれます. クライアントがサーバに情報を要求するとき, その要求には自分が属する NIS ドメインの名前が含まれています. これは, 1 つのネットワークに複数のサーバがある場合に, @@ -1320,7 +1741,7 @@ nis_yppasswdd_flags="" NIS スレーブサーバの設定は, マスターサーバの設定よりも簡単で, ypinit コマンドを使うだけでほとんど終わりです. - 前述の例と同じように, NIS ドメイン名として “test-domain” + 前述の例と同じように, NIS ドメイン名として test-domain を使っています. @@ -1338,46 +1759,46 @@ Ok, please remember to go back and redo manually whatever fails. If you don't, something might not work. There will be no further questions. The remainder of the procedure should take a few minutes, to copy the databases from master.example.com. -Transfering netgroup... -ypxfr: Exiting: Map successfully transfered -Transfering netgroup.byuser... -ypxfr: Exiting: Map successfully transfered -Transfering netgroup.byhost... -ypxfr: Exiting: Map successfully transfered -Transfering master.passwd.byuid... -ypxfr: Exiting: Map successfully transfered -Transfering passwd.byuid... -ypxfr: Exiting: Map successfully transfered -Transfering passwd.byname... -ypxfr: Exiting: Map successfully transfered -Transfering group.bygid... -ypxfr: Exiting: Map successfully transfered -Transfering group.byname... -ypxfr: Exiting: Map successfully transfered -Transfering services.byname... -ypxfr: Exiting: Map successfully transfered -Transfering rpc.bynumber... -ypxfr: Exiting: Map successfully transfered -Transfering rpc.byname... -ypxfr: Exiting: Map successfully transfered -Transfering protocols.byname... -ypxfr: Exiting: Map successfully transfered -Transfering master.passwd.byname... -ypxfr: Exiting: Map successfully transfered -Transfering networks.byname... -ypxfr: Exiting: Map successfully transfered -Transfering networks.byaddr... -ypxfr: Exiting: Map successfully transfered -Transfering netid.byname... -ypxfr: Exiting: Map successfully transfered -Transfering hosts.byaddr... -ypxfr: Exiting: Map successfully transfered -Transfering protocols.bynumber... -ypxfr: Exiting: Map successfully transfered -Transfering ypservers... -ypxfr: Exiting: Map successfully transfered -Transfering hosts.byname... -ypxfr: Exiting: Map successfully transfered +Transferring netgroup... +ypxfr: Exiting: Map successfully transferred +Transferring netgroup.byuser... +ypxfr: Exiting: Map successfully transferred +Transferring netgroup.byhost... +ypxfr: Exiting: Map successfully transferred +Transferring master.passwd.byuid... +ypxfr: Exiting: Map successfully transferred +Transferring passwd.byuid... +ypxfr: Exiting: Map successfully transferred +Transferring passwd.byname... +ypxfr: Exiting: Map successfully transferred +Transferring group.bygid... +ypxfr: Exiting: Map successfully transferred +Transferring group.byname... +ypxfr: Exiting: Map successfully transferred +Transferring services.byname... +ypxfr: Exiting: Map successfully transferred +Transferring rpc.bynumber... +ypxfr: Exiting: Map successfully transferred +Transferring rpc.byname... +ypxfr: Exiting: Map successfully transferred +Transferring protocols.byname... +ypxfr: Exiting: Map successfully transferred +Transferring master.passwd.byname... +ypxfr: Exiting: Map successfully transferred +Transferring networks.byname... +ypxfr: Exiting: Map successfully transferred +Transferring networks.byaddr... +ypxfr: Exiting: Map successfully transferred +Transferring netid.byname... +ypxfr: Exiting: Map successfully transferred +Transferring hosts.byaddr... +ypxfr: Exiting: Map successfully transferred +Transferring protocols.bynumber... +ypxfr: Exiting: Map successfully transferred +Transferring ypservers... +ypxfr: Exiting: Map successfully transferred +Transferring hosts.byname... +ypxfr: Exiting: Map successfully transferred slave.example.com has been setup as an YP slave server without any errors. Don't forget to update map ypservers on master.example.com. @@ -1434,7 +1855,7 @@ Don't forget to update map ypservers on master.example.com. すべての NIS の要求をそのサーバに向けて送信します. ypbind は, サーバが順調に動作していることを確認するため, - 時々 “ping” をサーバに送ります. + 時々 ping をサーバに送ります. 反応が戻ってくるべき時間内に ping に対する応答が来なければ, ypbind は, そのドメインを結合不能(unbound)として記録し, @@ -1521,7 +1942,7 @@ Don't forget to update map ypservers on master.example.com. オプションで指定されたパス名によって変わります. このファイルは, 空白で区切られた ネットワーク指定とネットマスクのエントリからなっていて, - “#” で始まる行はコメントとみなされます. + # で始まる行はコメントとみなされます. 簡単な securenets ファイルの例を以下に示します. @@ -1553,7 +1974,7 @@ Don't forget to update map ypservers on master.example.com. これらのアクセス制御機能は一定のセキュリティを提供しますが, - どちらも特権ポートのテストのような “IP spoofing” + どちらも特権ポートのテストのような IP spoofing 攻撃に対して脆弱です. @@ -1651,6 +2072,157 @@ lrwxr-xr-x 1 root wheel 14 Nov 8 14:27 /usr/lib/libscrypt.so@ -> libscryp + + + DHCP + + Written by &a.gsutter;, March 2000. + + + DHCPとは何でしょう? + + + DHCP (Dynamic Host Configuration Protocol) は, システムをネットワー + クに接続するだけで, ネットワークでの通信に必要な情報を入手するこ + とができる仕組みです. FreeBSD では, ISC (Internet Software + Consortium) による DHCP の実装を使用しています. したがって, ここで + の説明のうち, 実装によって異なる部分は ISC のもの用になっています. + + + + + この節で説明していること + + + ハンドブックのこの節では DHCP システムの, FreeBSD に組み込まれてい + る部分についてだけ説明しています. ですから, サーバについては説明 + していません. 後の節で紹介するリファレンスに加えて, + DHCP のマニュアルページも有力な参考になることでしょう. + + + + DHCP の動作 + + + クライアントとなるマシン上で DHCP のクライアントである dhclient を実 + 行すると, まず設定情報の要求をブロードキャストします. デフォルト + では, このリクエストには UDP のポート 68 を使用します. サーバは UDP の + ポート 67 で応答し, クライアントの IP アドレスと, ネットマスクやルー + タ, DNS サーバなどの関連する情報を提供します. これらの情報の + すべては DHCP の「リース」の形で送られ, DHCP サーバ管理者によって決 + められたある一定の時間内でのみ有効になります. これによって, ネッ + トワークに存在しなくなったホストの IP アドレスは自動的に回収される + ことになります. + + + + DHCP クライアントはサーバから非常に多くの情報を取得することができます. + &man.dhcp-options.5; に, その非常に大きなリストが載っています. + + + + FreeBSD への組み込み + + + FreeBSD は ISC の DHCP クライアントである + dhclient を完全に組み込んでいます. DHCP クラ + イアントはインストーラと基本システムの両方で提供されています. + ですから DHCP サーバを走らせているネットワーク上ではネットワー + ク関係の設定についての詳細な知識は必要になりません. + dhclient は, 3.2 以降の FreeBSD のすべての配布 + に含まれています. + + + DHCP は sysinstall でサポートされてお + り, sysinstall でのネットワークインターフェイス設定の際は, 「こ + のインターフェイスの設定として DHCP を試してみますか?」という質問 + が最初になされます. これに同意することで dhclient が実行さ + れ, それが成功すればネットワークの設定情報は自動的に取得されま + す. + + + システム起動時に, DHCP を使ってネットワーク情報を取得するように + するには, /etc/rc.conf に次のように加えて + ください. + + +ifconfig_fxp0="DHCP" + + + + fxp0 の部分を, 動的に設定したいインター + フェースの名前で置き換えることを忘れないようにしてください. + + + + + もし, 使っているdhclient の場所を変更してい + たり, dhclient にフラグを渡したい場合は, 同 + 様に下のように書き加えてください. + + +dhcp_program="/sbin/dhclient" +dhcp_flags="" + + + + DHCP サーバである dhcpd は, ports + collectionに isc-dhcp2 として収録されていま + す. この port はクライアント, サーバ, リレーエージェントから成 + る ISC の DHCP 配布物をすべて含んでいます. + + + + + 関連ファイル + + + /etc/dhclient.conf + dhclient は設定ファイル + /etc/dhclient.conf を必要とします. + 大抵の場合, このファイルはコメントだけであり, デフォルトが + 通常使いやすい設定になっています. この設定ファイルは + マニュアルページ &man.dhclient.conf.5; で説明しています. + + + + /sbin/dhclient + + dhclient は静的にリンクされており, + /sbin に置かれています. マニュアルページ + &man.dhclient.8; で dhclient コマンドについて + より詳しく説明しています. + + + /sbin/dhclient-script + + dhclient-script は FreeBSD 特有の, DHCP クラ + イアント設定スクリプトです. これについてはマニュアルページ + &man.dhclient-script.8; で説明されていますが, これを編集する + 必要はほとんど発生しないでしょう. + + + /var/db/dhclient.leases + + DHCP クライアントはこのファイルに有効なリースのデータベースを + ログとして記録します. &man.dhclient.leases.5; にもうすこし詳 + しい解説があります. + + + + + + + 参考になる文献 + + DHCP のプロトコルは + RFC 2131 + に完全に記述されています. また, + dhcp.org + にも有用な + 情報源が用意されています. + +