diff --git a/ja_JP.eucJP/man/man1/find.1 b/ja_JP.eucJP/man/man1/find.1 index 7e53a352f7..75251d1faf 100644 --- a/ja_JP.eucJP/man/man1/find.1 +++ b/ja_JP.eucJP/man/man1/find.1 @@ -1,798 +1,800 @@ .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" the Institute of Electrical and Electronics Engineers, Inc. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)find.1 8.7 (Berkeley) 5/9/95 -.\" %FreeBSD: src/usr.bin/find/find.1,v 1.23.2.17 2002/06/20 23:45:55 charnier Exp % +.\" %FreeBSD: src/usr.bin/find/find.1,v 1.23.2.18 2002/08/22 16:17:01 jmallett Exp % .\" .\" $FreeBSD$ .Dd May 3, 2001 .Dt FIND 1 .Os .Sh 名称 .Nm find .Nd ディレクトリツリーを再帰的に下ってファイルを捜す .Sh 書式 .Nm find .Op Fl H | Fl L | Fl P .Op Fl EXdsx .Op Fl f Ar pathname .Op Ar pathname ... .Ar expression .Sh 解説 .Nm ユーティリティは、 .Ar pathname に対してディレクトリツリーを再帰的に下って、 ツリー上の各ファイルについて .Ar expression (後に示す .Dq プライマリ と .Dq 演算子 から構成されます) で指定された処理を実行します。 .Pp オプションとしては以下のものがあります: .Bl -tag -width indent .It Fl E .Ic -regex および .Ic -iregex のオプションの後の正規表現を、 基本正規表現 (BRE) の代りに拡張 (最近の) 正規表現として解釈します。 .Xr re_format 7 マニュアルページは、両方のフォーマットを完全に解説しています。 .It Fl H .Ar file で指定したファイルがシンボリックリンクファイルだった場合、シンボリックリンク 自体ではなく、リンク先のファイルに関してファイル情報とファイルタイプ ( .Xr stat 2 参照) を使って .Ar expression の処理をするように指定します。 もしリンク先のファイルがなければ、 シンボリックリンク自体を処理の対象とします。 コマンドラインからの .Ar file で直接指定されたのではなく、 ディレクトリツリー上で見つかったシンボリックリンクファイルに関しては、 シンボリックリンク自体を処理の対象とします。 .It Fl L .Ar file で指定したファイルがシンボリックリンクファイルだった場合、シンボリックリンク 自体ではなく、リンク先のファイルに関してファイル情報とファイルタイプ ( .Xr stat 2 参照) を使って .Ar expression の処理をするように指定します。もしリンク先のファイルがな ければ、シンボリックリンク自体を処理の対象とします。 .It Fl P シンボリックリンク自体に関して ファイル情報とファイルタイプ ( .Xr stat 2 参照) を使って .Ar expression の処理をするように指定します。 これがデフォルトです。 .It Fl X .Xr xargs 1 と組み合わせて使うときのため、より安全に動作するようにします。もし .Xr xargs 1 によりデリミタ文字 (シングルクォート .Pq Dq Li " ' " 、ダブルクォート .Pq Dq Li " \*q " 、バックスラッシュ .Pq Dq Li \e 、スペース、タブ、改行) が含まれるファイル名 が使われた場合、診断メッセージを標準エラー出力に表示して、 そのファイル名をスキップします。 .Pp ちゃんと動作する代案として、 .Fl print0 プライマリを .Ql xargs -0 と共に使用することを検討すると良いかもしれません。 .It Fl d ファイルに対する処理順序を深さ優先の探索方式にします。 すなわち、ディレクトリ自体に 対する処理を行う前に、ディレクトリ内の個々のファイルに対して処理を 実行します。デフォルトでは、ディレクトリは最初に処理されます。 (デフォルトの方式は幅優先探索方式では .Em ない です。) .It Fl f Ar file 明示的にファイルを指定します。ファイル名の先頭が .Dq \- で始まっていたり、 あとで述べる .Ar expression の指定と混同してしまうようなファイル名を指定したりするときに使用します。 (ファイルはオプション直後のオペランドとしても指定可能です。) .It Fl s .Fl s オプションは、辞書編集上の順に、 すなわち各ディレクトリ内においてアルファベット順に、 ファイル階層を .Nm に辿らせます。 注: .Ql find -s と .Ql "find | sort" は異なった結果となる場合があります。 .It Fl x ディレクトリツリーを下って行くとき、最初に file のあったファイルシステムとは 異なるファイルシステム上のファイルに対する処理になる場合は、実行しないように します。 .El .Sh プライマリ .Bl -tag -width indent .It Ic -amin Ar n 最後にファイルがアクセスされた時刻と、 .Nm を起動した時刻との差 (1 分単位で切り上げます) が .Ar n 分であれば、真とします。 .It Ic -anewer Ar file .Ic -neweram と同じです。 .It Ic -atime Ar n 最後にファイルがアクセスされた時刻と、 .Nm を起動した時刻との差 (24 時間単位で切り上げます) が .Ar n 日であれば、真とします。 .It Ic -cnewer Ar file .Ic -newercm と同じです。 .It Ic -ctime Ar n 最後にファイルのステータスが変更された時刻と、 .Nm を起動した時刻の差 (24 時間単位で切り上げます) が .Ar n 日であれば、真とします。 .It Ic -delete 見付けたファイルやディレクトリを消去します。常に真を返します。 現在の作業ディレクトリから .Nm は再帰的にディレクトリツリーを下ります。 セキュリティ上の理由から、 .Dq Pa \&. からの相対パス名に .Dq Pa / 文字を含むファイル名のファイルを 消去しようとはしません。 このオプションにより暗示的に深さ優先の処理が指定されます。 .It Ic -depth 常に真です。 .Fl d オプションと同じです。 .Nm を .Xr cpio 1 と共に使用する場合、 普通ではないパーミッションのディレクトリ中のファイルを処理するために、 .Ic -depth が有用です。 .It Ic -empty 現在のファイルまたはディレクトリが空の場合、真となります。 .It Ic -exec Ar utility Op Ar argument ... ; .Ar utility で指定した名前のプログラムを実行し、終了コードが 0 の場合、真とします。 .Ar argument は、utility への引数として渡されます。 この指定は、最後に必ずセミコロン .Pq Dq Li \&; をつけてください。 utility もしくは argument の指定 のなかで .Dq Li {} が使われていた場合は、その部分が、現在 .Nm が対象としているファイルのパス名に置き換えられます。ただし、 .Ar utility が実行されるときのカレントディレクトリは、 .Nm が起動されたディレクトリのままです。 .Ar utility と .Ar arguments は、シェルのパターンと構造の更なる展開対象とはなりません。 .It Ic -execdir Ar utility Op Ar argument ... ; .Ic -execdir プライマリは .Ic -exec プライマリと同様ですが、 .Ar utility が現在のファイルを持つディレクトリにおいて実行される点が異なります。 文字列 .Dq Li {} に対して置換されるファイル名は適切ではありません。 .It Ic -flags Oo Cm - Ns | Ns Cm + Oc Ns Ar flags , Ns Ar notflags フラグは、シンボル名 ( .Xr chflags 1 参照) で指定します。 フラグの前に .Qq Li no を付けると ( .Qq Li nodump は除きます)、 .Ar notflags と呼ばれます。 .Ar flags にあるフラグは設定されていることが検査され、 .Ar notflags にあるフラグは設定されていないことが検査されます。 これは、設定されているモードビットのみをユーザが指定可能な .Ic -perm とは異なることに注意してください。 .Pp フラグの前にダッシュ .Pq Dq Li - が付く場合、このプライマリは、ファイルのフラグビットのうち少なくとも .Ar flags 中の全ビットが設定されていて、 .Ar notflags 中のどのビットも設定されていない場合に真になります。 フラグの前にプラス .Pq Dq Li + が付く場合、このプライマリは、ファイルのフラグビットのうち .Ar flags のいずれかのビットが設定されているか、 .Ar notflags のいずれかのビットが設定されていない場合に真になります。 どちらでもない場合、このプライマリは、 .Ar flags のビットがファイルのフラグビットに完全に適合し、 .Ar flags のいずれもが .Ar notflags に適合しない場合に真になります。 .It Ic -fstype Ar type 対象ファイルが格納されているファイルシステムのタイプが、 .Ar type で指定されたものである場合に真となります。 .Xr sysctl 8 コマンドを使用して、 システム上で利用可能なファイルシステムタイプを調べることができます: .Pp .Dl "sysctl vfs" .Pp さらに、2 つの 擬似タイプ .Dq Li local と .Dq Li rdonly があります。 前者は、 .Nm を実行しているシステム上に物理的にマウントされているファイルシステムです。 後者は、読み取り専用でマウントされているファイルシステムです。 .It Ic -group Ar gname ファイルが .Ar gname で指定したグループに属している場合、真になります。 .Ar gname が数字で、そのようなグループ名がない場合は、 .Ar gname をグループ ID として扱います。 .It Ic -iname Ar pattern .Ic -name に似ていますが、大文字小文字を区別せずにマッチします。 .It Ic -inum Ar n ファイルの inode 番号が .Ar n なら、真になります。 .It Ic -ipath Ar pattern .Ic -path に似ていますが、大文字小文字を区別せずにマッチします。 .It Ic -iregex Ar pattern .Ic -regex に似ていますが、大文字小文字を区別せずにマッチします。 .It Ic -links Ar n ファイルのリンク数が .Ar n なら、真になります。 .It Ic -ls このプライマリは常に真になります。対象となっているファイルの情報を 標準出力に出力します。出力する内容は inode 番号、 512 バイトブロックでのファイルの大きさ、 ファイルのパーミッション、ハードリンクの数、所有者、グループ、 バイトで表したファイルの大きさ、最後にファイルが修正された時刻、パス名です。 ファイルがブロック型もしくはキャラクタ型の特殊ファイルならば、 バイトで表したファイルの大きさの代わりにメジャー番号とマイナー番号を 出力します。ファイルがシンボリックリンクならば、 .Dq Li -> の後にリンク先のファイルのパス名を表示します。 フォーマットは .Bk -words .Nm ls Fl dgils .Ek の出力結果と同じです。 .It Ic -maxdepth Ar n 現在のファイルのツリーにおける深さが .Ar n 以下である場合、真になります。 .It Ic -mindepth Ar n 現在のファイルのツリーにおける深さが .Ar n 以上である場合、真になります。 .It Ic -mmin Ar n 最後にファイルが修正された時刻と、 .Nm を起動した時刻との差 (1 分単位で切り上げます) が .Ar n 分であれば、真とします。 .It Ic -mnewer Ar file .Ic -newer と同じです。 .It Ic -mtime Ar n 最後にファイルが修正された時刻と、 .Nm を起動した時刻との差(24 時間単位で切り上げます)が .Ar n 日であれば、真とします。 .It Ic -name Ar pattern 対象ファイルのパス名の最後のファイル名部分が .Ar pattern で指定したものとマッチするかどうかを調べ、マッチした場合は真になります。 .Ar pattern としては、シェルで使われるパターンマッチ 指定 ( .Dq Li \&[ , .Dq Li \&] , .Dq Li * , .Dq Li \&? ) を使用することができます。これらの文字は バックスラッシュ .Pq Dq Li \e を前において、パターンマッチ指定ではなく文字として 扱う事を明示することができます。 .It Ic -newer Ar file 対象ファイルの修正日付が、 .Ar file で指定したファイルのものより新しい場合は、真になります。 .It Ic -newer Ns Ar X Ns Ar Y Ar file 現在のファイルの最終アクセス時刻 .Ar ( X Ns = Ns Cm a ) ・ステータス修正時刻 .Ar ( X Ns = Ns Cm c ) ・内容修正時刻 .Ar ( X Ns = Ns Cm m ) が、 .Ar file の最終アクセス時刻 .Ar ( Y Ns = Ns Cm a ) ・ステータス修正時刻 .Ar ( Y Ns = Ns Cm c ) ・内容修正時刻 .Ar ( Y Ns = Ns Cm m ) より新しい場合は、真となります。 さらに .Ar Y Ns = Ns Cm t の場合、 .Ar file は代りに、 .Xr cvs 1 が理解する直接的な時刻指定として解釈されます。 .Ic -newermm は .Ic -newer と同じであることに注意してください。 .It Ic -nogroup 対象ファイルのグループが unknown の場合、真になります。 .It Ic -nouser 対象ファイルの所有者が unknown の場合、真になります。 .It Ic -ok Ar utility Op Ar argument ... ; .Ic -ok プライマリは .Ic exec とほぼ同じですが、 .Ar utility を実行するかどうかの確認をユーザに求め、端末にメッセージを出力します。 .Dq Li y 以外の返答をした場合は、 コマンドは実行されず、 .Ic -ok 式の値は偽になります。 .It Ic -okdir Ar utility Op Ar argument ... ; .Ic -okdir プライマリは、 .Ic -execdir プライマリと同様ですが、 .Ic -ok プライマリの解説に該当する部分が異なります。 .It Ic -path Ar pattern 対象ファイルのパス名が、 .Ar pattern で指定したものとマッチす るかどうかを調べます、マッチした場合は真になります。 .Ar pattern としては、シェルで使われるパターンマッチ指定 ( .Dq Li \&[ , .Dq Li \&] , .Dq Li * , .Dq Li \&? ) を使用することができます。これらの文字は バックスラッシュ .Pq Dq Li \e を前において、パターンマッチ指定ではなく文字として 扱う事を明示することができます。 .Pq Dq Li / は、そのままパスのディレクトリの区切りにマッチします。 .It Ic -perm Oo Cm - Ns | Ns Cm + Oc Ns Ar mode ファイルのモードを、 .Ar mode と比較します。 .Ar mode は、シンボル 形式 ( .Xr chmod 1 参照) もしくは 8 進数形式で指定します。 .Ar mode がシンボル形式の場合は、 .Ar mode は 00000 から開始してパーミッションのセットとクリアを行います。 (プロセスのファイル生成マスクとは無関係です。) .Ar mode が 8 進数形式の場合は、 ファイルのモードビットのうち、07777 .Pq Dv S_ISUID | S_ISGID | S_ISTXT | S_IRWXU | S_IRWXG | S_IRWXO の部分が比較対象になります。 .Ar mode の最初にダッシュ .Pq Dq Li - を指定した場合は、 .Ar mode でセットされているすべてのビットが ファイルのモードでもセットされていれば、このプライマリは真となります。 .Ar mode の最初にプラス .Pq Dq Li + を指定した場合は、 .Ar mode でセットされているビットのどれかがファイルのモードでもセットされていれば、 このプライマリは真となります。 どちらでもない場合、ファイルのモードと .Ar mode が完全に一致した場合にのみ真となります。 なお、 シンボル形式でモード指定をする場合は、少なくとも最初がダッシュ .Pq Dq Li - にならない ようにする必要があります。 .It Ic -print このプライマリは常に真になります。 対象となっているファイルのパス名を標準出力に出力して改行します。 .Ic -exec , -ls , -print0 , .Ic -ok のどのプライマリも指定されなかった場合は、 与えられた式 given expression は .Cm \&( Ar "given expression" Cm \&) Ic -print で置き換えられます。 .It Ic -print0 .Ic -print とほぼ同じですが、標準出力に対象となっているファイルのパス名を出力 したあと、改行ではなく、 .Tn ASCII NUL 文字 (文字コード 0) を出力します。 .It Ic -prune このプライマリは常に真になります。 対象となっているファイル配下のディレクトリに下りないようにします。 .Fl d オプションが指定されている場合は、 .Ic -prune の指定は無効になります。 .It Ic -regex Ar pattern ファイルのパス全体が、正規表現 .Ar pattern にマッチする場合、真になります。 ファイル名 .Dq Pa ./foo/xyzzy にマッチさせるには、 正規表現 .Dq Li ".*/[xyz]*" や .Dq Li ".*/foo/.*" が使えますが、 .Dq Li xyzzy や .Dq Li /foo/ は使えません。 .It Ic -size Ar n Ns Op Cm c ファイルサイズを 512 バイトのブロック単位で数えたとき (端数は切り上げ)、 .Ar n ブロックであれば真になります。 .Ar n のあとに .Cm c が指定されていた場合は、ファイルサイズが .Ar n バイト (文字) であれば真になります。 .It Ic -type Ar t ファイルタイプが .Ar t で指定されたタイプに一致すれば真になります。 タイプとして、次のような指定が可能です: .Pp .Bl -tag -width indent -compact .\" jpman project では special file を「特殊ファイル」と訳している。 .\" これにあわせて block special を「ブロックスペシャル」ではなく .\" 「ブロック特殊」とするのは違和感があるので、「ファイル」を補った。 .\" Kazuo Horikawa 1999/03/10 .It Cm b ブロック型特殊ファイル .It Cm c キャラクタ型特殊ファイル .It Cm d ディレクトリ .It Cm f 普通のファイル .It Cm l シンボリックリンク .It Cm p FIFO .It Cm s ソケット .El .It Ic -user Ar uname ファイルの所有者が、 .Ar uname で指定されたユーザと一致すれば真になります。もし .Ar uname が数字で、そのようなユーザ名がなければ、 ユーザ ID が指定されたものとして扱います。 .El .Pp なお、数字を引数にとるプライマリは、 数字の前にプラス .Pq Dq Li + およびマイナス .Pq Dq Li \- をつけることができます。 それぞれ .Dq n より大 および .Dq n より小 の意味になり、 .Dq 正確に n という意味ではなくなります。 .Sh 演算子 以下の演算子を使って、プライマリを組み合わせることができます。 演算子は優先度が下がる順番で示されています。 .Pp .Bl -tag -width "( expression )" -compact .It Cm \&( Ar expression Cm \&) もし、括弧内の .Ar expression が真なら、真になります。 .Pp .It Cm \&! Ar expression +.It Cm -false Ar expression +.It Cm -not Ar expression 単項否定演算子 ( .Tn NOT ) です。 .Ar expression が偽なら、真となります。 .Pp .It Ar expression1 Cm -and Ar expression2 .It Ar expression1 expression2 論理積 ( .Tn AND ) 演算子です。 .Ar expression1 と .Ar expression2 の両方とも真のとき、真になります。 もし .Ar expression1 が偽なら、 .Ar expression2 は実行されません。 .Ic -and を書かずに、単に 2 つの expression を並べて .Pp .Ar expression1 expression2 .Pp と書いても同じです。 .Pp .It Ar expression1 Cm -or Ar expression2 論理和 ( .Tn OR ) 演算子です。 .Ar expression1 か .Ar expression2 のどちらか一方でも真であれば、真になります。もし .Ar expression1 が真なら、 .Ar expression2 は実行されません。 .El .Sh 使用例 コマンドラインからのタイプ例です。 .Bl -tag -width indent .It Li "find / \e! -name \*q*.c\*q -print" ファイル名の終わりが .Pa \&.c でない全ファイルを表示します。 .It Li "find / -newer ttt -user wnj -print" .Pa ttt というファイルより新しく 所有者が .Dq wnj である全ファイルを表示します。 .It Li "find / \e! \e( -newer ttt -user wnj \e) -print" .Pa ttt というファイルより古く所有者が .Dq wnj であるという条件が成立しない、全ファイルを表示します。 .It Li "find / \e( -newer ttt -or -user wnj \e) -print" .Pa ttt というファイルより新しいか、 所有者が .Dq wnj である、全ファイルを表示します。 .It Li "find . -newerct '1 minute ago' -print" inode 修正時刻が現在から 1 分以内の全ファイルを表示します。 .El .Sh 関連項目 .Xr chflags 1 , .Xr chmod 1 , .Xr cvs 1 , .Xr locate 1 , .Xr whereis 1 , .Xr which 1 , .Xr xargs 1 , .Xr stat 2 , .Xr fts 3 , .Xr getgrent 3 , .Xr getpwent 3 , .Xr strmode 3 , .Xr re_format 7 , .Xr symlink 7 .Sh 規格 .Nm ユーティリティの文法は .St -p1003.2 の仕様で決められた文法のスーパセットです。 全 1 文字オプションと .\" .Ic -iname , -inum , -iregex , -print0 , -delete , -ls , .\" ja-groff-0.100_3 で整形できないためマクロ使用方法を変えています .Ic -iname , .Ic -inum , .Ic -print0 , .Ic -delete , .Ic -ls , .Ic -regex のプライマリは .St -p1003.2 の拡張です。 .Pp 昔は .Fl d , h , x のオプションは それぞれ .Ic -depth , -follow , -xdev のプライマリを 用いて実装されていました。 これらのプライマリは常に真に評価されていました。 これらのプライマリは 探索が始まる前に効果を与える本当のグローバル変数であったので、 いくつかの合法的な expression が予期しない結果となりました。 一例として .Ic -print Cm -o Ic -depth の expression があります。 .Ic -print が常に真に評価されるため 標準の評価の順番では .Ic -depth は決して評価されないはずですが、 そうではありませんでした。 .Pp 演算子の .Cm -or は .Cm -o として実装されていました。 演算子の .Cm -and は .Cm -a として実装されていました。 .Pp 昔の実装では .Ic exec と .Ic -ok のプライマリでは、 tility 名やその引数中において、 空白以外の文字が前後に続く .Dq Li {} を置き換えませんでした。 このバージョンでは utility 名やその引数のどの場所に .Dq Li {} が現れても 置き換えます。 .Pp .Fl E オプションは、 .Xr grep 1 および .Xr sed 1 の類推から実装されました。 .Sh バグ .Nm によって使われる特殊文字は多くのシェルにとっても 特殊文字です。 特に .Dq Li * , .Dq Li \&[ , .Dq Li \&] , .Dq Li \&? , .Dq Li \&( , .Dq Li \&) , .Dq Li \&! , .Dq Li \e , .Dq Li \&; は、 シェルからエスケープされなくてはならないでしょう。 .Pp オプションとファイル名との間および ファイル名と .Ar expression との間を区切るデリミタが存在しませんので、 ファイル名にオプションと間違えるようなもの ( .Pa -xdev のようなもの) や、 .Ar expression と間違えるようなもの ( .Pa \&! のようなもの) を指定することは難しいです。 このようなファイル名を指定する場合は .Fl f オプションを使うか、 .Xr getopt 3 で使われるオプション指定の終了記号 .Dq Fl Fl を使用します。 .Pp .Ic -delete プライマリは、ファイルシステムツリーの検索順序に影響する 他のオプションとは十分には連係しません。 .Sh 歴史 .Nm コマンドは .At v1 から登場しました。 diff --git a/ja_JP.eucJP/man/man1/ftp.1 b/ja_JP.eucJP/man/man1/ftp.1 index 44466b98da..a74d7d2a7f 100644 --- a/ja_JP.eucJP/man/man1/ftp.1 +++ b/ja_JP.eucJP/man/man1/ftp.1 @@ -1,1414 +1,1430 @@ -.\" %FreeBSD: src/usr.bin/ftp/ftp.1,v 1.15.2.6 2001/08/16 13:16:48 ru Exp % -.\" %NetBSD: ftp.1,v 1.21 1997/06/10 21:59:58 lukem Exp % +.\" %FreeBSD: src/usr.bin/ftp/ftp.1,v 1.15.2.7 2002/08/27 09:55:08 yar Exp % +.\" $NetBSD: ftp.1,v 1.21 1997/06/10 21:59:58 lukem Exp $ .\" .\" Copyright (c) 1985, 1989, 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)ftp.1 8.3 (Berkeley) 10/9/94 -.\" $FreeBSD: doc/ja_JP.eucJP/man/man1/ftp.1,v 1.18 2001/07/29 05:14:50 horikawa Exp $ +.\" $FreeBSD$ .\" .Dd January 27, 2000 .Dt FTP 1 .Os .Sh 名称 .Nm ftp , pftp , gate-ftp .Nd .Tn ARPANET ファイル転送プログラム .Sh 書式 .Nm .Op Fl 46adeginptUvV .Op Fl P Ar port .Op Fl s Ar src_addr .Op Ar host Op Ar port .Nm ftp://[\fIuser\fR:\fIpassword\fR@]\fIhost\fR[:\fIport\fR]/\fIfile\fR[/] .Nm http://\fIhost\fR[:\fIport\fR]/\fIfile\fR .Nm \fIhost\fR:[/\fIpath\fR/]\fIfile\fR[/] .Sh 解説 .Nm は、 .Tn ARPANET 標準のファイル転送プロトコルを用いてファイル転送を実現するためのコマンドです。 本コマンドは、ネットワークを介して接続されているコンピュータ間で ファイルを転送する手段をユーザに提供します。 本バージョンは、 IPv4 と共に、 IPv6 (インターネットプロトコルバージョン 6) をサポートします。 .Pp 書式の後ろから 3 つの使用例の形式では HTTP または FTP プロトコルの いずれかを使ってファイルをカレントディレクトリに取得します。 これはスクリプト用に理想的です。 より詳しい情報については .Sx ファイルの自動的な取得 を参照して下さい。 .Pp オプションは、コマンドライン上か、コマンドインタプリタで指定できます。 .Bl -tag -width Fl .It Fl 4 .Nm に IPv4 アドレスのみを使用するよう強制します。 .It Fl 6 .Nm に IPv6 アドレスのみを使用するよう強制します。 .It Fl a .Nm は通常のログイン手続きを飛ばして、かわりに anonymous ログインを 使います。 .It Fl d デバッグを有効にします。 .It Fl e コマンドラインでの編集を無効にします。 .It Fl g ファイル名展開を無効にします。 .It Fl i 複数ファイル転送を行っている間の対話的プロンプトモードを オフにします。 .It Fl n .Nm が最初に接続する際の .Dq 自動ログイン を行いません。 自動ログインが許可された場合は、 .Nm は起動したユーザのホームディレクトリの .Pa .netrc (下記参照) ファイルに、リモートマシンのアカウントを記述している エントリがあるかどうかを調べます。 そのファイルにエントリがない場合には、 .Nm はリモートマシン上のログイン名 (デフォルトはローカルマシンでのユーザ ID) を要求します。 そして、もし必要があればログイン用のパスワードと アカウントの入力も促します。 .It Fl p 防火壁を越える接続のためのパッシブモード操作を有効にします。 .Nm pftp コマンドを使うのと同じです。 .It Fl P Ar port ポート番号を .Ar port に設定します。 .It Fl s Ar src_addr すべての接続に使用するローカル側の IP アドレスを .Ar src_addr に設定します。IP アドレスとホスト名のどちらでも指定できます。 .It Fl t パケットのトレースを有効にします。 .It Fl U データポートの範囲制限を無効にします。 .It Fl v 饒舌モードを有効にします。 入力が端末からの場合はこれがデフォルトです。 .Nm はデータ転送状況と、 リモートサーバからのすべてのレスポンスを表示します。 .It Fl V 入力が端末からの場合に、デフォルトで有効になっているのを無視して 饒舌モードを無効にします。 .El .Pp .Nm -は、通信相手をコマンドラインで指定することが出来ます。通信相手を +は、通信相手をコマンドラインで指定することが出来ます。 +通信相手を コマンドラインで指定した場合、 .Nm は指定したリモートマシンの .Tn FTP -サーバプログラムとの接続を試みます。それ以外の場合、 +サーバプログラムとの接続を試みます。 +それ以外の場合、 .Nm は内部のコマンドインタプリタに入り、ユーザからの -コマンド入力を待ちます。このとき +コマンド入力を待ちます。 +このとき .Nm は、 .Ql ftp> というプロンプトを出力します。 本状態の時には、 .Nm は以下のコマンドを受け付けます。 .Bl -tag -width Fl .It Ic \&! Op Ar command Op Ar args ローカルマシン上でシェルを起動します。 引数が指定された場合、最初の引数をコマンドとして実行し、 それ以降の引数はそのコマンドに対する引数として処理されます。 .It Ic \&$ Ar macro-name Op Ar args .Ar macro-name -で定義されたマクロを実行します。マクロは、 +で定義されたマクロを実行します。 +マクロは、 .Ic macdef コマンドで定義出来ます。 .Ar args で指定された文字列は、展開されずにマクロに対して引き渡されます。 .It Ic account Op Ar passwd 一旦ログインに成功したユーザが、資源を扱うためにリモートマシンから 要求された追加のパスワードを入力します。 引数が指定されない場合、ユーザに対してパスワード入力を促す表示がされます。 この場合はパスワードはエコーバックされません。 .It Ic append Ar local-file Op Ar remote-file ローカルファイルをリモートマシン上のファイルに追加書き込みします。 もし、 .Ar remote-file が指定されていなければ、ローカルファイルの名前を .Ic ntrans や .Ic nmap で修正した名前をリモートファイル名として使います。 ファイル転送では .Ic type , .Ic format , .Ic mode , .Ic structure の現在の設定が使われます。 .It Ic ascii 転送ファイルの .Ic type をネットワーク .Tn ASCII 形式にします。 これはデフォルト時の設定です。 .It Ic bell 各ファイル転送コマンド終了時にベルを鳴らすかどうかを指定します。 .It Ic binary 転送ファイルの .Ic type をバイナリ形式にします。 イメージファイルなど、バイナリファイルを転送する時には本指定は必須です。 .It Ic bye リモートサーバとの .Tn FTP セッションを終了し、 .Nm を終了します。 EOF を入力した場合も同様です。 .It Ic case .Ic mget コマンドで連続してファイルを取得する場合、リモートマシン上の ファイル名の大文字小文字の対応を切り替えます。 デフォルトでは .Ic case はオフですが、オンの場合にはリモートマシンファイル名の すべての大文字が小文字に変換されて、ローカル マシンのディレクトリに 書き込まれます。 .It Ic \&cd Ar remote-directory リモートマシン上での作業ディレクトリを .Ar remote-directory へ変更します。 .It Ic cdup リモートマシン上での作業ディレクトリを一つ上に変更させます。 .It Ic chmod Ar mode file-name .Ar file-name で指定したリモートマシン上のファイルの属性を、 .Ar mode で指定したものに変更します。 .It Ic close リモートサーバとの .Tn FTP -セッションを終了します。そしてコマンド入力待ちのプロンプトを表示します。 +セッションを終了します。 +そしてコマンド入力待ちのプロンプトを表示します。 すでに定義されたマクロはすべて無効になります。 .It Ic \&cr ASCII 形式ファイルの転送を行なう場合に、 復帰コードの除去を行なうかどうかを変更します。 ASCII 形式のファイル転送時には、 復帰/改行 の文字列によってレコードが認識されます。 .Ic \&cr がオン (デフォルト) の時には、改行コードのみでレコードを区切る .Ux に適合するように、 復帰コードが文字列から除去されます。 .Ux 以外のリモートのシステムのレコードは 単独の改行コードを含む可能性があります。 ASCII 形式で転送を行った時には、そういった改行コードは .Ic \&cr がオフの場合にだけレコード区切り記号と区別して扱われます。 .It Ic delete Ar remote-file リモートマシン上のファイル .Ar remote-file を削除します。 .It Ic debug Op Ar debug-value デバッグモードを切り替えます。 .Ar debug-value が指定されるとデバッグレベルとして設定されます。 デバッグモードが有効になると、 .Nm はリモートマシンに送信されたコマンドを .Ql \-\-> に続けて表示します。 .It Ic dir Op Ar remote-directory Op Ar local-file リモートマシン上のディレクトリの内容を表示します。 表示内容にはサーバが選択したシステム依存の情報を含みます。 例えば大部分の .Ux システムは .Ql ls \-l コマンドから得られる出力を表示します。 ( .Ic ls も参照して下さい) もし .Ar remote-directory が指定されなければ、リモートマシン上のカレントディレクトリの内容が 表示されます。 もしプロンプトがオンだったら、 .Nm は、最後の引数が本当に .Ic dir の出力を書き込むローカルファイルかどうか問い合わせます。 ローカルファイルの指定が無い場合、または .Ar local-file の指定が .Sq Fl だった場合は出力は画面に表示されます。 .Pp 本コマンドはシステム依存の追加情報を提供しますので、 単なるファイルリストが欲しい場合には、 .Ic nlist を使ってください。 .It Ic disconnect .Ic close と同じです。 .It Ic edit コマンドラインの編集機能、そして文脈に応じたコマンドとファイルの 補完機能を切り替えます。 これは入力が端末の場合は自動的に有効になり、そして そうでなければ無効になります。 +.It Ic epsv4 +IPv4 FTP セッションで +.Dv EPSV/EPRT +コマンドを使用するかどうかを切り替えます。 +本オプションをオフにすると、 +ファイヤウォール (例えば IPFilter) との問題を解消できるかもしれません。 .It Ic exit .Ic bye と同じです。 .It Ic ftp Ar host Op Ar port .Ic open と同じです。 .It Ic form Ar format ファイル転送様式を .Ar format と指定します。 デフォルトでは、様式は \*(Lqfile\*(Rq となります。 .It Ic get Ar remote-file Op Ar local-file リモートマシン上のファイル .Ar remote-file を取得してローカルマシン上に格納します。 ローカルファイル名 .Ar local file が指定されない場合、 ローカルファイル名は取得したファイルの リモートマシン上の名前と同じになります。 ただし、その名前は .Ic case , .Ic ntrans , .Ic nmap の設定により変更される事があります。 ファイル転送の時には現在の .Ic type , .Ic form , .Ic mode , .Ic structure の設定が使用されます。 .It Ic gate Op Ar host Op Ar port gate-ftp モードを切り替えます。 これは gate-ftp サーバが設定されていないと有効になりません (ユーザによって明示的に、または .Ev FTPSERVER 環境変数によって)。 .Ar host が与えられると、 gate-ftp モードが有効になり、そして gate-ftp サーバが .Ar host に設定されます。 .Ar port も同時に与えられると、それが gate-ftp サーバへ接続する際のポートとして使用されます。 .It Ic glob .Ic mdelete , .Ic mget , .Ic mput を行なう場合のファイル名の展開のオン/オフを切り替えます。 .Ic glob がオフの場合には、ファイル名は展開されずにそのままになります。 .Ic mput でのファイル名展開の規則は .Xr csh 1 のファイル名展開規則と同様です。 .Ic mdelete と .Ic mget の場合には、 各々のリモートファイル名はリモートマシン上で別々に展開され、 リストはマージされません。 ディレクトリ名の展開は普通のファイル名の展開と異なる事があります。 つまり、展開の結果はリモートの OS と FTP サーバに依存しています。 これは .Ql mls remote-files \- を実行する事によってあらかじめ知ることができます。 注: .Ic mget と .Ic mput はファイルのディレクトリ・サブツリーを全て転送する物ではありません。 そのようにしたい時はサブツリーの .Xr tar 1 のアーカイブを作成してバイナリモードで転送します。 .It Ic hash Op Ar size 1 データブロック転送するごとに ハッシュサイン (``#'') を出力するかどうかを切り替えます。 デフォルトでは 1 データブロックは 1024byte です。 これは .Ar size でバイト単位で指定する事で変更できます。 .It Ic help Op Ar command 引数 .Ar command で指定したコマンドのヘルプメッセージを出力します。 引数が与えられない場合、 .Nm は使用可能なコマンドの一覧を出力します。 .It Ic idle Op Ar seconds リモートサーバ上のアイドルタイマを .Ar seconds 秒に設定します。 .Ar seconds が与えられない場合は現在のアイドルタイマ値を表示します。 .It Ic lcd Op Ar directory ローカルマシン上の作業ディレクトリを変更します。 .Ar directory 名が与えられない場合はユーザのホームディレクトリに移動します。 .It Ic less Ar file .Ic page と同じです。 .It Ic lpwd ローカルマシン上の作業ディレクトリを表示します。 .It Ic \&ls Op Ar remote-directory Op Ar local-file .Ic dir と同じです。 .It Ic macdef Ar macro-name マクロ定義を行ないます。 後続の行がマクロ .Ar macro-name として格納されます。 空行 (1 つのファイル内での連続した改行文字や端末からの連続した 復帰文字) は マクロの入力モードを終了させます。 マクロの数の制限は 16 個で、定義されたマクロ全部で 4096 -文字までがゆるされています。マクロは +文字までがゆるされています。 +マクロは .Ic close コマンドが実行されるまで持続します。 マクロプロセッサは `$' と `\e' を特別な文字として解釈します。 1つ以上の数字が続く `$' は、コマンドラインで呼び出したマクロの 対応する引数によって置き換えられます。 後ろに `i' が続く `$' は、マクロプロセッサに対して実行している マクロのループを指示します。 最初のパスで `$i' はマクロを呼び出したコマンドラインの最初の引数に 置き換えられ、2 回目のパスで 2 つ目の引数に置き換えられ、それ以降も 同様に置き換えられます。 後ろに任意の文字が続いている `\e' はその文字に置き換えられます。 `\e' は `$' の特別な扱いを避けるために使用します。 .It Ic mdelete Op Ar remote-files リモートマシンの .Ar remote-files を削除します。 .It Ic mdir Ar remote-files local-file 複数のリモートファイルを指定出来る点を除くと .Ic dir と同様です。 プロンプトがオンの時には、 .Nm は最後の引数が .Ic mdir の出力を受け取るローカルファイルであるかをユーザに問い合わせます。 .It Ic mget Ar remote-files リモートマシンで .Ar remote-files で指定されたファイルを展開し、展開後の各ファイル名のファイルに対して .Ic get を実行します。 ファイル名の展開の詳細は .Ic glob を参照してください。 生成されたファイル名は .Ic case , .Ic ntrans , .Ic nmap の設定に従い処理されます。 ファイルはローカルの作業ディレクトリに転送されます。 そのディレクトリは .Ql lcd directory で変更できます。 ローカルの新しいディレクトリは .Ql "\&! mkdir directory" で作成できます。 .It Ic mkdir Ar directory-name リモートマシンにディレクトリを作ります。 .It Ic mls Ar remote-files local-file 複数のリモートファイル名を指定できる点と .Ar local-file を必ず指定しなければならない点を除くと .Ic ls と同様です。 プロンプトがオンの時には、 .Nm は最後の引数が .Ic mls の出力を受け取る目標のローカルファイルであるかをユーザに確認します。 .It Ic mode Op Ar mode-name ファイル転送モード .Ic mode を .Ar mode-name で指定したものに設定します。 デフォルトは \*(Lqstream\*(Rq です。 .It Ic modtime Ar file-name リモートマシン上の指定ファイルの最終更新日時を参照します。 .It Ic more Ar file .Ic page と同じです。 .It Ic mput Ar local-files 引数として与えられたローカルファイルのリスト中の ワイルドカードを展開し、 展開後の各ファイル名のファイルに対して .Ic put を実行します。 ファイル名の展開の詳細については .Ic glob を参照してください。 生成されたファイル名は .Ic ntrans と .Ic nmap の設定に従って処理されます。 .It Ic msend Ar local-files .Ic mput と同じです。 .It Ic newer Ar file-name リモートマシンのファイルの最終更新日時の方が ローカルマシンのファイルより新しい場合にのみファイルを取得します。 現在のシステムにファイルが無いときには、リモートファイルの方が .Ic 新しい ものとして扱われます。 その他については .Ar get と同じです。 .It Ic nlist Op Ar remote-directory Op Ar local-file リモートマシンのディレクトリの内容のリストを表示します。 .Ar remote-directory の指定が無い場合には、 代わりに現在の作業ディレクトリが使われます。 もしプロンプトモードになっているならば、 .Nm は、最後の引数が .Ic ls の出力を受け取るローカルのファイルであるかをユーザに問い合わせます。 .Ar local-file の指定がない場合や .Fl が指定されている場合には、 出力は画面に表示されます。 .Pp 本コマンドがリモートディレクトリ中のファイル一覧を返すだけであることに 注意してください。 ファイルについての更なる情報 (大概は大きさや修正時刻など) が欲しい場合、 .Ic dir を使ってください。 .It Ic nmap Op Ar inpattern outpattern ファイル名のマッピング機能を設定したり解除したりします。 引数が無い場合にはマッピング機能が解除されます。 引数がある場合には、出力先のリモートファイル名の指定されていない .Ic mput コマンドと .Ic put コマンドの実行時に、リモートファイル名がマップされます。 同様な事が .Ic mget コマンドと .Ic get コマンドのローカルファイル名についても行われます。 このコマンドはファイルの命名規則が異なる .Ux ではないリモートマシンとの接続時に便利です。 マッピングは .Ar inpattern と .Ar outpattern によって設定されたパターンに従って行われます。 .Op Ar inpattern は (すでに .Ic ntrans と .Ic case によって処理されているかもしれない) 入力ファイル名のためのテンプレートです。 .Ar inpattern に `$1', `$2', ..., `$9' の文字列を含むことによって、 変数を使用したテンプレートも使えます。 `$' を特別扱いしたくない時には `\\' を使ってください。 他の文字はそのままその文字として扱われ、 .Ic nmap の .Op Ar inpattern 変数の値を決めるのに用いられます。 例えば、 .Ar inpattern として $1.$2 が、 リモートファイルの名前として "mydata.data" が 与えられた時に、$1 は "mydata" という値となり, $2 は "data" という値になります。 .Ar outpattern は生成されるマッピング後のファイル名を決定します。 文字列の `$1', `$2', ...., `$9' は .Ar inpattern のテンプレートから生成される値に置き換えられます。 文字列の `$0' は元のファイル名で置き換えられます。 さらに、文字列の .Ql Op Ar seq1 , Ar seq2 は .Ar seq1 が空文字列でない時には .Op Ar seq1 に、 空文字列の時には .Op Ar seq2 に置き換えられます。 例えばコマンド .Pp .Bd -literal -offset indent -compact nmap $1.$2.$3 [$1,$2].[$2,file] .Ed .Pp は、 入力ファイル名 "myfile.data" と "myfile.data.old" に対して出力ファイル名が "myfile.data" になり、 入力ファイル名 "myfile" に対して出力ファイル名が "myfile.file" になり、 入力ファイル名 ".myfile" に対して 出力ファイル名が "myfile.myfile"になります。 例えば、`nmap $1 sed "s/ *$//" > $1' のように、 .Ar outpattern にはスペースが入っていても構いません。 文字 `$', `[', `]', `,' を特別扱いしたくない時には `\e' を使ってください。 .It Ic ntrans Op Ar inchars Op Ar outchars ファイル名の文字変換機能を設定したり解除したりします。 引数が無い場合には文字変換機能が解除されます。 引数がある場合には、出力先のリモートファイル名の指定されていない .Ic mput コマンドと .Ic put コマンドの実行時にリモートファイル名が変換されます。 同様な事が .Ic mget コマンドと .Ic get コマンドでもローカルファイルに対して行われます。 このコマンドは、 .Ux とは異なるファイル命名規則のリモートマシンとの接続時に有効です。 ファイル名中の文字で、 .Ar inchars の中の文字に一致するものが .Ar outchars の対応する文字に置き換えられます。 .Ar inchars の中での文字の位置が .Ar outchars の長さを越えている時には、その文字はファイル名から削除されます。 .It Ic open Ar host Op Ar port 指定した .Ar host の .Tn FTP サーバとのコネクションを確立します。 ポート番号 .Ar port を指定した場合、 .Nm は指定したポート番号を用いて .Tn FTP サーバとのコネクションの確立を試みます。 .Ic 自動ログイン オプションがオン (デフォルト時) の場合には、 .Nm は自動的に .Tn FTP サーバに対してログインを行ないます (以下を参照)。 .It Ic page Ar file .Ic file を取得して、 .Ev PAGER で指定されたプログラム (デフォルトは .Xr more 1 ) を使って表示します。 .It Ic passive -パッシブモードを切り替えます。パッシブモードがオン +パッシブモードを切り替えます。 +パッシブモードがオン (デフォルトはオフ) なら、ftp クライアントは すべてのデータコネクションにおいて、通常の .Dv PORT コマンドの代わりに .Dv PASV コマンドを送ります。 .Dv PASV コマンドはリモートのサーバにデータコネクションのためのポートを 開いて、そのポートのアドレスを返すよう要求します。 リモートサーバはそのポートで待ち、クライアントはそこに接続します。 より伝統的な .Dv PORT コマンドを使う場合は、クライアントがポートで待ち、そしてそのアドレスを リモートサーバに送ってリモートサーバはそこに接続して来ます。 パッシブモードは ゲートウェイ・ルータやトラフィックの方向を制御しているホストを 経由して .Nm を使う場合に有用です。 (注: ftp サーバが RFC 1123 の .Dv PASV コマンドをサポートしている必要がありますが、サポートしていない 場合もあります。 IPv6 サーバに接続している場合、 .Dv EPSV/EPRT ペアと .Dv LPSV/LPRT ペアを使い、 .Dv PASV と .Dv PORT は使わないことに注意してください。 他は同じです。) .It Ic preserve 受け取ったファイルの更新日時を保存するかどうかを切り替えます。 .It Ic progress 転送の進行状況を表す棒グラフ表示を切り替えます。 この棒グラフは、 .Ar ローカルファイル として .Sq Fl か .Sq \&| で始まるコマンドが指定された転送では表示されません。 詳しくは .Sx ファイル名の規則 を参照して下さい。 .It Ic prompt 対話的プロンプトモードを切り替えます。 対話的プロンプトモードをオンにすることで、 複数ファイル転送時に転送ファイルの選択を行なえます。 対話的プロンプトモードをオフにすると (デフォルトはオン)、 .Ic mget や .Ic mput で指定したファイルはすべて転送され、 .Ic mdelete で指定したファイルはすべて削除されます。 .Pp プロンプトモードがオンの時には、プロンプトにおいて以下の コマンドが使用できます: .Bl -tag -width 2n -offset indent .It Ic n ファイルを転送しません。 .It Ic a 現在のファイルについて .Sq yes とし、自動的に現在のコマンドに対する残りのすべての ファイルに対しても .Sq yes とします。 .It Ic p 現在のファイルについて .Sq yes とし、プロンプトモードをオフにします (あたかも .Dq prompt off が指定されたかのように)。 .El .Pp これ以外の応答は現在のファイルに対する .Sq yes として扱われます。 .It Ic proxy Ar ftp-command ftp コマンドを 2 次制御接続上で実行します。 本コマンドを用いることで、同時に 2 つのリモートマシンとコネクションを確立し、 2 つのサーバ間でファイル転送を行なうようにすることができるようになります。 最初の .Ic proxy コマンドは .Ic open コマンドである必要があります。 これは、2 次的な制御コネクションを確立するために必要な操作です。 \&"proxy ?" とコマンドを実行することで、 2 次接続下で使用可能なコマンド一覧が表示されます。 以下のコマンドは .Ic proxy の後におかれた時には異なった働きをします。 .Ic open は自動ログイン処理中には新しいマクロの定義を行いません。 .Ic close はマクロの削除を行いません。 .Ic get と .Ic mget は 1次制御接続のホストから 2次制御接続のホストにファイルの転送を行います。 .Ic put と .Ic mput と .Ic append は 2次制御接続のホストから 1次制御接続のホストにファイルの転送を行います。 第三者のファイル転送は、2次制御接続のサーバが FTP プロトコルの .Dv PASV コマンドをサポートしているかどうかに依存します。 .It Ic put Ar local-file Op Ar remote-file ローカルマシン上の指定ファイルをリモートマシンに転送します。 .Ar remote-file が指定されない場合には、転送先でのファイル名は、 .Ic ntrans か .Ic nmap の設定に基づく処理を行ったローカルファイルの名前が用いられます。 ファイル転送には .Ic type , .Ic format , .Ic mode , .Ic structure の現在の設定が用いられます。 .It Ic pwd 現在のリモートマシン上での作業ディレクトリを表示します。 .It Ic quit .Ic bye と同じです。 .It Ic quote Ar arg1 arg2 ... 引数で指定した文字列を、そのままリモート .Tn FTP サーバに送信します。 .It Ic recv Ar remote-file Op Ar local-file .Ic get と同じです。 .It Ic reget Ar remote-file Op Ar local-file getと似ていますが、 .Ar local-file が存在しており .Ar remote-file よりサイズが小さい場合には、 .Ar local-file がリモートファイルの一部であるとみなして続きをコピーする点が異なります。 本コマンドは、大きいファイルの転送中にコネクションが 切断されてしまった場合の続きを受信しなおす場合などに有用です。 .It Ic remotehelp Op Ar command-name リモート .Tn FTP サーバのヘルプメッセージを要求します。 .Ar command-name が指定された場合にはそのコマンドのヘルプが表示されます。 .It Ic rstatus Op Ar file-name 引数がない場合にはリモートマシンのステータスが表示されます。 .Ar file-name が指定されている場合には、 リモートマシン上の指定ファイルのステータスが表示されます。 .It Ic rename Op Ar from Op Ar to リモートマシン上のファイル .Ar from が、 .Ar to というファイル名にリネームされます。 .It Ic reset リプライキューをクリアします。 本コマンドはコマンド/リプライのシーケンスの再同期をとるのに使われます。 再同期を取ることは ftp プロトコル上の障害が発生した時に必要な操作です。 .It Ic restart Ar marker .Ic get や .Ic put を指定した .Ar marker 位置から再開します。 .Ux システムにおいては、通常 marker はファイルのバイトオフセットで指定します。 .It Ic restrict データポートの幅を制限するかをオン/オフします。 パッシブモードでない時に、 .Nm クライアントはリモートサーバに対して、独立したデータポートで クライアントホストに接続してくることを要求します。 前のバージョンでは、そのリモートポートは 1024 から 4999 までの幅に 収まっていました。 しかしほとんどの防火壁 (fire wall) では、その範囲に他のサービスが あるために TCPポートをフィルタリングしています。 現在のデフォルトの動作では、ポート番号が 49152 から 65535 の間で、 サーバがクライアントに対して接続してくることを要求します。 もしセキュリティ上の危険性がないと考えるならば、防火壁管理者は その幅での TCP 接続に対して許可を行うという選択ができます。 .It Ic rmdir Ar directory-name リモートマシン上のディレクトリを消去します。 .It Ic runique ローカルマシンに保存されるファイルに対して ユニークな名前を付加するかどうかを切り替えます。 .Ic get や .Ic mget コマンドで目的のローカルファイルと同じ名前のファイルが既に存在する時には、 \&".1" が名前に付加されます。 その名前も既に存在する時には \&".2" が付加されます。 このように順番に処理をし、 \&".99" になっても存在する時には エラーメッセージが表示され、転送は行われません。 生成されたユニークなファイル名は報告されます。 注: .Ic runique はシェルコマンドで生成されるファイル名には効果がありません (下記参照)。 デフォルトではオフになっています。 .It Ic send Ar local-file Op Ar remote-file .Ic put と同じです。 .It Ic sendport .Dv PORT コマンドを使用するかどうか切り替えます。 デフォルトでは、 .Nm は各データ転送用のコネクションの確立の際に .Dv PORT コマンドの使用を試みます。 .Dv PORT を使うことで複数ファイル転送を行なう場合の遅延を避けることが出来ます。 .Dv PORT コマンドが失敗した場合、 .Nm はデフォルトのデータ・ポートを使用します。 .Dv PORT コマンドが無効になった場合、データ転送時に .Dv PORT コマンドは使われません。 これはある種の .Tn FTP の実装で .Dv PORT コマンドは無視するが、誤っていて、受け入れたと返事を返すような 物に対して有効です。 .It Ic site Ar arg1 arg2 ... 引数で指定した文字列を、 .Dv SITE コマンドの引数としてそのまま .Tn FTP サーバに送信します。 .It Ic size Ar file-name リモートマシン上の .Ar file-name で指定したファイルのサイズを表示します。 .It Ic status .Nm の現在の状態を表示します。 .It Ic struct Op Ar struct-name ファイル転送の .Ar structure を .Ar struct-name に設定します。 デフォルトでは、\*(Lqstream\*(Rq に設定されています。 .It Ic sunique リモートマシン上に転送するファイルのファイル名に対して、 一意な名前を付与するかどうかを切り替えます。 この機能が使えるためには、 リモートの FTP サーバが FTP のプロトコルの .Dv STOU コマンドをサポートしていなければなりません。 リモートサーバがユニークな名前を報告します。 デフォルトではこの機能はオフになっています。 .It Ic system リモートマシンで稼働している OS のタイプを表示します。 .It Ic tenex .Tn TENEX マシンと 通信するために必要なファイル転送モードを設定します。 .It Ic trace パケットトレースをするかどうかを切り替えます。 .It Ic type Op Ar type-name ファイル転送の .Ic type を .Ar type-name -に変更します。引数が指定されない場合には +に変更します。 +引数が指定されない場合には 現在のファイル転送タイプを表示します。 デフォルトタイプはネットワーク .Tn ASCII です。 .It Ic umask Op Ar newmask リモートサーバのデフォルトの umask 値を .Ar newmask で指定した値に変更します。 .Ar newmask が指定されていない場合は現在の umask 値を表示します。 .It Xo .Ic user Ar user-name .Op Ar password Op Ar account .Xc ユーザをリモート .Tn FTP サーバに認識させます。 .Ar password が指定されていなくて、 .Tn FTP サーバが必要とする場合は (ローカルエコーをオフにしてから) .Nm がユーザに問い合わせます。 .Ar account が指定されていなくて、 .Tn FTP サーバが必要とする場合には、 .Nm がユーザに問い合わせます。 リモートサーバがログイン時にアカウントを必要としないのに .Ar account フィールドが指定された場合には、ログイン処理の完了後に account コマンドがリモートサーバに渡されます。 「自動ログイン」を無効にした状態で .Nm が呼び出されない限り、 この処理は .Tn FTP サーバに最初につながった時に自動的に行われます。 .It Ic verbose 饒舌モードの切り替えをします。 饒舌モードの時には .Tn FTP サーバからの全ての応答が表示されます。 さらにこのモードがオンの時には、ファイル転送が終了した時に 転送効率に関する統計が報告されます。 デフォルトではオンになっています。 .It Ic \&? Op Ar command .Ic help コマンドと同じです。 .El .Pp スペースを含むコマンドの引数は、`"' マークで括って下さい。 .Pp 設定を切り替えるコマンドでは、設定を指定するために明示的に .Ic on か .Ic off を引数として指定できます。 .Pp .Nm が転送中に .Dv SIGINFO ( .Xr stty 1 の引数 .Dq status を参照) シグナルを受けると、その時点での転送レートの統計情報が 終了時の標準的なフォーマットと同じ形式で標準エラー出力に書き出されます。 .Sh ファイルの自動取得 標準的なコマンドに加えて、 このバージョンの .Nm は自動取得の機能をサポートします。 単にホスト名/ファイルのリストをコマンドラインで渡すと 自動取得が有効になります。 .Pp 自動取得の指定では以下の形式を認識します: .Bl -tag -width "host:/file" .It host:/file .Dq 古典的な ftp の形式 .It ftp://[user:password@]host[:port]/file ftp URL 形式で、 .Ev ftp_proxy が定義されていなければ ftp プロトコルで取得します。 そうでなければ .Ev ftp_proxy で指定されたプロキシを経由した http を使って転送します。 .Ar user:password@ が指定されていて .Ev ftp_proxy が定義されていない場合は、 パスワードに .Ar password を使って .Ar user でログインします。 .It http://host[:port]/file HTTP URL 形式、http プロトコルで取得します。 .Ev http_proxy が定義されている場合は、その内容が HTTP プロキシサーバの URL として使用されます。 .El .Pp 古典的な形式または ftp URL形式で最後に .Sq / がある場合は、 .Nm はサイトに接続して与えられたパスのディレクトリに .Ic cd し、以降の入力を受け付けるために対話モードに入ります。 .Pp 自動取得の対象が複数指定されていて、連続しているものが同じホストを 参照している時は、接続の確立と切断によるオーバヘッドを避けるために 複数の転送にわたって接続が維持されます。 .Pp ファイル名の展開がオンで .Ic file が展開の対象となる文字を含んでいるなら ( .Ic glob 参照) .Ic "mget file" と同じ事を行います。 .Pp .Ic file のディレクトリ部分が展開の対象となる文字を含まなければ、 ファイルは .Ic file から .Xr basename 1 で得られる名前で現在のディレクトリに置かれます。 そうでなければリモートの名前をローカルでの名前として使います。 .Sh ファイル転送の中止 ファイル転送を中断するためには、 端末のインタラプトキー (通常は Ctrl-C) を打鍵してください。 データ送信はただちに停止します。 データ受信は、ftp プロトコルの .Dv ABOR コマンドをリモートサーバに送ることでサーバからのデータ送信がとまります。 そしてそれ以降の受信データは捨てられます。 これが行われる速度は、リモートサーバが .Dv ABOR コマンドをサポートする方式に依存します。 リモートサーバが .Dv ABOR コマンドをサポートしていない時には、 リモートサーバが要求したファイルを送り終るまで .Ql ftp> というプロンプトは現れません。 .Pp 端末からの割り込みキー入力は、 .Nm が何かローカルの処理をすでに完了していて リモートサーバからの応答を待っている時には無視されます。 このモードでの長い遅延は上でも述べたように ABOR 処理の結果に よるものか、 ftp のプロトコル違反を含めたリモートサーバによる 予期せぬ動作のどちらかによるものです。 もしリモートサーバの予期せぬ動作の結果による遅延であるならば、 ローカルの .Nm プログラムは手動で終了 (kill) しなければなりません。 .Sh ファイル名の規則 .Nm コマンドの引数として指定されたファイル名は、以下の規則で処理されます。 .Bl -enum .It ファイル名として .Sq Fl が指定された場合、 入力ファイル名の場合には標準入力 .Ar stdin が、 出力ファイル名の場合には標準出力 .Ar stdout が使用されます。 .It ファイル名の先頭の文字が .Sq \&| の場合には、その後に指定された文字列はすべてシェルコマンドと解釈されます。 .Nm は与えられた引数をつけて .Xr popen 3 を用いてシェルを呼び出し、標準入力から (標準出力へ) 読み出し (書き込み) ます。 シェルコマンドにスペースが含まれている時には 引数は引用符で囲まれなければなりません。 (例: \*(Lq" ls -lt"\*(Rq ) 特に有用な例としては \*(Lqdir \&|more\*(Rq があります。 .It 上記のチェックにひっかからず、 .Dq globbing が許可されている場合、 ローカルファイル名は .Xr csh 1 のファイル名展開規則にしたがって展開されます。 (詳細は .Ic glob コマンドを参照) ただし、 .Nm のコマンドが 1 つのファイル名しか必要としない場合 (例えば .Ic put ) は、ファイル名が展開された後の最初のファイル名だけが使用されます。 .It .Ic mget コマンドと .Ic get コマンドにおいてローカルファイル名が指定されない場合、 ローカルファイル名はリモートファイル名と同一になります。 ただし、これらのファイル名は .Ic case , .Ic ntrans , .Ic nmap の設定によって変わることもあります。 結果として得られたファイル名は、 .Ic runique が設定されていればさらに変わるかもしれません。 .It .Ic mput コマンドと .Ic put コマンドにおいてリモートファイル名が指定されない場合、 リモートファイル名はローカルファイル名と同一になります。 ただし、これらのファイル名は .Ic ntrans , .Ic nmap の設定によって変わることもあります。 結果として得られたファイル名は、 .Ic sunique が設定されていればリモートサーバによって さらに変えられるかも知れません。 .El .Sh ファイル転送パラメータ FTPの仕様にはファイル転送時に影響を及ぼす多くのパラメータがあります。 .Ic type は、\*(Lqascii\*(Rq, \*(Lqimage\*(Rq (binary), \*(Lqebcdic\*(Rq, \*(Lqlocal byte size\*(Rq ( .Tn PDP Ns -10 および .Tn PDP Ns -20 でよく使われます) が指定可能です。 .Nm は、ascii と image のタイプを指定可能なのに加えて、 .Ic tenex モードの転送を指定することにより ローカルバイトサイズ 8 を指定することが可能です。 .Pp .Nm では、他の .Ic mode , .Ic form , .Ic struct のパラメータではデフォルト値だけが使用可能です。 .Sh .netrc ファイル .Pa .netrc ファイルは、自動ログイン処理においてのログインおよび初期設定情報を記述します。 .Pa .netrc ファイルは、ユーザのホームディレクトリに置きます。 .Pa .netrc -では以下の予約語が解釈されます。これらはスペース、タブそして +では以下の予約語が解釈されます。 +これらはスペース、タブそして new-line によって分割されます。 .Bl -tag -width password .It Ic machine Ar name リモートマシン名 .Ar name を定義します。 自動ログイン処理は .Pa .netrc ファイル中に .Ic machine トークンがあるかどうか探し、そのエントリが .Nm のコマンドラインもしくは .Ic open コマンドの引数と一致するかどうかチェックします。 一致するエントリがあった場合は後に続く .Pa .netrc トークンが処理され、その処理はファイル最後尾に行き着くか他の .Ic machine トークンまたは .Ic default トークンに出くわすまで続きます。 .It Ic default いろんな名前と一致するワイルドカード的な働きがあることを除けば .Ic machine .Ar name と同様です。 .Ic default トークンは、 .Pa .netrc ファイル中に 1 エントリだけが許され、 しかも他の全ての .Ic machine トークンより後ろでなければなりません。 通常は .Pp .Dl default login anonymous password user@site .Pp のように使用されます。 本エントリによって .Pa .netrc に指定の無い ftp サイトに自動で anonymous ログインを試みるようになります。 .Fl n フラグを付加して ftp を起動することで .Pa .netrc ファイルを無視することが出来ます。 .It Ic login Ar name リモートマシンにおけるログイン名を指定します。 本トークンが与えられている場合、自動ログイン処理は .Ar name をログイン名としてログインしようとします。 .It Ic password Ar string パスワードを指定します。 本トークンが指定されている場合でリモートサーバがログイン処理中に パスワードを要求する場合は、自動ログイン処理は指定した文字列を 送ります。 .Pa .netrc ファイルにおいて、 .Ar anonymous 以外のユーザエントリにおいて本トークンが登録されており、なおかつ .Pa .netrc がユーザ以外から読める属性である場合には .Nm は自動ログイン処理を中断します。 .It Ic account Ar string 追加のアカウントパスワードを登録します。 このトークンがあると、 もし追加のアカウントパスワードをリモートホストが必要とする時に 自動ログインプロセスが指定された文字列を与えます。 そうでない場合には、自動ログインプロセスは .Dv ACCT コマンドを与えます。 .It Ic macdef Ar name マクロを定義します。 このトークンの機能は .Nm .Ic macdef コマンドの機能に似ています。 マクロは指定された名前を用いて定義されます。 その内容は .Pa .netrc の次の行から始まり、空行 (改行文字の連続) が現れるまで続きます。 .Ic init というマクロが定義されているならば、 自動ログイン処理の中での最後の段階で自動的に実行されます。 .El .Sh コマンドラインの編集機能 .Nm は .Xr editline 3 ライブラリを使った対話的なコマンドラインの編集をサポートします。 これは .Ic edit コマンドによって有効になり、そして入力が tty からの場合は デフォルトで有効になっています。 カーソルキーで以前の行を呼び出して編集できます。 そして他にも GNU Emacs スタイルの編集用のキーが使えます。 .Pp .Xr editline 3 ライブラリは .Pa .editrc ファイルで設定できます - より詳しくは .Xr editrc 5 を参照して下さい。 .Pp .Nm には、文脈に依存したコマンドとファイル名の補完 (リモートファイルの補完を含む) 機能を提供するための 追加のキー割り当てが用意されています。 これを使うためには .Xr editline 3 の .Ic ftp-complete コマンドにキーを割り当てて下さい。 これはデフォルトで TAB キーに割り当てられています。 .Sh 環境変数 .Nm は、以下の環境変数を使用します。 .Bl -tag -width "FTP_PASSIVE_MODE" .It Ev FTP_PASSIVE_MODE この変数を .Sq NO 以外に設定すると、 パッシブモードの FTP をデフォルトで使用します。 .It Ev FTPSERVER .Ic gate が有効な時に gate-ftp サーバとして使用するホスト。 .It Ev FTPSERVERPORT .Ic gate が有効な時に gate-ftp サーバに接続するのに使うポート。 デフォルトは .Dq ftpgate/tcp で .Fn getservbyname を呼び出して返って来たポート。 .It Ev HOME 定義されていれば .Pa .netrc ファイルのデフォルトの置き場所となります。 .It Ev PAGER .Ic page でファイルを表示する際に使われます。 .It Ev SHELL デフォルトで起動するシェルを定義します。 .It Ev ftp_proxy FTP URL リクエストを発行する時に使う FTP プロキシの URL (定義されていなければ標準の ftp プロトコルを使います)。 .It Ev http_proxy HTTP URL リクエストを発行する時に使う HTTP プロキシの URL。 .El .Sh 関連項目 .Xr getservbyname 3 , .Xr editrc 5 , .Xr services 5 , .Xr ftpd 8 .Sh 注 .Xr pftp 1 と .Xr gate-ftp 1 コマンドは .Nm にリンクされています。 .Sh 歴史 .Nm コマンドは .Bx 4.2 から実装されました。 .Pp コマンドラインの編集、文脈に依存したコマンドとファイルの補完、 進行状況を表す棒グラフ、ファイルの自動的な取得、 ftp と http 形式の URL、更新時刻の保存といった各種の機能は .Nx 1.3 で Luke Mewburn によって、Jason Thorpe のアシスタントを得て実装されました。 .Pp IPv6 サポートは WIDE/KAME プロジェクトが追加しました。 .Sh バグ 多くのコマンドの正しい動作は、リモートサーバの適切な動作に依存します。 .Pp .Bx 4.2 の ascii モードでの転送時の復帰文字の取り扱いのエラーは訂正されています。 この訂正の結果として、 .Bx 4.2 のサーバとの間でバイナリファイルを ascii タイプを使用して転送した時に 不正転送をひき起こすことが -あります。この問題を回避するためにはバイナリモードを用いて +あります。 +この問題を回避するためにはバイナリモードを用いて ファイル転送をして下さい。 .Pp .Ev ftp_proxy 等のプロキシ機能は、IPv6 接続では動作しないかもしれません。 diff --git a/ja_JP.eucJP/man/man1/systat.1 b/ja_JP.eucJP/man/man1/systat.1 index a46c2f58d5..1674757c88 100644 --- a/ja_JP.eucJP/man/man1/systat.1 +++ b/ja_JP.eucJP/man/man1/systat.1 @@ -1,528 +1,543 @@ .\" Copyright (c) 1985, 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)systat.1 8.2 (Berkeley) 12/30/93 -.\" %FreeBSD: src/usr.bin/systat/systat.1,v 1.23.2.7 2002/06/21 15:29:21 charnier Exp % +.\" %FreeBSD: src/usr.bin/systat/systat.1,v 1.23.2.8 2002/08/24 00:33:48 keramida Exp % .\" .\" $FreeBSD$ .\" .Dd September 9, 1997 .Dt SYSTAT 1 .Os .Sh 名称 .Nm systat .Nd システムの統計情報を CRT に表示する .Sh 書式 .Nm .Op Fl display .Op Ar refresh-interval .Sh 解説 .Nm ユーティリティは、 .Xr ncurses 3 の curses スクリーンディスプレイライブラリを用いたスクリーン指向な方法で、 システムの各種統計情報を表示します。 .Pp .Nm の走行中はスクリーンが通常 2 つのウィンドウに分割されます (例外は vmstat を表示する場合で この時はスクリーン全体を使います)。 上のウィンドウはその時のシステムのロードアベレージを表示します。 下のウィンドウに表示される情報は、ユーザのコマンドに応じて -変化するかもしれません。スクリーンの最終行はユーザの入力と +変化するかもしれません。 +スクリーンの最終行はユーザの入力と エラーメッセージのために予約されています。 .Pp デフォルトでは .Nm はプロセッサ使用率が最大のプロセスを下のウィンドウに表示します。 他にはスワップ領域の使用状況、ディスク .Tn I/O の統計情報 ( .Xr iostat 8 式に)、仮想記憶の統計情報 ( .Xr vmstat 8 式に)、ネットワークの ``mbuf'' 利用率、 .Tn TCP/IP 統計情報、 ネットワークコネクション ( .Xr netstat 1 式に) を表示します。 .Pp 入力は 2 つの異なるレベルで解釈されます。 ``グローバル'' なコマンドインタプリタがすべてのキーボード入力を -処理します。もしこのコマンドインタプリタがコマンドを認識できないと、 +処理します。 +もしこのコマンドインタプリタがコマンドを認識できないと、 入力行は表示する種類毎のコマンドインタプリタに渡されます。 これによって各表示内容に応じたコマンドを持つ事が可能になります。 .Pp コマンド行のオプション: .Bl -tag -width "refresh_interval" .It Fl Ns Ar display .Fl に続けて .Ar display として以下のいずれか一つを指定します: .Ic icmp , .Ic iostat , .Ic ip , .Ic mbufs , .Ic netstat , .Ic pigs , .Ic swap , .Ic tcp , .Ic vmstat -。これらの表示内容は対話的にも ( +。 +これらの表示内容は対話的にも ( .Dq Fl 無しに) 指定でき、そして詳細は以下の説明にあります。 .It Ar refresh-interval .Ar refresh-value にスクリーンの更新間隔を秒数で指定します。 .El .Pp いくつかの文字は .Nm を即座に反応させます。 そういった文字には以下の物があります .Bl -tag -width Fl .It Ic \&^L スクリーンを更新します。 .It Ic \&^G その時点で下のウィンドウに表示されている ``表示内容'' の名称と 更新間隔を表示します。 -.It Ic \&^Z -.Nm -を停止します。 .It Ic \&: カーソルをコマンドラインに移動して打ち込まれた入力行を -コマンドとして解釈します。コマンドの入力中は +コマンドとして解釈します。 +コマンドの入力中は 現位置文字消去、単語消去、行取消の各編集機能が使えます。 .El .Pp 以下のコマンドは ``グローバル'' なコマンドインタプリタによって 解釈されます。 .Bl -tag -width Fl .It Ic help 指定可能な表示内容をコマンドラインに表示します。 .It Ic load 過去 1、5、15分間のロードアベレージをコマンドラインに表示します。 .It Ic stop スクリーンの更新を止めます。 .It Xo .Op Ic start .Op Ar number .Xc -スクリーンの更新を開始 (継続) します。もし数値で秒数指定の +スクリーンの更新を開始 (継続) します。 +もし数値で秒数指定の 引数が与えられると更新間隔 (の秒数) として解釈されます。 数値のみを与えると更新間隔がその値にセットされます。 .It Ic quit .Nm を終了します。 (これは .Ic q と省略できます。) .El .Pp 指定可能な表示内容には以下があります: .Bl -tag -width Ic .It Ic pigs 下のウィンドウに、主記憶を占めプロセッサ利用率が最大のプロセスを 表示します (デフォルトの表示内容です)。 ユーザプロセスへのプロセッサの割当が 100% 未満の時は、 残りは ``idle'' プロセスに割り当てられているものと扱います。 .It Ic icmp 下のウィンドウに、 Internet Control Message Protocol .Pq Dq Tn ICMP で送受信されたメッセージの統計情報を表示します。 スクリーンの左半分には受信したパケットの情報を表示し、 右半分には送信されたと考えられるパケットの情報を表示します。 .Pp 表示内容が .Ic icmp の場合は 2 つのコマンドが利用できます: .Ic mode と .Ic reset です。 .Ic mode コマンドは与えられた引数に応じて 4 つの表示モードから 1 つを選ぶために使います: .Bl -tag -width absoluteXX -compact .It Ic rate : それぞれの値の変動を秒単位にパケット数で表示します (デフォルトです) .It Ic delta : それぞれの値の変動を更新間隔単位にパケット数で表示します .It Ic since : 表示が最後にリセットされてからのそれぞれの値の変動の総計を表示します .It Ic absolute : 各統計の絶対値を表示します .El .Pp .Ic reset コマンドは .Ic since モードの基点をリセットします。 引数なしの .Ic mode コマンドはその時点のモードをコマンドラインに表示します。 .It Ic ip .Tn IP と .Tn UDP の統計情報を表示するという点を除いて .Ic icmp と同じです。 .It Ic tcp .Ic icmp に似ていますが、 .Tn TCP の統計情報を表示します。 .It Ic iostat 下のウィンドウに、プロセッサ利用率とディスクのスループットの -統計情報を表示します。プロセッサ利用率の統計情報は +統計情報を表示します。 +プロセッサ利用率の統計情報は ユーザモード (``user'')、低いプライオリティで実行された ユーザモードのプロセス (``nice'')、システムモード (``system'')、 割り込みモード (``interrupt'')、アイドル (``idle'') での総実行時間 の棒グラフとして表示されます。 ディスクのスループットの統計情報としては、各ドライブについて、 秒あたりのメガバイト数、秒あたりの平均ディスクトランザクション数、 トランザクションあたりの平均転送キロバイト数が表示されます。 この情報は棒グラフまたは下へスクロールする数値の列で表示されます。 棒グラフでの表示がデフォルトです; .Pp 以下のコマンドは表示内容が .Ic iostat の場合に特有です; 先頭からの一意に識別可能な文字数だけで指定可能です。 .Pp .Bl -tag -width Fl -compact .It Cm numbers ディスク .Tn I/O -の統計情報を数値形式で表示します。値は下へスクロールする +の統計情報を数値形式で表示します。 +値は下へスクロールする 数値の列として表示されます。 .It Cm bars ディスク .Tn I/O の統計情報を棒グラフ形式で表示します (デフォルト)。 .It Cm kbpt トランザクションあたりのキロバイト数の表示を切り替えます (デフォルトではトランザクションあたりのキロバイトは表示されません)。 .El .It Ic swap カーネルに組み込まれている全スワップ領域について 利用状況に関する情報を表示します。 最初の列はパーティションのデバイス名です。 次の列はパーティションの総容量です。 .Ar Used の列は それまでに使われた総ブロックを示します; グラフは各パーティションで使用中の部分の割合を示します。 2 つ以上の使用中のスワップパーティションがある場合は、 合計の行も表示されます。 カーネルに組み込まれているものの、使われていない物は 使用不可として表示されます。 .It Ic mbufs 下のウィンドウに、何らかの用途、すなわち、データ、ソケット構造体等々に 確保された mbuf の個数を表示します。 .It Ic vmstat 画面全体を使って、 仮想記憶の利用状況、プロセススケジューリング、 デバイスからの割り込み、システムの名前変換キャッシュ、 ディスク .Tn I/O 等々に関する (やや込み入った) 統計情報の要約を表示します。 .Pp 画面の左上の領域にはログインしているユーザ数と過去 1、5、15分間の ロードアベレージが表示されます。 この行の下はメモリ利用率の統計情報です。 この表の 1 行目はアクティブなプロセス、つまり過去 20 秒以内に 走行状態だったことのあるプロセスのみのメモリ利用率を報告します。 2 番目の行は全プロセスのメモリ利用状況を報告しています。 1 番目の列はプロセスによって要求された物理ページ数を表示します。 2 番目の列は読みだし専用のテキストページに当てられた 物理ページ数を表示します。 3 番目と 4 番目の列は同じ物に関して仮想ページの情報を表示します。 これは全プロセスが全ページを持つとした時に必要となるページ数を表します。 最後に、最終列はフリーリスト上の物理ページ数を示します。 .Pp メモリ情報の下は平均プロセス数のリスト (1 更新期間前からのもの) で、 走行可能 (`r')、ページ待ち中 (`p')、 ページング以外のディスク待ち中 (`d')、 スリープ状態 (`s')、スワップアウトされているが実行されるのを 待っている状態 (`w') です。 この行にはコンテキストスイッチの平均回数 (`Csw')、 トラップ (`Trp'; ページフォルトを含む)、 システムコール (`Sys')、割り込み (`Int')、 ネットワークソフトウェア割り込み (`Sof')、 ページフォルト (`Flt') も表示します。 .Pp このプロセスキューの長さのリストの下は 時間の総計をシステム (`=' で示されます)、割り込み (`+' で示されます)、 ユーザ (`>' で示されます)、ナイス (`-' で示されます)、 アイドル (` ' で示されます) について数値のリストと棒グラフで 表した物です。 .Pp プロセス情報の下はファイル名変換の統計情報です。 これは前の更新期間中に行われたファイル名から inode 番号への変換の 回数、システム全体で共通の変換キャッシュで処理された物の回数と 割合、プロセス毎の変換キャッシュで処理された物の回数と割合を 表示しています。 .Pp 左下はディスクアクセス状況です。 ここでは 1 更新間隔 (デフォルトでは 5 秒) において、 転送あたりのキロバイト数、秒あたりの転送回数、秒あたりの転送メガバイト数、 ディスクがビジーであった時間のパーセンテージを報告します。 システムは、ほぼすべてのストレージデバイスの統計情報を保持します。 一般的には、7 個までのデバイスが表示されます。 表示されるデバイスは、 デフォルトではカーネルのデバイスリストの先頭にあるものです。 devstat システムの詳細については、 .Xr devstat 3 および .Xr devstat 9 を参照してください。 .Pp 右上の日時の下はページングとスワップの稼働状況です。 最初の 2 列は、1 更新間隔の間にページフォルトとページデーモンによって、 読み込まれたページ数と掃き出されたページ数の 1 秒あたりの平均を報告します。 3 番目と 4 番目の列は、1 更新間隔の間にスケジューラによって発行された スワップ要求により 読み込まれたページ数と掃き出されたページ数の 1 秒あたりの平均を報告します。 この情報の 1 行目は 1 更新間隔での秒あたりの平均ディスク転送回数を 示します; この情報の 2 行目は 1 更新間隔での秒あたりの平均転送ページ数を 示します。 .Pp ページングの統計情報の下は仮想記憶システムの以下の項目の平均数を -表示する列です。それぞれ、 +表示する列です。 +それぞれ、 書き込み時にコピーが行われたページ数 (`cow')、 要求時 0 クリアが行われたページ数 (`zfod')、 ページング対象から外され、固定されているページ数 (`wire')、 遅い (オンザフライの) ゼロフィルの割合 (`%slo-z')、 最近参照されたページ数 (`act')、 ページングの候補になっているページ数 (`inact')、 バッファキャッシュキューにあるページ数 (`cache')、 フリーページ数 (`free')、 ページデーモンが解放したページ数 (`daefr')、 プロセスが終了した事によって解放されたページ数 (`prcfr')、 フリーリストから再有効化されたページ数 (`react')、 ページデーモンが起こされた回数 (`pdwak')、 ページデーモンが調べたページ数 (`pdpgs')、 読み込み途中でページフォルトがブロックされた回数 (`intrn') の 1 更新間隔での秒あたりの平均値です。 .Pp この列のいちばん下は、以下の用途に使われている メモリの総量をそれぞれについてキロバイト単位で示しています。 バッファキャッシュのために使われている分 (`buf')、 バッファキャッシュ中のダーティバッファ数 (`dirtybuf')、 vnode キャッシュの望まれる最大サイズ (`desiredvnodes') (ネームキャッシュのサイズまでを除くと、大部分は未使用)、 実際に確保された vnode 数 (`numvnodes')、 確保された vnode でフリーな物の数 (`freevnodes') .Pp 画面の右下はシステムによって処理された割り込みの詳細です。 リストのトップは更新期間中の秒あたりの総割り込み数です。 列の残りの部分は総割り込み数のデバイス毎の詳細です。 ブートしてから少なくとも 1 回は割り込みを発生したデバイスについてのみ 表示されます。 .Pp 以下のコマンドは表示内容が .Ic vmstat の場合に特有です; 先頭からの一意に識別可能な文字数だけで指定可能です。 .Pp .Bl -tag -width Ar -compact .It Cm boot システムがブートしてからの累積の統計情報を表示します。 .It Cm run このコマンドが与えられてからの走行中のトータルとして統計情報を表示します。 .It Cm time 更新期間の平均で統計情報を表示します (デフォルト)。 .It Cm want_fd fd デバイスのディスク使用状況を表示するか否かを切り替えます。 .It Cm zero 走行中の統計情報を 0 にリセットします。 .El .It Ic netstat -下のウィンドウにネットワーク接続状況を表示します。デフォルトでは、 +下のウィンドウにネットワーク接続状況を表示します。 +デフォルトでは、 リクエストを待っているネットワークサーバは表示されません。 各アドレスは ``host.port'' のフォーマットで、可能であれば -シンボルで表示されます。アドレスを数字で表示することや、 +シンボルで表示されます。 +アドレスを数字で表示することや、 ポート、ホスト、プロトコルの表示を制限することが可能です。 (先頭からの一意に識別可能な文字数だけで指定可能です): .Pp .Bl -tag -width Ar -compact .It Cm all リクエストを待っているサーバプロセスの表示を切り替えます (これは .Xr netstat 1 の .Fl a フラグと等価です)。 .It Cm numbers ネットワークアドレスを数字で表示します。 .It Cm names ネットワークアドレスをシンボルで表示します。 .It Cm proto Ar protocol .Ar protocol で指定されたプロトコルを使っているネットワークコネクションのみを 表示します (サポートしているプロトコルは ``tcp'',``udp'',``all'')。 .It Cm ignore Op Ar items 指定されたホストまたはポートとの接続に関する情報を表示しません。 ホストとポートは名前 (``vangogh'' や ``ftp'')、または数字で -指定できます。ホストのアドレスはインターネットのドット表記を -使用します (``128.32.0.9'')。空白で区切って 1 つのコマンドに +指定できます。 +ホストのアドレスはインターネットのドット表記を +使用します (``128.32.0.9'')。 +空白で区切って 1 つのコマンドに 複数の指定が可能です。 .It Cm display Op Ar items 指定されたホストまたはポートとの接続に関する情報を表示します。 .Ar ignore と同様に、 .Op Ar items は名前または数字が使用可能です。 .It Cm show Op Ar ports\&|hosts コマンドラインに、その時点で選択されているプロトコル、 -ホスト、ポートを表示します。無視されるホストとポートには -`!' を前置します。もし +ホスト、ポートを表示します。 +無視されるホストとポートには +`!' を前置します。 +もし .Ar ports か .Ar hosts が .Cm show の引数として与えられると、 指定された情報だけが表示されます。 .It Cm reset ポート、ホスト、プロトコルの選択メカニズムをデフォルト (あらゆるプロトコル、ポート、ホスト) の状態にリセットします。 .El .El .Pp 表示内容の切り替えコマンドは先頭からの一意に識別可能な 文字数に短縮できます; 例えば ``iostat'' は ``io'' と省略できます。 画面サイズが表示内容に不十分な時は情報が捨てられる可能性があります。 例えば、10 台のドライブがあるマシンでは .Ic iostat の棒グラフは 24 行の端末では 3 ドライブ分しか表示しません。 棒グラフが割り当てられた画面のスペースに収まらない時は 切り詰められて実際の値は棒の ``先端部分'' に表示されます。 .Pp 以下のコマンドはディスクドライブに関する情報を表示する物に -共通です。これらのコマンドは、あなたのシステムに、通常 +共通です。 +これらのコマンドは、あなたのシステムに、通常 画面に表示しきれない数のドライブがある場合に、情報を表示する ドライブのセットを選択するために使うためのものです。 .Pp .Bl -tag -width Ar -compact .It Cm ignore Op Ar drives -指定されたドライブに関する情報を表示しません。複数のドライブを +指定されたドライブに関する情報を表示しません。 +複数のドライブを 空白で区切って指定できます。 .It Cm display Op Ar drives -指定されたドライブに関する情報を表示します。複数のドライブを +指定されたドライブに関する情報を表示します。 +複数のドライブを 空白で区切って指定できます。 .It Cm only Op Ar drives 指定されたデバイスのみ表示します。 複数のデバイスを指定可能であり、その場合空白で区切ります。 .It Cm drives 使用可能なデバイスのリストを表示します。 .It Cm match Xo .Ar type , Ns Ar if , Ns Ar pass .Op | Ar ... .Xc 指定したパターンにマッチするデバイスを表示します。 基本マッチング式は、 .Xr iostat 8 で使用するものと同じですが、1 点のみ異なります。 それぞれが OR される複数の .Fl t 引数を指定する代りに、 複数のマッチング式をパイプ .Pq Ql \&| 文字で結合して指定します。 それぞれのマッチング式中でコンマで区切られた引数に関して それぞれ AND がとられてから、 パイプで区切られたマッチング式に関してそれぞれ OR がとられます。 組み合わせ式に対してマッチするデバイスは、 表示する余地があれば表示されます。 例: .Pp .Dl match da,scsi | cd,ide .Pp これは、 全 SCSI ダイレクトアクセスデバイスと、全 IDE CDROM デバイスを表示します。 .Pp .Dl match da | sa | cd,pass .Pp これは、全ダイレクトアクセスデバイス、全シーケンシャルアクセスデバイス、 そして CDROM へのアクセスを提供する全パススルーデバイスを表示します。 .El .Sh 関連項目 .Xr netstat 1 , .Xr kvm 3 , .Xr icmp 4 , .Xr ip 4 , .Xr tcp 4 , .Xr udp 4 , .Xr iostat 8 , .Xr vmstat 8 .Sh 関連ファイル .Bl -tag -width /etc/networks -compact .It Pa /kernel ネームリストを読み出します。 .It Pa /dev/kmem 主記憶の情報を取ります。 .It Pa /etc/hosts ホスト名をひきます。 .It Pa /etc/networks ネットワーク名をひきます。 .It Pa /etc/services ポート名をひきます。 .El .Sh 歴史 .Nm プログラムは .Bx 4.3 に初めて登場しました。 .Ic icmp , .Ic ip , .Ic tcp の表示は .Fx 3.0 に初めて登場しました; .Tn ICMP , .Tn IP , .Tn TCP , .Tn UDP の統計情報のために別の表示モードを用意するという考え方は、 Silicon Graphics の .Tn IRIX システムの .Xr netstat 1 の .Fl C オプションから借用しました。 .Sh バグ 表示内容によっては 1 行に最低で 80 文字が表示できる事を想定しています。 .Ic vmstat -は表示領域が足りないようです。なぜなら (訳注: 原文が切れています) +は表示領域が足りないようです。 +なぜなら (訳注: 原文が切れています) (新規のプログラムとしてではなく独立した表示画面として追加されました)。 .Sh 日本語訳 野首 寛高(hnokubi@yyy.or.jp): FreeBSD 用に翻訳 diff --git a/ja_JP.eucJP/man/man1/wc.1 b/ja_JP.eucJP/man/man1/wc.1 index bfc02f597f..b6264ee23e 100644 --- a/ja_JP.eucJP/man/man1/wc.1 +++ b/ja_JP.eucJP/man/man1/wc.1 @@ -1,111 +1,138 @@ .\" Copyright (c) 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" the Institute of Electrical and Electronics Engineers, Inc. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)wc.1 8.2 (Berkeley) 4/19/94 -.\" %FreeBSD: src/usr.bin/wc/wc.1,v 1.6.2.3 2001/08/16 13:17:14 ru Exp % -.\" $FreeBSD: doc/ja_JP.eucJP/man/man1/wc.1,v 1.8 2001/08/17 06:18:10 horikawa Exp $ +.\" %FreeBSD: src/usr.bin/wc/wc.1,v 1.6.2.4 2002/08/25 02:47:04 tjr Exp % +.\" $FreeBSD$ .\" -.Dd April 19, 1994 +.Dd June 13, 2002 .Dt WC 1 .Os .Sh 名称 .Nm wc -.Nd 行数、単語数、バイト数を数える。 +.Nd 行数、単語数、文字数、バイト数を数える .Sh 書式 .Nm -.Op Fl clw +.Op Fl clmw .Op Ar .Sh 解説 .Nm は各入力ファイル .Ar file (デフォルトでは標準入力) に含まれる行数、単語数、バイト数を数えて標準出力に表示します。 行は改行文字で区切られた文字列、 単語は空白文字で区切られた文字列、と定義されます。 ここで空白文字とは .Xr isspace 3 が真を返すような文字をいいます。 複数のファイルが指定された場合は、 最後に行数、単語数、バイト数の各項目別の合計も表示します。 .Pp オプションとしては以下のものがあります。 .Bl -tag -width Ds .It Fl c 各入力ファイルのバイト数を標準出力に表示します。 .It Fl l 各入力ファイルの行数を標準出力に表示します。 +.It Fl m +各入力ファイルの文字数を標準出力に表示します。 +現在のロケールがマルチバイト文字をサポートしない場合、 +.Fl c +オプションと等価です。 .It Fl w 各入力ファイルの単語数を標準出力に表示します。 .El .Pp オプションが指定された場合、 .Nm は要求された情報のみを表示します。 -デフォルトの動作はすべてのオプションが指定された場合と同じです。 +デフォルトの動作は +.Fl c , +.Fl l , +.Fl w +のオプションが指定された場合と同じです。 .Pp .Ar file が指定されなかった場合は、標準入力から読み込まれ、 ファイル名は出力されません。 +.Sh 環境変数 +.Ev LANG , +.Ev LC_ALL , +.Ev LC_CTYPE +の環境変数が、 +.Xr environ 7 +の記述通りに、 +.Nm +の実行に影響します。 +.Sh 使用例 +ファイル +.Pa report1 +と +.Pa report2 +のそれぞれの文字数、語数、行数を数え上げます。 +また、両ファイルの合計も数え上げます。 +.Pp +.Dl "wc -mlw report1 report2" .Sh 診断 .Ex -std .Sh 関連項目 .Xr isspace 3 .Sh 互換性 歴史的には、 .Nm では単語は「スペース、タブ、改行文字で区切られる最長の文字列」として 定義する、とドキュメントに記述されていました。 しかしこの実装は非表示文字を正しく扱いませんでした。 例えば ``foo^D^Ebar'' を 8 文字と数える一方、`` ^D^E '' を 6 つの空白と 数えたのでした。 .Bx 4.3 以降の .Bx 4 では ドキュメントと矛盾のないよう修正され、 .St -p1003.2 で要求されているように、 .Xr isspace 3 を用いて「単語」を定義するよう実装し直されました。 .Sh 規格 .Nm は -.St -p1003.2 -準拠です。 +.St -p1003.1-2001 +に適合しています。 .Sh 歴史 .Nm コマンドは .At v1 から登場しました。 diff --git a/ja_JP.eucJP/man/man5/loader.conf.5 b/ja_JP.eucJP/man/man5/loader.conf.5 index 938dd4c670..5f99dffae8 100644 --- a/ja_JP.eucJP/man/man5/loader.conf.5 +++ b/ja_JP.eucJP/man/man5/loader.conf.5 @@ -1,198 +1,201 @@ .\" Copyright (c) 1999 Daniel C. Sobral .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" %FreeBSD: src/sys/boot/forth/loader.conf.5,v 1.7.2.6 2001/06/02 04:19:07 dd Exp % +.\" %FreeBSD: src/sys/boot/forth/loader.conf.5,v 1.7.2.8 2002/08/27 16:42:10 trhodes Exp % .\" -.\" $FreeBSD: doc/ja_JP.eucJP/man/man5/loader.conf.5,v 1.11 2001/04/30 03:48:35 horikawa Exp $ +.\" $FreeBSD$ .\" .Dd April 18, 1999 .Dt LOADER.CONF 5 .Os .Sh 名称 .Nm loader.conf .Nd システムブートストラップの設定情報 .Sh 解説 ファイル .Nm は、システムのブートストラップに関する記述的な情報を含みます。 これを通じて、ブートすべきカーネル、カーネルに渡すパラメータ、 ロードすべき追加のモジュールを指定可能であり、また、一般的に、 .Xr loader 8 で記述されているすべての変数を設定可能です。 .Pp .Nm が自動的に処理されるようにするために、 ファイル .Pa /boot/loader.rc は次の 2 行を含む必要があります。 .Pp .Dl include /boot/loader.4th .Dl start .Pp インストール時に .Pa /boot/loader.rc が存在しない場合、前述の行を含むものが組み込まれることになります。 .Sh 文法 .Nm の書式は、明らかに .Xr rc.conf 5 の書式を受け継いだものであり、 .Xr sh 1 を起源とするものですが、特別な方法で扱われる設定があります。 -また、サフィックスのみに依存する設定もあります。 +また、サフィックスが定義する設定もあります。 +プレフィックスは、制御対象のモジュールを指定します。 .Pp 一般的な解釈の規則は次の通りです: .Bl -bullet .It 空白と空行は無視されます。 .It 記号 # は、行の残りがコメントであるという印です。 .It 各行には 1 個の設定のみ存在可能です。 .El .Pp すべての設定は、次の書式です: .Pp .Dl variable="value" .Pp 特殊な扱いを受ける設定のクラスに属すのでなければ、 おのおのの設定は .Xr loader 8 の環境変数の値を設定します。 特殊な扱いを受ける設定は、ここに列挙しています。 .Qq * で開始する設定は、ロードされるモジュールを定義し、 任意のプレフィックスを持ちえます。 共通のプレフィックスを持つような設定はすべて、 同一のモジュールを参照します。 .Bl -tag -width Ar .It Ar exec 即時に .Xr loader 8 のコマンドを実行します。 このタイプの設定は、 .Xr loader 8 以外のプログラムでは処理できませんので、使用は避けるべきです。 複数個指定すると、別々に処理されます。 .It Ar loader_conf_files 現在のファイルのすぐ後に処理すべき、追加の設定ファイルを定義します。 .It Ar kernel ロードすべきカーネルの名前です。 カーネルの名前を設定しないと、 追加のモジュールはロードされません。 .It Ar kernel_options カーネルに渡されるフラグです。 .It Ar password -実行継続許可前にパスワード確認が問い合わせるパスワードを提供します。 +実行継続許可前にパスワード確認が要求するパスワードを提供します。 .It Ar verbose_loading .Dq YES に設定すると、モジュールがロードされると、その名前が表示されます。 .It Ar *_load .Dq YES に設定すると、そのモジュールがロードされます。 名前を定義しないと (後述)、モジュールの名前はプレフィックスと同じになります。 .It Ar *_name モジュールの名前を定義します。 .It Ar *_type モジュールのタイプを定義します。 なにも指定しないと、デフォルトの kld モジュールになります。 .It Ar *_flags モジュールに渡されるフラグとパラメータです。 .It Ar *_before モジュールのロード前に実行すべきコマンドです。 この設定の使用は避けるべきです。 .It Ar *_after モジュールのロード後に実行すべきコマンドです。 この設定の使用は避けるべきです。 .It Ar *_error モジュールのロードに失敗した場合に実行されるコマンドです。 ブートストラップ処理を異常終了させる特殊な値 .Dq abort 以外では、この設定の使用は避けるべきです。 .El .Sh デフォルト設定 ほとんどの .Nm -のデフォルト設定は無視可能です。少数の重要または有用なものを次に示します: +のデフォルト設定は無視可能です。 +少数の重要または有用なものを次に示します: .Bl -tag -width bootfile -offset indent .It Va bitmap_load .Pq Dq NO .Dq YES に設定すると、ビットマップがロードされ、ブート中に画面に表示されます。 .It Va bitmap_name .Pq Dq /boot/splash.bmp -ロードされるビットマップの名前です。他のいかなる名前でも使用可能です。 +ロードされるビットマップの名前です。 +任意の有効なビットマップパスを使用可能です。 .It Va kernel .Pq Dq /kernel .It Va loader_conf_files .Pq Do /boot/loader.conf /boot/loader.conf.local Dc .It Va splash_bmp_load .Pq Dq NO .Dq YES に設定すると、起動画面モジュールをロードし、 ブート中に bmp イメージを画面に表示することを可能にします。 .It Va splash_pcx_load .Dq YES に設定すると、起動画面モジュールをロードし、 ブート中に pcx イメージを画面に表示することを可能にします。 .It Va userconfig_script_load .Pq Dq NO .Dq YES に設定すると、ユーザコンフィグのデータをロードします。 .It Va vesa_load .Pq Dq NO .Dq YES に設定すると、vesa モジュールをロードし、 VGA を越える解像度を表示可能とします。 .El .Sh 関連ファイル .Bl -tag -width /boot/defaults/loader.conf -compact .It Pa /boot/defaults/loader.conf デフォルト設定 -- このファイルを変更しないでください。 .It Pa /boot/loader.4th loader が使用するコマンドを定義し、 .Nm を読み込んで処理します。 .It Pa /boot/loader.conf ユーザが定義した設定です。 .It Pa /boot/loader.conf.local 共通の loader.conf と共に使用する、サイトのマシン固有の設定です。 .It Pa /boot/loader.rc .Nm を自動的に処理する指示を含みます。 .El .Sh 関連項目 .Xr boot 8 , .Xr loader 8 , .Xr loader.4th 8 .Sh 歴史 ファイル .Nm が最初に登場したのは .Fx 3.2 です。 .Sh 作者 このマニュアルページは .An Daniel C. Sobral Aq dcs@FreeBSD.org が書きました。 diff --git a/ja_JP.eucJP/man/man5/rc.conf.5 b/ja_JP.eucJP/man/man5/rc.conf.5 index f38e5dd4e4..c20f57be32 100644 --- a/ja_JP.eucJP/man/man5/rc.conf.5 +++ b/ja_JP.eucJP/man/man5/rc.conf.5 @@ -1,1811 +1,1833 @@ .\" Copyright (c) 1995 .\" Jordan K. Hubbard .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man5/rc.conf.5,v 1.64.2.48 2002/04/11 23:25:55 gshapiro Exp % +.\" %FreeBSD: src/share/man/man5/rc.conf.5,v 1.64.2.49 2002/08/24 00:22:04 keramida Exp % .\" .\" $FreeBSD$ .\" .Dd March 3, 2002 .Dt RC.CONF 5 .Os .Sh 名称 .Nm rc.conf .Nd システム設定情報 .Sh 解説 .Nm ファイルは、ローカルホスト名、任意の潜在的なネットワークインタフェースに 関する設定の詳細、システムの初期起動時に立ち上げるべき サービスに関して記述される情報を含んでいます。 初めてインストールする際には、一般に .Nm ファイルはシステムインストールユーティリティ .Pa /stand/sysinstall によって初期化されます。 .Pp .Nm の目的は、 直接コマンドを実行したりシステム起動操作を行うことではありません。 そうではなく、 このファイルで見つかる設定に従って内部の動作を条件付きで制御する .Pa /etc 配下のさまざまな起動スクリプトも含まれています。 .Pp .Pa /etc/rc.conf ファイルは、 使用可能な全オプションのデフォルト設定を指定するファイル .Pa /etc/defaults/rc.conf からインクルードされます。 オプションを .Pa /etc/rc.conf に指定する必要があるのは、 システム管理者がこれらのデフォルトを上書きしたい場合だけです。 ファイル .Pa /etc/rc.conf.local は、 .Pa /etc/rc.conf -の設定を上書きするために使用されます。これは歴史的事情のためです。 +の設定を上書きするために使用されます。 +これは歴史的事情のためです。 後述の .Dq rc_conf_files を参照してください。 .Pp 次に示すリストは、 .Nm ファイル中で設定可能な各変数について、 その名前と簡単な解説をしたものです。 .Bl -tag -width Ar .It Va swapfile .Pq Vt 文字列 .Dq NO にすると スワップファイルはインストールされません。 .Dq NO 以外の場合、その値は追加スワップ領域に利用するファイルの フルパス名として用いられます。 .It Va apm_enable .Pq Vt ブール値 .Va YES に設定すると .Xr apm 8 コマンドでの自動電源管理 (Automatic Power Management) のサポートを有効に します。 .It Va apmd_enable .Pq Vt ブール値 .Xr apmd 8 を実行し、ユーザランドから APM イベントを扱います。 APM サポートも有効にします。 .It Va apmd_flags .Pq Vt 文字列 .Va apmd_enable が .Dq YES の場合、これらは .Xr apmd 8 デーモンに渡すフラグになります。 .It Va pccard_enable .Pq Vt ブール値 .Dq YES に設定すると、起動時に PCCARD のサポートを有効にします。 .It Va pccard_mem .Pq Vt 文字列 PCCARD コントローラメモリアドレスを設定します。 .Va DEFAULT とするとデフォルト値になります。 .It Va pccard_ifconfig .Pq Vt 文字列 ブート時またはカード挿入時に .Xr ifconfig 8 に渡される引数のリストです (例えば、 固定アドレスの場合は "inet 192.168.1.1 netmask 255.255.255.0" などですし、 DHCP クライアントの場合は "DHCP" です)。 .It Va pccard_beep .Pq Vt 整数 0 である場合、PCCARD コントローラを静寂モードにします。 1 である場合、ビープモードにします。 2 である場合、メロディモードにします。 .It Va pccard_conf .Pq Vt 文字列 .Xr pccardd 8 デーモンの設定ファイルのパスです。 .It Va pccardd_flags .Pq Vt 文字列 .Va pccard_enable が .Dq YES の場合、これらは .Xr pccardd 8 デーモンに渡すフラグになります。 .It Va pccard_ether_delay .Pq Vt 文字列 .Xr pccard_ether 8 スクリプト中で .Xr dhclient 8 を起動するまでの遅延時間を設定します。 デフォルトは 5 秒です。 これは、 .Xr ed 4 ベースの新しいカードを使用した時にシステムがハングしてしまうという .Xr ed 4 ドライバのバグを回避するためのものです。 .It Va local_startup .Pq Vt 文字列 起動スクリプトファイルを検索するためのディレクトリのリストです。 .It Va script_name_sep .Pq Vt 文字列 起動スクリプトファイルのリストを各々のファイル名に分割するために 使用するフィールドセパレータです。 デフォルトは空白です。 名前に空白を含む起動スクリプトを持っていない限り、変更不要です。 .It Va hostname .Pq Vt 文字列 ネットワーク上でのホストの完全な形のドメイン名 (The Fully Qualified Domain Name) です。 ネットワークに接続されていない場合でも、 この変数は確実に何か意味のあるものに設定すべきです。 ホスト名を DHCP を介して設定するために .Xr dhclient 8 を使用している場合、この変数は空文字列に設定すべきです。 .It Va nisdomainname .Pq Vt 文字列 -ホストの NIS ドメイン名。NIS が動いてないときは +ホストの NIS ドメイン名。 +NIS が動いてないときは .Dq NO とします。 .It Va dhcp_program .Pq Vt 文字列 DHCP クライアントプログラムのパスです (ISC DHCP クライアントの .Pa /sbin/dhclient がデフォルトです)。 .It Va dhcp_flags .Pq Vt 文字列 DHCP クライアントプログラムに渡す追加のフラグです。 ISC DHCP クライアント用に利用可能なコマンドラインオプションについては、 .Xr dhclient 8 ページを参照してください。 .It Va firewall_enable .Pq Vt ブール値 ファイアウォール規則を起動時にロードするには、 .Dq YES に設定します。 カーネルが .Dv IPFIREWALL 付きで作られなかった場合、ipfw カーネルモジュールがロードされます。 .Va ipfilter_enable も参照してください。 .It Va firewall_script .Pq Vt 文字列 この変数は、実行するファイアウォールスクリプトのフルパスを指定します。 デフォルトは .Pa /etc/rc.firewall です。 .It Va firewall_type .Pq Vt 文字列 .Pa /etc/rc.firewall 中にある選択肢から選んだファイアウォールタイプもしくは ローカルファイアウォール規則の組を含むファイル名をつけます。 .Pa /etc/rc.firewall からは以下のものが選択可能です: .Dq open - 無制限の IP アクセス; .Dq closed - lo0 経由を除く全ての IP サービスを禁止; .Dq client - ワークステーション向けの基本的な保護; .Dq simple - LAN 向けの基本的な保護。 ファイル名が指定される場合にはフルパス名でなければなりません。 .It Va firewall_quiet .Pq Vt ブール値 .Dq YES に設定すると、起動時にコンソール上で ipfw 規則の表示を行ないません。 .It Va firewall_logging .Pq Vt ブール値 .Dq YES に設定すると、ipfw のイベントロギングを有効にします。 .Dv IPFIREWALL_VERBOSE カーネルオプションと等価です。 .It Va firewall_flags .Pq Vt 文字列 .Va firewall_type でファイル名を指定する場合、 .Xr ipfw 8 に渡されるフラグです。 .It Va natd_program .Pq Vt 文字列 .Xr natd 8 のパス。 .It Va natd_enable .Pq Vt ブール値 .Dq YES に設定すると、natd を有効にします。 .Va firewall_enable もまた .Dq YES に設定され、 .Xr divert 4 ソケットがカーネルで有効にされている必要があります。 .It Va natd_interface .Pq Vt 文字列 natd が実行されるパブリックインタフェースの名前です。 インタフェースの指定は、インタフェース名でも IP アドレスでもかまいません。 .It Va natd_flags .Pq Vt 文字列 追加の natd フラグはここに記述する必要があります。 .Fl n または .Fl a のフラグは上記 .Va natd_interface とともに自動的に引数として追加されます。 .\" ----- ipfilter_enable setting -------------------------------- .It Va ipfilter_enable .Pq Vt ブール値 デフォルトは .Dq NO に設定されます。 .Dq YES に設定すると、 .Xr ipf 8 パケットフィルタリングを有効にします。 .Pp 典型的な用途では、 .Bd -literal ipfilter_enable="YES" ipnat_enable="YES" ipmon_enable="YES" ipfs_enable="YES" .Ed .Pp を .Pa /etc/rc.conf に記述し、 .Pa /etc/ipf.rules と .Pa /etc/ipnat.rules を適切に編集する必要があるでしょう。 .Pp .Va ipfilter_enable と .Va ipnat_enable とは別々に有効にできることに注意してください。 .Va ipmon_enable および .Va ipfs_enable を有効にするには .Va ipfilter_enable と .Va ipnat_enable の少なくともどちらか 1 つが有効になっている必要があります。 .Pp カーネル構成ファイル中に .Bd -literal options IPFILTER options IPFILTER_LOG options IPFILTER_DEFAULT_BLOCK .Ed .Pp を置くことも良い考えです。 .\" ----- ipfilter_program setting ------------------------------ .It Va ipfilter_program .Pq Vt 文字列 .Xr ipf 8 へのパスです (デフォルトは .Pa /sbin/ipf です)。 .\" ----- ipfilter_rules setting -------------------------------- .It Va ipfilter_rules .Pq Vt 文字列 デフォルトで .Dq /etc/ipf.rules に設定されます。 この変数は、フィルタルール定義ファイルの名前を含みます。 このファイルは、 .Xr ipf 8 コマンドが実行できるよう、読み取り可能であることが期待されます。 .\" ----- ipfilter_flags setting -------------------------------- .It Va ipfilter_flags .Pq Vt 文字列 デフォルトは空文字列です。 この変数には、 .Xr ipf 8 プログラムに渡されるフラグが含まれます。 .\" ----- ipnat_enable setting ---------------------------------- .It Va ipnat_enable .Pq Vt ブール値 デフォルトで .Dq NO に設定されます。 .Dq YES に設定すると、 .Xr ipnat 1 ネットワークアドレス変換を有効にします。 詳細は .Va ipfilter_enable を参照してください。 .\" ----- ipnat_program setting --------------------------------- .It Va ipnat_program .Pq Vt 文字列 .Xr ipnat 1 へのパスです (デフォルトは .Pa /sbin/ipnat です)。 .\" ----- ipnat_rules setting ----------------------------------- .It Va ipnat_rules .Pq Vt 文字列 デフォルトで .Dq /etc/ipnat.rules に設定されます。 この変数は、ネットワークアドレス変換を定義するファイルの名前を含みます。 このファイルは、 .Xr ipnat 1 コマンドが実行できるよう、読み取り可能であることが期待されます。 .\" ----- ipnat_flags setting ----------------------------------- .It Va ipnat_flags .Pq Vt 文字列 デフォルトは空文字列です。 この変数には、 .Xr ipnat 1 プログラムへ渡されるフラグが含まれます。 .\" ----- ipmon_enable setting ---------------------------------- .It Va ipmon_enable .Pq Vt ブール値 デフォルトで .Dq NO に設定されます。 .Dq YES に設定すると、 .Xr ipmon 8 モニタリング ( .Xr ipf 8 と .Xr ipnat 1 のイベントのログ) を有効にします。 この変数を設定する場合、 .Va ipfilter_enable あるいは .Va ipnat_enable も設定することが必要です。 詳細は .Va ipfilter_enable を参照してください。 .\" ----- ipmon_program setting --------------------------------- .It Va ipmon_program .Pq Vt 文字列 .Xr ipmon 8 へのパスです (デフォルトは .Pa /sbin/ipmon です)。 .\" ----- ipmon_flags setting ----------------------------------- .It Va ipmon_flags .Pq Vt 文字列 デフォルトで .Va -Ds に設定されます。 この変数は、 .Xr ipmon 8 プログラムに渡されるフラグを含みます。 他の典型的な例は .Dq -D /var/log/ipflog であり、これは .Xr ipmon 8 に .Xr syslogd 8 をバイパスさせて、直接ファイルにログを書かせます。 このような場合、必ず .Pa /etc/newsyslog.conf を次のように修正してください: .Bd -literal /var/log/ipflog 640 10 100 * Z /var/run/ipmon.pid .Ed .\" ----- ipfs_enable setting ----------------------------------- .It Va ipfs_enable .Pq Vt ブール値 デフォルトでは .Dq NO に設定されます。 この変数を .Dq YES に設定すると .Xr ipfs 8 が有効になり、シャットダウン時にフィルタおよび NAT 状態テーブルを 保存し、再起動時に読み込み直されるようになります。 この変数を設定するには .Va ipfilter_enable あるいは .Va ipnat_enable も .Dq YES に設定する必要があります。 詳細は .Va ipfilter_enable を参照してください。 .Va kern_securelevel を 3 に設定した場合、 .Va ipfs_enable は使用できなくなることに注意してください。 なぜなら、セキュアレベルを引き上げることでシャットダウン時に .Xr ipfs 8 が状態テーブルを保存できなくなるからです。 .\" ----- ipfs_program setting ---------------------------------- .It Va ipfs_program .Pq Vt 文字列 .Xr ipfs 8 へのパスです (デフォルトは .Pa /sbin/ipfs です)。 .\" ----- ipfs_flags setting ------------------------------------ .It Va ipfs_flags .Pq Vt 文字列 デフォルトは空文字列です。 この変数には、 .Xr ipfs 8 プログラムに渡されるフラグが含まれます。 .\" ----- end of added ipf hook --------------------------------- .It Va tcp_extensions .Pq Vt ブール値 デフォルトでは .Dq YES -です。NO に設定すると、 +です。 +NO に設定すると、 .%T RFC 1323 で述べられているような ある TCP オプションを無効にします。 .Dq NO に設定すると、ネットワークコネクションが不規則にハングアップしたり、 それに類する他の不具合を回避する助けとなるかもしれません。 ネットワークデバイスには、これらのオプションに関連する部分において、 壊れているものがあることが知られています。 .It Va log_in_vain .Pq Vt 整数 デフォルトで 0 に設定されています。 .Xr sysctl 8 変数 .Sy net.inet.tcp.log_in_vain と .Sy net.inet.udp.log_in_vain が、 .Xr tcp 4 と .Xr udp 4 に記述されているように、指定された値に設定されます。 .It Va tcp_keepalive .Pq Vt ブール値 デフォルトで .Dq YES に設定されています。 NO に設定すると、アイドルになっている TCP 接続を検出し、 通信相手がまだ立ち上がっていて、到達可能であることを確認する のをやめます。 .It Va tcp_drop_synfin .Pq Vt ブール値 デフォルトで .Dq NO に設定されています。 YES に設定すると、 TCP フレームで SYN と FIN のフラグが共に設定されているものを、 カーネルが無視するようになります。 これにより、OS が指紋を残すのを防ぎますが、 正当なアプリケーションが動作しなくなるかもしれません。 .Dv TCP_DROP_SYNFIN オプション付きでカーネルを構築した場合のみ、 本オプションが使用可能です、 .It Va icmp_drop_redirect .Pq Vt ブール値 デフォルトで .Dq NO に設定されています。 YES に設定すると、 ICMP REDIRECT パケットを、カーネルが無視するようになります。 .It Va icmp_log_redirect .Pq Vt ブール値 デフォルトで .Dq NO に設定されています。 YES に設定すると、 ICMP REDIRECT パケットを、カーネルが記録するようになります。 ログメッセージの速度制限はありませんので、 あなたのネットワーク内の問題解決にのみ使用すべきです。 .It Va network_interfaces .Pq Vt 文字列 このホスト上で設定するネットワークインタフェースのリストを 設定します。 たとえば、ループバックデバイス (lo0) および ed0 ドライバの NIC があるなら、 .Dq "lo0 ed0" に設定されるでしょう。 .Ar interface の各値に対して .Va ifconfig_ Ns Aq Ar interface という変数も存在すると仮定されます。 1 つのインタフェースに複数の IP アドレスを登録したい場合は、 ここに IP エイリアスのエントリを追加することも可能です。 対象とするインタフェースが ed0 であると仮定すると、 .Bd -literal ifconfig_ed0_alias0="inet 127.0.0.253 netmask 0xffffffff" ifconfig_ed0_alias1="inet 127.0.0.254 netmask 0xffffffff" .Ed .Pp というようになります。 見つかった各 .Va ifconfig_ Ns Ao Ar interface Ac Ns Va _alias Ns Aq Ar n エントリについて、 その内容が .Xr ifconfig 8 -に渡されます。最初にアクセスに失敗した時点で実行は中止されるので +に渡されます。 +最初にアクセスに失敗した時点で実行は中止されるので .Bd -literal ifconfig_ed0_alias0="inet 127.0.0.251 netmask 0xffffffff" ifconfig_ed0_alias1="inet 127.0.0.252 netmask 0xffffffff" ifconfig_ed0_alias2="inet 127.0.0.253 netmask 0xffffffff" ifconfig_ed0_alias4="inet 127.0.0.254 netmask 0xffffffff" .Ed .Pp のようにすると、alias4 は追加され .Em ない -ことに注意してください。これは +ことに注意してください。 +これは alias3 エントリを抜かしたことで検索が中止されるからです。 .Pp .Va ifconfig_ Ns Aq Ar interface 変数を .Dq DHCP に設定することで、インタフェースを DHCP で立ち上げることが 可能です。 例えば ed0 デバイスを DHCP で初期化するには、 次のような行を指定すればよいです: .Bd -literal ifconfig_ed0="DHCP" .Ed .It Va cloned_interfaces .Pq Vt 文字列 このホストに生成する、複製可能なネットワークインタフェースの リストを設定します。 .Va cloned_interfaces のエントリは、設定を行うため自動的に .Va network_interfaces に追加されます。 .It Va gif_interfaces .Pq Vt 文字列 このホストで設定する、 .Xr gif 4 トンネルインタフェースのリストを設定します。 .Ar interface の各値に対して、 .Va gifconfig_ Ns Aq Ar interface 変数が存在すると想定されます。 本変数の値を使用し、 .Xr ifconfig 8 の .Cm tunnel オプションの書式に従って、トンネルのリンク層を設定します。 さらに本オプションは、リストされたインタフェースの設定を試みる前に、 これらが .Xr ifconfig 8 の .Cm create オプションで作成されていることを保証します。 .It Va ppp_enable .Pq Vt ブール値 .Dq YES に設定すると、 .Xr ppp 8 デーモンを実行します。 .It Va ppp_mode .Pq Vt 文字列 .Xr ppp 8 -デーモンを実行するモードです。受け付けられるモードは +デーモンを実行するモードです。 +受け付けられるモードは .Dq auto , .Dq ddial , .Dq direct , .Dq dedicated のいずれかです。 完全な解説はマニュアルを参照してください。 .It Va ppp_nat .Pq Vt ブール値 .Dq YES に設定すると、パケットエイリアスを有効にします。 .Va gateway_enable と共に使用することにより、 本ホストをネットワークアドレス変換ルータとして使用して、 プライベートネットワークアドレスのホストからの インターネットへのアクセスを可能にします。 .It Va ppp_profile .Pq Vt 文字列 .Pa /etc/ppp/ppp.conf から使用するプロファイル名です。 .It Va ppp_user .Pq Vt 文字列 このユーザ名の元で ppp を起動します。 デフォルトでは ppp は .Dq root が起動します。 .It Va rc_conf_files .Pq Vt 文字列 本オプションは、 .Pa /etc/defaults/rc.conf の設定を上書きするファイルのリストを指定するために使用されます。 ファイルは指定された順序に読み込まれますし、 また、ファイルへの完全なパスを含む必要があります。 デフォルトでは、指定されるファイルは .Pa /etc/rc.conf と .Pa /etc/rc.conf.local です。 .It Va fsck_y_enable .Pq Vt ブール値 .Dq YES に設定すると、 ファイルシステムの初期調整に失敗した場合、 .Xr fsck 8 を -y フラグ付きで実行します。 .It Va syslogd_enable .Pq Vt ブール値 .Dq YES に設定すると、 .Xr syslogd 8 デーモンを起動します。 .It Va syslogd_program .Pq Vt str .Xr syslogd 8 へのパス (デフォルトは .Pa /usr/sbin/syslogd です)。 .It Va syslogd_flags .Pq Vt 文字列 .Va syslogd_enable が .Dq YES の場合、これらは .Xr syslogd 8 に渡すフラグになります。 .It Va inetd_enable .Pq Vt ブール値 .Dq YES に設定すると、 .Xr inetd 8 デーモンを起動します。 .It Va inetd_program .Pq Vt str .Xr inetd 8 へのパス (デフォルトは .Pa /usr/sbin/inetd です)。 .It Va inetd_flags .Pq Vt 文字列 .Va inetd_enable が .Dq YES の場合、これらは .Xr inetd 8 へ渡すフラグとなります。 .It Va named_enable .Pq Vt ブール値 .Dq YES に設定すると、 .Xr named 8 デーモンを起動します。 .It Va named_program .Pq Vt 文字列 .Xr named 8 へのパス (デフォルトは .Pa /usr/sbin/named です)。 .It Va named_flags .Pq Vt 文字列 .Va named_enable が .Dq YES の場合、これらは .Xr named 8 に渡すフラグとなります。 .It Va kerberos_server_enable .Pq Vt ブール値 ブート時に Kerberos 認証サーバを起動したい場合は .Dq YES に設定します。 .It Va kadmind_server_enable .Pq Vt ブール値 .Xr kadmind 8 すなわち Kerberos IV 管理デーモンを実行したい場合は .Dq YES -とします。スレーブサーバでは +とします。 +スレーブサーバでは .Dq NO に設定します。 .It Va kerberos_stash .Pq Vt 文字列 .Dq YES なら ( .Va kerberos_server_enable が .Dq YES に設定され、かつ .Xr kerberos 1 および .Xr kadmind 8 の両方に使用するときのみ) マスタキーの入力を促さずに 安全な場所に保存しておいたマスタキーを用いるよう Kerberos サーバに指示します。 .It Va kerberos5_server_enable .Pq Vt ブール値 ブート時に Kerberos 5 認証デーモンを起動したい場合は .Dq YES とします。 .It Va kadmind5_server_enable .Pq Vt ブール値 .Xr k5admind 8 すなわち Kerberos 5 管理デーモンを起動したい場合は .Dq YES とします。 スレーブサーバでは .Dq NO に設定します。 .It Va rwhod_enable .Pq Vt ブール値 .Dq YES に設定すると、ブート時に .Xr rwhod 8 デーモンを起動します。 .It Va rwhod_flags .Pq Vt 文字列 .Va rwhod_enable が .Dq YES に設定されている場合、これらは rwhod に渡すフラグになります。 .It Va amd_enable .Pq Vt ブール値 .Dq YES に設定すると、ブート時に .Xr amd 8 デーモンを起動します。 .It Va amd_flags .Pq Vt 文字列 .Va amd_enable が .Dq YES に設定されている場合、これらは amd に渡すフラグとなります。 詳しくは .Xr amd 8 の .Xr info 1 ページを利用してください。 .It Va amd_map_program .Pq Vt 文字列 設定すると、指定されたプログラムが実行され、 .Xr amd 8 マップのリストを受け取ります。 例えば、 .Xr amd 8 マップが NIS に格納されている場合、 .Xr ypcat 1 を実行して .Pa amd.master NIS マップから .Xr amd 8 マップのリストを取得するよう設定可能です。 .It Va update_motd .Pq Vt ブール値 .Dq YES に設定すると、ブート時に実行されているカーネルリリースを反映するように .Pa /etc/motd を更新します。 .Dq NO に設定すると、 .Pa /etc/motd は更新を行いません。 .It Va nfs_client_enable .Pq Vt ブール値 .Dq YES に設定すると、ブート時に NFS クライアントデーモンを起動します。 .It Va nfs_client_flags .Pq Vt 文字列 .Va nfs_client_enable が .Dq YES の場合、これらは .Xr nfsiod 8 デーモンに渡すフラグとなります。 .It Va nfs_access_cache .Pq Vt 整数 .Va nfs_client_enable が .Dq YES の場合、この変数に .Va 0 を設定して NFS ACCESS RPC キャッシングを無効化することができますし、 NFS ACCESS 結果がキャッシュされる秒数を指定することもできます。 2-10 秒の値を設定すると、 多くの NFS 操作に対するネットワークトラフィックを十分減らします。 .It Va nfs_server_enable .Pq Vt ブール値 .Dq YES に設定すると、ブート時に NFS サーバデーモンを起動します。 .It Va nfs_server_flags .Pq Vt 文字列 .Va nfs_server_enable が .Dq YES の場合、これらは .Xr nfsd 8 デーモンに渡すフラグとなります。 .It Va single_mountd_enable .Pq Vt ブール値 .Dq YES に設定し .Va nfs_server_enable を設定しないと、 .Xr mountd 8 は起動しますが .Xr nfsd 8 デーモンは起動しません。 実際に NFS は使用せずに CFS を使用する場合に、一般的に必要となります。 .It Va weak_mountd_authentication .Pq Vt ブール値 .Dq YES に設定すると、PCNFSD のようなサービスで権限付けられていない マウント要求ができるようになります。 .It Va nfs_privport .Pq Vt ブール値 .Dq YES に設定すると、安全なポート上でのみ NFS サービスを提供します。 .It Va nfs_bufpackets .Pq Vt 整数 数値を設定すると、そのパケット数分のソケットバッファ空間が、 NFS クライアント上に予約されます。 .Dq DEFAULT に設定すると、カーネルのデフォルト (通常は 4) が使用されます。 ギガビットネットワークでは大きな値を設定すると高性能になるでしょう、 最小値は 2 であり、最大値は 64 です。 .It Va rpc_lockd_enable .Pq Vt ブール値 この変数が .Dq YES に設定され、しかも NFS サーバである場合、ブート時に .Xr rpc.lockd 8 を起動します。 .It Va rpc_statd_enable .Pq Vt ブール値 この変数が .Dq YES に設定され、しかも NFS サーバである場合、ブート時に .Xr rpc.statd 8 を起動します。 .It Va portmap_program .Pq Vt 文字列 .Xr portmap 8 へのパス (デフォルトは .Pa /usr/sbin/portmap です)。 .It Va portmap_enable .Pq Vt ブール値 .Dq YES の場合、ブート時に .Xr portmap 8 サービスを起動します。 .It Va portmap_flags .Pq Vt 文字列 .Va portmap_enable が .Dq YES の場合、これらは .Xr portmap 8 デーモンに渡すフラグとなります。 .It Va xtend_enable .Pq Vt ブール値 .Dq YES に設定すると、ブート時に .Xr xtend 8 デーモンを起動します。 .It Va xtend_flags .Pq Vt 文字列 .Va xtend_enable が .Dq YES の場合、これらは .Xr xtend 8 デーモンに渡すフラグとなります。 .It Va pppoed_enable .Pq Vt ブール値 .Dq YES に設定すると、ブート時に .Xr pppoed 8 デーモンを起動し、PPP オーバイーサネットサービスを提供します。 .It Va pppoed_ Ns Ar provider .Pq Vt 文字列 .Xr pppoed 8 はこの .Ar provider に対する要求を待ち受け、最終的にはこの名前を .Ar system 引数として .Xr ppp 8 を実行します。 .It Va pppoed_flags .Pq Vt 文字列 .Xr pppoed 8 へ渡す追加のフラグ。 .It Va pppoed_interface pppoed が実行されるネットワークインタフェース。 .Va pppoed_enable が .Dq YES に設定された場合、必須です。 .It Va timed_enable .Pq Vt ブール値 .Dq YES なら、ブート時に .Xr timed 8 -サービスを実行します。このコマンドは、全ホストについて一貫した +サービスを実行します。 +このコマンドは、全ホストについて一貫した .Qq "ネットワーク時間" が確立されなければならないマシンネットワークのためにあります。 これが有用である典型例は、 ファイルのタイムスタンプがネットワーク全体で一貫性をもつことが 期待されるような、大規模 NFS 環境です。 .It Va timed_flags .Pq Vt 文字列 .Va timed_enable が .Dq YES の場合、これらは .Xr timed 8 サービスに渡すフラグとなります。 .It Va ntpdate_enable .Pq Vt ブール値 .Dq YES に設定すると、システムスタートアップ時に ntpdate を実行します。 このコマンドは、ある標準的な参照先を元に、ただ .Em 1 回 だけシステム時刻を同期させるためにあります。 また、システムを最初にインストールする際、 この値を (知られているサービスのリストから) 最初に設定するオプションが .Pa /stand/sysinstall プログラムによって提供されます。 .It Va ntpdate_program .Pq Vt 文字列 .Xr ntpdate 8 へのパス (デフォルトは .Pa /usr/sbin/ntpdate です)。 .It Va ntpdate_flags .Pq Vt 文字列 .Va ntpdate_enable が .Dq YES の場合、これらは .Xr ntpdate 8 コマンドに渡すフラグとなります (通常はホスト名)。 .It Va xntpd_enable .Pq Vt ブール値 .Dq YES に設定すると、ブート時に .Xr ntpd 8 コマンドが起動されます。 .It Va xntpd_program .Pq Vt 文字列 .Xr ntpd 8 へのパス (デフォルトは .Pa /usr/sbin/ntpd です)。 .It Va xntpd_flags .Pq Vt 文字列 .Ar xntpd_enable が .Ar YES の場合、これらは .Xr ntpd 8 デーモンに渡すフラグとなります。 .It Va nis_client_enable .Pq Vt ブール値 .Dq YES に設定すると、システムブート時に .Xr ypbind 8 サービスを起動します。 .It Va nis_client_flags .Pq Vt 文字列 .Va nis_client_enable が .Dq YES の場合、これらは .Xr ypbind 8 サービスに渡すフラグとなります。 .It Va nis_ypset_enable .Pq Vt ブール値 .Dq YES に設定すると、システムブート時に .Xr ypset 8 デーモンを起動します。 .It Va nis_ypset_flags .Pq Vt 文字列 .Va nis_ypset_enable が .Dq YES の場合、これらは .Xr ypset 8 デーモンに渡すフラグとなります。 .It Va nis_server_enable .Pq Vt ブール値 .Dq YES に設定すると、システムブート時に .Xr ypserv 8 デーモンを起動します。 .It Va nis_server_flags .Pq Vt 文字列 .Va nis_server_enable が .Dq YES の場合、これらは .Xr ypserv 8 デーモンに渡すフラグとなります。 .It Va nis_ypxfrd_enable .Pq Vt ブール値 .Dq YES に設定すると、システムブート時に .Xr rpc.ypxfrd 8 デーモンを起動します。 .It Va nis_ypxfrd_flags .Pq Vt 文字列 .Va nis_ypxfrd_enable が .Dq YES の場合、これらは .Xr rpc.ypxfrd 8 デーモンに渡すフラグとなります。 .It Va nis_yppasswdd_enable .Pq Vt ブール値 .Dq YES に設定すると、システムブート時に .Xr rpc.yppasswdd 8 デーモンを起動します。 .It Va nis_yppasswdd_flags .Pq Vt 文字列 .Va nis_yppasswdd_enable が .Dq YES の場合、これらは .Xr rpc.yppasswdd 8 デーモンに渡すフラグとなります。 .It Va defaultrouter .Pq Vt 文字列 .Dq NO を設定しないと、このホスト名または IP アドレスへのデフォルトルートを 作成します (このルータがネームサーバへも到達する必要がある 場合は IPアドレスを使用すること!)。 .It Va static_routes .Pq Vt 文字列 システムブート時に追加したいスタティックルートのリストを 設定します。 .Dq NO 以外を設定した場合、その値を空白で区切った各要素について、 .Ar element ごとに変数 .Va route_ Ns Aq Ar element が存在すると仮定され、後でその内容が .Dq route add 操作に渡されます。 .It Va gateway_enable .Pq Vt ブール値 .Dq YES に設定すると、IP ルータとして動作するように、 たとえばインタフェース間でパケットをフォワードするように ホストを設定します。 .It Va router_enable .Pq Vt ブール値 .Dq YES に設定すると、 .Va router および .Va router_flags の設定に基づいて、ある種のルーティングデーモンを実行します。 .It Va router .Pq Vt 文字列 .Va router_enable が .Dq YES に設定されると、これが使用するルーティングデーモン名になります。 .It Va router_flags .Pq Vt 文字列 .Va router_enable が .Dq YES に設定されると、これらがルーティングデーモンへ渡すフラグとなります。 .It Va mrouted_enable .Pq Vt ブール値 .Dq YES に設定すると、マルチキャストルーティングデーモン .Xr mrouted 8 を起動します。 .It Va mrouted_flags .Pq Vt 文字列 .Va mrouted_enable が .Dq YES の場合、これらはマルチキャストルーティングデーモンへ渡すフラグとなります。 .It Va ipxgateway_enable .Pq Vt ブール値 .Dq YES に設定すると、IPX トラフィックのルーティングを有効にします。 .It Va ipxrouted_enable .Pq Vt ブール値 .Dq YES に設定すると、ブート時に .Xr IPXrouted 8 デーモンを起動します。 .It Va ipxrouted_flags .Pq Vt 文字列 .Va ipxrouted_enable が .Dq YES の場合、これらは .Xr IPXrouted 8 デーモンへ渡すフラグとなります。 .It Va arpproxy_all .Pq Vt ブール値 .Dq YES に設定すると、グローバルプロキシ ARP を有効にします。 .It Va forward_sourceroute .Pq Vt ブール値 これが .Dq YES に設定され、更に .Va gateway_enable もまた .Dq YES に設定されている場合、 送信元が経路指定したパケット (source routed packets) はフォワードされます。 .It Va accept_sourceroute .Pq Vt ブール値 .Dq YES に設定すると、 システムは自分宛の送信元経路指定パケットを受け付けます。 .It Va rarpd_enable .Pq Vt ブール値 .Dq YES に設定すると、システムブート時に .Xr rarpd 8 デーモンを起動します。 .It Va rarpd_flags .Pq Vt 文字列 .Va rarpd_enable が .Dq YES の場合、これらは .Xr rarpd 8 デーモンへ渡すフラグとなります。 .It Va atm_enable .Pq Vt ブール値 .Dq YES システムブート時に ATM インタフェースの設定を有効にします。 次に説明する ATM 関連の変数に関し、 利用可能なコマンドパラメータの更なる詳細については、 .Xr atm 8 のマニュアルページを参照してください。 更なる詳細な設定情報に関しては、 .Pa /usr/share/examples/atm 中のファイルも参照してください。 .It Va atm_netif_ .Pq Vt 文字列 ATM 物理インタフェース .Va に対し、本変数は、 作成される ATM ネットワークインタフェース名の プレフィックスと数字を指定します。 値はコマンド .Dq atm set netif Va のパラメータとして渡されます。 .It Va atm_sigmgr_ .Pq Vt 文字列 ATM 物理インタフェース .Va に対し、本変数は使用すべき ATM シグナリングマネージャを定義します。 値はコマンド .Dq atm attach Va のパラメータとして渡されます。 .It Va atm_prefix_ .Pq Vt 文字列 ATM 物理インタフェース .Va に対し、本変数は、 UNI シグナリングマネージャを使用するインタフェースの NSAP プレフィックスを定義します。 .Em ILMI に設定すると、プレフィックスは自動的に .Xr ilmid 8 デーモンを介して設定されます。 そうでない場合、値はコマンド .Dq atm set prefix Va のパラメータとして渡されます。 .It Va atm_macaddr_ .Pq Vt 文字列 ATM 物理インタフェース .Va に対し、本変数は、 UNI シグナリングマネージャを使用するインタフェースの MAC アドレスを定義します。 .Dq NO に設定すると、ATM インタフェースカードに格納されている ハードウェア MAC アドレスが使用されます。 そうでない場合、値はコマンド .Dq atm set mac Va のパラメータとして渡されます。 .It Va atm_arpserver_ .Pq Vt 文字列 ATM 物理インタフェース .Va に対し、本変数は、ATMARP サービスを提供するホストの ATM アドレスを定義します。 本変数は、UNI シグナリングマネージャを使用するインタフェースにおいてのみ 利用可能です。 .Em local に設定すると、本ホストが ATMARP サーバになります。 値はコマンド .Dq atm set arpserver Va のパラメータとして渡されます。 .It Va atm_scsparp_ .Pq Vt ブール値 .Dq YES に設定すると、ネットワークインタフェース .Va に対する SCSP/ATMARP サービスが、 .Xr scspd 8 および .Xr atmarpd 8 を使用して開始されます。 本変数は .So .Va atm_arpserver_ Ns Aq Ar netif .No = Ns Qq local .Sc が定義されている場合にのみ利用可能です。 .It Va atm_pvcs .Pq Vt 文字列 システムブート時に追加したい ATM PVC のリストを設定します。 この値の中で空白で区切られた .Ar element ごとに、変数 .Va atm_pvc_ Ns Aq Ar element -が存在するものと仮定されます。これらの変数の値がコマンド +が存在するものと仮定されます。 +これらの変数の値がコマンド .Dq atm add pvc のパラメータとして渡されます。 .It Va atm_arps .Pq Vt 文字列 システムブート時に追加したい、 永続的な ATM ARP エントリのリストを設定します。 この値の中で空白で区切られた .Ar element ごとに、変数 .Va atm_arp_ Ns Aq Ar element -が存在するものと仮定されます。これらの変数の値がコマンド +が存在するものと仮定されます。 +これらの変数の値がコマンド .Dq atm add arp のパラメータとして渡されます。 .It Va keymap .Pq Vt 文字列 .Dq NO -に設定すると、キーマップはインストールされません。それ以外の場合、 +に設定すると、キーマップはインストールされません。 +それ以外の場合、 ここで指定した .Ar value がキーマップファイル .Pa /usr/share/syscons/keymaps/.kbd をインストールするのに用いられます。 .It Va keyrate .Pq Vt 文字列 キーボードのリピートスピードです。以下のいずれかに設定します。 .Dq slow , .Dq normal , .Dq fast デフォルト値を希望する場合は .Dq NO とします。 .It Va keychange .Pq Vt 文字列 .Dq NO 以外に設定すると、その値でファンクションキーをプログラムしようとします。 指定できる値は単一の文字列で, .Qq Va " [ ]..." という形式でないといけません。 .It Va cursor .Pq Vt 文字列 カーソルの動作を明示的に指定する場合は .Dq normal , .Dq blink , .Dq destructive -のいずれかの値に設定します。デフォルト動作を選ぶには +のいずれかの値に設定します。 +デフォルト動作を選ぶには .Dq NO とします。 .It Va scrnmap .Pq Vt 文字列 .Dq NO に設定すると、スクリーンマップはインストールされません。 それ以外の場合には、ここで指定した .Ar value がスクリーンマップファイル .Pa /usr/share/syscons/scrnmaps/ をインストールするのに用いられます。 .It Va font8x16 .Pq Vt 文字列 .Dq NO に設定すると、スクリーンサイズの要求に対しデフォルトの 8x16 フォント値が -用いられます。それ以外の場合は +用いられます。 +それ以外の場合は .Pa /usr/share/syscons/fonts/ の値が用いられます。 .It Va font8x14 .Pq Vt 文字列 .Dq NO に設定すると、スクリーンサイズの要求に対しデフォルトの 8x14 フォント値が -用いられます。それ以外の場合は +用いられます。 +それ以外の場合は .Pa /usr/share/syscons/fonts/ の値が用いられます。 .It Va font8x8 .Pq Vt 文字列 .Dq NO に設定すると、スクリーンサイズの要求に対しデフォルトの 8x8 フォント値が -用いられます。それ以外の場合は +用いられます。 +それ以外の場合は .Pa /usr/share/syscons/fonts/ の値が用いられます。 .It Va blanktime .Pq Vt 整数 .Dq NO に設定すると、デフォルトのスクリーンブランク時間間隔が用いられます。 それ以外の場合は .Ar value 秒に設定されます。 .It Va saver .Pq Vt 文字列 .Dq NO 以外に設定すると、これが実際に使用する スクリーンセーバ (ブランク, 蛇, デーモンなど) となります。 .It Va moused_enable .Pq Vt 文字列 .Dq YES に設定すると、コンソール上でのカット/ペーストセレクション用に .Xr moused 8 デーモンが起動されます。 .It Va moused_type .Pq Vt 文字列 利用したいマウスのプロトコルのタイプ。 .Va moused_enable が .Dq YES の場合、この変数は必ず設定しなければなりません。 多くの場合、 .Xr moused 8 デーモンは適切なマウスタイプを自動的に検出することができます。 デーモンにマウスを検出させるには、この変数を .Dq auto に設定します。 自動検出が失敗する場合、以下のリストから 1 つを選びます。 .Pp マウスが PS/2 マウスポートに接続されている場合、 .Dq auto か .Dq ps/2 を常に指定する必要があります。マウスのブランドやモデルには無関係です。 同様に、マウスがバスマウスポートに接続されている場合、 .Dq auto か .Dq busmouse を選択してください。 他のプロトコルはシリアルマウス用であり、 PS/2 マウスおよびバスマウスでは動作しません。 USB マウスの場合、 .Va auto のみが、動作する唯一のプロトコルです。 .Bd -literal microsoft Microsoft マウス (シリアル) intellimouse Microsoft IntelliMouse (シリアル) mousesystems Mouse system 社製のマウス (シリアル) mmseries MM シリーズのマウス (シリアル) logitech Logitech 製のマウス (シリアル) busmouse バスマウス mouseman Logitech の MouseMan および TrackMan (シリアル) glidepoint ALPS 製の GlidePoint (シリアル) thinkingmouse Kensington 製の ThinkingMouse (シリアル) ps/2 PS/2 マウス mmhittab MM の HitTablet (シリアル) x10mouseremote X10 MouseRemote (シリアル) versapad Interlink VersaPad (シリアル) .Ed .Pp お使いのマウスが上記のリストにない場合でも、 リスト中のいずれかと互換性があるかも知れません。 互換性に関する情報については .Xr moused 8 のマニュアルページを参照してください。 .Pp また、 この変数が有効であるときは、(Xサーバのような) 他の全ての マウスクライアントは仮想マウスデバイス .Pa /dev/sysmouse を通してマウスにアクセスし、 それを sysmouse タイプのマウスとして構成すべきであると -いうことにも注意すべきです。これは、 +いうことにも注意すべきです。 +これは、 .Xr moused 8 使用時は、全てのマウスデータがこの単一の標準フォーマットに 変換されるためです。 クライアントプログラムが sysmouse タイプを サポートしないなら次に望ましいタイプとして mousesystems を 指定してください。 .It Va moused_port .Pq Vt 文字列 .Va moused_enable が .Dq YES の場合、これはマウスが接続されている実際のポートになります。 たとえば、COM1 シリアルマウスに対しては .Pa /dev/cuaa0 、PS/2 マウスに対しては .Pa /dev/psm0 、バスマウスに対しては .Pa /dev/mse0 となります。 .It Va moused_flags .Pq Vt 文字列 .Va moused_type が設定されている場合、これらは .Xr moused 8 デーモンに渡す追加のフラグとなります。 .It Va allscreens_flags .Pq Vt 文字列 設定すると、各仮想端末 .Pq Pa /dev/ttyv* に対し、これらのオプションを使用して .Xr vidcontrol 1 を実行します。 例えば .Dq -m on は、 .Va moused_enable が .Dq YES に設定されている場合、全仮想端末上でマウスポインタを有効にします。 .It Va cron_enable .Pq Vt ブール値 .Dq YES に設定すると、システムブート時に .Xr cron 8 デーモンを起動します。 .It Va cron_program .Pq Vt 文字列 .Xr cron 8 へのパス (デフォルトは .Pa /usr/sbin/cron です)。 .It Va cron_flags .Pq Vt 文字列 .Va cron_enable が .Dq YES を設定されている場合、これが .Xr cron 8 へ渡すフラグとなります。 .It Va lpd_program .Pq Vt 文字列 .Xr lpd 8 へのパス (デフォルトは .Pa /usr/sbin/lpd です)。 .It Va lpd_enable .Pq Vt ブール値 .Dq YES に設定すると、システムブート時に .Xr lpd 8 デーモンを起動します。 .It Va lpd_flags .Pq Vt 文字列 .Va lpd_enable が .Dq YES の場合、これらは .Xr lpd 8 デーモンに渡すフラグとなります。 .It Va mta_start_script .Pq Vt 文字列 本変数は、メール転送エージェントを起動するスクリプトへのフルパスを指定します。 デフォルトは、 .Pa /etc/rc.sendmail です。 .Pa /etc/rc.sendmail が使用する .Va sendmail_* 変数は、 .Xr rc.sendmail 8 マニュアルページに記述してあります。 .It Va dumpdev .Pq Vt 文字列 システムクラッシュ時にクラッシュダンプを書き込むデバイス (通常はスワップパーティション) を指定します。 この変数の値は .Xr dumpon 8 への引数として渡されます。 クラッシュダンプを無効にするには、この変数を .Dq NO に設定します。 .It Va dumpdir .Pq Vt 文字列 クラッシュ後にシステムがリブートするとき、 .Va dumpdev で指定されるデバイスにクラッシュダンプが見付かると、 .Xr savecore 8 は、 このクラッシュダンプとカーネルのコピーを、 .Va dumpdir 変数で指定されるディレクトリへ保存します。 デフォルト値は .Dq /var/crash です。 .Va dumpdir を .Dq NO に設定すると、ブート時に .Xr savecore 8 を起動しません。 +.It Va savecore_flags +.Pq Vt 文字列 +クラッシュダンプが有効な場合、これらは +.Xr savecore 8 +ユーティリティに渡すフラグになります。 .It Va enable_quotas .Pq Vt ブール値 .Dq YES に設定すると、システム起動時に、 .Xr quotaon 8 コマンドによってユーザディスクのクォータチェックを有効にします。 .It Va check_quotas .Pq Vt ブール値 .Dq YES に設定すると、 .Xr quotacheck 8 コマンドによってユーザディスクのクォータチェックを有効にします。 .It Va accounting_enable .Pq Vt ブール値 .Dq YES に設定すると、 .Xr accton 8 機能でシステムアカウンティングを有効にします。 .It Va ibcs2_enable .Pq Vt ブール値 .Dq YES に設定すると、 システム初期ブート時に iBCS2 (SCO) バイナリエミュレーションを有効にします。 .It Va ibcs2_loaders .Pq Vt 文字列 これを .Dq NO に設定せずに .Va ibcs2_enable を .Dq YES に設定した場合、 この文字列は有効化すべき追加の iBCS2 ローダのリストを指定します。 .It Va linux_enable .Pq Vt ブール値 .Dq YES に設定すると、 システムブート時に Linux/ELF バイナリエミュレーションを有効にします。 .It Va osf1_enable .Pq Vt ブール値 システムブート時に OSF/1 (Digital UNIX) バイナリエミュレーションを 有効にしたいなら .Dq YES に設定します (Alpha)。 .It Va rand_irqs .Pq Vt 文字列 乱数生成用に監視する IRQ のリストを設定します ( .Xr rndcontrol 8 のマニュアル参照)。 .It Va clear_tmp_enable .Pq Vt ブール値 .Dq YES に設定すると、 起動時に .Pa /tmp 下を消去します。 .It Va ldconfig_paths .Pq Vt 文字列 .Xr ldconfig 8 -で使用する共有ライブラリのパスのリストを設定します。注意: +で使用する共有ライブラリのパスのリストを設定します。 +注意: .Pa /usr/lib は常に先頭に追加されるので、このリストに指定する必要はありません。 .It Va ldconfig_insecure .Pq Vt ブール値 .Xr ldconfig 8 ユーティリティは、通常、 root 以外が書き込み可能なディレクトリの使用を拒否します。 .Dq YES に設定すると、 システムの起動中はこのセキュリティチェックを無効化します。 .It Va kern_securelevel_enable .Pq Vt ブール値 カーネルのセキュリティレベルをシステムスタートアップ時に設定したい場合に、 .Dq YES に設定します。 .It Va kern_securelevel .Pq Vt 整数 スタートアップ時に設定されるカーネルセキュリティレベルです。 .Va 値 として許される範囲は -1 (コンパイル時のデフォルト) から 3 (最も安全) です。 利用可能なセキュリティレベルとシステム操作への影響については、 .Xr init 8 を参照してください。 .It Va start_vinum .Pq Vt ブール値 .Dq YES に設定すると、 システムブート時に .Xr vinum 8 を開始します。 .It Va sshd_program .Pq Vt 文字列 SSH サーバプログラムへのパスです ( .Pa /usr/sbin/sshd がデフォルトです)。 .It Va sshd_enable .Pq Vt ブール値 .Dq YES に設定すると、 ブート時に .Xr sshd 8 を起動します。 .It Va sshd_flags .Pq Vt 文字列 .Va sshd_enable が .Dq YES の場合、これらは .Xr sshd 8 デーモンに渡すフラグになります。 .It Va unaligned_print .Pq Vt ブール値 .Dq NO に設定すると、境界調整されていないアクセスの警告は表示されません (Alpha)。 .\" ----- isdn settings --------------------------------- .It Va isdn_enable .Pq Vt ブール値 デフォルトは .Dq NO です。 .Dq YES に設定すると、isdn デーモン .Pa /usr/sbin/isdnd をシステム起動時に起動します。 .It Va isdn_flags .Pq Vt 文字列 デフォルトは .Dq -dn -d0x1f9 です。 .Xr isndn 8 に渡される追加のフラグです (調整可能なパラメータについては .Va isdn_fsdev と .Va isdn_ttype を参照してください)。 .It Va isdn_ttype .Pq Vt 文字列 デフォルトは .Dq cons25 です。 .Xr idsnd 8 が全画面モードで動作する場合の出力端末の型です。 .It Va isdn_screenflags .Pq Vt 文字列 デフォルトで .Dq NO に設定されます。 全画面モード用のビデオモードです ( .Xr syscons 4 コンソールドライバ専用です。 .Xr vidcontrol 1 を参照してください。 .It Va isdn_fsdev .Pq Vt 文字列 デフォルトは .Dq /dev/ttyv4 です。 .Xr idsnd 8 が全画面モードで動作する場合の出力端末です (デーモンモード時は .Dq NO です)。 .It Va isdn_trace .Pq Vt ブール値 デフォルトは .Dq NO です。 .Dq YES に設定すると、ISDN プロトコルトレースユーティリティ .Pa /usr/sbin/isdntrace をシステム起動時に有効にします。 .It Va isdn_traceflags .Pq Vt 文字列 デフォルトは .Dq -f /var/tmp/isdntrace0 です。 .Pa /usr/sbin/isdntrace へのフラグです。 .\" ----------------------------------------------------- .El .Sh 関連ファイル .Bl -tag -width /etc/defaults/rc.conf -compact .It Pa /etc/defaults/rc.conf .It Pa /etc/rc.conf .It Pa /etc/rc.conf.local .El .Sh 関連項目 .Xr catman 1 , .Xr gdb 1 , .Xr info 1 , .Xr makewhatis 1 , .Xr vidcontrol 1 , .Xr tcp 4 , .Xr udp 4 , .Xr exports 5 , .Xr motd 5 , .Xr accton 8 , .Xr amd 8 , .Xr apm 8 , .Xr atm 8 , .Xr cron 8 , .Xr dhclient 8 , .Xr gated 8 , .Xr ifconfig 8 , .Xr inetd 8 , .Xr isdnd 8 , .Xr isdntrace 8 , .Xr lpd 8 , .Xr moused 8 , .Xr mrouted 8 , .Xr named 8 , .Xr nfsd 8 , .Xr nfsiod 8 , .Xr ntpd 8 , .Xr ntpdate 8 , .Xr pcnfsd 8 , .Xr portmap 8 , .Xr quotacheck 8 , .Xr quotaon 8 , .Xr rc 8 , .Xr rc.sendmail 8 , .Xr rndcontrol 8 , .Xr route 8 , .Xr routed 8 , .Xr rpc.lockd 8 , .Xr rpc.statd 8 , .Xr rpcbind 8 , .Xr rwhod 8 , .Xr savecore 8 , .Xr sshd 8 , .Xr swapon 8 , .Xr sysctl 8 , .Xr syslogd 8 , .Xr timed 8 , .Xr vinum 8 , .Xr vnconfig 8 , .Xr xtend 8 , .Xr yp 8 , .Xr ypbind 8 , .Xr ypserv 8 , .Xr ypset 8 .Sh 歴史 .Nm ファイルは .Fx 2.2.2 で登場しました。 .Sh 作者 .An Jordan K. Hubbard . diff --git a/ja_JP.eucJP/man/man7/tuning.7 b/ja_JP.eucJP/man/man7/tuning.7 index a10fe4fe34..5debf4d72b 100644 --- a/ja_JP.eucJP/man/man7/tuning.7 +++ b/ja_JP.eucJP/man/man7/tuning.7 @@ -1,820 +1,903 @@ .\" Copyright (c) 2001, Matthew Dillon. Terms and conditions are those of .\" the BSD Copyright as specified in the file "/usr/src/COPYRIGHT" in .\" the source tree. .\" -.\" %FreeBSD: src/share/man/man7/tuning.7,v 1.1.2.26 2002/01/11 23:59:24 bmah Exp % +.\" %FreeBSD: src/share/man/man7/tuning.7,v 1.1.2.29 2002/08/29 20:34:44 dillon Exp % .\" .\" $FreeBSD$ .Dd May 25, 2001 .Dt TUNING 7 .Os .Sh 名称 .Nm tuning .Nd FreeBSD における性能チューニング .Sh システム設定 - disklabel, newfs, tunefs, スワップ .Xr disklabel 8 または .Xr sysinstall 8 を使ってハードディスク上にファイルシステムをレイアウトする場合、 ディスクの内周トラックよりも外周トラックのほうがずっと速くデータを 転送できることを意識することが重要です。 この利点を生かすには、 小さいファイルシステムやスワップを外周トラックに近いほうから 詰めていくべきです。 より大きいファイルシステムは内周へ近いほうへ詰めていき、 最も大きいファイルシステムを最後にします。 後でマシンを増強した時にシステム標準のファイルシステムの大きさを 変更しなくて済むような大きさに決めることが重要です。 私は大抵、順番にルートパーティションに 128M、スワップに 1G、 .Pa /var に 128M、 .Pa /var/tmp に 128M、 .Pa /usr に 3G、 そして残りを .Pa /home に割り当てます。 .Pp 典型的にはメインメモリの約 2 倍のスワップスペースを用意すべきです。 RAM がそれほど多くない場合は、一般にもっとスワップが必要でしょう。 256M より小さいスワップを設定するのは奨められません。 スワップ パーティションの大きさを決めるときは将来のメモリ増設のことを 考えておくべきです。 カーネルの VM ページングアルゴリズムは、スワップの大きさが メインメモリの少なくとも 2 倍ある場合に最高の 性能が出るようにチューンされています。 スワップを小さくしすぎると、 VM ページ走査コードが効率的に動かなくなります。 メモリをさらに追加した時も同様です。 最後に、複数の SCSI ディスク (あるいは異なるコントローラ上にある 複数の IDE ディスク) を備えた大規模なシステムにおいては、 それぞれのドライブ (最大 4 ドライブ) にスワップを置くことを強く推奨します。 各ドライブ上のスワップパーティションがほぼ同じ大きさになる ようにしてください。 カーネルは任意の大きさを扱うことができますが、内部のデータ構造は 最大のスワップパーティションのものの 4 倍の大きさになってしまいます。 スワップパーティションをだいたい同じ大きさにすることで、 カーネルは最適な方法でスワップ空間を N 台のディスクに対し ストライピングします。 少々のやりすぎを気にする必要はありません。 スワップ空間は .Ux が優雅に動作するためのものです。 普段それほどスワップを使っていなくても、 プログラムの暴走で強制的にリブートしてしまう前に、 回復作業をするための時間稼ぎになります。 .Pp .Pa /var パーティションをどれだけの大きさにするかは、そのマシンを 何に使うかということに大きく依存します。 このパーティションは主にメールボックスやプリントスプール、 ログファイルの保存場所に使われます。 .Pa /var/log を別のパーティションにする人もいます (しかし、パーティション ID を 消費しないほうが良い極端な場合は例外です)。 メールサーバやプリントサーバ、あるいは 訪問数が非常に多い Web サーバとしてマシンが動作するなら、 極めて大きいパーティション \(en おそらく 1 ギガバイト以上 \(en を 作成することを考えるべきでしょう。 ログファイルの保存に必要な大きさは、小さく見積もられがちです。 .Pp .Pa /var/tmp の大きさは、テンポラリファイルの類が どれだけ使われる必要があるかで決まります。 最低でも 128M にすることを推奨します。 また sysinstall は .Pa /tmp ディレクトリも作成します。 テンポラリファイル領域専用に 1 つのパーティションを 割り当てることは重要で、2 つの理由があります: クラッシュ時のファイルシステムの破壊の可能性を 減らすのと、 .Oo Pa /var Oc Ns Pa /tmp を一杯にしてしまう ような暴走プロセスが、さらに重要なサブシステム (メールやログ等) に影響を与える可能性を減らすためです。 .Oo Pa /var Oc Ns Pa /tmp が一杯になってしまうのはよくある問題です。 .Pp かつては .Pa /tmp と .Pa /var/tmp の間には違いがありましたが、 .Pa /var (と .Pa /var/tmp ) の導入によってプログラマは大変混乱し、 今日では両方がでたらめに使われています。 つまりこの 2 つは実際には区別することができません。 -したがって、1 つのテンポラリディレクトリだけにしてしまうことは -意味があります。 +したがって、1 つのテンポラリディレクトリだけにしてして、 +他の tmp ディレクトリからここへソフトリンクを張ることは意味があります。 どのように .Pa /tmp を扱ったとしても、 それがルートパーティションにあるのは好ましくないでしょう。 一杯になったり、クラッシュやリブートにより破壊される 可能性があるからです。 .Pp .Pa /usr パーティションはシステムをサポートするために 必要なファイルの大部分を持っており、そのサブディレクトリ .Pa /usr/local は .Xr ports 7 階層からインストールされるファイルの大部分が置かれます。 ports をあまり使わず、システムのソース .Pq Pa /usr/src を保持するつもりがなければ .Pa /usr は 1 ギガバイトで十分でしょう。 しかし、大量の ports (特にウィンドウマネージャや Linux エミュレーションされるバイナリ) をインストールする場合は、 少なくとも 2 ギガバイトの .Pa /usr を推奨します。 さらに、システムのソースを保持するつもりであれば、3 ギガバイトの .Pa /usr を推奨します。 このパーティションに対して必要な領域の大きさを過小評価 しないでください。 これは緩やかに成長し、驚かされることになります ! .Pp .Pa /home パーティションはユーザ固有のデータを保持するのに使われます。 私は大抵ディスクの残りを使います。 .Pp 何故 パーティションを切るのでしょう ? 1 つの大きな .Pa / パーティションを作るだけで良いのではないでしょうか ? そうすれば小さすぎないかどうか気にする必要はないのに ! はい、その考えが良くないのは、いくつか理由があります。 1 つめは、それぞれのパーティションは運用上の性格が 異なるのですが、それらを分離することでファイルシステムに対し その性格に適したチューンをすることが可能になるからです。 例えばルートパーティションや .Pa /usr パーティションはほとんど読み込みであり、ほとんど書き込みがありません。 一方で .Pa /var や .Pa /var/tmp に対しては大量の読み込みや書き込みがあるでしょう。 システムをうまく分割することで、書き込みが多いパーティションの破壊に よる被害が、ほとんど読み込みのみのパーティションに及ばないようします。 加えて、書き込みが多いパーティションをディスクの端 (すなわちパーティションテーブルにおいて、 本当に大きなパーティションの後ろではなく、前の方) の方に置くことで、そのパーティションについて性能が向上します。 より大きなパーティションについても入出力性能が必要なのも確かですが、 .Pa /var をディスクの端に置くと大きな改善が可能であるのに対し、 巨大なパーティションをディスクの端に置いてもそれほど性能の 改善にはつながりません。 最後は安全性に関わることです。 小さく、簡潔な、本質的に読み込みのみの ルートパーティションとすることで、クラッシュを生き延びるチャンスを 大きくすることができます。 .Pp システムを正しく分割することで、 .Xr newfs 8 や .Xr tunefs 8 に与えるパラメータをチューンすることも可能になります。 .Fn newfs のチューニングにはさらに経験が必要ですが、かなりの性能改善につながります。 比較的安全にチューンできる 3 つのパラメータがあります: .Em blocksize , .Em bytes/inode , .Em cylinders/group です。 .Pp .Fx は 8K または 16K のファイルシステムブロックサイズを使用した時に 最高の性能が得られます。 デフォルトは 16K であり、 ほとんどのアプリケーションで良い結果となりますが、 大きなファイルにランダムアクセスするアプリケーション (データベースサーバソフトウェア等) は例外です。 このようなアプリケーションでは、 小さなブロックサイズで良い結果となる傾向がありますが、 最近のディスクの特性においては、 小さなブロックサイズの使用は考慮に値しないでしょう。 16K より大きなブロックサイズを使用すると バッファキャッシュの断片化を招き、性能が低下します。 .Pp デフォルトは、 多大な inode を必要とするファイルシステムや、 多大な小ファイルを保持することを意図したファイルシステムには 向かないかもしれません。 このようなファイルシステムは、 8K または 4K のブロックサイズで作成されるべきです。 これはまた、小さなフラグメントサイズを指定する必要があります。 常にブロックサイズの 1/8 のフラグメントサイズにすることを推奨します (他のフラグメントサイズの割合ではあまりテストされていません)。 この場合の .Xr newfs 8 オプションは .Dq Li "newfs -f 1024 -b 8192 ..." となるでしょう。 .Pp 大きなパーティションに、データベースファイルのような 少数の大きなファイルを置くのであれば、 .Em bytes/inode の比率を増やすことができます。 これは、そのパーティションの inode の数 (ファイルやディレクトリの最大の数) を減らします。 inode の数を減らすことで、クラッシュ後の .Xr fsck 8 による修復時間を大幅に減らすことができます。 本当にこのパーティションに大きなファイルを置くのでない限り、 このオプションを使わないでください。 空き領域が大量にあるのにファイルを収容できなくなるかもしれません。 bytes/inode は、32768 か 65536 か 262144 とすることが推奨されます。 もっと大きな値にすることができますが、 .Xr fsck 8 による修復時間を増やすだけでしょう。 例えば、 .Dq Li "newfs -i 32768 ..." のようにして値を与えます。 .Pp .Xr tunefs 8 はファイルシステムをさらにチューンするのに使えます。 このコマンドは、シングルユーザモードで実行することができ、 ファイルシステムの再フォーマットは不要です。 しかし、おそらく最も誤って使用されているプログラムでしょう。 多くの人はファイルシステムの利用可能な空き領域を増やそうとして、 min-free 比率を 0 に設定します。 これはファイルシステムの猛烈な断片化につながるので、推奨されません。 ここで、唯一本当に価値がある .Xr tunefs 8 のオプションは、 .Dq Li "tunefs -n enable /filesystem" として .Em softupdates を有効にすることです (注意: .Fx 4.5 以降では .Xr newfs 8 に .Fl U オプションを与えることで softupdates を有効に することができます。 そして .Xr sysinstall 8 は、ルート以外のファイルシステムの softupdates を標準で 自動的に有効にします)。 softupdates はメタデータの性能、 主にファイルの作成と削除の性能を劇的に改善します。 大部分のファイルシステムで softupdates を有効にすることを推奨します。 しかしながら、ファイルシステムで softupdates を使うかどうか判断する際に 気をつけるべき 2 つの制限があります。 1 つめは、softupdates はクラッシュ時における ファイルシステムの一貫性は保証しますが、 -物理ディスクの更新が何秒か (1 分になることもあります!) -遅れる可能性が高いことです。 +未反映の物理ディスク書き込みより何秒か (1 分になることもあります!) +おそらく遅れていることです。 クラッシュした場合、より多くの成果が消えてしまうかもしれません。 2 つめは、softupdates はファイルシステムブロックを解放するのを遅らせる ということです。 あるファイルシステム (例えばルートファイルシステム) が満杯近くの時に それに対する大規模な更新、たとえば .Dq Li "make installworld" をすると、空き領域を使い果たして更新が失敗してしまうことがあります。 そのため標準的なインストールではルートファイルシステムの softupdates を 有効にしません。 +ルートファイルシステムは滅多に書き込まれませんので、性能上の損失はありません。 .Pp .Xr mount 8 実行時のいくつかのオプションはファイルシステムをチューンするのに役立ちます。 最も明らかで、しかも最も危険なのは .Cm async です。 これは決して使わないでください。 大変危険です。 比較的危険度が低く、より役に立つ .Xr mount 8 のオプションは .Cm noatime です。 通常 .Ux ファイルシステムは、ファイルやディレクトリにアクセスが あった場合は常に、その最終アクセス時刻を更新します。 .Fx では、この動作は遅延書き込みで行なわれ、 通常は大した負荷にはなりません。 しかし、大量のファイルが連続してアクセスされた場合、 バッファキャッシュがアクセス時刻の更新で汚染され 大きな負荷となります。 例えば、高負荷の web サイトや大量の読者を抱えるニューズサーバ では、この .Xr mount 8 のオプションで大きなパーティションにおける アクセス時刻の更新を停止することが考えられます。 根拠もなく、すべての場所でアクセス時刻の更新を停止しないでください。 例えば、 .Pa /var ファイルシステムは、慣習的にメールボックスを保持し、 新規メールのメールボックス中の有無判定に atime (および mtime) が使用されます。 読み込み専用パーティション、 .Pa / や .Pa /usr では、atime をオンにしておいた方が良いでしょう。 システムユーティリティには、atime フィールドを使用するものがあるので、 .Pa / では特に有用です。 .Sh ディスクのストライピング 大きなシステムでは、いくつかのドライブのパーティションを互いに ストライピングして、全体として巨大なパーティションを作ることもあります。 ストライピングは、入出力操作を複数のディスクに振り分けることで ファイルシステムの性能を向上させることができます。 .Xr vinum 8 および .Xr ccdconfig 8 ユーティリティは、シンプルなストライピングされたファイルシステムを 作るのに使われます。 一般に、ルートや .Pa /var/tmp のような小さなパーティション、 あるいは .Pa /usr のような本質的に読み込みのみのパーティションを ストライピングしても時間の無駄にしかなりません。 本当に入出力性能を必要とするパーティションのみをストライピングするべきです。 典型的には .Pa /var や .Pa /home あるいはデータベースや Web ページを 保持するカスタムパーティションです。 適切なストライプサイズを選ぶことも重要です。 ファイルシステムはメタデータを 2 の累乗の境界で格納する傾向にあり、 大抵はシークを増やすのではなく減らしたいでしょう。 これは、1152 セクタといったような、 シーケンシャルな I/O が両方のディスクをシークしないように、 かつメタデータが単一のディスクに集中するのではなく両方に分散するような、 中心を外れた (off-centered) 大きな ストライプサイズにしたい、ということを意味します。 本当に性能が必要なら、 .Fx がサポートする本物のハードウェア RAID コントローラを 使うことを勧めます。 .Sh sysctl によるチューニング .Xr sysctl 8 変数は、実行時に、システムの動作のモニタおよび制御を可能とします。 sysctl には、単にシステムの動作を報告するものもありますが、 システムの動作を変更するものもあります。 ブート時に .Xr rc.conf 5 を使用して設定可能なものもありますが、大部分は .Xr sysctl.conf 5 で設定可能です。 システムには数百の .Xr sysctl 8 変数が存在します。 そのなかには、チューニングの候補のように見えますが本当は そうでないものも多く含まれます。 この文書では システムに最も大きな影響を与えるものだけを扱います。 .Pp .Va kern.ipc.shm_use_phys sysctl は、デフォルトが 0 (オフ) であり、 0 (オフ) または 1 (オン) にセットすることができます。 このパラメータを 1 にセットすると、全ての System V 共有メモリセグメントが ページング不可の物理メモリにマップされます。 これは、(A) 大量 (数百) のプロセス間で少量の共有メモリを マッピングしているか、(B) 任意個のプロセス間で大量の共有メモリを マッピングしている、のいずれかの場合に効果があります。 この機能は、共有メモリをスワップ不可にすることで、 共有メモリをコアに結び付ける時に生じる、 カーネルにおける内部のメモリ管理によるページ追跡 オーバヘッドをかなり減らします。 .Pp .Va vfs.vmiodirenable sysctl は、デフォルトは 0 (オフ) であり (しかし近いうちにデフォルトが 1 に なるでしょう)、0 (オフ) または 1 (オン) にセットすることができます。 このパラメータは、ディレクトリがシステムによってどのように キャッシュされるかを制御します。 ほとんどのディレクトリは小さく、 ファイルシステムにおいては単一フラグメント (典型的には 1K) であり、バッファキャッシュではさらに小さくなっています (典型的には 512 バイト)。 しかし、デフォルトモードで動作している時は、 大量のメモリを搭載していても バッファキャッシュは固定数のディレクトリしかキャッシュしません。 この sysctl をオンにすると、バッファキャッシュが VM ページキャッシュを、ディレクトリをキャッシュするために使うことを可能に します。 これによる利点は、全てのメモリがディレクトリを キャッシュするのに使えるようになるということです。 欠点は、キャッシュに使われる最小のメモリの大きさが 512 バイトではなく 物理ページサイズ (大抵は 4K) になることです。 メモリに制約があるシステムでは、 このオプションをオフにすることを推奨します。 一方、オンにすると、多数のファイルを操作するサービスの性能が向上します。 そのようなサービスには、web キャッシュや、大規模なメールシステム、 ニューズシステムなどが含まれます。 このオプションは一般に メモリを消費しますが、性能を削減することはありません。 ただし実験して調べてみるべきでしょう。 .Pp .Va vfs.write_behind sysctl は、デフォルトで 1 (オン) です。 これによって、 ファイルシステムからメディアへの書き込みが、クラスタ分が集まった時に 発行されるようになります。 そのような状況は、典型的には、大きな シーケンシャルファイルへ書き込んでいる時に起こります。 これは、I/O パフォーマンスに寄与しないであろう場合に、 ダーティなバッファでバッファキャッシュが飽和するのを避けるという アイデアです。 しかしながら、これによってプロセスが止まるかも しれないので、状況によっては この機能を切りたいと望むかもしれません。 .Pp .Va vfs.hirunningspace sysctl は、任意の時点においてシステム全体で、 ディスクコントローラのキューに入れて未完了状態にして良い、 書き込み I/O の量を決定します。 通常、デフォルト値で十分ですが、 ディスクをたくさん持つマシンでは 4、5メガバイトに増やしたくなるかもしれません。 値を大きくしすぎる (バッファキャッシュの 書き込みの閾値を超えて) と、クラスタリングの効果が極端に悪くなる 可能性があるので注意してください。 この値を思いつきで大きくしては いけません! また書き込みのキュー値を大きくすると、同時に発生した 読みだしが待たされるかもしれません。 .Pp 他にもバッファキャッシュと VM ページキャッシュに関連した、様々な sysctl が 存在します。 これらを変更することは推奨されません。 .Fx 4.3 について言えば、VM システムは自分自身のチューニングに関して大変良い 仕事をしています。 .Pp .Va net.inet.tcp.sendspace sysctl と .Va net.inet.tcp.recvspace sysctl は、ネットワークに関連するアプリケーションを 稼動している場合は特に重要です。 これは、TCP コネクションの 送信および受信バッファ領域の大きさを調節します。 デフォルトでは、送信バッファは 32K で、受信バッファは 64K です。 このデフォルトを増やすことで 各コネクションについてカーネルメモリがさらに消費されますが、 帯域幅の利用率が改善することがあります。 同時に数百とか数千のコネクションを扱っている場合、 このデフォルトを増やすことは推奨されません。 失速してしまったコネクションが蓄積することで、 システムがメモリをすぐに使い果たしてしまうからです。 しかし、少ない数のコネクションについて広い帯域幅が必要ならば、 特にギガビットイーサネットの場合、このデフォルトを大幅に増やす ことができます。 入力データと出力データのバッファを個別に調整することができます。 たとえば、主に web サービスをしているマシンならば recvspace を 減らすことで、それほど大量にカーネルメモリを消費せずに sendspace を増やすことができます。 経路表 ( .Xr route 8 を参照 ) に対しては、経路に特化した送受信バッファを導入することが できるということに注意してください。 .Pp 付加的な管理ツールとして、ファイアウォールルールにおいて パイプ (pipe) を使うことで ( .Xr ipfw 8 を参照)、特定の IP ブロックやポートへ行く、あるいはそこから 来る帯域幅を制限することができます。 例えば T1 回線を持っている場合、 web トラフィックは回線の 70% に制限し、残りをメールと インタラクティブな用途に使いたいと思うでしょう。 通常高い負荷の web サーバは、ネットワーク回線が 使い切られていても、他のサービスに大きな遅延を与えることは ありませんが、制限をかけることは物事を円滑にし長期的な安定につながります。 また、多くの人が、帯域超過による課金をされないように 意図的な帯域制限をかけています。 .Pp .Va net.inet.tcp.rfc1323 sysctl で制御可能な TCP プロトコルのウィンドウスケーリング拡張を 両方のホストがサポートしない限り、 TCP の送信あるいは受信バッファサイズを 65535 を超えて指定しても ほとんど性能の改善はありません。 ある種のネットワークリンクから良い性能を引き出すために、 これらの拡張を有効にし、 TCP バッファサイズを 65536 より大きく設定すべきです。 特に、ギガビット WAN リンクや、高レイテンシの衛星リンクが対象となります。 RFC1323 サポートは、デフォルトでオンになっています。 .Pp .Va net.inet.tcp.always_keepalive -sysctl は、TCP インプリメンテーションが、コネクション上に断続的に +sysctl は、TCP 実装が、コネクション上に断続的に .Dq keepalives を配送することで死んでしまった TCP コネクションの検出を試みるか どうかを決定します。 デフォルトで、これはすべてのアプリケーションについて許可されています。 この sysctl を 0 に設定すると、特に keepalives を要求した アプリケーションだけが検出機能を利用できます。 大抵の環境において、死んでしまった TCP コネクションを失効にすることで、 TCP keepalives はシステム状態の管理を改善します。 -特にダイアルアップのユーザにサービスを提供しているシステムでは +特にダイヤルアップのユーザにサービスを提供しているシステムでは 効果があります。 -なぜならユーザーがネットワークとの接続を切る前に +なぜならユーザがネットワークとのコネクションを切る前に いつも個々の TCP コネクションを終了するとは限らないからです。 しかしながら、ある種の環境では、一時的なネットワークの停止が 誤ってセッションの死と判断されるかもしれません。 結果として 予期しない TCP コネクションの終了となります。 その様な環境では、sysctl を 0 に設定することで、 TCP のセッション切断の発生を減らせるかもしれません。 .Pp +.Va net.inet.tcp.delayed_ack +TCP 機能は大きく誤解されています。 +歴史的には、この機能は、転送されたデータに対する確認応答を、 +応答と共に返せるようにするためにデザインされました。 +例えば、リモートシェル上でキー入力しているとき、 +あなたが送信した文字への確認応答は、文字のエコーを表すデータと共に返されます。 +遅延確認応答をオフにすると、 +リモートサービスが丁度受け取ったデータをエコーする機会を得る前に、 +確認応答がそれだけを含むパケットで送られてしまうかもしれません。 +この同じ考え方がすべての対話的プロトコル (例 SMTP, WWW, POP3) にあてはまり、 +ネットワークの片一方を流れている小パケットを減らせるのです。 +FreeBSD の遅延確認応答の実装も、TCP プロトコルの規則に従っています。 +すなわち、標準の 100ms のタイムアウトが経過しなくても、 +2 パケットに 1 回は確認応答を行います。 +通常、遅延確認応答が行う最悪のことは、コネクションの破壊を少々遅らせること、 +スロースタート TCP コネクションの立ち上がりを少々遅らせることです。 +確かなことは分かりませんが、 +SAMBA や SQUID といった package に関連する FAQ が +遅延確認応答をオフにするように勧めているのは、 +スロースタートの問題に言及しているのでしょう。 +FreeBSD では、スロースタートフライトサイズを +.Va net.inet.tcp.slowstart_flightsize +sysctl で増やすことの方が、遅延確認応答をオフにするより、利益があるでしょう。 +.Pp +.Va net.inet.tcp.inflight_enable +sysctl は、すべての TCP コネクションに対し、 +バンド幅と遅延の積による制限を適用します。 +システムは、各コネクションに対してバンド幅と遅延の積を計算し、 +ネットワークにキューされるデータ量を、 +最適なスループットを確保するのに必要な量に限定しようとします。 +この機能が有用なのは、モデムやギガビットイーサや高速 WAN リンク +(といったバンド幅と遅延の積が大きなネットワーク) 経由でデータを +提供している場合であり、 +特に有用なのは、ウィンドウスケーリングを併用している場合や +大きな送信ウィンドウを設定した場合です。 +本オプションを有効にする場合、 +.Va net.inet.tcp.inflight_debug +を 0 (デバッグ無効) に設定することを忘れずに。 +実運用では、 +.Va net.inet.tcp.inflight_min +を少なくとも 6144 に設定すると有用でしょう。 +しかしながら、最低値を大きく設定すると、 +リンクによってはバンド幅制限を無効にする結果となり得ることに注意してください。 +本限定機能は、 +中間ルータやスイッチのパケットキューに蓄積されるデータ量を減らし、 +ローカルホストのインタフェースキューに蓄積されるデータ量をも減らします。 +キューされるパケット数が少ないと、対話的コネクション、 +特に低速モデム経由のものは、短い往復時間での動作が可能になります。 +しかしながら、この機能はデータ送信 +(アップロード / サービス側) にのみ影響することに注意してください。 +データ受信 (ダウンロード) には影響しません。 +.Pp +.Va net.inet.ip.portrange.* +sysctls は、 +自動的に TCP や UDP ソケットに結合されるポート番号の範囲を制御します。 +3 種類の範囲があります。 +すなわち、下位の範囲、デフォルトの範囲、高位の範囲であり、 +IP_PORTRANGE setsockopt() 呼び出しで選択可能です。 +ほとんどのネットワークプログラムが使用するのはデフォルトの範囲であり、 +.Va net.inet.ip.portrange.first +と +.Va net.inet.ip.portrange.last +で制御されます。 +それぞれ 1024 と 5000 がデフォルトです。 +範囲を限定されたポート範囲は外向きコネクションに使用され、 +ある条件下ではシステムがポートを使い尽してしまう場合があります。 +これは、高負荷のウェブプロキシを実行している場合に、よく発生します。 +通常のウェブサーバ等の主に内向きコネクションを扱うサーバや、 +メールリレー等の外向きコネクションが限られているサーバを実行している場合、 +これは問題とはなりません。 +ポートを使い果たしてしまう場合、適度に +.Va net.inet.ip.portrange.last +を増やしてみてください。 +10000, 20000, 30000 といった値は大丈夫でしょう。 +ポートの範囲を変えるときには、ファイアウォールの影響も考慮に入れるべきです。 +ファイアウォールによっては、広い範囲のポート (通常は下位のポート) +を遮蔽し、システムが高位のポートを外向きコネクションに +使用することを期待します。 +このため、 +.Va net.inet.ip.portrange.first +を低下させることはお勧めできません。 +.Pp .Va kern.ipc.somaxconn sysctl は、新しい TCP コネクションを受け付けるための listen キューの サイズを制限します。 高負荷の web サーバ環境では、 デフォルト値の 128 は新しいコネクションを余裕をもって扱うには低すぎます。 そのような環境では、この値を 1024 以上に増やすことが推奨されます。 サービスデーモン (例えば .Xr sendmail 8 や apache) は自分自身の listen キューのサイズを制限しているかもしれませんが、設定ファイルで キューのサイズを増やすディレクティブを持つようになるでしょう。 listen キューを大きくすることは、サービス拒否攻撃を防ぐのにも役立ちます。 .Pp .Va kern.maxfiles sysctl は、システムがどれだけの数のファイルをオープンできるかを 決めます。 デフォルトは典型的には数千ですが、データベースや記述子を 大量に使うデーモンを稼働している場合は 10000 や 20000 に引き上げる必要 があるかもしれません。 読み込み専用の .Va kern.openfiles sysctl を検査することで、システム上で開かれているファイル数を判定可能です。 .Pp .Va vm.swap_idle_enabled sysctl は、多数のユーザがシステムに出入りして大量のアイドルプロセスが ある大きなマルチユーザシステムで便利です。 そのようなシステムでは、フリーメモリの予約に対し、 継続して重大な負担をかける傾向にあります。 これをオンにして .Va vm.swap_idle_threshold1 sysctl と .Va vm.swap_idle_threshold2 sysctl でスワップアウトヒステリシス (アイドルの秒数) を調整することで アイドルプロセスに与えられているページの優先度を通常のページアウト アルゴリズムよりも速やかに下げることができます。 これはページアウトデーモンを手助けします。 必要がないかぎり、 このオプションはオンにしないでください。 これによって起こるトレードオフは、本質的に、 スワップとディスク帯域幅をより多く消費してメモリのプリページングを より早いうちに行うことだからです。 小さなシステムではこのオプションは有害となるでしょうが、 すでにある程度ページングが発生している大きなシステムでは、 このオプションによって、全体のプロセスがより容易にメモリへ入ったり 出たりするようにできるでしょう。 .Sh ローダのチューナブル システムの動作の一部は、 そのためのメモリ割り当てをブート処理の初期に行う必要があるために、 実行時には調整不可能です。 ローダのチューナブルを変更するには、これらの値を .Xr loader.conf 5 に設定し、システムをリブートする必要があります。 .Pp .Va kern.maxusers は、静的なシステムテーブルの大きさを制御します。 これには、 オープンファイルの最大数、ネットワークメモリ資源の大きさ等が含まれます。 .Fx 4.5 の時点では、 .Va kern.maxusers は、ブート時に、システムで利用可能なメモリ量に応じて、 大きさが自動的に決定されます。 また、実行時に、読み取り専用の .Va kern.maxusers sysctl 値を見て決定することも可能です。 サイトによっては、 .Va kern.maxusers を大きくしたり小さくしたりする必要があり、 これはローダチューナブルで設定可能です。 64, 128, 256 は、変な値ではありません。 膨大なファイル記述子が必要なのでない限り、 256 より大きくすることは勧められません。 .Va kern.maxusers によってデフォルト値が決定される多くのチューナブル値は、 本文書の別の場所に記述した方法で、 個々にブート時または実行時に上書き可能です。 .Fx 4.4 より古いシステムでは、 カーネルの .Xr config 8 オプションの .Cd maxusers を設定する必要があります。 .Pp .Va kern.ipc.nmbclusters を調整することで、システムが割り当てようとしている ネットワーク mbuf の数を増やすことができます。 それぞれのクラスタは約 2K のメモリに相当するので、 1024 は 2M のカーネルメモリをネットワークバッファに 予約することを示します。 簡単な計算でどれだけ必要なのかがわかります。 web サーバが同時に最大 1000 本のコネクションを扱い、 各コネクションが 16K の受信バッファと 16K の送信バッファを消費する場合、 約 32MB に相当するネットワークバッファを扱う必要があります。 経験から得た方法によると、2 倍すると良いとされています。 つまり 32MBx2 = 64MB/2K = 32768 です。 したがって、この場合は .Va kern.ipc.nmbclusters を 32768 に設定します。 中くらいの量のメモリが搭載されたマシンでは 1024 から 4096、 さらに大量のメモリが搭載されているなら 4096 から 32768 の値を 推奨します。 決して大きい値を指定すべきではありません。 ブート時にクラッシュを引き起こす可能性があります。 .Xr netstat 1 に .Fl m オプションを与えることで、ネットワーククラスタの使用状況が分かります。 古い .Fx ではこのチューナブルを持ちませんので、 代りにカーネルの .Xr config 8 オプションの .Dv NMBCLUSTERS を設定する必要があります。 .Pp ますます多くのプログラムが .Xr sendfile 2 システムコールを使ってネットワークを通じてファイルを 転送しています。 .Va kern.ipc.nsfbufs sysctl は .Xr sendfile 2 の実行時にファイルシステムバッファをどれだけの数だけ 使えるかを制御します。 通常このパラメータは .Va kern.maxusers に比例しているので、極端な場合を除いては このパラメータに手を出す必要はありません。 .Sh カーネル構成におけるチューニング 大規模なシステムでは、いくつかのカーネルオプションを操作しなければ ならないかもしれません。 これらのオプションを変更する場合、あなたは ソースから新しいカーネルをコンパイルできなければなりません。 .Xr config 8 マニュアルページやハンドブックが良い入門となるでしょう。 あなただけのカスタムカーネルを作るときに一般に最初にすることは、 使用しないドライバやサービスをすべて削ることです。 .Dv INET6 や使わないドライバを削除することで、カーネルのサイズを時に 1 メガバイト以上減らすことができ、アプリケーションにさらに メモリを与えることができます。 .Pp .Dv SCSI_DELAY と .Dv IDE_DELAY は、システムの起動時間を減らすために使うことができます。 このデフォルト値はかなり大きく、ブート処理の中で 15 秒以上を占めるでしょう。 .Dv SCSI_DELAY を 5 秒に減らしても大抵はうまく動きます (特に最近のドライブでは)。 .Dv IDE_DELAY を減らしてもうまくいきますが、少々慎重になる必要があります。 .Pp .Dv *_CPU オプションの多くはコメントアウトできます。 そのカーネルを Pentium クラスの CPU だけで動かすなら、 .Dv I386_CPU と .Dv I486_CPU は削除することができます。 ただし、 .Dv I586_CPU は、CPU が Pentium II 以上として認識されることを確認してから 削除してください。 Pentium や 486 としてさえ認識されるクローンが存在し、 その場合はこれらのオプションがないと起動することができません。 もし動いたらすごいことです ! オペレーティングシステムは、MMU や タスク切り替え、タイムベース、デバイス操作に至る、より高度な機能を より利用することができるようになります。 加えてより高度な CPU は、カーネルがカーネル自身をメモリにマップする 4MB の MMU ページをサポートします。 これは高いシステムコール負荷の 下での効率を上げます。 .Sh IDE ライトキャッシュ .Fx 4.3 では IDE のライトキャッシュがオフになりました。 これは IDE ディスクへの書き込み帯域幅を減らしてしまうことになりますが、 ハードドライブベンダに起因するデータの一貫性に関する重大な問題のために、 必要なことだと考えられました。 基本的には、書き込み完了時期について IDE ドライブが嘘をつくという問題です。 IDE ライトキャッシュがオンであると、 IDE ハードドライブはデータを順番に書きこまないばかりか、 ディスクの負荷が高い時にはいくつかのブロックの書き込みを 無期限に延期してしまいます。 クラッシュや電源故障の場合、ファイルシステムの重大な破壊を もたらします。したがって私たちはデフォルトを安全側に変更しました。 残念ながら、これは大変な性能の低下をもたらし、私たちはあきらめて このリリース後にオンに戻しました。 .Va hw.ata.wc sysctl 変数を見て、デフォルトをチェックしてみるべきです。 もし IDE ライトキャッシュがオフになっていたら、 .Va hw.ata.wc ローダチューナブルを 1 に設定することでオンに戻すことができます。 ATA ドライバシステムのチューニングに関する更なる情報は、 .Xr ata 4 を参照してください。 .Pp IDE ハードドライブの実験的な新機能として、 .Va hw.ata.tags と呼ばれるものがあり (これもブートローダで設定します)、 ライトキャッシュを安全にオンにすることができます。 これは SCSI のタギング機能を IDE ドライブに持ち込んだものです。 これを書いている時点では、IBM DPLA と DTLA ドライブだけがこの機能を サポートしています。 警告! これらのドライブは品質管理に問題 があるようなので、私は現時点ではこれらの製品を買うことはおすすめしません。 性能が必要なら SCSI を使いましょう。 .Sh CPU、メモリ、ディスク、ネットワーク 負荷が上がるとシステムのどの部分がボトルネックになりはじめているかによって、 チューニングの種類が違ってきます。 CPU を使い果たしている (アイドル時間が常に 0%) ならば、CPU を アップグレードしたり SMP マザーボード (CPU を複数にする) に移行 したり、あるいは負荷の原因となっているプログラムを見直して最適化する ことを考える必要があるでしょう。 スワップに対して大量のページングがあるなら メモリをもっと増やす必要があるでしょう。 ディスク性能が飽和している場合、CPU アイドル時間は高く、全般的に ディスクが飽和状態になっています。 .Xr systat 1 でこれらをモニタすることができます。 ディスク性能の飽和を解決するにはいろいろな方法があります: キャッシュのためのメモリを増やす、ディスクをミラーリングする、 複数のマシンに操作を分散させる等です。 ディスク性能が問題で、IDE ドライブを使っている場合、 SCSI に切り替えることでずいぶんよくなります。 生のシーケンシャルな帯域幅については、最近の IDE ドライブは SCSI のものに 匹敵していますが、調べると大抵 SCSI ドライブが勝っています。 .Pp 最後に、ネットワーク性能を使い果たしているかもしれません。 ネットワーク性能を改善するために最初に確認すべきことは、 ハブではなくスイッチを使っているか、ということです。 特に最近はスイッチは安くなっています。 ハブが高負荷になると、コリジョンバックオフのために深刻な問題が発生します。 また、1 台のホストに問題があると、LAN 全体の性能を大幅に低下させます。 次に、できるだけネットワーク経路を最適化することです。 例えば .Xr firewall 7 で説明した内部ホストを守るファイアウォールでは、 外部から見えるホストはファイアウォールを通さないトポロジです。 必要に応じて 10BaseT ではなく 100Base-T を、あるいは 100BaseT ではなく 1000BaseT を使いましょう。 最大のボトルネックは WAN 回線です (モデム、T1、DSL 等)。 回線を増強できないのであれば、 .Xr dummynet 4 機能を使ってピーク削減やその他のトラフィックシェイピングを 行い過負荷のサービス (web サービス等) が他のサービス (電子メール等) に影響を与えるのを防いでください。逆もまた同様です。 これは、家庭環境において、外部に公開しているサービス (web サービスや電子メール) よりも インタラクティブなトラフィック (ブラウザや .Xr ssh 1 ログイン) を 優先するために使うことができるでしょう。 .Sh 関連項目 .Xr netstat 1 , .Xr systat 1 , .Xr ata 4 , .Xr dummynet 4 , .Xr login.conf 5 , .Xr rc.conf 5 , .Xr sysctl.conf 5 , .Xr firewall 7 , .Xr hier 7 , .Xr ports 7 , .Xr boot 8 , .Xr ccdconfig 8 , .Xr config 8 , .Xr disklabel 8 , .Xr fsck 8 , .Xr ifconfig 8 , .Xr ipfw 8 , .Xr loader 8 , .Xr mount 8 , .Xr newfs 8 , .Xr route 8 , .Xr sysctl 8 , .Xr sysinstall 8 , .Xr tunefs 8 , .Xr vinum 8 .Sh 歴史 .Nm マニュアルページは、もともと .An Matthew Dillon によって書かれました。 最初に登場したのは .Fx 4.3 で、2001 年 5 月のことです。 diff --git a/ja_JP.eucJP/man/man8/ftpd.8 b/ja_JP.eucJP/man/man8/ftpd.8 index 555d488e29..b4983a36aa 100644 --- a/ja_JP.eucJP/man/man8/ftpd.8 +++ b/ja_JP.eucJP/man/man8/ftpd.8 @@ -1,509 +1,520 @@ .\" Copyright (c) 1985, 1988, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)ftpd.8 8.2 (Berkeley) 4/19/94 -.\" %FreeBSD: src/libexec/ftpd/ftpd.8,v 1.31.2.11 2002/08/20 15:01:31 yar Exp % +.\" %FreeBSD: src/libexec/ftpd/ftpd.8,v 1.31.2.14 2002/08/30 10:24:31 yar Exp % .\" .\" $FreeBSD$ .Dd January 27, 2000 .Dt FTPD 8 .Os .Sh 名称 .Nm ftpd .Nd インターネットファイル転送プロトコルサーバ .Sh 書式 .Nm -.Op Fl 46AdDEoOrRSUv +.Op Fl 46AdDEmMoOrRSUvW .Op Fl l Op Fl l .Op Fl a Ar address .Op Fl p Ar file .Op Fl t Ar timeout .Op Fl T Ar maxtimeout .Op Fl u Ar umask .Sh 解説 .Nm は、インターネットファイル転送プロトコルサーバプロセスです。 このサーバは .Tn TCP プロトコルを用いて、 .Dq ftp サービスに割り当てられたポートを listen() します。 .Dq ftp サービスについては、 .Xr services 5 を参照して下さい。 .Pp 利用可能なオプションは以下の通りです: .Bl -tag -width indent .It Fl 4 .Fl D が指定されている場合、IPv4 接続を受け付けます。 .Fl 6 もまた指定されている場合、IPv4 接続を AF_INET6 ソケット経由で受け付けます。 .Fl 6 が指定されていない場合、IPv4 接続を AF_INET ソケット経由で受け付けます。 .It Fl 6 .Fl D が指定されている場合、AF_INET6 ソケット経由の接続を受け付けます。 .It Fl a .Fl D オプションが指定されている場合、 .Ar address で指定されたアドレスに対する接続のみを許可します。 .It Fl A 匿名 ftp アクセスのみ許可します。 .It Fl d syslog の .Dv LOG_FTP のファシリティ (facility) を用いてデバッグ情報を出力します。 .It Fl D このオプションがセットされると、 .Nm は制御端末を切り離してデーモンとなり、 FTP ポートへの接続要求を待ち、 子プロセスを生成して接続要求に対応します。 この方式は .Nm を .Xr inetd 8 から起動するよりオーバヘッドが少ないため、 処理量の多いサーバで負荷を低減するのに役立ちます。 .It Fl E EPSV コマンドを無効化します。 古いファイアウォールの後ろにサーバがある場合に有用です。 .It Fl l .Xr ftp 1 セッションそれぞれの結果を、成功も失敗もともども syslog の .Dv LOG_FTP のファシリティを用いて ログに残します。 このオプションが 2 回指定されると、 retrieve (get), store (put), append, delete, make directory, remove directory, rename の各操作およびそれらの引数で指定された ファイル名も記録されます。 注意: .Dv LOG_FTP メッセージはデフォルトでは .Xr syslogd 8 によって表示されません。場合によっては .Xr syslogd 8 の設定ファイルでそれを有効にしなければなりません。 +.It Fl m +ファイルシステムのパーミッションが許す限りにおいて、 +匿名ユーザによる既存のファイルの上書きや修正を許します。 +デフォルトでは、匿名ユーザは既存のファイルを修正できず、 +特に、アップロードされるファイルは一意な名前で作成されます。 +.It Fl M +匿名ユーザによるディレクトリ作成を禁止します。 .It Fl o サーバを書き込み専用モードにします。 RETR が無効化され、 ダウンロードを禁止します。 .It Fl O 匿名ユーザのみに対し、サーバを書き込み専用モードにします。 匿名ユーザに対しては、RETR が無効化され、 匿名ダウンロードを禁止します。 本オプションは、 .Fl o も設定されている場合には、効果がありません。 .It Fl p .Fl D オプションが指定されている場合、 デーモンのプロセス ID を .Ar file に書き出します。 .It Fl r サーバを、読み取り専用モードにします。 ローカルファイルを修正し得る全コマンドは、無効化されます。 .It Fl R このオプションがセットされると、 .Nm は、ユーザ操作のセキュリティチェックや PORT 要求の制限に関して 古き良き時代の振る舞いに戻ります。 現在では、 .Nm はリモートユーザのホストの非特権ポートに向けられた PORT コマンド だけを用います (これは FTP プロトコルの仕様に違反していますが、 いくつかのセキュリティホールを閉じることができます)。 .It Fl S このオプションがセットされると、 .Nm は匿名 (anonymous) によるファイルダウンロードの全てについてのログを、ファイル .Pa /var/log/ftpd が存在する場合に限り、このファイルに残します。 .It Fl t 何も操作しないで放置した場合のタイムアウト時間を .Ar timeout 秒に設定します (デフォルトは 15 分)。 .It Fl T クライアントは異なったタイムアウト秒数を要求することもできます。 .Fl T オプションにより、 .Ar タイムアウト までの最大待ち時間を設定できます。 デフォルトは 2 時間です。 .It Fl u デフォルトのファイル生成マスクを .Ar umask にします。 この数値は 8 進数値であることを期待されます。 詳細は .Xr umask 2 を参照してください。 .It Fl U 以前のバージョンの .Nm では、パッシブモードのクライアントがサーバにデータ接続を要求すると、 サーバは 1024 〜 4999 の範囲のデータポートを使用していました。 現在のバージョンでは、サーバはデフォルトでは 49152 〜 65535 の範囲の データポートを使用しますが、 このオプションを指定することにより、以前の振る舞いに戻ります。 .It Fl v .Fl d と同じ意味です。 +.It Fl W +FTP セッションを +.Pa /var/log/wtmp +に記録しません。 .El .Pp ファイル .Pa /var/run/nologin は、ftp アクセスを拒否するのに使うことができます。 このファイルが存在する場合、 .Nm はそのファイルの内容を表示して終了します。 .Pa /etc/ftpwelcome ファイルが存在する場合、 .Nm は .Dq ready メッセージを表示する前にその内容を表示します。 もし .Pa /etc/ftpmotd ファイルが存在する場合、 ログイン成功後に .Nm はその内容を出力します。 使用される motd ファイルはログイン環境に対して相対であることに 注意してください。 つまり、匿名ユーザの場合には、 .Pa ~ftp/etc に存在することを意味じます。 .Pp この ftp サーバは、現在、以下の ftp リクエストをサポートしています。 リクエストの文字の大文字小文字の区別は無視されます。 印 [RW] が付いているリクエストは、 .Fl r が指定されると無効化されます。 .Bl -column "Request" -offset indent .It Sy リクエスト Ta Sy "説明" .It ABOR Ta "abort previous command" .It ACCT Ta "specify account (ignored)" .It ALLO Ta "allocate storage (vacuously)" .It APPE Ta "append to a file [RW]" .It CDUP Ta "change to parent of current working directory" .It CWD Ta "change working directory" .It DELE Ta "delete a file [RW]" .It EPRT Ta "specify data connection port, multiprotocol" .It EPSV Ta "prepare for server-to-server transfer, multiprotocol" .It HELP Ta "give help information" .It LIST Ta "give list files in a directory" Pq Dq Li "ls -lgA" .It LPRT Ta "specify data connection port, multiprotocol" .It LPSV Ta "prepare for server-to-server transfer, multiprotocol" .It MDTM Ta "show last modification time of file" .It MKD Ta "make a directory" .It MODE Ta "specify data transfer" Em mode .It NLST Ta "give name list of files in directory" .It NOOP Ta "do nothing" .It PASS Ta "specify password" .It PASV Ta "prepare for server-to-server transfer" .It PORT Ta "specify data connection port" .It PWD Ta "print the current working directory" .It QUIT Ta "terminate session" .It REST Ta "restart incomplete transfer" .It RETR Ta "retrieve a file" .It RMD Ta "remove a directory [RW]" .It RNFR Ta "specify rename-from file name [RW]" .It RNTO Ta "specify rename-to file name [RW]" .It SITE Ta "non-standard commands (see next section)" .It SIZE Ta "return size of file" .It STAT Ta "return status of server" .It STOR Ta "store a file [RW]" .It STOU Ta "store a file with a unique name [RW]" .It STRU Ta "specify data transfer" Em structure .It SYST Ta "show operating system type of server system" .It TYPE Ta "specify data transfer" Em type .It USER Ta "specify user name" .It XCUP Ta "change to parent of current working directory (deprecated)" .It XCWD Ta "change working directory (deprecated)" .It XMKD Ta "make a directory (deprecated) [RW]" .It XPWD Ta "print the current working directory (deprecated)" .It XRMD Ta "remove a directory (deprecated) [RW]" .El .Pp 以下に示した非標準コマンドあるいは .Tn UNIX に特有のコマンドが、SITE リクエストでサポートされています。 .Pp .Bl -column Request -offset indent .It Sy リクエスト Ta Sy 説明 .It UMASK Ta change umask, e.g. ``SITE UMASK 002'' .It IDLE Ta set idle-timer, e.g. ``SITE IDLE 60'' .It CHMOD Ta "change mode of a file [RW], e.g. ``SITE CHMOD 755 filename''" .It MD5 Ta "report the files MD5 checksum, e.g. ``SITE MD5 filename''" .It HELP Ta give help information. .El .Pp 注: 匿名ログインの場合、SITE リクエストは無効化されています。 .Pp Internet RFC 959 で規定されている ftp リクエストのうちの、これ以外のものは 解釈はされますがインプリメントされていません。 MDTM および SIZE は RFC 959 では規定されていませんが、次に改訂される FTP RFC には登場するでしょう。 サービス拒否攻撃の可能性を除去するために、 現在の転送タイプが ASCII の場合には、 10240 バイトより大きなファイルに対する SIZE リクエストは拒否されます。 .Pp ftp サーバがアクティブなファイル転送を中断するのは、ABOR コマンドの前に、 Telnet "Interrupt Process" (IP) シグナルと Telnet "Synch" シグナルが Telnet ストリーム内にある場合だけです。 これは Internet RFC 959 に記述されています。 もし、データの転送中に STAT コマンドを受けとり、その前に Telnet IP と Synch があった場合、転送ステータスが返されます。 .Pp .Nm は、 .Xr csh 1 で使われているファイル名展開を解釈します。これにより、 ユーザはメタキャラクタ .Dq Li \&*?[]{}~ を利用できます。 .Pp .Nm は、6 つのルールに従ってユーザの認証を行います。 .Pp .Bl -enum -offset indent .It ログイン名はパスワードデータベース になければならず、空のパスワードであってはいけません。 この場合、あらゆるファイルの操作に先だって、クライアント側からパスワードが 提供されていなければなりません。ユーザが S/Key のキーを持っている場合は、 USER コマンドが成功した際の応答には S/Key チャレンジを含めて送られます。 クライアントは、それに対して PASS コマンドを使って応答する際に、 通常のパスワードか S/Key のワンタイムパスワードのどちらをつけて応答 するかを選択できます。サーバはどちらのパスワードを受け取ったかを自動的に 判定し、それに応じて認証を試みます。S/Key の認証に関する詳細は .Xr key 1 を参照して下さい。S/Key は Bellcore 社の商標です。 .It ログイン名はファイル .Pa /etc/ftpusers に載っていてはいけません。 .It ログイン名はファイル .Pa /etc/ftpusers で指定されているグループのメンバであってはいけません。 このファイルでグループ名として解釈されるエントリの先頭には アットマーク .Ql \&@ が付きます。 .It ユーザは .Xr getusershell 3 が返す標準のシェルを持っていなければなりません。 .It ユーザ名がファイル .Pa /etc/ftpchroot に載っているか、そのファイルにあるグループエントリ (つまり .Ql \&@ で始まるエントリ) のメンバである場合、アカウント .Dq anonymous や .Dq ftp と同様、 .Xr chroot 2 によって、 そのセッションのルートディレクトリが ユーザのログインディレクトリに変ります (次の項目を参照して下さい)。 この機能は、 .Xr login.conf 5 でブール型フラグ "ftp-chroot" をオンにしても有効になります。 しかし、ユーザは依然、パスワードを与える必要があります。 この特徴は、完全に匿名 (anonymous) なアカウントと 完全な特権のあるアカウントの間での妥協的な利用のためのものです。 このアカウントは匿名アカウントで設定するのと同様に設定されていなければ なりません。 .It もしユーザ名が .Dq anonymous または .Dq ftp の場合は、匿名の ftp アカウントがパスワードファイル (ユーザ .Dq ftp ) で提供されていなければなりません。 この場合、ユーザはどのようなパスワードでもログインを許可されます (慣習としては ユーザの email アドレスをパスワードとして用いることになっています)。 .Fl S オプションがセットされていると、全ての転送操作も記録されます。 .El .Pp 最後のケースの場合、 .Nm は特別な手段でクライアントのアクセス権を制限します。 サーバは .Dq ftp ユーザのホームディレクトリへ .Xr chroot 2 します。 システムのセキュリティが侵害されないために、 .Dq ftp サブツリーは、以下の規則に従って慎重に構築することを推奨します。 .Bl -tag -width "~ftp/pub" -offset indent .It Pa ~ftp ホームディレクトリは .Dq root の所有とし、誰も書き込みできないようにします。 .It Pa ~ftp/etc このディレクトリは .Dq root の所有とし、誰も書き込みできないようにします (モード 555)。 .Xr ls が所有者を数字でなく名前で表示できるようにするために、 ファイル pwd.db ( .Xr passwd 5 参照) 及び .Xr group 5 が必要です。 ファイル .Xr passwd 中のパスワードは使用されませんので、本当のパスワードを入れてはいけません。 ファイル .Pa ftpmotd が存在すると、ログイン成功後、その内容が表示されます。 このファイルのモードは 444 とすべきです。 .It Pa ~ftp/pub 本ディレクトリおよびそれ以下のサブディレクトリは、 ここにファイルを置くことに対して責任のあるユーザおよびグループにより 所有されるべきであり、彼等によってのみ書き込み可能であるべきです (モード 755 または 775)。 .Dq ftp またはそのグループが所有したり書き込み可能であるべきではありません。 そのようにしてしまうと、 ゲストユーザが、望まないファイルでディスクを一杯にできてしまいます。 .El .Pp システムに複数の IP アドレスがある場合、 .Nm は仮想ホストの概念をサポートします。 仮想ホストは、複数の匿名 ftp 領域それぞれを別々のインターネットアドレス に割り当てる機能を提供します。 ファイル .Pa /etc/ftphosts は各仮想ホストに関連した情報を保持します。 各ホストはそれぞれの行で定義され、 各行は空白で区切ったいくつかのフィールドからなります: .Bl -tag -offset indent -width hostname .It hostname 仮想ホストのホスト名あるいは IP アドレス。 .It user システムのパスワードファイル中のユーザレコードを含みます。 普通の匿名 ftp と同様に、このユーザのアクセス UID, GID および グループによって匿名 ftp 領域のファイルアクセス権が決まります。 匿名 ftp 領域 (ログイン時にユーザが chroot するディレクトリ) は、 そのアカウントに対するホームディレクトリとして決定されます。 他の ftp アカウントのユーザ ID およびグループも、 標準 ftp ユーザと同じであって構いません。 .It statfile 全てのファイル転送のログが記録されるファイル。デフォルトでは .Pa /var/log/ftpd です。 .It welcome サーバがプロンプトを出す前に表示される welcome メッセージ。デフォルトでは .Pa /etc/ftpwelcome です。 .It motd このファイル内容はユーザがログインした後に表示されます。デフォルトでは .Pa /etc/ftpmotd です。 .El .Pp 文字 '#' で開始する行は無視されますので、コメントを含むことが可能です。 .Pp プライマリ IP アドレスあるいはホスト名に対する仮想ホストを定義すると、 そのアドレスへの ftp ログインのデフォルト値が変更されます。 \&'user', 'statfile', 'welcome', 'motd' の各フィールドは デフォルト値を用いる場合、ブランクのままもしくはハイフン一つ \&'-' と しても構いません。 .Pp いかなる匿名ログインの設定についても言えることですが、 設定と保守には十分に注意を払い、セキュリティ上の問題をきたさないよう 防御しなければなりません。 .Pp .Nm は、リモートからのファイル一覧表示要求に対応するための内部サポートを持ち、 chroot された環境でもそれ以外でも .Pa /bin/ls を実行しなくなります。 .Pa ~/bin/ls の実行形式ファイルは chroot されたディレクトリになくてよく、 .Pa ~/bin ディレクトリも存在する必要はありません。 .Sh 関連ファイル .Bl -tag -width /etc/ftpwelcome -compact .It Pa /etc/ftpusers 歓迎されない/制限を受けるユーザのリスト。 .It Pa /etc/ftpchroot chroot される一般ユーザのリスト。 .It Pa /etc/ftphosts 仮想ホストのための設定ファイル .It Pa /etc/ftpwelcome welcome メッセージ。 .It Pa /etc/ftpmotd login 後の welcome メッセージ。 .It Pa /var/run/nologin 内容を表示し、アクセスを拒否します。 .It Pa /var/log/ftpd 匿名による転送のログファイル。 .El .Sh 関連項目 .Xr ftp 1 , .Xr key 1 , .Xr umask 2 , .Xr getusershell 3 , .Xr login.conf 5 , .Xr inetd 8 , .Xr syslogd 8 .Sh バグ 特権ポート番号を用いてソケットを作成するために、 ftpd はスーパユーザの権限で実行させて下さい。 サーバはログインユーザの実効ユーザ ID を保持しておき、 アドレスをソケットにバインドする場合にのみスーパユーザの権限を使います。 考えられるセキュリティホールについてはかなり詳細にわたって調べ込みをおこないましたが、 それでも不完全かもしれません。 .Sh 歴史 .Nm コマンドは .Bx 4.2 から登場しました。 IPv6 サポートは WIDE Hydrangea IPv6 スタックキットで追加されました。 diff --git a/ja_JP.eucJP/man/man8/ifconfig.8 b/ja_JP.eucJP/man/man8/ifconfig.8 index 31ac426b6d..f1fae341c5 100644 --- a/ja_JP.eucJP/man/man8/ifconfig.8 +++ b/ja_JP.eucJP/man/man8/ifconfig.8 @@ -1,697 +1,701 @@ .\" Copyright (c) 1983, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgment: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" From: @(#)ifconfig.8 8.3 (Berkeley) 1/5/94 -.\" %FreeBSD: src/sbin/ifconfig/ifconfig.8,v 1.27.2.20 2002/06/29 18:10:12 ume Exp % +.\" %FreeBSD: src/sbin/ifconfig/ifconfig.8,v 1.27.2.21 2002/08/30 14:23:38 sobomax Exp % .\" .\" $FreeBSD$ .\" .Dd July 2, 2001 .Dt IFCONFIG 8 .Os .Sh 名称 .Nm ifconfig .Nd ネットワークインタフェースのパラメータの設定を行なう .Sh 書式 .Nm .Op Fl L .Op Fl m .Ar interface .Op Cm create .Op Ar address_family .Oo .Ar address .Op Ar dest_address .Oc .Op Ar parameters .Nm .Ar interface .Cm destroy .Nm .Fl a .Op Fl L .Op Fl d .Op Fl m .Op Fl u .Op Ar address_family .Nm .Fl l .Op Fl d .Op Fl m .Op Fl u .Op Ar address_family .Nm .Op Fl L .Op Fl d .Op Fl u .Op Fl C .Sh 解説 .Nm は、ネットワークインタフェースに対してネットワークアドレス の割り当てを行ない、ネットワークインタフェースのパラメータの設定を行ないます。 .Nm は、システム立ち上げ 時に、マシンが備える各ネットワークインタフェースに対してネットワークアドレス を割り当てるように使用しなければなりません。また、一旦各ネットワークインタフェ ースに対し設定したネットワークアドレスを再定義したり、パラメータの設定を 変えたりすることも可能です。 .Pp 以下のオプションを使用可能です: .Bl -tag -width indent .It Ar address .Tn DARPA Ns -Internet ファミリでは、アドレスはホスト名データベース .Xr hosts 5 に登録されているホスト名であるか、もしくは インターネット標準の .Dq ドット表記 です。 .Pp CIDR 表現 (スラッシュ表現としても知られています) もまた、 ネットマスクの表現に使用可能です。 つまり、 .Li 192.168.0.1/16 のようなアドレスを指定可能です。 .Pp .Dq inet6 ファミリでは、 .Li ::1/128 のようなスラッシュ表現を使用して、プレフィックス長も指定可能です。 更なる情報については、後述の .Cm prefixlen パラメータを参照してください。 .\" ゼロックスネットワークシステム(tm)ファミリでは、 .\" アドレスは .\" .Ar net:a.b.c.d.e.f .\" という形式です。 .\" ここで .\" .Ar net .\" は割り当てるネットワーク番号(10進数)、 .\" 残りの .\" .Ar a .\" から .\" .Ar f .\" までは .\" ホスト番号を表す 6 バイトであり 16 進数で指定します。 .\" ホスト番号は IEEE 802 プロトコル (Ethernet, FDDI, Token Ring) .\" インタフェースでは省略可能です。 .\" ホスト番号指定を省略した場合には、 .\" 一番目のインタフェースのハードウェア物理アドレスを .\" すべてのインタフェースにおいて使用します。 .\" .Tn ISO .\" ファミリでは、 .\" ゼロックスファミリと同じ長さのアドレスを、 .\" 長い 16 進数の文字列で指定します。 .\" 違いは、 .\" ドットが続いた場合にはそのバイトはゼロを表すことと、 .\" ドットはオプションであることです .\" (ドットはネットワークバイトオーダの長い数字列を .\" 注意深く扱うために使用します)。 .Pp リンクレベル .Pq Dq link アドレスが、コロン区切りの 16 進数の連続で指定されます。 例えばイーサネットインタフェースに新規 MAC アドレスを 設定するために使用可能ですが、 使用される機構はイーサネットインタフェースに限ったものではありません。 本オプション指定時にインタフェースが既に up である場合、 インタフェースを一時的に down にしてから再度 up にします。 本オプション使用時にインタフェースが既に これは、下位のイーサネットハードウェアの受信フィルタが 正しくプログラムされたことを保証するためです。 .It Ar address_family 他のパラメータの解釈に影響するネットワーク アドレスファミリ を指定します。 インタフェースが異なるプロトコルの送信を異なる名前付け体系で 受けることがあるので、アドレスファミリを指定しておくことをお勧めします。 本コマンドでサポートされるプロトコルファミリは、 .Dq inet , .Dq inet6 , .Dq atalk , .Dq ipx , .\".Dq iso , .Dq link .\" .Dq ns です。 デフォルトは .Dq inet です。 .Dq ether と .Dq lladdr は .Dq link の同義語です。 .It Ar dest_address ポイントツーポイントリンクにおける他端のアドレスを指定します。 .It Ar interface インタフェースパラメータは、 .Dq name unit の形式で表現されます。 例えば .Dq Li ed0 です。 .El .Pp .Nm では以下のパラメータが利用できます: .Bl -tag -width indent .It Cm add .Cm alias パラメータの別名です。 .Bsx との互換性のために導入されました。 .It Cm alias 指定したインタフェースに、ネットワークアドレスを追加して指定します。 これはネットワーク番号を変更した際に、以前のアドレスに送られるパケットを 受けとりたい場合などに便利です。 アドレスが、 本インタフェースの最初のネットワークアドレスと同じサブネット上の場合、 衝突しないネットマスクを指定する必要があります。 通常、 .Li 0xffffffff が最適です。 .It Fl alias 指定したネットワークアドレスを無効にします。本機能は、alias で不正なアドレスを 指定した場合や、すでに指定したアドレスが必要ない場合などに使用します。 誤った NS アドレスをホスト部分とともに指定した場合には、 NS アドレスを全て無効にすることにより再度ホスト部分を指定可能となります。 .It Cm anycast (inet6 のみ) 設定されるアドレスはエニーキャスト (anycast) アドレスであると指定します。 現在の仕様では、ルータのみがエニーキャストアドレスに設定可能です。 エニーキャストアドレスは、 出力 IPv6 パケットの送信元アドレスとしては使用されません。 .It Cm arp アドレス解決プロトコル .Pq Xr arp 4 を用いてネットワークレベルのアドレスとリンクレベル のアドレスの対応を取ることを可能にします (デフォルト)。この機能は、 .Tn DARPA インターネットアドレスと .Tn IEEE 802 の 48 ビット MAC アドレス (Ethernet, FDDI, Token Ring のアドレス) の間の対応を取るように作られています。 .It Fl arp アドレス解決プロトコル .Pq Xr arp 4 の使用を禁止します。 .It Cm broadcast ネットワークに対するブロードキャストアドレスを指定します。 ブロードキャストアドレスのデフォルト値は、 ホスト部のビットがすべて 1 になったアドレスです。 .It Cm debug ドライバ依存のデバッグモードを有効にします。 通常コンソールへのエラーログを有効にします。 .It Fl debug ドライバ依存のデバッグモードを無効にします。 +.It Cm promisc +インタフェースを、永続的な無差別モードにします。 +.It Fl promisc +インタフェースの永続的な無差別モードを、無効にします。 .It Cm delete .Fl alias パラメータの別名です。 .It Cm down 指定したネットワークインタフェースに .Dq down とマークします。 .Dq down と マークされたインタフェースに対しては、システムはメッセージの送信を行ない ません。可能であれば、そのインタフェースは受信も不可能となるように リセットされます。この動作は、そのインタフェースを用いる ルーティングを使用しないよう自動的に設定するものではありません。 .It Cm eui64 (inet6 のみ) インタフェースインデックス .Pq IPv6 アドレスの下位 64 ビット を自動的に埋めます。 .\" .It Cm ipdst .\" リモートネットワーク向け NS パケットをカプセル化している IP パケットを .\" 受信する、インターネットホストを指定するために使用します。 .\" 外見上 point to point リンクが構成され、 .\" 指定されたアドレスは、 .\" デスティネーションの NS アドレスとネットワークアドレスとされます。 .\" .Tn CLNP .\" パケットの IP カプセル化はこれとは異なった方法で実現されます。 .It Cm media Ar type ドライバがメディア選択能力を持つ場合、 インタフェースのメディアタイプを .Ar type に設定します。 インタフェースによっては、 複数の異なった物理メディアコネクタのうちのいずれかを 排他的に使用することをサポートします。 例えば、10Mb/s Ethernet インタフェースには .Tn AUI とツイストペアコネクタをサポートするものがあります。 メディアタイプを .Dq 10base5/AUI に設定すると、AUI ポートを現在のアクティブなコネクタとします。 また .Dq 10baseT/UTP に設定すると、ツイストペアをアクティブにします。 使用可能なタイプの完全なリストは、 インタフェースドライバ固有の文書やマニュアルページを参照してください。 .It Cm mediaopt Ar opts ドライバがメディア選択能力を持つ場合、 インタフェースのメディアオプションを設定します。 .Ar opts 引数はコンマで区切ったオプションリストで、インタフェースに適用されます。 使用可能なオプションの完全なリストは、 インタフェースドライバ固有のマニュアルページを参照してください。 .It Fl mediaopt Ar opts インタフェースのメディアオプションを無効にします。 .It Cm tunnel Ar src_addr dest_addr (IP トンネルデバイスのみ) IP トンネルインタフェース .Pq Xr gif 4 用の、 物理的な始点アドレスと終点アドレスを設定します。 引数 .Ar src_addr と .Ar dest_addr は、カプセル化する IPv4/IPv6 ヘッダ用の、外部の始点/終点として解釈されます。 .It Cm deletetunnel 以前に .Cm tunnel で設定した IP トンネルインタフェースの、 物理的な始点アドレスと終点アドレスの設定を解除します。 .It Cm create 指定したネットワーク擬似デバイスを作成します。 ユニット番号無しでインタフェースが指定されると、 任意のユニット番号で新規デバイスを作成しようとします。 任意のデバイスの作成に成功すると、新規デバイス名を標準出力へ表示します。 .It Cm destroy 指定したネットワーク擬似デバイスを破壊します。 .It Cm plumb .Cm create パラメータの別名です。 .Tn Solaris との互換性のためにあります。 .It Cm unplumb .Cm destroy パラメータの別名です。 .Tn Solaris との互換性のためにあります。 .It Cm vlan Ar vlan_tag インタフェースが vlan 擬似インタフェースの場合、vlan タグ値を .Ar vlan_tag に設定します。 この値は 16 ビット数値であり、vlan インタフェースから送られるパケットの 802.1Q vlan ヘッダの作成に使用されます。 .Cm vlan と .Cm vlandev は同時に設定される必要があることに注意してください。 .It Cm vlandev Ar iface インタフェースが vlan 擬似デバイスの場合、物理インタフェース .Ar iface を関連付けます。 vlan インタフェースから送信されるパケットは、 802.1Q vlan カプセル化付きで、指定された物理インタフェース .Ar iface へ向けて転換 (divert) されます。 親インタフェースが受信した 802.1Q カプセル化付きのパケットに 正しい vlan タグが付いていた場合、 そのパケットは関連付けられた vlan 擬似インタフェースへ転換されます。 vlan インタフェースは、 親インタフェースのフラグと親のイーサネットアドレスが割り当てられます。 .Cm vlandev と .Cm vlan は同時に設定される必要があります。 vlan インタフェースが既に物理インタフェースと関連付けられている場合、 このコマンドは失敗します。 別の物理インタフェースへ関連付けを変更するには、 既存の関連付けをまずクリアする必要があります。 .Pp 注: vlan インタフェースで .Cm link0 フラグをセットした場合、vlan 擬似インタフェースの振舞いが変わります: 親インタフェースが自身の vlan タグの挿入と取り出しをサポートすること、 vlan インタフェースが親に対して無修正でパケットを渡すべきことを、 .Cm link0 は vlan インタフェースに対して通知します。 .It Fl vlandev Ar iface ドライバが vlan 擬似ドライバの場合、物理インタフェース .Ar iface とドライバとの関連付けを解除します。 これにより、vlan インタフェースとその親との間のリンクを破壊し、 vlan タグとフラグとリンクアドレスをクリアし、 インタフェースをシャットダウンします。 .It Cm metric Ar n インタフェースのルーティングメトリックを .Ar n で指定します。初期値は 0 です。 ルーティングメトリックは、ルーティングプロトコル .Pq Xr routed 8 で使用されます。 .It Cm mtu Ar n そのインタフェースの最大転送単位 (MTU) を .Ar n に設定します。デフォルト値はインタフェースに依存します。 MTU はインタフェースに送られるパケットの大きさを制限するのに用いられます。 MTU を設定できなかったり、設定出来る値の範囲に制限のある インタフェースがあります。 .It Cm netmask Ar mask .\" (inet と ISO) (inet のみ) ネットワークをサブネットワークに細分割する際に、ネットワークアドレスとして リザーブするアドレスを指定します。 mask が指定する部分は、 アドレスのネットワーク部とサブネット部です。 サブネット部はアドレスのホスト部の一部です。 mask は、 .Ql 0x ではじまる16進数、 ドット表記のインターネットアドレス形式、 ネットワークテーブル .Xr networks 5 に記述されている仮想ネットワーク名のいずれかで指定できます。 mask での 32 ビットアドレスにおける 1 であるビットの部分は、 ネットワーク部もしくはサブネット部として使用します。 0 であるビットの部分はホスト部として使用します。 mask は少なくともネットワーク部を含む必要があり、 サブネット部はネットワーク部に連続する必要があります。 .Pp ネットマスクはまた、CIDR 表現で、アドレスの後に指定可能です。 更なる情報については、前述の .Ar address オプションを参照してください。 .It Cm prefixlen Ar len (inet6 のみ) .Ar len ビットを、ネットワークからサブネットワークへの分割用に予約すると、 指定します。 .Ar len は整数であることが必要であり、 文法的な理由で 0 から 128 の間であることが必要です。 現在の IPv6 の割り当て規則では、ほぼ常に 64 です。 本パラメータを省略すると、64 が使用されます。 .Pp プレフィックスは、 アドレスの後に、スラッシュ表現を指定することでも指定可能です。 更なる情報については、前述の .Ar address オプションを参照してください。 .\" see .\" Xr eon 5 . .\" .It Cm nsellength Ar n .\" .Pf ( Tn ISO .\" のみ) .\" .Tn NSAP .\" に後続するローカル識別に使用するバイト数を指定します。 .\" この部分は .\" .Tn NET .\" (Network Entity Title) .\" として扱われます。 .\" バイト数のデフォルト値は 1 であり、US .\" .Tn GOSIP .\" 準拠です。 .\" ifconfig コマンドで設定するISO アドレスが、 .\" .Tn NSAP .\" です。 .\" 例えば .\" .Tn US GOSIP .\" では、20 文字の 16 進数を .\" .Tn ISO NSAP .\" において指定し、 .\" インタフェースに割り当てる必要があります。 .\" .Tn AFI .\" 37 タイプアドレスにおいて、数字が 1 とは異なると便利であるのは、 .\" それなりの理由があります。 .It Cm range Ar netrange Appletalk において .Ar netrange に返答するようにインタフェースを設定します。 書式は .Ar startnet Ns - Ns Ar endnet です。 Appletalk は netmask ではなくこの方法を使用しますが、 .Fx の内部においては netmask の集合として実装しています。 .It Cm remove .Fl alias パラメータの別名です。 BSD/OS との互換性のために導入されました。 .It Cm phase これに続く引数は、 インタフェースに接続された Appletalk ネットワークの バージョン (フェーズ) を指定します。 1 または 2 が許されています。 .Sm off .It Cm link Op Cm 0 No - Cm 2 .Sm on 指定したインタフェースのリンクレベルでの特殊な処理を有効にします。 3 つのオプション の実際の効果はインタフェース依存です。しかしながら、これらのオプションは、 一般的には特殊なオペレーションモードを選択するのに用いられます。この例として、 SLIP 使用時のデータ圧縮や、Ethernet カードのコネクタ選択を行います。 各ドライバごとのマニュアルページに 詳細が記してあるので、詳しくはそちらの方を参照して下さい。 .Sm off .It Fl link Op Cm 0 No - Cm 2 .Sm on 指定したインタフェースのリンクレベルでの特殊な処理を無効にします。 .It Cm up 指定したネットワークインタフェースに .Dq up とマークします。 本オプションは、 .Dq Nm Cm down を行なった後にインタフェースを有効にするのに用いられます。 最初にインタフェースにアドレスを設定した場合には、自動的に本指定はされたものと して扱います。もし、down とマークされていたインタフェースがリセットされた場合、 ハードウェアは再初期化されます。 .It Cm ssid Ar ssid IEEE 802.11 無線インタフェース用であり、 希望するサービスセット識別子 (SSID; 別名はネットワーク名) を設定します。 SSID は、32 文字までの文字列であり、 通常の文字列の形式か .Ql 0x を前に付けた 16 進数の形式で、指定可能です。 更に、SSID に .Ql - を設定することで、これを消去可能です。 .It Cm nwid Ar ssid .Cm ssid パラメータの別名。 .Nx との互換性のためにあります。 .It Cm stationname Ar name IEEE 802.11 無線インタフェース用であり、 このステーションの名前を設定します。 ステーション名は、本当は IEEE 802.11 プロトコルの一部ではないようですが、 すべてのインタフェースがこれをサポートしているようです。 そのようなものですから、 同じもしくは実際的に同じ機器にとってのみ有用であるようです。 .It Cm station Ar name .Cm stationname パラメータの別名。 .Bsx との互換性のためにあります。 .It Cm channel Ar number IEEE 802.11 無線インタフェース用であり、 希望するチャネルを設定します。 チャネルの範囲は 1 から 14 ですが、 アダプタがどの地域用に製造されたかに、利用可能な選択肢は依存します。 チャネルを 0 に設定すると、アダプタのデフォルト設定になります。 アドホックモード以外では、多くのアダプタがこの設定を無視します。 .It Cm authmode Ar mode IEEE 802.11 無線インタフェース用であり、 インフラストラクチャモードでの希望する認証モードを設定します。 すべてのアダプタがすべてのモードをサポートしているわけではありません。 正当なモードは .Dq none , .Dq open , .Dq shared です。 モードは、大文字小文字を区別しません。 .It Cm powersave IEEE 802.11 無線インタフェース用であり、省電力モードを有効にします。 .It Fl powersave IEEE 802.11 無線インタフェース用であり、省電力モードを無効にします。 .It Cm powersavesleep Ar sleep IEEE 802.11 無線インタフェース用であり、 希望する最大省電力スリープ時間をミリ秒で指定します。 .It Cm wepmode Ar mode IEEE 802.11 無線インタフェース用であり、希望する WEP モードを設定します。 すべてのアダプタがすべてのモードをサポートしているわけではありません。 正当なモードは .Dq off , .Dq on , .Dq mixed です。 .Dq mixed モードは、暗号化トラフィックと非暗号化トラフィックの両方を許す アクセスポイントとの関係を許すことを、アダプタに明示的に指定します。 両方を許すアダプタにおける .Dq on は、 アクセスポイントが暗号化接続のみを許可することが必要であることを意味します。 他のアダプタにおける .Dq on は、一般的に .Dq mixed の別名です。 モードは、大文字小文字を区別しません。 .It Cm weptxkey Ar index IEEE 802.11 無線インタフェース用であり、送信に使用する WEP 鍵を設定します。 .It Cm wepkey Ar key Ns | Ns Ar index : Ns Ar key IEEE 802.11 無線インタフェース用であり、選択された WEP 鍵を設定します。 .Ar index が指定されない場合、鍵 1 が設定されます。 WEP 鍵の長さは、5 文字または 13 文字 (40 ビットまたは 104 ビット) であり、 ローカルネットワークとアダプタの機能に依存します。 通常の文字列の形式か .Ql 0x を前に付けた 16 進数の形式で、指定可能です。 鍵は、 .Ql - を設定することで、これを消去可能です。 WEP がサポートされていれば、最低 4 個の鍵があります。 アダプタによっては 4 個を越える鍵をサポートするものもあります。 そのような場合、最初の 4 個の鍵 (1-4) が標準の一時鍵となり、 他の鍵がアダプタ固有の鍵となります。 後者は、例えば、NVRAM に格納される永続鍵です。 .It Cm wep .Cm wepmode on の別の指定方法。 .Bsx との互換性のためにあります。 .It Fl wep .Cm wepmode off の別の指定方法。 .Bsx との互換性のためにあります。 .It Cm nwkey key 以下の、別の指定方法。 .Pp .Dq Li "wepmode on weptxkey 1 wepkey 1:key wepkey 2:- wepkey 3:- wepkey 4:-" .Pp .Nx との互換性のためにあります。 .It Cm nwkey Xo .Sm off .Ar n : k1 , k2 , k3 , k4 .Sm on .Xc 以下の、別の指定方法。 .Pp .Dq Li "wepmode on weptxkey n wepkey 1:k1 wepkey 2:k2 wepkey 3:k3 wepkey 4:k4" .Pp .Nx との互換性のためにあります。 .It Fl nwkey .Cm wepmode off の別の指定方法。 .Pp .Nx との互換性のためにあります。 .El .Pp .Nm は引数としてネットワークインタフェース以外に何のオプションも与えられない場合、 ネットワークインタフェースの現在の設定状態を表示します。 プロトコルファミリが指定されている場合、 .Nm はプロトコルファミリに特有の情報についてのみ表示します。 .Pp ドライバがメディア選択をサポートする場合、 サポートされているメディアのリストが出力に含まれます。 .Pp インタフェース名の前に .Fl m フラグが渡されると、 指定したインタフェースに対してサポートされているすべてのメディアを .Nm は表示します。 オプションとして、インタフェース名の代りに .Fl L フラグを指定すると、IPv6 用のアドレスの生存時間が、 時刻オフセット文字列として表示されます .Pp .Fl a フラグを指定できます。そうすると、 .Nm はシステム上の全インタフェースを表示します。 .Fl d フラグはこれを down したインタフェースに限定し、 .Fl u フラグはこれは up したインタフェースに限定します。 引数を指定しないと、 .Fl a が暗黙的に指定されます。 .Pp .Fl l フラグを使用するとシステム上の使用可能な全インタフェースのリストを、 その他の情報は付加せずに表示します。 このフラグは他のフラグとは排他的ですが、 .Fl d (down したインタフェースのみをリスト) と .Fl u (up したインタフェースのみをリスト) は例外です。 .Pp .Fl C フラグは、システム上で利用可能なインタフェース複製者をすべて列挙します。 他の情報は表示されません。 本フラグは、他のフラグおよびコマンドと共には使用できません。 .Pp スーパユーザのみがネットワークインタフェースの設定を変更できます。 .Sh 注 メディア選択システムは比較的新しく、いくつかのドライバのみサポートしています (必要があるものも限られています)。 .Sh 診断 指定したインタフェースが存在しない、 要求したアドレスが未知のものである、 ユーザがネットワークインタフェースの設定を変更する権限を持っていない、 といったメッセージを表示します。 .Sh バグ IPv6 ノード間のいくつかの基本的な通信用に、 IPv6 リンクローカルのアドレスが必要です。 これらを .Nm で手動で削除すると、カーネルが非常に奇妙な動作を示すことがあります。 よって、このような手動削除は、強く非推奨です。 .Sh 関連項目 .Xr netstat 1 , .Xr netintro 4 , .\" .Xr eon 5 , .Xr rc 8 , .Xr routed 8 .Sh 歴史 .Nm コマンドは .Bx 4.2 から登場しました。 diff --git a/ja_JP.eucJP/man/man8/ppp.8 b/ja_JP.eucJP/man/man8/ppp.8 index e11462b859..60f51ee703 100644 --- a/ja_JP.eucJP/man/man8/ppp.8 +++ b/ja_JP.eucJP/man/man8/ppp.8 @@ -1,5609 +1,5609 @@ .\" .\" Copyright (c) 2001 Brian Somers .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" %FreeBSD: src/usr.sbin/ppp/ppp.8,v 1.209.2.34 2002/08/08 09:11:37 blackend Exp % +.\" %FreeBSD: src/usr.sbin/ppp/ppp.8,v 1.209.2.35 2002/08/26 23:24:44 brian Exp % .\" .\" $FreeBSD$ .\" .\" WORD: expect string 受信待ち文字列[chat.8,ppp.8] .Dd 20 September 1995 .nr XX \w'\fC00' .Dt PPP 8 .Os .Sh 名称 .Nm ppp .Nd PPP (Point to Point Protocol) (別名 user-ppp) .Sh 書式 .Nm .Op Fl Va mode .Op Fl nat .Op Fl quiet .Op Fl unit Ns Ar N .Op Fl alias .Op Ar system ... .Sh 解説 本プログラムは、ユーザプロセスとして動作する .Em PPP パッケージです。 .Em PPP は通常、( .Xr pppd 8 でそうなっているように) カーネルの一部として実装されますが、 そのため、デバッグや動作の変更が少々難しい場合があります。 それに対し、この実装ではトンネルデバイスドライバ (tun) を利用して、 ユーザプロセスで .Em PPP を実現しています。 .Pp .Fl nat フラグは、 .Dq nat enable yes と等価であり、 .Nm のネットワークアドレス変換機能を有効にします。 これにより .Nm は、内部 LAN 上の全マシンに対する NAT、 すなわちマスカレーディングエンジンとして動作します。 詳細は .Xr libalias 3 を参照してください。 .Pp .Fl quiet フラグを指定すると、 .Nm は起動時に静かになり、 モードとインタフェースを標準出力へ表示しなくなります。 .Pp .Fl unit フラグは、 .Nm が .Pa /dev/tun Ns Ar N のみのオープンを試みるように指定します。 通常、 .Nm は .Ar N に対して値 0 から開始し、成功するまで .Ar N を値 1 ずつ増加させて、トンネルデバイスのオープンを試みます。 デバイスファイルが存在しないために、3 回連続して失敗すると、諦めます。 .Pp .Nm は次の .Va mode を理解します: .Bl -tag -width XXX -offset XXX .It Fl auto .Nm は tun インタフェースをオープンし、 これを設定した後バックグラウンドになります。 出力データが tun インタフェース上で検出されるまでリンクはアップせず、 出力データが tun インタフェース上で検出されると .Nm はリンクをアップしようとします。 .Nm がリンクをアップしようとしている間に受信したパケット (最初のものを含みます) は、デフォルトで 2 分間キューにとどまります。 後述の .Dq set choked コマンドを参照してください。 .Pp .Fl auto モードでは、 コマンドラインには少なくとも 1 つの .Dq system を指定する必要があり (後述)、 インタフェース設定時に使用する相手の IP アドレスを指定する .Dq set ifaddr を、システムプロファイルで実行する必要があります。 通常、 .Dq 10.0.0.1/0 のようなものが適切です。例としては、 .Pa /usr/share/examples/ppp/ppp.conf.sample の .Dq pmdemand システムを参照してください。 .It Fl background この場合、 .Nm は相手との接続をすぐに確立しようとします。 成功すると、 .Nm はバックグラウンドになり、親プロセスは終了コード 0 を返します。 失敗すると、 .Nm は非 0 の結果で終了します。 .It Fl foreground フォアグラウンドモードでは、 .Nm は相手との接続をすぐに確立しようとしますが、デーモンにはなりません。 リンクはバックグラウンドモードで作成されます。 .Nm の起動を別のプロセスから制御したい場合に有用です。 .It Fl direct これは入力接続を受け付けるために使用します。 .Nm は .Dq set device 行を無視し、リンクに記述子 0 を使用します。 .Pp コールバックの設定を行うと、ダイヤルバック時に .Nm は .Dq set device 情報を使用します。 .It Fl dedicated このオプションは、専用線で接続されたマシンのためにデザインされています。 .Nm はデバイスを常にオープンに保ち、設定チャットスクリプトは一切使用しません。 .It Fl ddial .Fl auto モードと等価ですが、なんらかの理由でリンクが落ちた場合に .Nm が再度リンクをアップすることが違います。 .It Fl interactive これは no-op であり、 前述のフラグがどれも指定されなかった場合の動作を行います。 .Nm はコマンドラインで指定されたセクションをロードし、対話プロンプトを提供します。 .El .Pp ( .Pa /etc/ppp/ppp.conf に指定される) 設定エントリ、すなわち system を、コマンドラインで 1 つ以上指定可能です。 起動時に .Nm は .Pa /etc/ppp/ppp.conf から .Dq default システムを読み込み、その後コマンドラインで指定した各 system を読み込みます。 .Sh 主な特徴 .Bl -diag .It 対話的なユーザインタフェースを提供 コマンドモードで利用する場合、ユーザがコマンドを 入力することで、簡単にリモートコンピュータとの接続の確立、 接続状態の確認、 接続の切断を行うことができます。 オプションとして、セキュリティ確保のために すべての機能をパスワードで保護することができます。 .It 手動と自動でのダイヤルをサポート 対話モードでは、直接デバイスと通信できるように .Dq term コマンドが用意されています。 リモートホストと接続されて、 .Em PPP での通信が始まったら、 .Nm はそれを検出して自動的にパケットモードに移行します。 ひとたびリモートホストとの接続に必要なコマンドシーケンスがわかったら、 後々の接続を簡単にするため、必要なダイヤル手順やログイン手順を定義した チャットスクリプトを書くことができます。 .It オンデマンドでのダイヤルアップをサポート .Fl auto モード (自動モード) では .Nm はデーモンとして動作し、 .Em PPP リンクを通して送られるパケットを待ちうけます。 パケットを検出すると、デーモンが自動的にダイヤルを行って接続を確立します。 .Fl ddial モード (直接ダイヤルモード) でも ほぼ同様に、自動ダイヤルと接続の確立を行います。 しかしながらこのモードは、送るべきパケットが存在しない場合にも、 リンクが切れていることを検出するといつでもリモートへダイヤルするという点が auto モードと異なります。 このモードは、電話料金よりも常時接続されていることが重視される場合に有用です。 3 番目の .Fl dedicated モード (専用線モード) も利用可能です。 このモードは 2 つのマシン間の専用線を対象にしています。 専用線モードでは .Nm は自発的に動作を終了することはありません - 終了するには .Dq quit all コマンドを診断ソケットを介して送る必要があります。 .Dv SIGHUP は LCP の再ネゴシエーションを強要し、 .Dv SIGTERM は終了を強要します。 .It クライアントコールバックをサポート .Nm は標準 LCP コールバックプロトコルならびに Microsoft コールバック制御プロトコル (ftp://ftp.microsoft.com/developr/rfc/cbcp.txt) を使用できます。 .It NAT、すなわちパケットエイリアシングをサポート パケットエイリアシング (別名: IP マスカレード) により、 未登録でプライベートなネットワーク上のコンピュータからも インターネットにアクセスすることが可能です。 .Em PPP ホストはマスカレードゲートウェイとして動作します。 送信パケットの IP アドレスと TCP や UDP のポート番号は どちらも NAT され、返信パケットではエイリアスが元に戻されます。 .It バックグラウンド PPP 接続をサポート バックグラウンドモードでは、接続を確立するのに成功した場合に .Nm はデーモンになります。 それ以外の場合はエラーで終了します。 これにより、 接続が成功裏に確立した場合のみコマンドを実行するようなスクリプト をセットアップすることが出来ます。 .It サーバとしての PPP 接続をサポート ダイレクトモードでは、 .Nm は標準入力/標準出力からの .Em PPP 接続を受け入れるサーバとして動作させることができます。 .It "PAP と CHAP (rfc 1994, 2433 および 2759) による認証をサポート" PAP もしくは CHAP を用いることにより、Unix スタイルの .Xr login 1 手続きをスキップし、 .Em PPP プロトコルを代りに認証に使用することが可能です。 相手が Microsoft CHAP 認証を要求し、かつ .Nm が DES をサポートするようにコンパイルされている場合、適当な MD4/DES 応答がなされます。 .It RADIUS (rfc 2138) 認証をサポート PAP と CHAP の拡張である .Em \&R Ns No emote .Em \&A Ns No ccess .Em \&D Ns No ial .Em \&I Ns No n .Em \&U Ns No ser .Em \&S Ns No ervice は、集中データベースまたは分散データベースに、 ユーザごとに異なる接続特性を含んだ認証情報を、格納できます。 コンパイル時に .Xr libradius 3 が利用可能な場合、利用するように設定すると、 .Nm はこれを使用して .Em RADIUS 要求を作成します。 .It 代理 arp (Proxy Arp) をサポート .Nm が相手のために 1 個以上の代理 arp エントリを作成するように、設定可能です。 LAN 上の各マシンでの設定を行わずに、 相手側から LAN へのルーティングを可能とします。 .It パケットのフィルタリングをサポート ユーザは 4 種類のフィルタを定義できます。 .Em in は受信パケットに対するフィルタです。 .Em out は送信パケットに対するフィルタです。 .Em dial はダイヤルを行うきっかけとなるパケットを定義するフィルタで、 .Em alive は接続を保持するためのパケットを定義するフィルタです。 .It トンネルドライバは bpf (Berkeley Packet Filter) をサポート .Em PPP リンクを流れるパケットを調べるために、 .Xr tcpdump 1 を使うことができます。 .It PPP オーバ TCP および PPP オーバ UDP をサポート デバイス名が .Em host Ns No : Ns Em port Ns .Xo .Op / Ns tcp|udp , .Xc 形式で指定された場合、 .Nm は通常のシリアルデバイスを使うのではなく、 データ転送のための TCP または UDP の 接続を開きます。 UDP 接続は、 .Nm を強制的に同期モードにします。 .It PPP オーバ ISDN をサポート .Nm がオープンすべきリンクとして 生の B チャネル i4b デバイスを指定すると、 .Xr isdnd 8 と対話して ISDN 接続を確立できます。 .It PPP オーバイーサネットをサポート (rfc 2516) .Nm が .No PPPoE: Ns Ar iface Ns Xo .Op \&: Ns Ar provider Ns .Xc の書式のデバイス指定を与えられ、 .Xr netgraph 4 が利用可能な場合、 .Nm は .Ar iface ネットワークインタフェースを使用し、 .Ar provider に対して .Em PPP オーバイーサネットを話そうとします。 .Pp .Xr netgraph 4 をサポートしないシステム上では、 .Xr pppoe 8 のような外部プログラムを使用可能です。 .It "IETF ドラフトの Predictor-1 (rfc 1978) と DEFLATE (rfc 1979) 圧縮をサポート .Nm は VJ 圧縮の他に Predictor-1 と DEFLATE 圧縮もサポートしています。 モデムは通常 (例えば v42.bis のような) 組み込みの圧縮機能を持っており、 その結果システムは .\"(訳注)「転送データレートよりも」をここにいれたいと考えています。 .\" 2.2.1R 対象(1997/04/02) Takeshi MUTOH より高いデータレートで通信できます。 これは一般には良いことですが、より高速のデータによってシリアル回線からの 割り込みが増加します。 システムはこの割り込みをモデムと通信して処理しなくてはならないため、 システムの負荷と遅延時間が増加することになります。 VJ 圧縮とは異なり、Predictor-1 と DEFLATE 圧縮はリンクを通る .Em すべての ネットワークトラフィックをあらかじめ圧縮しておくことで、オーバヘッドを 最小にします。 .It Microsoft の IPCP 拡張をサポート (rfc 1877) Microsoft の .Em PPP スタックを使用するクライアント (つまり Win95, WinNT) との間で ネームサーバのアドレスと NetBIOS ネームサーバのアドレスを ネゴシエーションできます。 .It マルチリンク PPP をサポート (rfc 1990) 接続先への複数の物理的な回線をオープンし、すべてのリンクの 帯域幅を合わせてより高いスループットを得ることができます。 .It MPPE (draft-ietf-pppext-mppe) のサポート MPPE は、Microsoft 社の Point to Point 暗号化機構です。 .Nm を設定して、Microsoft Windows の仮想プライベートネットワーク (VPN) に参加できるようになります。現在のところ、 .Nm は、CHAP 81 認証機構からしか暗号鍵を取得することができません。 MPPE を動作させるためには、DES つきで .Nm をコンパイルしなくてはなりません。 .El .Sh パーミッション .Nm はユーザ .Dv root 、グループ .Dv network 、パーミッション .Dv 04554 でインストールされます。 デフォルトでは .Nm は、起動したユーザ ID が 0 でない場合には実行しません。 これは .Dq allow users コマンドを .Pa /etc/ppp/ppp.conf に記載することにより変更することが可能です。 通常ユーザとして実行する場合には、 .Nm はユーザ ID 0 に変わり、システムの経路表の変更と、 システムロックファイルの作成と、 ppp の設定ファイルの読み込みを行います。 すべての外部コマンド ("shell" や "!bg" で実行されます) は、 .Nm を起動したユーザ ID で実行されます。 ユーザ ID 0 にて正確になにが行われているのかに興味がある場合には、 ログ機能の .Sq ID0 を参照してください。 .Sh 始める前に 最初に .Nm を実行する時には、いくつかの初期設定を整える必要があります。 .Bl -bullet .It カーネルにトンネルデバイスが含まれていることが必要です (GENERIC カーネルではデフォルトで 1 つ含まれます)。 tun デバイスが含まれていない場合や、 複数の tun インタフェースが必要な場合、 次の行をカーネル設定ファイルに追加して、 カーネルを再構築する必要があります: .Pp .Dl pseudo-device tun N .Pp ここで .Ar N は .Em PPP 接続を行いたい最大の数です。 .It .Pa /dev ディレクトリにトンネルデバイスのエントリ .Pa /dev/tunN があるかどうかを調べてください。 ここで .Sq N は、0 から始まる tun デバイスの番号です。 もし無いようならば、"sh ./MAKEDEV tunN" を実行すれば作ることができます。 これにより 0 から .Ar N までの tun デバイスが作成されます。 .It あなたのシステムの .Pa /etc/group ファイルに .Dq network グループがあり、そのグループが .Nm を使うと想定されるすべてのユーザ名を含んでいることを確かめてください。 詳細は .Xr group 5 マニュアルページを参照してください。また、これらのユーザは .Pa /etc/ppp/ppp.conf ファイルで .Dq allow users コマンドを使用してアクセス権が与えられなければなりません。 .It ログファイルを作成します。 .Nm は .Xr syslog 3 を使用して情報を記録します。通常のログファイル名は .Pa /var/log/ppp.log です。 このファイルに出力を行うためには、次の行を .Pa /etc/syslog.conf ファイルに記述してください: .Bd -literal -offset indent !ppp *.*/var/log/ppp.log .Ed .Pp .Nm の実行形式にリンクを作成することにより、複数の .Em PPP ログファイルを持つことが可能です: .Pp .Dl # cd /usr/sbin .Dl # ln ppp ppp0 .Pp として .Pa /etc/syslog.conf で .Bd -literal -offset indent !ppp0 *.*/var/log/ppp0.log .Ed .Pp とします。 .Pa /etc/syslog.conf を更新した後に、 .Xr syslogd 8 に .Dv HUP シグナルを送ることをお忘れなく。 .It 厳密には .Nm の操作とは関係ありませんが、リゾルバが正しく働くように設定した方が 良いでしょう。 これは ( .Xr named 8 を用いて) ローカルな DNS サーバを設定するか、もしくは .Pa /etc/resolv.conf ファイルに適切な .Sq nameserver 行を加えることで行われます。 詳細は .Xr resolv.conf 5 のマニュアルを参照してください。 .Pp 他の方法として、もし接続先がサポートしている場合には .Nm が接続先にネームサーバのアドレスを尋ねて、自動的に .Pa /etc/resolv.conf を更新することができます。詳細は後述の .Dq enable dns コマンドと .Dq resolv コマンドとを参照してください。 .El .Sh 手動ダイヤル 次の例では、あなたのマシン名が .Dv awfulhak であるとして説明します。 .Nm を引数無しで起動すると (前述の .Sx パーミッション 参照) 次のプロンプトが表示されます: .Bd -literal -offset indent ppp ON awfulhak> .Ed .Pp プロンプトの .Sq ON の部分は常に大文字であるべきです。ここが小文字の場合、 .Dq passwd コマンドを使用してパスワードを入力しなければならないことを意味します。 実行中の .Nm に接続し、 まだ正しいパスワードを入力していない場合にのみこのような状態になります。 .Pp .Bd -literal -offset indent ppp ON awfulhak> set device /dev/cuaa0 ppp ON awfulhak> set speed 38400 .Ed .Pp 通常ハードウェアフロー制御 (CTS/RTS) を使用します。 しかし、特定の場合 (特定の PPP 可能な端末サービスに直接接続している場合に起り得ます)、 .Nm が通信リンクにデータを書き込もうとしたときに、 永遠に来ない CTS (送信時にクリア) シグナルを待つことにより .Nm がハングします。 直通線で接続できない場合は、 .Dq set ctsrts off で CTS/RTS をオフにしてみてください。 これが必要な場合、後述の .Dq set accmap の記述も参照してください - .Dq set accmap 000a0000 も必要かもしれません。 .Pp 通常、パリティは .Dq none に設定します。これが .Nm のデフォルトです。 パリティはどちらかというと古風なエラーチェック機構であり、 今となっては使用しません。 最近のモデムは各自のエラーチェック機構を持っており、 ほとんどのリンク層プロトコル ( .Nm はこれです) はより信頼できるチェック機構を使用します。 パリティは相対的に大きなオーバヘッドを持ちますので (トラフィックが 12.5% 増加します)、 .Dv PPP がオープンされると常に無効化 ( .Dq none に設定) されます。 しかし、ISP (インターネットサービスプロバイダ) によっては、 特定のパリティ設定を接続時 ( .Dv PPP がオープンする前) に使用するものがあります。 特に、Compuserve はログイン時に偶数パリティに固執しています: .Bd -literal -offset indent ppp ON awfulhak> set parity even .Ed .Pp ここで、現在のデバイス設定がどのようになっているか見られます: .Bd -literal -offset indent ppp ON awfulhak> show physical Name: deflink State: closed Device: N/A Link Type: interactive Connect Count: 0 Queued Packets: 0 Phone Number: N/A Defaults: Device List: /dev/cuaa0 Characteristics: 38400bps, cs8, even parity, CTS/RTS on Connect time: 0 secs 0 octets in, 0 octets out Overall 0 bytes/sec ppp ON awfulhak> .Ed .Pp ここでは、直接デバイスと通信するために term コマンドを使用可能です: .Bd -literal -offset indent ppp ON awfulhak> term at OK atdt123456 CONNECT login: myispusername Password: myisppassword Protocol: ppp .Ed .Pp 相手が .Em PPP で話しはじめると、 .Nm はそれを自動的に検出してコマンドモードに戻ります。 .Bd -literal -offset indent ppp ON awfulhak> # リンクは確立していません Ppp ON awfulhak> # 接続完了、LCP 完了 PPp ON awfulhak> # 認証完了 PPP ON awfulhak> # IP アドレス合意完了 .Ed .\" your end で「あなた側」 .Pp このようにならない場合、接続先がこちらのネゴシエーション開始を 待っている可能性があります。 強制的に .Nm に接続先への PPP 設定パケットの送出を開始させるためには .Dq ~p コマンドを使い、端末モードを抜けてパケットモードに移行して下さい。 .Pp それでもログインプロンプトが得られない場合、 Unix 的なログイン/パスワード認証ではなく、PAP または CHAP の認証を、 相手は要求している可能性が非常に高いです。 正しく設定するためには、プロンプトに戻り、 認証用の名前とキーを設定し、再度接続します: .Bd -literal -offset indent ~. ppp ON awfulhak> set authname myispusername ppp ON awfulhak> set authkey myisppassword ppp ON awfulhak> term at OK atdt123456 CONNECT .Ed .Pp ここで再度、ネゴシエーションを開始するように ppp に指定できます: .Bd -literal -offset indent ~p ppp ON awfulhak> # リンクは確立していません Ppp ON awfulhak> # 接続完了、LCP 完了 PPp ON awfulhak> # 認証完了 PPP ON awfulhak> # IP アドレス合意完了 .Ed .Pp これで接続されました! プロンプトの .Sq PPP が大文字に変化して、接続されたことを知らせます。もし 3 つの P の内 いくつかだけが大文字になっている場合には、すべての文字が大文字もしくは 小文字になるまで待ってください。もし小文字に戻った場合には、それは .Nm が接続先とのにネゴシエーションに成功しなかったことを意味します。 この時点での問題解決の第一歩としては、次のようにし、再挑戦します。 .Bd -literal -offset indent ppp ON awfulhak> set log local phase lcp ipcp .Ed .Pp 詳細は、下記の .Dq set log コマンドの説明を参照してください。 この時点でも失敗する場合、 ログを有効にして再挑戦することが非常に重要です。 プロンプトの変化に注意し、あなたを助けてくれる人に報告することもまた重要です。 .Pp リンクが確立したら、show コマンドを使用することで、 どのように事態が進行しているのかが分ります: .Bd -literal -offset indent PPP ON awfulhak> show physical * モデム関連の情報がここに表示されます * PPP ON awfulhak> show ccp * CCP (圧縮) 関連の情報がここに表示されます * PPP ON awfulhak> show lcp * LCP (回線制御) 関連の情報がここに表示されます * PPP ON awfulhak> show ipcp * IPCP (IP) 関連の情報がここに表示されます * PPP ON awfulhak> show link * (高レベル) リンク関係の情報がここに表示されます * PPP ON awfulhak> show bundle * (高レベル) 論理接続関係の情報がここに表示されます * .Ed .Pp この時点で、マシンは接続先に対するホスト単位の経路 (host route) を持っています。 これはリンクの相手のホストとのみ接続可能であるという意味です。 デフォルト経路のエントリ (他の経路エントリを持たずに、全パケットを .Em PPP リンクの相手に送る ように、あなたのマシンに指示します)を追加したければ、 次のコマンドを入力してください。 .Bd -literal -offset indent PPP ON awfulhak> add default HISADDR .Ed .Pp .Sq HISADDR という文字列は、相手側の IP アドレスを表します。 既存の経路のために失敗する場合には、 .Bd -literal -offset indent PPP ON awfulhak> add! default HISADDR .Ed .Pp を用いることで既存の経路を上書きできます。 このコマンドは、実際に接続を作成する前に実行可能です。 新しい IP アドレスを接続時にネゴシエートする場合、これに従って .Nm がデフォルト経路を更新します。 .Pp ここで、(ping, telnet, ftp のような) ネットワークアプリケーションを、 あなたのマシンの別のウィンドウまたは端末で使用可能です。 現在の端末を再利用したい場合、 .Nm をバックグラウンドモードにするために、 標準のシェルのサスペンドとバックグラウンドコマンド (通常 .Dq ^Z の後に .Dq bg ) を使用可能です。 .Pp 使用可能コマンドの詳細は .Sx PPP コマンドリスト の節を参照してください。 .Sh 自動ダイヤル 自動ダイヤルを行うためには、ダイヤルとログインのチャットスクリプトを 用意しなければなりません。定義の例は .Pa /usr/share/examples/ppp/ppp.conf.sample を見てください ( .Pa /etc/ppp/ppp.conf の書式は非常に簡単です)。 各行は単一のコメント、インクルード、ラベル、コマンドのいずれかを含みます。 .Bl -bullet .It .Pq Dq # 文字で始まる行は、コメントとして扱われます。 コメント行と認識した場合、先行する空白は無視されます。 .It インクルードは語 .Sq !include から始まる行です。 1 つの引数 - インクルードするファイル - を持つ必要があります。 古いバージョンの .Nm との互換性のために、 .Dq !include ~/.ppp.conf を使用したいかもしれません。 .It ラベルは行頭から始まり、最後にコロン .Pq Dq \&: が続かなければなりません。 .It コマンド行は、最初の桁に空白かタブを含む必要があります。 .El .Pp .Pa /etc/ppp/ppp.conf ファイルには少なくとも .Dq default セクションが存在する必要があります。 このセクションは常に実行されます。 このファイルには 1 つ以上のセクションが含まれます。 セクション名は用途に応じて付けます。例えば、 .Dq MyISP はあなたの ISP を表したり、 .Dq ppp-in は入力の .Nm 構成を表したります。 .Nm を立ち上げる際に、接続先のラベル名を指定可能です。 .Dq default ラベルに関係づけられたコマンドが実行されてから、 接続先ラベルに関連づけられたコマンドが実行されます。 .Nm を引数無しで起動した場合、 .Dq default だけは実行されます。load コマンドを使用して、 .Pa /etc/ppp/ppp.conf のセクションを手動でロード可能です: .Bd -literal -offset indent ppp ON awfulhak> load MyISP .Ed .Pp セクションロード後には、 .Nm はいかなる動作も行わないことに注意してください。 これは、コマンドラインでラベルを指定した結果でも、 .Dq load コマンドを使用した結果でも同様です。 設定ファイル中で、そのラベルに対して指定されたコマンドのみが、実行されます。 一方、 .Nm を .Fl background , .Fl ddial , .Fl dedicated のいずれかのスイッチ付きで起動したときには、 .Nm が接続を確立するように、リンクモードが指示します。 更なる詳細については、後述の .Dq set mode コマンドを参照してください。 .Pp ひとたび接続が確立したなら、プロンプトの .Sq ppp は .Sq PPP に変わります: .Bd -literal -offset indent # ppp MyISP \&... ppp ON awfulhak> dial Ppp ON awfulhak> PPp ON awfulhak> PPP ON awfulhak> .Ed .Pp Ppp プロンプトは .Nm が認証フェーズに入ったことを示します。PPp プロンプトは .Nm がネットワークフェーズに入ったことを示します。PPP プロンプトは .Nm がネットワーク層プロトコルのネゴシエーションに成功し、 使用可能状態にあることを示します。 .Pp もし .Pa /etc/ppp/ppp.linkup が利用可能ならば、 .Em PPP 接続が確立された時に、その内容が実行されます。 接続が確立された後のバックグラウンドでのスクリプト実行については、 提供されている .Pa /usr/share/examples/ppp/ppp.conf.sample (使用可能な置換文字列については、後述の .Dq shell と .Dq bg を参照してください) の .Dq pmdemand の例を参照してください。 同様に、接続が閉じられると、 .Pa /etc/ppp/ppp.linkdown ファイルの内容が実行されます。 これらのファイルのフォーマットは .Pa /etc/ppp/ppp.conf と同じです。 .Pp 以前のバージョンの .Nm では、デフォルト経路のような経路は .Pa ppp.linkup ファイルで追加し直す必要がありました。 現在では .Nm は、 .Dv HISADDR もしくは .Dv MYADDR が変化したときに、自動的に .Dv HISADDR もしくは .Dv MYADDR 文字列を含むすべての経路を更新する .Sq スティッキー経路 をサポートします。 .Sh バックグラウンドダイヤル .Nm を使って非対話的に接続を確立したい場合 (例えば .Xr crontab 5 エントリや .Xr at 1 ジョブから使うような場合) には、 .Fl background オプションを使います。 .Fl background が指定された場合、 .Nm はすぐに接続を確立しようとします。 複数の電話番号が指定された場合には、各電話番号が 1 回づつ試されます。 これらに失敗すると、 .Nm は即座に終了し、0 でない終了コードを返します。 接続に成功すると .Nm はデーモンになり、呼び出し側に終了コード 0 を返します。 デーモンは、リモートシステムが接続を終了した場合、 もしくは .Dv TERM シグナルを受け取った場合に、自動的に終了します。 .Sh ダイヤルオンデマンド デマンドダイヤル機能は .Fl auto または .Fl ddial オプションにて有効にされます。この場合にも .Pa /etc/ppp/ppp.conf で定義された接続先のラベルを指定しなければなりません。 これには、リモート接続先の IP アドレスを指定するための .Dq set ifaddr コマンドも書かれていなければなりません ( .Pa /usr/share/examples/ppp/ppp.conf.sample を参照してください)。 .Bd -literal -offset indent # ppp -auto pmdemand .Ed .Pp .Fl auto または .Fl ddial が指定された時に .Nm はデーモンとして動作しますが、 .Pa /etc/ppp/ppp.conf 中で .Dq set server コマンドを使うことで、設定を確認したり変更したりすることができます。 (たとえば、 .Dq Li "set server +3000 mypasswd" とすると) 次のように診断ポートを通じて接続することができます。 .Bd -literal -offset indent # pppctl 3000 (tun0 を仮定) Password: PPP ON awfulhak> show who tcp (127.0.0.1:1028) * .Ed .Pp .Dq show who コマンドは現在 .Nm 自身に接続しているユーザの一覧を表示します。診断ソケットが閉じられる、 もしくは異なるソケットに変更された場合、すべての接続は即座に終了します。 .Pp .Fl auto モードにて 送信パケットが検出された時、 .Nm は (チャットスクリプトに基づいて) ダイヤルを行い、 通信相手に接続しようとします。 .Fl ddial モードでは回線がダウンしていることが確認された場合にはいつでも ダイヤルが行われます。 接続に失敗したら、デフォルトの動作では 30 秒間待ってから、 別の送信パケットが検出された時に接続しようとします。 .Pp この動作は .Dq set redial コマンドで変更できます。 .Pp .No set redial Ar secs Ns Xo .Oo + Ns Ar inc Ns .Op - Ns Ar max Ns .Oc Ns Op . Ns Ar next .Op Ar attempts .Xc .Pp .Bl -tag -width attempts -compact .It Ar secs は、再び接続しようとするまでの秒数です。 引数がリテラル文字列 .Sq Li random の場合には、待ち時間を 1 秒以上から 30 秒以下の間でランダムに選びます。 .It Ar inc は秒数であり、 新規にダイヤルするときに .Ar secs に加えられます。 このタイムアウト値が .Ar secs に戻るのは、接続が成功裏に確立した後だけです。 .Ar inc のデフォルト値は 0 です。 .It Ar max は、 .Nm が .Ar secs を増加させる最大回数です。 .Ar max のデフォルト値は 10 です。 .It Ar next は電話番号リストの中の次の番号をダイヤルする前に待つ秒数です。( .Dq set phone コマンドを参照してください)。これのデフォルトは 3 秒です。 繰り返しますが、引数がリテラル文字列 .Sq Li random の場合には、待ち時間を 1 秒以上 30 秒以下の間でランダムに選びます。 .It Ar attempts は、受け取った個々の送信パケットに対して、最大何回接続を試みるのかを示す 数字です。 パラメータを省略すると、以前の値は変更されません。 .Ar attempts に 0 を指定すると、接続されるまで試みを続けます。 .El .Pp .Bd -literal -offset indent set redial 10.3 4 .Ed .Pp は個々の送信パケットに対して 4 回接続を試み、 番号間の待ち時間が 3 秒で、すべての番号を試した後に 10 秒待つことを表します。 複数の電話番号が指定されている場合でも、トータルのダイヤル回数は 4 回のままです。 (それぞれの番号を 4 回ダイヤルするのではありません)。 .Pp 代りに、 .Pp .Bd -literal -offset indent set redial 10+10-5.3 20 .Ed .Pp は、 .Nm に接続を 20 回試みさせます。最初の試みの後は、 .Nm は 10 秒待ちます。 次の試みの後は 20 秒待ちということを、 6 番目の試みの後では 1 分待つところまで行います。 次の 14 回の停止は、同じ 1 分間となります。 .Nm が接続し、切断した後、再度接続に失敗した場合、 タイムアウト値は再度 10 秒から開始します。 .Pp リンクの両端が .Nm の .Fl auto ダイヤルモードを利用している場合は、 ダイヤル間隔を変更しておくのが良いでしょう。 もし、リンクの両端が同じタイムアウト時間に設定されていて、 リンクが切れて両方に送信待ちのパケットがあった場合、 両方が同時に相手を呼び出しあうことになってしまいます。 場所によっては、シリアルリンクに信頼性がなく、 切れるべきでない時にキャリアが失われるかもしれません。 セッションの途中で予期せずキャリアが失われた場合、 .Nm にリダイヤルさせることができます。 .Bd -literal -offset indent set reconnect timeout ntries .Ed .Pp このコマンドは、キャリアが失われた時に .Ar timeout 秒の間隔を置いて .Ar ntries 回まで接続を再確立するよう .Nm に指示します。例えば、 .Bd -literal -offset indent set reconnect 3 5 .Ed .Pp は、予期せぬキャリア喪失の際に .Ar 3 秒待ってから再接続を試みるように .Nm に指示します。これは .Nm があきらめる前に .Ar 5 回まで行われます。 ntries のデフォルト値は 0 (再接続しない) です。 このオプションを使用する際には注意が必要です。 もしローカル側のタイムアウトがリモート側よりもわずかに長いと、 リモート側がタイムアウトにより回線を切断した場合に、 再接続機能が (指定した回数まで) 起動されてしまいます。 注: この文脈においては、多くの LQR を喪失するとキャリア喪失を引き起こし、 ひいては再接続を引き起こします。 .Fl background フラグが指定された場合、接続が行えるまで すべての電話番号が最大 1 回ダイヤルされます。 .Dq set redial コマンドにて、リダイヤル期間の後に、 再接続回数を指定します。 リダイヤル値が指定した電話番号数より少ない場合、 指定した電話番号で使用されないものが出来ます。 プログラムを終了させるには、次のように入力してください。 .Bd -literal -offset indent PPP ON awfulhak> close ppp ON awfulhak> quit all .Ed .Pp .Dq quit コマンドは .Xr pppctl 8 もしくは .Xr telnet 1 による接続を終了しますが、 プログラム自身は終了させません。 .Nm も終了させたい場合には、 .Dq quit all を実行してください。 .Sh PPP 接続の受け入れ (方法その 1) .Em PPP 接続要求を受け入れるには、次の手順にしたがってください。 .Bl -enum .It モデムと、 (必要であれば) .Pa /etc/rc.serial が正しく設定されていることを確認します。 .Bl -bullet -compact .It フロー制御にはハードウェアハンドシェイク (CTS/RTS) を使います。 .It モデムはエコーバックを行わず (ATE0)、コマンドの結果も報告しない (ATQ1) ように設定されていなければなりません。 .El .Pp .It モデムが接続されているポートで .Xr getty 8 が起動されるように .Pa /etc/ttys を編集します。 例えば、次のように設定すれば良いでしょう: .Pp .Dl ttyd1 Qo /usr/libexec/getty std.38400 Qc dialup on secure .Pp .Xr getty 8 を起動するために .Xr init 8 プロセスに .Dv HUP シグナルを送るのを 忘れないでください: .Pp .Dl # kill -HUP 1 .Pp 通常、あなたのモデムの DTR 速度を getty と同じに設定する必要があります: .Bd -literal -offset indent # ppp ppp ON awfulhak> set device /dev/cuaa1 ppp ON awfulhak> set speed 38400 ppp ON awfulhak> term deflink: Entering terminal mode on /dev/cuaa1 Type `~?' for help at OK at OK atz OK at OK ~. ppp ON awfulhak> quit .Ed .It .Pa /usr/local/bin/ppplogin ファイルを次のような内容で作成します: .Bd -literal -offset indent #!/bin/sh exec /usr/sbin/ppp -direct incoming .Ed .Pp ダイレクトモード .Pq Fl direct では、 .Nm は標準入力と標準出力を使って動作します。クライアント動作の .Nm と同様に、 .Xr pppctl 8 を使用することで、構成された診断ポートに接続可能です。 .Pp ここで .Pa /etc/ppp/ppp.conf 中の .Ar incoming セクションが設定されていなければなりません。 .Pp .Ar incoming セクションに適当な .Dq allow users コマンドがあることを確かめておいてください。 .It 受け入れるユーザのアカウントを用意してください。 .Bd -literal ppp:xxxx:66:66:PPP Login User:/home/ppp:/usr/local/bin/ppplogin .Ed .Pp 詳細は .Xr adduser 8 と .Xr vipw 8 のマニュアル項目を参照してください。 .Dq accept dns および .Dq set nbns コマンドを使うことで IPCP によるドメインネームサーバと NetBIOS ネームサーバの ネゴシエーションを有効にすることが可能です。 下記の記述を参照してください。 .El .Sh PPP 接続の受け入れ (方法その 2) この方法は、 .Xr login 1 ではなく .Nm で接続の認証を行うという点が異なります。 .Bl -enum .It .Pa /etc/gettytab の default セクションに .Dq pp ケーパビリティを指定することで ppp を自動的に認識するように 設定してください。 .Bd -literal default:\\ :pp=/usr/local/bin/ppplogin:\\ ..... .Ed .It 上記の方法その 1 の最初の 3 手順と同じように、 シリアルデバイスを設定し、 .Xr getty 8 を有効にして、 .Pa /usr/local/bin/ppplogin を作成してください。 .It .Pa /etc/ppp/ppp.conf の .Sq incoming ラベル (もしくは .Pa ppplogin が用いるラベルならなんでも構いません) 下に .Dq enable chap か .Dq enable pap (もしくはその両方) を加えてください。 .It .Pa /etc/ppp/ppp.secret に、受け入れるユーザそれぞれについて、エントリを作成してください。 .Bd -literal Pfredxxxx Pgeorgeyyyy .Ed .El .Pp これで、 .Xr getty 8 は (HDLC フレームヘッダを認識することで) ppp 接続を検出すると、すぐに .Dq /usr/local/bin/ppplogin を実行します。 .Pp 上記のように PAP もしくは CHAP を有効にすることは .Em 必須 です。そうしなければ、あらゆる人があなたのマシンにパスワード .Em なしに ppp セッションを確立することを許可し、 あらゆる種類の潜在的な攻撃に対して門戸を開いていることになります。 .Sh 内向き接続の認証 通常、接続の受信側は相手が相手自身を認証することを要求します。 これは通常 .Xr login 1 にて行われますが、代りに PAP か CHAP を使用可能です。 2 つのうちで CHAP の方がより安全ですが、 クライアントによってはサポートしていないものがあります。 どちらを使いたいか決めたら、 .Sq enable chap または .Sq enable pap を .Pa ppp.conf の適切なセクションに追加してください。 .Pp その後、 .Pa /etc/ppp/ppp.secret ファイルの設定を行う必要があります。 このファイルは、クライアントになりうるマシンごとに 1 行を含みます。 各行は 5 つまでのフィールドからなります: .Pp .Ar name Ar key Oo .Ar hisaddr Op Ar label Op Ar callback-number .Oc .Pp .Ar name と .Ar key は期待されるクライアントのユーザ名とパスワードを指定します。 .Ar key が .Dq \&* で PAP が使用される場合、 .Nm は認証時にパスワードデータベース .Pq Xr passwd 5 を検索します。 .Pa ppp.secret の如何なる .Ar name Ns No / Ar key の組み合わせにおいても適切でない返答をクライアントが与える場合、 認証は失敗します。 .Pp 認証に成功したならば、 (指定時には) .Ar hisaddr を IP 番号ネゴシエーション時に使用します。詳細は .Dq set ifaddr コマンドを参照してください。 .Pp 認証に成功し .Ar label が指定された場合、現在のシステムラベルは .Ar label にマッチするように修正されます。 このことはファイル .Pa ppp.linkup と .Pa ppp.linkdown の後続のパーズに影響があります。 .Pp 認証に成功し .Ar callback-number が指定され .Dq set callback が .Pa ppp.conf で指定された場合、クライアントは指定された番号でコールバックされます。 CBCP が使用される場合、 .Dq set cbcp コマンドに渡すのと同様の形式で、 .Ar callback-number にもまた番号のリストまたは .Dq \&* を含むことが可能です。 この値は、 .Nm で後続する CBCP フェーズで使用します。 .Sh PPP オーバ TCP と PPP オーバ UDP (別名: トンネリング) シリアルリンク上以外の .Nm の使用方法として、 device にホストとポートを指定することにより、 TCP 接続を使用することが可能です: .Pp .Dl set device ui-gate:6669/tcp .Pp シリアルデバイスをオープンする代りに、 .Nm は指定されたマシンの指定されたソケットへの TCP 接続をオープンします。 .Nm は telnet プロトコルを使用しないこと、 telnet サーバとネゴシエーションできないことに注意を払うべきです。 受信マシン (ui-gate) 上に、 この ppp 接続を受信するポートを設定する必要があります。まず .Pa /etc/services を更新して、サービスを定義します: .Pp .Dl ppp-in 6669/tcp # Incoming PPP connections over tcp .Pp そして .Pa /etc/inetd.conf を更新して、このポートへの受信接続をどのように扱うかを .Xr inetd 8 に指示します: .Pp .Dl ppp-in stream tcp nowait root /usr/sbin/ppp ppp -direct ppp-in .Pp .Pa /etc/inetd.conf を更新した後には、 .Xr inetd 8 に .Dv HUP シグナルを送るのをお忘れなく。 ここではラベル名 .Dq ppp-in を使用します。 ui-gate (受信側) の .Pa /etc/ppp/ppp.conf エントリは次の内容を含みます: .Bd -literal -offset indent ppp-in: set timeout 0 set ifaddr 10.0.4.1 10.0.4.2 .Ed .Pp また、 .Pa /etc/ppp/ppp.linkup 中のエントリには、次のようなものを含まなくてはなりません。 .Bd -literal -offset indent ppp-in: add 10.0.1.0/24 HISADDR .Ed .Pp .Nm がネゴシエーションを行い、インタフェースにアドレスを割り当てて からだけしか経路を追加しないように、 .Pa ppp.linkup ファイル中には .Dq add コマンドを置く必要があります。 .Pp セキュリティのために PAP もしくは CHAP の設定をしたいかもしれません。 PAP を有効にするには次の行を追加します: .Bd -literal -offset indent enable PAP .Ed .Pp また、次のエントリを .Pa /etc/ppp/ppp.secret に作成する必要があります: .Bd -literal -offset indent MyAuthName MyAuthPasswd .Ed .Pp .Ar MyAuthPasswd が .Dq * の場合には、パスワードは .Xr passwd 5 データベースから検索されます。 .Pp awfulhak (起動側) の .Pa /etc/ppp/ppp.conf エントリは次の内容を含む必要があります: .Bd -literal -offset indent ui-gate: set escape 0xff set device ui-gate:ppp-in/tcp set dial set timeout 30 set log Phase Chat Connect hdlc LCP IPCP CCP tun set ifaddr 10.0.4.2 10.0.4.1 .Ed .Pp そして、 .Pa /etc/ppp/ppp.linkup ファイル中に経路の設定もつけます。 .Bd -literal -offset indent ui-gate: add 10.0.2.0/24 HISADDR .Ed .Pp PAP を有効にするのなら、 .Pa /etc/ppp/ppp.conf プロファイル中に、次のような設定も必要です。 .Bd -literal -offset indent set authname MyAuthName set authkey MyAuthKey .Ed .Pp 我々は、 ui-gate に 10.0.4.1 のアドレスを割り当て、 awfulhak に 10.0.4.2 のアドレスを割り当てようとしています。 接続をオープンするためには、次の内容をタイプするだけで良いです。 .Pp .Dl awfulhak # ppp -background ui-gate .Pp 結果として、 awfulhak にはネットワーク 10.0.2.0/24 への新たな「経路」が、 ui-gate にはネットワーク 10.0.1.0/24 への新たな「経路」が、 TCP 接続経由でそれぞれ作成されます。 ネットワークは実質的にブリッジされます - 下位レベルの TCP 接続はパブリックなネットワーク (例えばインターネット) を またがっても良いです。 また 2 つのゲートウェイ間では ppp トラフィックは 概念的に TCP ストリーム中でカプセル化されます (パケットがパケットに対応するわけではありません)。 .Pp この機構の大きな欠点は、同時に 2 つの「配送保証」機構が存在することです - この 2 つとは、下位レベルの TCP ストリームと .Em PPP リンク上で使用されるプロトコルであり、おそらくまた TCP でしょう。 パケット喪失が起ると、両者はそれぞれの方法で喪失した パケットを再送しようと するでしょう。 .Pp このオーバヘッドを避けるために、 トランスポートとして TCP の代りに UDP を使用できます。 これは単にプロトコルを "tcp" から "udp" に変えるだけで可能です。 トランスポートとして UDP を使用するとき、 .Nm は同期モードで動作します。 入力データがパケットに再構成されないという、別の利点もあります。 .Pp このように、トンネルされた設定を通してデフォルトの経路を追加する ときには注意してください。 デフォルトの経路 ( .Pa /etc/ppp/ppp.linkup に追加されます) が、最終的にはリンクのトンネル経由の TCP 接続を ルーティングすることになるのは良く起こることであり、 結果的に接続を狭めてしまうことになります。 これを避けるため、トンネル経由の接続の助けになるように、静的経路を 追加することを忘れないでください。 .Bd -literal -offset indent ui-gate: set escape 0xff set device ui-gate:ppp-in/tcp add ui-gate x.x.x.x ..... .Ed .Pp ここで、 .Dq x.x.x.x は、 .Dq ui-gate への経路が通常使用する IP アドレスです。 .Pp インターネットのような、公共のネットワークを通して接続を ルーティングさせる場合、データを暗号化する方が望ましいです。 MPPE プロトコルの助けを借りれば、それが可能になります。 しかし、現在のところ、MPPE が圧縮層として実装している (この点に関しては Microsoft 社に感謝します) ように、 トラフィックを圧縮することもできるというわけではありません。 MPPE 暗号化を有効にするには、次のような行をサーバ側の .Pa /etc/ppp/ppp.conf に追加してください。 .Bd -literal -offset indent enable MSCHAPv2 disable deflate pred1 deny deflate pred1 .Ed .Pp その際、 .Pa /etc/ppp/ppp.secret に必要なエントリを置いたことを確認してください (MSCHAPv2 はチャレンジコードベースです。そのため、 .Xr passwd 5 は使用しません)。 .Pp MSCHAPv2 および MPPE はデフォルトで受け取ることができます。 ですので、クライアント側では、何も変更を加えなくても動くはずです (ですが、プロファイル中に .Dq set authname と .Dq set authkey があることは確認してください)。 .Sh ネットワークアドレス変換 (パケットエイリアシング) .Fl nat コマンドラインオプションにより、 ネットワークアドレス変換 (別名、パケットエイリアシング) が有効になります。 これにより、 .Nm ホストがローカルエリアネットワークの他のコンピュータに対して マスカレードゲートウェイとして動作するようになります。 送信される IP パケットは、まるで .Nm ホストから来たかのように NAT され、 受信パケットは、それがローカルエリアネットワークの正しいマシンに 送られるように NAT が戻されます。 NAT により、 未登録でプライベートなサブネット上のコンピュータを 外部から見えないようにしつつ、 インターネットへアクセス可能とします。 一般に、 .Nm が正しく動作していることの確認は、 まず最初にネットワークアドレス変換を禁止して行います。 次に .Fl nat オプションを有効にして、 .Nm ホストの上で (ウェブブラウザや .Xr telnet 1 , .Xr ftp 1 , .Xr ping 8 , .Xr traceroute 8 などの) ネットワークアプリケーションの動作を確認します。 最後に、LAN 上の別のコンピュータの上で同様なアプリケーションの 動作を確認することになります。 .Nm ホストではネットワークアプリケーションが正しく動作するのに、 LAN 上の別のコンピュータでは動かないのであれば、マスカレードソフトウェアは 正しく動いているけれども、ホストが IP パケットをフォワーディングしないか、 ひょっとするとパケットが送られて来ていないかのどちらかです。 .Pa /etc/rc.conf で IP フォワーディングが有効にされていることと、 他のコンピュータで .Nm ホストがその LAN のゲートウェイとして 指定されていることを確認してください。 .Sh パケットのフィルタリング この実装では、パケットのフィルタリングがサポートされています。 .Em in フィルタ、 .Em out フィルタ、 .Em dial フィルタ、そして .Em alive フィルタの 4 種類のフィルタがあります。 ここでは基本的なことについて書くことにします。 .Bl -bullet .It フィルタ定義は次のような構文になっています。 .Pp set filter .Ar name .Ar rule-no .Ar action .Op !\& .Oo .Op host .Ar src_addr Ns Op / Ns Ar width .Op Ar dst_addr Ns Op / Ns Ar width .Oc .Ar [ proto Op src Ar cmp port .Op dst Ar cmp port .Op estab .Op syn .Op finrst .Op timeout Ar secs ] .Bl -enum .It .Ar name は .Sq in , .Sq out , .Sq dial , .Sq alive のいずれかです。 .It .Ar rule-no は .Sq 0 から .Sq 39 までの数値で、ルール番号を指定します。 ルールは .Ar rule-no の番号順に指定されます。 ただしルール .Sq 0 が指定されている場合のみです。 .It .Ar action は .Sq permit , .Sq deny を指定可能であり、 あるパケットがこれらのルールに一致した場合、 結びつけられた action が直ちに実行されます。 また .Ar action には .Sq clear も指定可能です。 この場合、このルールに結びつけられた action をクリアします。 また .Ar action には、現在のルール番号よりも大きなルール番号を指定可能です。 この場合には、あるパケットが現在のルールに一致した場合、 (次のルール番号の代りに) この新しいルールに対して次にパケットが一致するかを確認します。 .Pp .Ar action にはエクスクラメーションマーク .Pq Dq !\& を続けることが可能です。この場合、 .Nm は後続する一致の意味を反転させます。 .It .Op Ar src_addr Ns Op / Ns Ar width と .Op Ar dst_addr Ns Op / Ns Ar width は始点と終点の IP アドレスです。 .Op / Ns Ar width が指定された場合には、それによって適切なネットマスクのビット値を与え、 アドレスの範囲を指定することができます。 .Pp .Ar src_addr と .Ar dst_addr には、 .Dv MYADDR と .Dv HISADDR という値を使用可能です (これらの値の解説は .Dq bg を参照してください)。 これらの値を使用した場合、これらの値が変化するたびにフィルタが更新されます。 これは、後述の .Dq add コマンドの動作と似ています。 .It .Ar proto は .Sq icmp , .Sq igmp , .Sq ipip , .Sq ospf , .Sq udp , .Sq tcp のうちのいずれか 1 つです。 .It .Ar cmp は .Sq \< , .Sq \&eq , .Sq \> のうちいずれか 1 つです。それぞれ、より小さい、等しい、 より大きいを意味します。 .Ar port はポート番号で指定するか、 .Pa /etc/services のサービス名で指定することができます。 .It .Sq estab , .Sq syn , .Sq finrst フラグは .Ar proto が .Sq tcp に設定されているときにのみ許可され、それぞれ TH_ACK、TH_SYN、および TH_FIN もしくは TH_RST という TCP フラグを表わします。 .It タイムアウト値は、現在のアイドルタイムアウトを最低でも .Ar secs 秒へと修正します。 タイムアウトを、alive フィルタと in/out フィルタの両方で指定すると、 in/out での値が使用されます。 タイムアウトを指定しないと、デフォルトタイムアウト ( .Ic set timeout を使用して設定するもので、デフォルトでは 180 秒になります) が使用されます。 .El .Pp .It 各フィルタはルール 0 から始まり、40 個までのルールをもつことができます。 規則のルールは、ルール 0 が定義されていなければ、有効にはなりません。 すなわち、デフォルトではすべてが通されます。 .It 定義されたルール集合中にマッチするものが無い場合、 パケットは破棄 (ブロック) されます。 フィルタにルールが存在しない場合、パケットは通過を許されます。 .It .Em PROTO_IP .Em PPP フレームヘッダを持つ UDP フレームに対しては、 ペイロードに基づいたフィルタリングを行なうことが可能です。 詳細については、後述の .Ar filter-decapsulation を参照してください。 .It すべての規則を消去するには、 .Dq set filter Ar name No -1 を使ってください。 .El .Pp .Pa /usr/share/examples/ppp/ppp.conf.sample . を参照してください。 .Sh アイドルタイマの設定 アイドルタイマを調べたり/設定するためには、それぞれ .Dq show bundle と .Dq set timeout コマンドを使ってください: .Bd -literal -offset indent ppp ON awfulhak> set timeout 600 .Ed .Pp タイムアウト時間は秒数で指定します。デフォルト値は timeout が 180 秒 (3 分) です。 アイドルタイマ機能を使わないようにするためには、 次のコマンドを利用してください。 .Bd -literal -offset indent ppp ON awfulhak> set timeout 0 .Ed .Pp .Fl ddial と .Fl dedicated モードではアイドルタイムアウトは無視されます。 .Fl auto モードでは、アイドルタイムアウトが発生すると .Nm プログラムは実行したままで .Em PPP セッションを終了します。別の引金となるパケットがきた時に リンクを再び確立しようとします。 .Sh Predictor-1 および DEFLATE 圧縮 .Nm は Predictor type 1 圧縮および deflate 圧縮をサポートしています。 デフォルトでは、 .Nm は、接続相手が同意 (あるいは要求) した場合に、 この機能を使おうと (もしくは受け入れようと) します。 .Nm は deflate プロトコルを優先します。 これらの機能を使用したくない時には .Dq disable と .Dq deny のコマンドを参照してください。 .Pp .Dq disable deflate か .Dq deny deflate の一方を使用することにより、 方向ごとに異ったアルゴリズムを使用することができます (接続相手が両方のプロトコルをサポートしていると仮定しています)。 .Pp デフォルトでは、DEFLATE についてネゴシエートするときには .Nm はウィンドウサイズとして 15 を使います。この動作を変更したい場合には .Dq set deflate コマンドを参照してください。 .Pp デフォルトでは無効にされ受け付けませんが、DEFLATE24 と呼ばれる特殊な アルゴリズムを使用することもできます。これは CCP ID 24 を ネゴシエーションに使う点を除いては DEFLATE と完全に同じものです。 これを使用することで .Nm は .Nm pppd バージョン 2.3.* と DEFLATE ネゴシエーションを成功させることができます。 .Sh IP アドレスの制御 .Nm は IP アドレスのネゴシエーションのために IPCP を使います。接続の両側は、自分が 使おうとするアドレスを提示し、要求された IP アドレスが受け入れ可能な ものであれば、相手に ACK (肯定応答) を返します。 受け入れることができなければ、別の IP アドレスの使用を促すために .Nm は相手に NAK (否定応答) を返します。 接続の両側が受け取った要求に同意し (ACK を送っ) た時、 IPCP はオープン状態にセットされ、ネットワーク層での接続が確立されます。 IPCP の動作を制御するために、この実装はローカルとリモートの IP アドレスを定義するための .Dq set ifaddr コマンドを持っています。 .Bd -ragged -offset indent .No set ifaddr Oo Ar src_addr Ns .Op / Ns Ar \&nn .Oo Ar dst_addr Ns Op / Ns Ar \&nn .Oo Ar netmask .Op Ar trigger_addr .Oc .Oc .Oc .Ed .Pp ここで、 .Sq src_addr はローカル側で使おうと思っている IP アドレスで、 .Sq dst_addr はリモート側が使用すべき IP アドレスです。 .Sq netmask は使用すべきネットマスクです。 .Sq src_addr のデフォルトは現在の .Xr hostname 1 のもの、 .Sq dst_addr のデフォルトは 0.0.0.0 であり、 .Sq netmask のデフォルトは .Sq src_addr に適したマスク値です。 .Sq netmask はデフォルトより小さくすることのみ可能です。 ほとんどのカーネルが POINTOPOINT インタフェースのネットマスクを 無視するので、便利な値は 255.255.255.255 でしょう。 .Pp 誤った .Em PPP の実装には、接続ネゴシエーションのために、 .Sq src_addr ではなく特別な IP アドレスを使用しなければならないものがあります。 この場合、 .Sq trigger_addr で指定した IP アドレスが使用されます。 相手がこの提案された番号に同意しない限り、経路表には影響しません。 .Bd -literal -offset indent set ifaddr 192.244.177.38 192.244.177.2 255.255.255.255 0.0.0.0 .Ed .Pp 上の例の意味は次の通りです: .Pp .Bl -bullet -compact .It 自分の IP アドレスとしてまず 0.0.0.0 を提案しますが、アドレス 192.244.177.38 のみは受け付けます。 .It 相手側のアドレスとして 192.244.177.2 を使うように要求し, 192.244.177.2 以外のどんなアドレスを使うことも許可しません。 相手側が別の IP アドレスを要求してきた時は、いつでも 192.244.177.2 を提案します。 .It 経路表のネットマスク値は 0xffffffff に設定されます。 .El .Pp これは、両側が既に決まった IP アドレスを持っている場合には うまくいきますが、多くの場合、一方がすべての IP アドレスを制御する サーバとして動作しており、もう一方はその方針に従います。 より柔軟な動作をさせるために、 .Dq set ifaddr コマンドで IP アドレス指定をもっと緩やかにすることが可能です: .Pp .Dl set ifaddr 192.244.177.38/24 192.244.177.2/20 .Pp スラッシュ .Pq Dq / に続く数字は、この IP アドレスで意味のあるビットの数を 表現しています。上の例は次のことを示しています。 .Pp .Bl -bullet -compact .It 可能なら自分のアドレスとして 192.244.177.38 を使おうとしますが、 192.244.177.0 から 192.244.177.255 の間の任意の IP アドレスも受け入れます。 .It 相手のアドレスとして 192.244.177.2 を使うことを希望しますが、 192.244.176.0 から 192.244.191.255 の間の任意の IP アドレスも許可します。 .It すでにお気づきと思いますが、 192.244.177.2 は 192.244.177.2/32 と書くことと 等価です。 .It 例外として、0 は 0.0.0.0/0 と等価であり、希望する IP アドレスは 特に無く、リモート接続先の選択に従うことを意味します。 0 を使用した場合は、接続が確立するまで、経路表のエントリは まったく設定されません。 .It 192.244.177.2/0 は、どんな IP アドレスでも受け入れる/許可することを 意味しますが、最初に 192.244.177.2 を使うように提案します。 .El .Sh インターネットサービスプロバイダと接続する プロバイダに接続する際には、次のステップを踏む必要があるでしょう: .Bl -enum .It .Dq set phone コマンドを使って、ダイヤルスクリプトにプロバイダの電話番号を記述します。 ダイヤルやリダイヤルに使用する電話番号は、 パイプ .Pq Dq \&| またはコロン .Pq Dq \&: で区切って複数指定することができます。例えば、次のようになります: .Bd -ragged -offset indent .No set phone Ar telno Ns Xo .Oo \&| Ns Ar backupnumber .Oc Ns ... Ns Oo : Ns Ar nextnumber .Oc Ns ... .Xc .Ed .Pp 最初のパイプで区切られたリストの番号は、 直前の番号でダイヤルもしくはログインスクリプトが失敗した場合のみ使用されます。 コロンで区切られた番号は、直前の番号の使用によりなにが起ったのかにかかわらず、 この順番で使用されます。例えば: .Bd -literal -offset indent set phone "1234567|2345678:3456789|4567890" .Ed .Pp この場合、まず 1234567 にダイヤルしてみます。 ダイヤルもしくはログインスクリプトに失敗したら、 次は 2345678 を使用します。 しかしこれはダイヤルもしくはログインスクリプトに失敗したとき *のみ* です。 このダイヤルの後、3456789 が使用されます。 4567890 は 345689 でダイヤルもしくはログインスクリプトに失敗したときのみ 使用されます。 2345678 のログインスクリプトが失敗したとしても、次の番号は 3456789 です。 必要な数だけ、パイプとコロンを使用可能です (しかし、通常はパイプのみかコロンのみであり両方の使用はないでしょう)。 次の番号へのリダイヤルまでのタイムアウトは、すべての番号にて使用されます。 リストが終了すると、 通常のリダイヤル期間だけ待ち、 最初から再開します。 .Dq set dial コマンドの \\\\T 文字列は選択された番号で置きかえられます。 (以降を参照してください)。 .It リダイヤルに関する設定は、 .Dq set redial で行います。 例えば回線の調子が悪かったり、 (最近では それほど多くないでしょうが) プロバイダがいつも話中だったりすると、 次のように設定したくなるかもしれません: .Bd -literal -offset indent set redial 10 4 .Ed .Pp これは最初の番号にリダイヤルを行う前に 10 秒待って、 4 回までダイヤルしてみるという意味になります。 .It .Dq set dial と .Dq set login コマンドを使ってログイン手続きを記述します。 .Dq set dial コマンドはモデムと通信してプロバイダへのリンクを確立するのに使われます。 例えば、次のようになります: .Bd -literal -offset indent set dial "ABORT BUSY ABORT NO\\\\sCARRIER TIMEOUT 4 \\"\\" \e ATZ OK-ATZ-OK ATDT\\\\T TIMEOUT 60 CONNECT" .Ed .Pp このモデム「チャット」文字列の意味は次の通りです。 .Bl -bullet .It \&"BUSY" または "NO CARRIER" を受信した場合には処理を中止します。 .It タイムアウトを 4 秒にセットします。 .It 文字列の受信待ちは行いません。 .It ATZ を送信します。 .It OK の受信待ちを行います。もし 4 秒以内に受信できなければ、 もう 1 度 ATZ を送信し、OK の受信待ちを行います。 .It ATDTxxxxxxx を送信します。xxxxxxx は 上記の電話番号リストの中の、次にダイヤルする番号です。 .It タイムアウトを 60 にセットします。 .It 文字列 CONNECT の受信待ちを行います。 .El .Pp 一旦接続が確立されると、ログインスクリプトが実行されます。 このスクリプトはダイヤルスクリプトと同じスタイルで書かれますが、 パスワードが記録されないように注意してください: .Bd -literal -offset indent set authkey MySecret set login "TIMEOUT 15 login:-\\\\r-login: awfulhak \e word: \\\\P ocol: PPP HELLO" .Ed .Pp このログイン「チャット」文字列の意味は次の通りです。 .Bl -bullet .It タイムアウトを 15 秒にセットします。 .It \&"login:" の受信待ちを行います。もし受信できなければ 復改文字を送信して、再び "login:" の受信待ちを行います。 .It \&"awfulhak" を送信します。 .It \&"word:" ("Password:" プロンプトの末尾) の受信待ちを行います。 .It .Ar authkey に現在設定されている値を送信します。 .It \&"ocol:" ("Protocol:" プロンプトの末尾) の受信待ちを行います。 .It \&"PPP" を送信します。 .It \&"HELLO" の受信待ちを行います。 .El .Pp .Dq set authkey コマンドのログは特別な方法でとられます。 .Ar command または .Ar chat のログが有効な時は、実際のパスワードは記録されません。 代りに .Sq ******** が記録されます。 .Pp ログインスクリプトはプロバイダによって大きく違うものになるでしょう。 始めてそれを設定するときには .Em チャットログを有効化 することで、あなたのスクリプトが予定通りに動いているかを 調べることができます。 .It シリアル回線と通信速度を指定するためには .Dq set device と .Dq set speed を使います。例えば次のようになります。 .Bd -literal -offset indent set device /dev/cuaa0 set speed 115200 .Ed .Pp .Fx では cuaa0 が 1 つめのシリアルポートになります。 .Ox で .Nm を実行している場合には cua00 が 1 つめです。 あなたのモデムが 28800 かそれ以上のビットレートで通信することが できるなら、シリアルポートの速度には 115200 を指定しておくべきでしょう。 一般に、シリアルポートの速度はモデムの速度の約 4 倍にしておきます。 .It .Dq set ifaddr コマンドで IP アドレスを定義します。 .Bl -bullet .It プロバイダがどの IP アドレスを使っているのか知っている場合には、 それをリモートアドレス (dst_addr) として使ってください。 知らない場合には、10.0.0.2/0 か何かを使ってください (以降を参照してください)。 .It 特定の IP アドレスをプロバイダから割り当てられている場合は、 それをローカルアドレス (src_addr) として使ってください。 .It プロバイダが IP アドレスを動的に割り当てる場合は、適当に控えめで 緩やかに記述した IP アドレスをローカルアドレスに選んでください。 10.0.0.1/0 が適切でしょう。 / に続く数値は、このアドレスのうち何ビットを重視しているかを示します。 もしもクラス C のネットワーク 1.2.3.0 上のアドレスを使うことを 主張したいのなら、1.2.3.1/24 と指定することができます。 .It プロバイダがあなたが提示した最初の IP 番号を受け付ける場合、 第 3, 4 の引数に .Dq 0.0.0.0 を指定してください。 これによりプロバイダが番号を割り当てます (3 つめの引数は、 .Sq src_addr に対してデフォルトのマスクよりも制約が緩いため、無視されます)。 .El .Pp 自分の IP アドレスもプロバイダの IP アドレスも 知らない場合には、次の例のようにするとよいでしょう。 .Bd -literal -offset indent set ifaddr 10.0.0.1/0 10.0.0.2/0 0.0.0.0 0.0.0.0 .Ed .Pp .It ほとんどの場合、プロバイダはデフォルトルータでもあるでしょう。 この場合、次の行を .Pa /etc/ppp/ppp.conf に追加します。 .Bd -literal -offset indent add default HISADDR .Ed .Pp これは、 .Nm 接続先のアドレスが何であっても .Pq この例では 10.0.0.2 デフォルト経路として追加するように指示します。 この経路は .Sq スティッキー です。これは .Dv HISADDR の値が変わると、経路もそれに従って自動的に更新されるという意味です。 .Pp 以前のバージョンの .Nm では .Pa /etc/ppp/ppp.linkup ファイルにこれと似たエントリが必要でした。 .Sq スティッキー経路 の出現により、これはもはや必要ではなくなりました。 .It プロバイダが PAP/CHAP による認証を要求している場合は、 .Pa /etc/ppp/ppp.conf ファイルに次の行を追加してください: .Bd -literal -offset indent set authname MyName set authkey MyPassword .Ed .Pp デフォルトではどちらも受け付けられますので、ISP が何を要求しても大丈夫です。 .Pp PAP もしくは CHAP を使用する場合、ログインスクリプトはほとんどの場合、 必要とされないことを記述しておくべきでしょう。 .It 次のような行を加え、ISP にネームサーバアドレスを確認してください。 .Bd -literal -offset indent enable dns .Ed .Pp ローカル DNS を走らせている場合には、 .Dq resolv readonly を使わず、かつ、 .Dq resolv restore を .Pa /etc/ppp/ppp.linkdown に含めていないならば、 これを .Em やらない でください。 .Nm は単純に .Pa /etc/resolv.conf に nameserver 行を入れることで、ローカル DNS の使用を 出し抜いてしまうからです。 .El .Pp 現実の例を見たい場合には、 .Pa /usr/share/examples/ppp/ppp.conf.sample と .Pa /usr/share/examples/ppp/ppp.linkup.sample を参照してください。 ラベル pmdemand は、ほとんどのプロバイダで使用できるでしょう。 .Sh ログ機能 .Nm は次のログ情報を、 .Xr syslog 3 経由で、もしくはスクリーンに出力することができます: .Pp .Bl -tag -width XXXXXXXXX -offset XXX -compact .It Li All ロギング用ファシリティをすべて有効にします。 この場合、ログがたくさんできます。 `all' の最も一般的な使い方は、共通部分として使うことです。 この場合、すべてのファシリティを有効にしたあとで一部の ファシリティを削ったりします (`debug' や `timer' が通常は無効にするのに最適な ファシリティです)。 .It Li Async 非同期レベルパケットの 16 進ダンプ。 .It Li CBCP CBCP (CallBack Control Protocol) ログの生成。 .It Li CCP CCP パケットトレースの生成。 .It Li Chat .Sq dial , .Sq login , .Sq logout , .Sq hangup のチャットスクリプトのトレースログの生成。 .It Li Command コマンド実行のログ。 .It Li Connect 文字列 "CONNECT" を含むチャット行のログ。 .It Li Debug デバッグ情報のログ。 .It Li DNS DNS QUERY パケットのログ。 .It Li Filter ダイヤルフィルタに許可され、他のフィルタに拒否されたパケットのログ。 .It Li HDLC HDLC パケットの 16 進ダンプ。 .It Li ID0 ユーザ ID 0 で実行された全関数呼び出しを詳細に記録。 .It Li IPCP IPCP パケットトレースの生成。 .It Li LCP LCP パケットトレースの生成。 .It Li LQM LQR レポートの生成。 .It Li Phase フェーズ遷移ログの出力。 .It Li Physical 物理レベルパケットの 16 進ダンプ。 .It Li Sync 同期レベルパケットの 16 進ダンプ。 .It Li TCP/IP 全 TCP/IP パケットのダンプ。 .It Li Timer タイマ操作のログ。 .It Li TUN ログの各行に tun デバイスを含めます .It Li Warning 端末デバイスへの出力。端末が存在しない場合は、 .Dv LOG_WARNING を使用してログファイルに送ります。 .It Li Error 端末デバイスとログファイルへの出力で、 .Dv LOG_ERROR を使用します。 .It Li Alert ログファイルへの出力で、 .Dv LOG_ALERT を使用します。 .El .Pp .Dq set log コマンドで、ログの出力レベルを設定することができます。 また、複数のレベルを単一コマンドラインにて指定することも可能です。 デフォルトは、 .Dq set log Phase です。 .Pp スクリーンに直接ログを表示することも可能です。 文法は同じで、語 .Dq local が .Dq set log の直後に付くことだけが違います。 デフォルトは .Dq set log local (つまり、マスクされない警告、エラーと注意のみ出力) です。 .Pp .Dq set log Op local への最初の引数が .Sq + か .Sq - の文字で始まる場合、現在のログレベルを消去せずに修正します。例えば: .Bd -literal -offset indent PPP ON awfulhak> set log phase PPP ON awfulhak> show log Log: Phase Warning Error Alert Local: Warning Error Alert PPP ON awfulhak> set log +tcp/ip -warning PPP ON awfulhak> set log local +command PPP ON awfulhak> show log Log: Phase TCP/IP Warning Error Alert Local: Command Warning Error Alert .Ed .Pp レベル Warning, Error, Alert のメッセージログは .Dq set log Op local では制御できません。 .Pp .Ar Warning レベルは特別で、ローカルに表示可能な場合には記録されません。 .Sh シグナルハンドリング .Nm は次のシグナルを扱います: .Bl -tag -width "USR2" .It INT このシグナルを受信すると、現在の接続がもしあればそれを終了します。 .Fl auto もしくは .Fl ddial のモードではない場合、 .Nm は終了します。 .It HUP, TERM, QUIT .Nm を終了させます。 .It USR1 .Nm に既存のサーバソケットを再度オープンさせ、すべての既存の診断ポートへの接続を 取り下げます。 以前にオープン出来なかったソケットは、再度試されます。 .It USR2 .Nm に全サーバソケットを閉じさせ、すべての既存の診断ポートへの接続を 取り下げます。 再度オープンするためには、 .Dv SIGUSR1 が使用できます。 .El .Sh マルチリンク PPP .Em PPP 相手に接続するのに複数の物理的なリンクを利用したいなら、 接続相手も .Em マルチリンク PPP プロトコルを理解する必要があります。 仕様の詳細は RFC 1990 を参照してください。 .Pp 接続先は、 .Dq 終点の選択 とその .Dq 認証 ID の組み合わせによって識別されます。 これらの一方、もしくは両方を指定することができます。 最低でも片方は指定しておくことが推奨されます。 そうでないと、すべてのリンクが実際に同一のプログラムに接続されていることを 確認する方法がなくなり、 混乱してロックアップを引き起こすことがあります。 ローカルには、これらの識別変数は .Dq set enddisc と .Dq set authname コマンドを用いることで指定されます。先立って接続相手と .Sq authname (と .Sq authkey ) について合意しておく必要があります。 .Pp マルチリンクの能力は .Dq set mrru コマンド (set maximum reconstructed receive unit) を用いることで 有効になります。一度マルチリンクが有効になれば、 .Nm は接続相手とマルチリンク接続のネゴシエーションを行います。 .Pp デフォルトでは ( .Sq deflink と呼ばれる) ただ 1 つの .Sq リンク のみが有効です。さらにリンクを作成するには .Dq clone コマンドが使われます。このコマンドは既存のリンクを複製します。 それは次の点を除いてすべての性質が同じものです: .Bl -enum .It 新しいリンクは .Dq clone コマンドラインで指定された独自の名前を持ちます。 .It 新しいリンクは .Sq interactive リンクです。そのモードは次の .Dq set mode コマンドで変更することができます。 .It 新しいリンクは .Sq closed の状態にあります。 .El .Pp すべての有効なリンクのまとめは、 .Dq show links コマンドを用いて見ることができます。 .Pp 一度リンクが作成されると、コマンドの使用方法が変わります。 すべてのリンク固有のコマンドの前には、 .Dq link Ar name プレフィックスをつけて、 コマンドを適用するリンクを指定する必要があります。 .Nm は十分賢いので、 利用可能なリンクが 1 つだけの場合には、 .Dq link Ar name プレフィックスは不要です。 .Pp コマンドの中には依然としてリンクの指定なしに使用できるものがあり、それは .Sq バンドル レベルの操作を行います。たとえば、2 つ以上のリンクが存在するとき .Dq show ccp はマルチリンクレベルの CPP 設定と統計を表示し .Dq link deflink show ccp は .Dq deflink のリンクレベルの同じ情報を表示します。 .Pp これらの情報を用いて、次の設定を用いることができます: .Pp .Bd -literal -offset indent mp: set timeout 0 set log phase chat set device /dev/cuaa0 /dev/cuaa1 /dev/cuaa2 set phone "123456789" set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \\"\\" ATZ \e OK-AT-OK \\\\dATDT\\\\T TIMEOUT 45 CONNECT" set login set ifaddr 10.0.0.1/0 10.0.0.2/0 0.0.0.0 0.0.0.0 set authname ppp set authkey ppppassword set mrru 1500 clone 1,2,3 # 3 個の新規リンクを作成 - デフォルトを複製 link deflink remove # デフォルトリンクを削除 (``deflink'' という名前) .Ed .Pp すべての複製が設定の最後で行われていることに注意してください。 一般にはリンクは最初に設定され、そして複製されます。 あなたが常にすべてのリンクがアップ状態であることを望む場合には、 設定の最後に次の行を追加することができます。 .Pp .Bd -literal -offset indent link 1,2,3 set mode ddial .Ed .Pp リンクが必要に応じてダイヤルされることを望む場合には、次のコマンドを 使うことができます。 .Pp .Bd -literal -offset indent link * set mode auto .Ed .Pp 上記の .Dq set device 行を取り除き、 .Dq clone コマンドに続けて次の内容を指定することで、 リンクを特定の名前に結びつけることもできます: .Pp .Bd -literal -offset indent link 1 set device /dev/cuaa0 link 2 set device /dev/cuaa1 link 3 set device /dev/cuaa2 .Ed .Pp どのコマンドが ( .Dq link コマンドを使用した) コンテキスト (文脈) を要求し、 どのコマンドがコンテキストをオプションとし、 そしてどのコマンドがコンテキストを一切とらないかを調べるには、 .Dq help コマンドを使用します。 .Pp .Nm が接続相手と .Em マルチリンク モードでネゴシエートすると、 .Nm はローカルドメインソケットを .Pa /var/run ディレクトリに作成します。このソケットは、 リンク情報 (実際のリンクファイル記述子も含む) を、異なる .Nm の間で受け渡しするために使われます。 この機能によって、 .Nm はシリアル回線の初期制御を行う必要なしに .Xr getty 8 から、もしくは直接 .Pa /etc/gettydefs から ( .Sq pp= ケーパビリティを用いて) 実行することが可能となっています。 ひとたび .Nm がマルチリンクモードのネゴシエーションを行うと、 .Nm は自分がオープンした リンクをすでに実行されている任意の他のプロセスに渡すことができます。 すでに実行されているプロセスがない場合、 .Nm はマスタとして振る舞い、ソケットを作成し、新たな接続を待ちます。 .Sh PPP コマンドリスト この節では利用可能コマンドとその効果をリストします。 .Nm セッションで対話的に使用することも、 設定ファイルで指定することも、 .Xr pppctl 8 もしくは .Xr telnet 1 セッションで指定することも可能です。 .Bl -tag -width 2h .It accept|deny|enable|disable Ar option.... これらのディレクティブは 最初の接続においてどのように相手とネゴシエートするかを .Nm に指示します。各 .Dq option は、accept/deny および enable/disable のデフォルトを持ちます。 .Dq accept は相手がこのオプションを要求したら、ACK を送ることを意味します。 .Dq deny は相手がこのオプションを要求したら、NAK を送ることを意味します。 .Dq enable はこのオプションを当方が要求することを意味します。 .Dq disable はこのオプションを当方が要求しないことを意味します。 .Pp .Dq option は次のいずれかです: .Bl -tag -width 2h .It acfcomp デフォルト: enable かつ accept。 ACFComp はアドレスおよびコントロールフィールド圧縮 (Address and Control Field Compression) を意味します。 LCP パケット以外は通常、 アドレスフィールド 0xff (全ステーションアドレス) と 制御フィールド 0x03 (番号付けされていない情報コマンド) を持ちます。 このオプションがネゴシエートされると、これらの 2 バイトは単に送信されなくなり、 流量が少なくなります。 .Pp 詳細は .Pa rfc1662 を参照してください。 .It chap Ns Op \&05 デフォルト: disable かつ accept。 CHAP はチャレンジ交換認証プロトコル (Challenge Handshake Authentication Protocol) を意味します。 CHAP もしくは PAP (後述) のどちらか一方のみネゴシエーション可能です。 CHAP では、認証者は「チャレンジ」メッセージを相手に送ります。 相手は一方向ハッシュ関数を使用して「チャレンジ」を暗号化し、 結果を送り返します。 認証者は同じことを行い結果を比較します。 この機構の利点は、接続を介してパスワードを送らないことです。 接続が最初に確立する時にチャレンジが行われます。 更なるチャレンジが行われるかもしれません。 相手の認証を行いたい場合は、 .Dq enable chap を .Pa /etc/ppp/ppp.conf に書き、相手のエントリを .Pa /etc/ppp/ppp.secret に書く必要があります。 .Pp クライアントとして CHAP を使用する場合、 .Dq AuthName と .Dq AuthKey を .Pa /etc/ppp/ppp.conf に指定するだけで良いです。 CHAP はデフォルトで accept されます。 .Em PPP の実装によっては、チャレンジの暗号化に MD5 ではなく "MS-CHAP" を使用するものがあります。 MS-CHAP は MD4 と DES の組み合わせです。もし .Nm が DES ライブラリの存在するマシン上で構築された場合 MS-CHAP 認証要求に応答しますが、要求はしません。 .It deflate デフォルト: enable かつ accept。 このオプションは圧縮制御プロトコル (Compression Control Protocol; CCP) に deflate 圧縮を使用するか否かを決定します。 使用されるアルゴリズムは .Xr gzip 1 プログラムが使用するものと同じです。 注: .Xr pppd 8 - 多くのオペレーティングシステムで使用可能な .Em PPP の実装 - との .Ar deflate 能力についてのネゴシエーションには問題があります。 .Nm pppd (バージョン 2.3.1) が .Ar deflate 圧縮のネゴシエーションを行おうとする CCP コンフィギュレーションタイプは、 .Pa rfc1979 に規定されたタイプ .Em 26 ではなくタイプ .Em 24 であり、誤っています。 タイプ .Ar 24 は実際には .Pa rfc1975 では .Dq PPP Magna-link Variable Resource Compression と指定されています! .Nm は .Nm pppd とネゴシエートする能力がありますが、 .Dq deflate24 が .Ar enable かつ .Ar accept されている場合のみです。 .It deflate24 デフォルト: disable かつ deny。 これは .Ar deflate のバリエーションで、 .Xr pppd 8 プログラムとのネゴシエーションを許可します。 詳細は上記の .Ar deflate セクションを参照してください。 これは .Pa rfc1975 に反するため、デフォルトでは disable となっています。 .It dns デフォルト: disable かつ deny。 このオプションは DNS ネゴシエーションを許可します。 .Pp .Dq enable にすることにより、 .Nm は接続相手が .Pa /etc/resolv.conf ファイルのエントリを確認することを要求します。 もし接続相手が当方の要求に否定応答をした場合 (新しい IP アドレスを 提案したら)、 .Pa /etc/resolv.conf ファイルは更新され、新しいエントリを確認するように要求を送ります。 .Pp .Dq accept にすることにより、 .Nm は接続相手からの DNS 検索要求を拒否せずに、返答します。 .Dq set dns コマンドの使用によって上書きされていない場合には、応答は .Pa /etc/resolv.conf から採られます。 .It enddisc デフォルト: enable かつ accept。 このオプションは、終点選択値をネゴシエートするか否かを制御します。 .Dq set enddisc が使用され .Ar enddisc が enable の場合のみ、当方の選択値を送ります。 .Ar enddisc が disable の場合、相手の選択値を拒否します。 .It LANMan|chap80lm デフォルト: disable かつ accept。 この認証プロトコルの使用は勧められません。 単一の CHAP タイプ (0x80) を装って、 2 つの異った機構 (LANMan と NT) を実装することにより、 部分的に認証プロトコルを侵害しているからです。 .Dq LANMan は単純な DES 暗号化機構を使用するものであり、 CHAP 代替としては最低の安全性のものです (それでも PAP よりは安全です)。 .Pp 更なる詳細は後述の .Dq MSChap の記述を参照してください。 .It lqr デフォルト: disable かつ accept。 このオプションはリンク品質要求 (Link Quality Request) を送信する、 もしくは受け入れるかどうかを決定します。 LQR は、モデムのキャリア検出を使用せずに、リンクダウンを .Nm に決定させるプロトコルです。 LQR が enable になっていると、 .Nm は LCP 要求の一部として .Em QUALPROTO オプション (後述の .Dq set lqrperiod を参照) を送ります。 接続相手が同意した場合、両端は同意した間隔で LQR パケットを交換し、 LQM ロギングを有効にすることで、詳細なリンク品質を監視することが 可能になります。 接続相手が同意しなかった場合、 .Nm は代りに ECHO LQR 要求を 送ります。これらのパケットは興味ある情報を何も渡しませんが、 .Em 必ず 接続相手に応答しなければなりません。 .Pp LQR, ECHO LQR のいずれを用いるにせよ、 .Nm は 5 つのパケットを送ったが確認応答が無い場合、6 つ目のパケットを送らずに 回線を切断します。 メッセージを .Em PHASE レベルで記録し、回線切断の原因が接続相手にあるものとして、適当な .Dq reconnect 値を使用します。 .It mppe デフォルト: enable かつ accept。 これは、Microsoft 社の Point to Point 暗号化機構です。 MPPE の鍵のサイズは、40, 56, 128 ビットです。 .Dq set mppe コマンドを参照してください。 .It MSChapV2|chap81 デフォルト: disable かつ accept。 標準 CHAP (タイプ 0x05) と非常に似ていますが、長さ 16 バイト固定の チャレンジコードを送ることと、チャレンジコードを暗号化するのに、 標準の MD5 機構ではなく MD4, SHA-1 そして DES を混合して使用する 点が異なります。 .It MSChap|chap80nt デフォルト: disable かつ accept。 この認証プロトコルの使用は勧められません。 単一の CHAP タイプ (0x80) を装って、 2 つの異った機構 (LANMan と NT) を実装することにより、 部分的に認証プロトコルを侵害しているからです。 標準の CHAP (タイプ 0x05) に非常に良く似ていますが、 チャレンジを固定 8 バイト長で発行し、 標準の MD5 機構ではなく MD4 と DES を組み合わせてチャレンジを暗号化するところが違います。 LANman 用の CHAP タイプ 0x80 もまたサポートされています - 詳細は .Dq enable LANMan を参照してください。 .Pp .Dq LANMan と .Dq NT の両方が CHAP タイプ 0x80 を使用しますので、両方を .Dq enable にして認証者として動作するときには、 相手が誤った方のプロトコルを使用して応答した場合には、 .Nm は最大 3 回相手に再チャレンジします。 これにより、相手が両方のプロトコルを使用する機会を与えます。 .Pp 逆に、両プロトコルを .Dq enable にして .Nm が被認証者となる場合、チャレンジに答えるたびに使用プロトコルを交換します。 .Pp 注: LANMan のみが enable にされた場合、 .Xr pppd 8 (バージョン 2.3.5) は被認証者としては誤った動作を行います。 NT と LANMan の両方の応答を行いますが、 NT の応答のみ使用すべきことも指示してしまうのです。 .It pap デフォルト: disable かつ accept。 PAP はパスワード認証プロトコル (Password Authentication Protocol) を 意味します。 CHAP (前述) もしくは PAP のどちらか一方のみネゴシエーション可能です。 PAP では、ID とパスワードが相手に送られ続け、 認証されるか接続が終了されるまでこれが続きます。 これは比較的良くないセキュリティ機構です。 接続が最初に確立した時のみ実行可能です。 相手の認証を行いたい場合は、 .Dq enable pap を .Pa /etc/ppp/ppp.conf に書き、相手のエントリを .Pa /etc/ppp.secret に書く必要があります (ただし、後述の .Dq passwdauth と .Dq set radius オプションを参照)。 .Pp クライアントとして PAP を使用する場合、 .Dq AuthName と .Dq AuthKey を .Pa /etc/ppp/ppp.conf に指定するだけで良いです。 PAP はデフォルトで accept されます。 .It pred1 デフォルト: enable かつ accept。 このオプションは圧縮制御プロトコル (Compression Control Protocol; CCP) に Predictor 1 圧縮を使用するかどうかを決定します。 .It protocomp デフォルト: enable かつ accept。 このオプションは PFC (プロトコルフィールド圧縮) のネゴシエートするために使用されます。 この機構により、 プロトコルフィールド数が 2 オクテットから 1 オクテットに減ります。 .It shortseq デフォルト: enable かつ accept。 このオプションは .Nm がマルチリンクモードのネゴシエーション時に (12 ビットの) 短いシーケンス番号を要求し、そして受け入れるかどうかを決定します。 これは、当方の MMRU が設定されたときのみ (マルチリンクが有効になっているときのみ) 適用されます。 .It vjcomp デフォルト: enable かつ accept。 このオプションは Van Jacobson ヘッダ圧縮を使用するかどうかを決定します。 .El .Pp 次に示すオプションは、実際には相手とネゴシエートしません。 それゆえ accept および deny は意味を持ちません。 .Bl -tag -width 20 .It filter-decapsulation デフォルト: disable。 本オプションを enable にすると、 .Nm は UDP フレームを検査し、 .Em PPP フレームをペイロードとして持っているか否かを見ます。 これが真である場合、パケット自身に対してではなく、ペイロードに対して、 すべてのフィルタを適用します。 .Pp .Em PPP リンク上で PPPoUDP トラフィックを送りたい場合で、 UDP ラッパではなく、 実際のデータに基いて賢いことをリンクにやらせたい場合に有用です。 .Pp UDP フレームのペイロードは、如何なる方法であっても圧縮してはなりません。 圧縮した場合には、 .Nm はペイロードを解釈できません。 ですから、UDP リンクに対する .Nm の起動の際には、設定中で .Ic disable vj pred1 deflate と .Ic deny vj pred1 deflate を行なうことを推奨します。 .It idcheck デフォルト: enable。 低レベルな LCP, CCP, IPCP 設定トラフィックを交換するときに、 すべての応答の識別子フィールドはその要求の識別子フィールドと 同一であることが予定されています。デフォルトでは .Nm は予定された識別子フィールドを持たないすべての応答パケットを 捨て、それぞれのログレベルで報告します。もし .Ar idcheck が disable になっている場合、 .Nm は識別子フィールドを無視します。 .It keep-session デフォルト: disable。 .Nm がマルチリンクサーバとして動作するとき、別の .Nm インスタンスが最初に各接続を受け付けます。 リンクが (別の .Nm によって制御されている) 既存のバンドルに属すと判定すると、 .Nm はこのリンクを当該別プロセスへ移管します。 .Pp リンクが tty デバイスである場合かこのオプションが enable されている場合、 .Nm は終了せず、自己のプロセス名を .Dq session owner に変え、リンクを制御する方の .Nm が処理を完了してアイドルプロセスの方へシグナルを返すまで待ちます。 リンク資源が再利用可能であると .Nm の親がみなす結果により生じる混乱を、これにより防ぎます。 .Pp .Pa /etc/ttys にエントリがある tty デバイスの場合、別の .Xr getty 8 の開始を防ぐために、これが必要です。 .Xr sshd 8 のようなプログラムリンクの場合、子供の死による .Xr sshd 8 の終了を防ぐために、これが必要です。 .Nm は親の要件を判断できませんので (tty の場合を除く)、 状況に応じて手動で本オプションを設定する必要があります。 .It loopback デフォルト: enable。 .Ar loopback が enable の場合、 .Nm は自動的に .Em PPP インタフェースと同じ終点アドレス宛に送出されたパケットを ループバックします。 disable の場合、 .Nm がパケットを送ると、おそらく他の終点からの ICMP リダイレクトとなります。 インタフェースがデフォルト経路であるため、 ループバック経路を必要とすることを避けたい場合、 このオプションを enable にすると便利です。 .It passwdauth デフォルト: disable。 このオプションを enable にすることにより、 PAP 認証コードが呼び出し側を認証する時に、 .Pa /etc/ppp/ppp.secret ファイル中でみつからない場合、パスワードデータベース ( .Xr passwd 5 参照) を使用します。 .Pa /etc/ppp/ppp.secret は常に、最初に調べられます。 .Xr passwd 5 からパスワードを調べ、かつそのクライアントに対して IP アドレスもしくは ラベルを指定したい場合には、 .Pa /etc/ppp/ppp.secret ファイル中のクライアントのパスワードとして .Dq \&* を用いてください。 .It proxy デフォルト: disable。 このオプションを enable にすることにより、 .Nm に相手のために代理 ARP をさせます。 .Dv HISADDR と .Dv HISADDR がいるローカルネットワークの .Dv MAC アドレスを使用して、 .Nm が ARP 表に単一エントリを作成することを意味します。 これにより、 相手自身がその LAN に接続されたかのような状態で、 LAN に接続された他のマシンと相手とが 通信できるようになります。 .Dv HISADDR が LAN からのアドレスではない場合、代理エントリは作成できません。 .It proxyall デフォルト: disable。 このオプションを enable にすることにより、 .Nm に代理 ARP エントリを追加させます。 追加されるエントリは、 tun インタフェースによってルーティングされる すべてのクラス C もしくはそれ以下のサブネットの中の、全 IP アドレスです。 .Pp 代理 arp エントリは、 .Dq add コマンドによって追加されたスティッキー経路に対してのみ作成されます。( .Dq set ifaddr コマンドによって作成された) インタフェースアドレス自身に対しては、代理 arp エントリは作成されません。 .It sroutes デフォルト: enable。 .Dq add コマンドが .Dv HISADDR もしくは .Dv MYADDR という値とともに用いられると、エントリは .Sq スティック経路 リストに格納されます。 .Dv HISADDR もしくは .Dv MYADDR が変更される度に、このリストが経路表に適用されます。 .Pp このオプションを disable にすると、 スティッキー経路が適用されなくなります。 .Sq スティッキー経路 リストは依然として保守されます。 .It Op tcp Ns Xo .No mssfixup .Xc デフォルト: enable。 このオプションは、 .Nm に、TCP SYN パケットを調整するように指示し、 インタフェース MTU が許可しているサイズを受信セグメントサイズの 最大値が超えないようにします。 .It throughput デフォルト: enable。 このオプションを有効にすると、 .Nm はスループット統計を収集します。 ずれ動く 5 秒間のウィンドウにおいて入出力が検査され、 現在、最良時、総計の数値が保持されます。 このデータは関連する .Em PPP 層が終了するときに出力され、また .Dq show コマンドで表示することで得られます。スループット統計は .Dq IPCP と .Dq physical のレベルで利用可能です。 .It utmp デフォルト: enable。 通常ユーザが PAP もしくは CHAP で認証された時で、 .Nm が .Fl direct モードで実行されている時は、このユーザのエントリが utmp ファイルおよび wtmp ファイルに作成されます。 このオプションを disable にすると、 .Nm は utmp および wtmp のエントリを作成しません。 通常、 ユーザがログインしかつ認証することを要求する場合のみ必要です。 .It iface-alias デフォルト: .Fl nat が指定された場合 enable。 このオプションは、 インタフェースのアドレスを交換するのではなく、 インタフェースに新規アドレスを追加するように、 .Nm に指示します。 ネットワークアドレス変換が有効な場合のみ .Pq Dq nat enable yes 、本オプションを enable にできます。 .Pp 本オプションを enable にすると、 .Nm は古いインタフェースアドレスのトラフィックを NAT エンジン .Pq Xr libalias 3 参照 を通すようになり、( .Fl auto モードでは) 最初に PPP リンクを立ち上げたプロセスが正しく接続できるようにします。 .Pp .Dq nat enable no として NAT を disable すると、 .Sq iface-alias も disable します。 .El .Pp .It add Ns Xo .Op !\& .Ar dest Ns Op / Ns Ar nn .Op Ar mask .Op Ar gateway .Xc .Ar dest は宛先 IP アドレスです。 ネットマスクは .Ar /nn によってビット数で指定するか、もしくは .Ar mask を用いて IP 番号で指定します。 .Ar 0 0 ならびにマスクなしの .Ar 0 はデフォルト経路を意味します。 .Ar 0 の代りにシンボル名 .Ar default を使うことが可能です。 .Ar gateway は、 .Ar dest マシン/ネットワークに至る、次のホップのゲートウェイです。 詳細は .Xr route 8 コマンドを参照してください。 .Pp 宛先にシンボル名 .Sq MYADDR と .Sq HISADDR を使用可能であり、 .Ar gateway には .Sq HISADDR を使用可能です。 .Sq MYADDR はインタフェースアドレスに置き換えられ、 .Sq HISADDR はインタフェースの宛先 (相手の) アドレスに置き換えられます。 .Pp .Ar add!\& コマンド ( .Dq !\& に注意) 使用時には、経路が存在する場合には .Sq route change コマンド (詳細は .Xr route 8 参照) にて経路を更新します。 .Pp .Dq HISADDR , .Dq MYADDR , .Dq DNS0 , .Dq DNS1 のいずれかを含む経路は .Sq スティッキー と見なされます。これらはリスト (リストを見るには .Dq show ipcp コマンドを使用します) に格納され、 .Dv HISADDR .Dq MYADDR , .Dq DNS0 , .Dq DNS1 のいずれかの値が変更される度に、経路表の関連するエントリが更新されます。 この機能は .Dq disable sroutes を使用することで無効にできます。 .It allow user Ns Xo .Op s .Ar logname Ns No ... .Xc このコマンドは .Nm と設定ファイルへのアクセスを制御します。 設定ファイルのラベルと .Nm 実行モードにより、 ユーザレベルでのアクセスも可能です。 例えば、 .Fl background モードでは、ユーザ .Sq fred のみがラベル .Sq fredlabel にアクセスできるように、 .Nm を構成したいかもしれません。 .Pp ユーザ ID 0 はこれらのコマンドの対象外です。 .Bl -tag -width 2h .It allow user[s] Ar logname... デフォルトでは、ユーザ ID 0 のみが .Nm へのアクセスを許されています。 このコマンドを指定することで、 .Dq allow users が記載されているセクションに列挙されているユーザは、 そのセクションへのアクセスが可能となります。 .Sq default セクションは 常に最初にチェックされます (スタートアップ時に常にロードされる唯一の セクションです)。 あるセクションの中では、複数の .Dq allow users コマンドは、加算的です。 しかしながら、あるセクション中で許可されたユーザ群は、 .Sq default セクションで許可されたユーザ群を上書きします。 ですから、デフォルトユーザを .Sq default セクションで指定し、新しいユーザリストをあるラベルに指定することで、 あるラベル以外のすべてにアクセスを許すといったことが可能です。 .Pp ユーザ .Sq * が指定されると、全ユーザにアクセスが許されます。 .It allow mode Ns Xo .Op s .Ar mode Ns No ... .Xc デフォルトでは全 .Nm モードが使用可能です。 このコマンドが使用されると、 このコマンドが指定されたラベルのロードに許されるアクセス .Ar mode が制限されます。 .Dq allow users コマンドと同様、 各 .Dq allow modes コマンドは先行するコマンドに優先し、 .Sq default セクションは常に最初にチェックされます。 .Pp 使用可能なモードは次の通りです: .Sq interactive , .Sq auto , .Sq direct , .Sq dedicated , .Sq ddial , .Sq background , .Sq * 。 .Pp マルチリンクモードで動作するときには、 現在存在する回線モードを許可するセクションをロード可能です。 .El .Pp .It nat Ar command Op Ar args このコマンドは .Nm 組込みのネットワークアドレス変換機能 (マスカレーディングや IP エイリアシングとしても知られています) を 制御するために使用します。 NAT は、外部インタフェースでのみ動作し、 .Fl direct フラグと共に使用してもおそらく意味がありません。 .Pp あなたのシステムで nat を有効にすると (コンパイル時に削除できます)、 次のコマンドが使用可能となります: .Bl -tag -width 2h .It nat enable yes|no このコマンドは、ネットワークアドレス変換を有効もしくは無効にします。 .Fl nat コマンドラインフラグは .Dq nat enable yes と同じ意味です。 .It nat addr Op Ar addr_local addr_alias このコマンドには、 .Ar addr_alias のデータを .Ar addr_local へリダイレクトします。 少数の実 IP アドレスを持ち、 それらをゲートウェイの後の特定のマシンにマップしたい場合に有用です。 .It nat deny_incoming Op yes|no yes に設定すると、 エイリアシングリンクがまだ存在しないところでは、 このコマンドは全パケットを拒否します。 .Dq エイリアシングリンク が何であるかについては、 .Xr libalias 3 の .Sx 概念の背景 節を参照してください。 .Pp どのような状況において .Xr libalias 3 がエイリアシングリンクを作成したか、気をつける必要があります。 .Dq set filter または .Dq nat target のコマンドを使用して、更にネットワークを保護する必要があるかもしれません。 .It nat help|? このコマンドは、使用可能な nat コマンドのまとめを表示します。 .It nat log Op yes|no このオプションは、NAT の様々な統計と情報がファイル .Pa /var/log/alias.log に記録されるようにします。 .It nat port Ar proto Ar targetIP Ns Xo .No : Ns Ar targetPort Ns .Oo .No - Ns Ar targetPort .Oc Ar aliasPort Ns .Oo .No - Ns Ar aliasPort .Oc Oo Ar remoteIP : Ns .Ar remotePort Ns .Oo .No - Ns Ar remotePort .Oc Ns .Oc .Xc このコマンドは、 .Ar aliasPort への入力の .Ar proto 接続を、 .Ar targetIP の .Ar targetPort へリダイレクトします。 .Ar proto は、 .Dq tcp または .Dq udp です。 .Pp ポート番号の範囲は、前述のように指定可能です。 範囲は同じ大きさであることが必要です。 .Pp .Ar remoteIP が指定された場合、この IP 番号から来たデータのみがリダイレクトされます。 .Ar remotePort は、 .Dq 0 (すべての送信元ポート) か、もう一方の範囲と同じ大きさのポート範囲です。 .Pp あなたのゲートウェイの後のマシンでインターネット電話等を実行したい場合に、 このオプションは有用です。 しかし、送信元ホストと宛先ポートにつき 内部マシン 1 台のみに接続可能という制限があります。 .It nat proto Ar proto localIP Oo .Ar publicIP Op Ar remoteIP .Oc このコマンドは、プロトコルタイプ .Ar proto ( Xr protocols 5 参照) のパケットを内部アドレス .Ar localIP にリダイレクトするよう .Nm に指示します。 .Pp .Ar publicIP が指定された場合、そのアドレスが宛先のパケットのみが適合し、 そうでない場合、デフォルトのエイリアスアドレスが使用されます。 .Pp .Ar remoteIP が指定された場合、その始点アドレスに適合するパケットのみが適合します。 .Pp このコマンドは、 トンネルのエンドポイントを内部マシンにリダイレクトするために有用です。 例えば次のようにします: .Pp .Dl nat proto ipencap 10.0.0.1 .It "nat proxy cmd" Ar arg Ns No ... このコマンドは、 .Nm に特定の接続に対する代理をさせ、 これらの接続を指定したサーバにリダイレクトします。 使用可能なコマンドについての詳細は .Xr libalias 3 の .Fn PacketAliasProxyRule の記述を参照してください。 .It nat same_ports yes|no 有効になると、 ネットワークアドレス変換エンジンに対して、 出力パケットのポート番号をできるだけ変更しないように指示します。 RPC や LPD といった、 ウェルノウンポート (well known port) からの接続を要求する プロトコルをサポートするのに有用です。 .It nat target Op Ar address アドレスを指定したときは、そのアドレスをターゲットアドレスとして設定し、 指定しないときは、ターゲットアドレスの設定をクリアします。 ターゲットアドレスは、デフォルトでどのように受信パケットを NAT するかを指定するために libaliases が使用します。 ターゲットアドレスが設定されていないか、または .Dq default が与えられている場合、パケットは変更されないまま内部ネットワークに ルーティングされるようになります。 .Pp ターゲットアドレスを .Dq MYADDR に設定することもでき、その場合、libaliases はすべてのパケットを 内部ネットワークにリダイレクトします。 .It nat use_sockets yes|no 有効になると、 ネットワークアドレス変換エンジンにソケットを作成させ、 正しい ftp データ入力や IRC 接続を保証できるようになります。 .It nat unregistered_only yes|no 登録されていない送信元アドレスの出力パケットのみを、変更します。 RFC1918 によると、登録されていない送信元アドレスは 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 です。 .El .Pp これらのコマンドはソース配布物の .Pa README.nat ファイル中でも議論されています。 .Pp .It Op !\& Ns Xo .No bg Ar command .Xc 指定した .Ar command を、次の語を置換した後に、バックグラウンドで実行します: .Bl -tag -width PEER_ENDDISC .It Li AUTHNAME これは、ローカルの .Ar authname の値と置き換えられます。後述の .Dq set authname コマンドを参照してください。 .It Li COMPILATIONDATE これは、 .Nm がコンパイルされた日付と置き換えられます。 .It Li DNS0 & DNS1 これは、それぞれプライマリ DNS サーバ、セカンダリ DNS サーバの IP アドレスに置き換えられます。IPCP によりネームサーバが ネゴシエーションされた場合、このマクロの値は変わります。 .It Li ENDDISC これは、ローカルの終点選択値と置き換えられます。 後述の .Dq set enddisc コマンドを参照してください。 .It Li HISADDR これは、相手の IP 番号と置き換えられます。 .It Li INTERFACE これは、使用中のインタフェース名と置き換えられます。 .It Li LABEL これは、最後に使用したラベル名と置き換えられます。 ラベルは、 .Nm のコマンドラインから .Dq load または .Dq dial のコマンドから指定するか、 .Pa ppp.secret ファイルから指定可能です。 .It Li MYADDR これは、ローカルインタフェースに割り当てられた IP 番号と置き換えられます。 .It Li PEER_ENDDISC これは、相手の終点選択番号と置き換えられます。 .It Li PROCESSID これは、現在のプロセス ID と置き換えられます。 .It Li VERSION これは、 .Nm の現在のバージョン番号と置き換えられます。 .It Li USER これは、PAP もしくは CHAP で認証されたユーザ名と置き換えられます。 通常、この変数は -direct モードでのみ割り当てられます。 この値は、utmp ロギングが有効になっているかどうかに関わらず、利用可能です。 .El .Pp これらの置換は .Dq set proctitle コマンドによっても実行されます。 .Pp コマンド実行中に .Nm を停止させたい場合は、 .Dq shell コマンドを使用してください。 .It clear physical|ipcp Op current|overall|peak... .Dq physical もしくは .Dq ipcp 階層で、指定されたスループット値をクリアします。 .Dq modem を指定する場合にはコンテキストが与えられなければなりません (後述の .Dq link コマンドを参照)。 第 2 引数が与えられない場合、すべての値がクリアされます。 .It clone Ar name Ns Xo .Op \&, Ns Ar name Ns .No ... .Xc 指定されたリンクを複製し、引数の .Ar name に関連づけた新しいリンクを作成します。 このコマンドは、リンクが 1 つしかない場合 (この場合にはそのリンクがデフォルトになります) を除いて後述の .Dq link コマンドから使用する必要があります。 リンクは下記の .Dq remove コマンドで削除できます。 .Pp デフォルトのリンク名は .Dq deflink です。 .It close Op lcp|ccp Ns Op !\& 引数が与えられないと、適切なプロトコル層がダウンし、リンクが閉じられます。 .Dq lcp が指定されると LCP 層がダウンしますが、 .Nm をオフラインにはしません。例えば .Dq slirp のようなものを使用すれば、 .Dq term (後述) を使用して相手のマシンと会話できます。 .Dq ccp が指定されると適切な圧縮層が閉じられます。 .Dq !\& が使用されると、圧縮層はクローズ状態のままとなります。 使用されない場合には、STOPPED 状態へ再度入り、 相手が更なる CCP ネゴシエーションを開始するのを待ちます。 なにが起きようとも、ユーザを .Nm から切り離すことはありませんし、 .Nm を終了させることもありません。 後述の .Dq quit を参照してください。 .It delete Ns Xo .Op !\& .Ar dest .Xc このコマンドは指定した .Ar dest IP アドレスの経路を削除します。 .Ar dest に .Sq ALL が指定された場合、 現在のインタフェースの経路表の非直接エントリと .Sq スティッキー経路 がすべて削除されます。 .Ar dest に .Sq default が指定された場合、デフォルト経路が削除されます。 .Pp .Ar delete!\& コマンドが使用された場合 (最後の .Dq !\& に注意)、存在しない経路について .Nm は文句を言わなくなります。 .It dial|call Op Ar label Ns Xo .No ... .Xc このコマンドは、 .Dq load label の次に .Dq open を指定することと同等です。後方互換性のために提供されています。 .It down Op Ar lcp|ccp 適切な階層をダウンさせますが、 綺麗な方法ではなく、下位層が使用不能になったように見えます。 オープン状態にある有限状態機械でこのコマンドを使用することは、 丁寧ではないとされています。 引数が与えられない場合、すべてのリンクが閉じられます (コンテキストが与えられない場合にはすべてのリンクが終了されます)。 .Sq lcp が指定された場合、 .Em LCP 層は終了されますが、デバイスはオフラインに移行せず、 リンクも閉じられません。 .Sq ccp が指定された場合、 関連する圧縮層のみが終了されます。 .It help|? Op Ar command 利用可能なコマンドをリストします。 .Ar command を指定した場合、このコマンドの使用方法を表示します。 .It iface add Ns Xo .Op !\& .Ar addr Ns Op / Ns Ar bits .Op Ar peer .Xc .It iface add Ns Xo .Op !\& .Ar addr .Ar mask .Ar peer .Xc このコマンドは、 .Nm が使用するインタフェースを制御します。 .Ar command は次のいずれかです: .Bl -tag -width 2h .It iface add Ns Xo .Op !\& .Ar addr Ns Op / Ns Ar bits .Op Ar peer .Xc 指定された .Ar addr mask peer の組み合わせをインタフェースに追加します。 .Ar mask を指定する代りに、 .Ar /bits を使用可能です ( .Ar addr との間に空白を入れてはなりません)。 指定したアドレスが既に存在する場合、 .Dq !\& を使用していない限りコマンドは失敗します - この場合、 以前のインタフェースアドレスエントリは新しいもので置き換えられ、 ネットマスクと相手のアドレスの変更を許します。 .Pp .Ar addr のみが指定されると、 .Ar bits はデフォルト値 .Dq 32 になり、 .Ar peer はデフォルト値 .Dq 255.255.255.255 になります。 このアドレス (ブロードキャストアドレス) は、 相手のアドレスとして複数存在することを .Nm が唯一許すものです。 .It iface clear .Nm が OPENED 状態または .Fl auto モードの場合にこのコマンドを使用すると、 IPCP ネゴシエートされたアドレス以外の全アドレスが インタフェースから削除されます。 .Nm が OPENED 状態でも .Fl auto モードでもない場合、全インタフェースアドレスが削除されます。 .Pp .It iface delete Ns Xo .Op !\& Ns .No |rm Ns Op !\& .Ar addr .Xc このコマンドは、指定した .Ar addr をインタフェースから削除します。 .Dq !\& が指定されると、現在そのアドレスがインタフェースに割り当てられていなくても、 エラーは報告されません (削除も行われません)。 .It iface show インタフェースの現在の状態と現在のアドレスを表示します。 .Dq ifconfig INTERFACE を実行することと、ほとんど同じです。 .It ident Op Ar text Ns No ... .Ar text を使用して、相手に対してリンクを自己証明 (identify) します。 .Ar text が空の場合、リンクの自己証明は無効化されます。 前述の .Ic bg コマンドに使用できる語はすべて使用可能です。 .Nm が相手に対して自己証明する場合についての詳細は、 .Ic sendident コマンドを参照してください。 .It iface help Op Ar sub-command このコマンドを .Ar sub-command 無しで起動すると、利用可能な .Dq iface サブコマンドと、おのおのの短い書式を表示します。 .Ar sub-command 付きで起動すると、指定した sub-command の書式のみを表示します。 .El .It Op data Ns Xo .No link .Ar name Ns Op , Ns Ar name Ns .No ... Ar command Op Ar args .Xc コマンドが影響を与えるリンクを特定したい場合に、このコマンドを 任意の他のコマンドのプレフィックスとして使うことができます。 これはマルチリンクモードで .Dq clone コマンドを使って複数のリンクを作成した後でのみ適用されます。 .Pp .Ar name は存在するリンク名を指定します。 .Ar name がコンマ区切りのリストの場合には、 .Ar command はそれぞれのリンクに対して実行されます。 .Ar name が .Dq * の場合には、 .Ar command はすべてのリンクに対して実行されます。 .It load Op Ar label Ns Xo .No ... .Xc .Pa ppp.conf ファイルから指定された .Dq label (複数指定可) をロードします。 .Dq label が指定されない場合、 .Dq default ラベルが仮定されます。 .Pp .Ar label セクションが .Dq set mode , .Dq open , .Dq dial のいずれのコマンドも使用しない場合、 .Nm はすぐに接続を確立しようとはしません。 .It open Op lcp|ccp|ipcp これは .Dq close の反対のコマンドです。 閉じられているリンクのうち、2 番目以降の .Ar demand-dial リンク以外、全リンクがすぐに立ち上がります - 2 番目以降の .Ar demand-dial リンクは、どのような .Dq set autoload コマンドが使用されたかに依存して立ち上ります。 .Pp LCP 層がすでにオープンされているときに .Dq lcp 引数を指定すると、LCP は再度ネゴシエートされます。 したがって、種々の LCP オプションを変更したあとで .Dq open lcp コマンドを用いることで、変更を有効にすることができます。 LCP が再度ネゴシエートされた後、 同意したあらゆる認証が実行されます。 .Pp .Dq ccp 引数が用いられると、関連する圧縮層がオープンされます。 すでにオープンされている場合には、再度ネゴシエートされます。 .Pp .Dq ipcp 引数が用いられると、リンクが通常通り起動されます。すでに IPCP が オープンされている場合には、IPCP は再度ネゴシエートされ、 ネットワークインタフェースが再設定されます。 .Pp このようにして PPP の状態機械を再オープンするのは、 おそらく良い手段ではありません。 接続相手が正しく振る舞わない可能性があるためです。 しかしながら、強制的に CCP もしくは VJ 辞書をリセットする手段としては 便利です。 .It passwd Ar pass すべての .Nm コマンドセットにアクセスするために要求されるパスワードを指定します。 このパスワードは診断ポート ( .Dq set server コマンド参照) に接続するときに必要です。 .Ar pass は .Dq set server コマンドラインで指定します。 .Ar command ログが有効でも、値 .Ar pass は記録されず、文字列 .Sq ******** が記録されます。 .It quit|bye Op all .Dq quit が制御接続もしくはコマンドファイルから実行されると、 ppp はすべての接続を閉じた後に終了します。その他の場合、 つまりユーザが診断ソケットから接続している場合には、 単にその接続が失われます。 .Pp .Ar all 引数が与えられた場合、 .Nm はコマンドがどこから発行されたかに関わらず、 すべての存在する接続を閉じて終了します。 .It remove|rm このコマンドは与えられたリンクを消去します。 これはマルチリンクモードでのみ有用です。リンクは消去する前に .Dv CLOSED 状態になっていなければなりません。 .It rename|mv Ar name このコマンドは与えられたリンクの名前を .Ar name に変更します。 .Ar name がすでに他のリンクで使用されている場合には、失敗します。 .Pp デフォルトリンクの名前は .Sq deflink です。これを .Sq modem , .Sq cuaa0 , .Sq USR のいずれかに変更すると、ログファイルの可読性が向上するかも知れません。 .It resolv Ar command このコマンドは .Nm が行なう .Xr resolv.conf 5 ファイルの操作を制御します。 .Nm の起動時に、以後の参照に備え、このファイルの内容をメモリに読み込み 保持します。 .Ar command は次のいずれかです。 .Bl -tag -width readonly .It Em readonly .Pa /etc/resolv.conf を読み込み専用とします。 .Dq dns が有効にされている場合、 .Nm は、接続相手との間でネームサーバのネゴシエーションを試みます。 ネゴシエーションの結果は、マクロ .Dv DNS0 , .Dv DNS1 を通じて利用可能となります。 このコマンドは、 .Dq resolv writable コマンドの反対です。 .It Em reload .Pa /etc/resolv.conf をメモリに再ロードします。 例えば、DHCP クライアントが .Pa /etc/resolv.conf を上書きする場合などに、このコマンドが必要になります。 .It Em restore .Pa /etc/resolv.conf を、起動時に読み込んだ元のバージョンか、もしくは .Dq resolv reload コマンドで最後に読み込んだ状態のものに戻します。 このコマンドは、 .Pa /etc/ppp/ppp.linkdown ファイルの中でうまく使えることがあります。 .It Em rewrite .Pa /etc/resolv.conf ファイルを書き換えます。 このコマンドは、 .Dq resolv readonly コマンドが既に使用されていても動作します。 他のコマンドが完了するまで .Pa /etc/resolv.conf の更新を遅らせたい場合に、 .Pa /etc/ppp/ppp.linkup の中でうまく使えることがあります。 .It Em writable .Dq dns が有効になっており、DNS の ネゴシエーションが成功した場合に、 .Nm が .Pa /etc/resolv.conf を更新できるようにします。 これは .Dq resolv readonly コマンドの反対です。 .El .It save このオプションは (まだ) 実装されていません。 .It sendident このコマンドは、 .Nm に対し、相手に対して自己証明するように指示します。 リンクは、LCP 状態以上であることが必要です。( .Ic ident コマンドによって) 自己証明の設定がなされていない場合、 .Ic sendident は失敗します。 .Pp 自己証明の設定がなされている場合、 設定拒否を送信または受信するときか、 ネゴシエーションが失敗したときか、 LCP が OPENED 状態になるときのいずれかのときに、 .Nm は自動的に自己証明します。 .Pp 受信した自己証明パケットは、LCP ログに記録し (詳細は .Ic set log を参照してください)、これに対する応答は行いません。 .It set Ns Xo .Op up .Ar var value .Xc このオプションは次に示す変数の設定のために使用します: .Bl -tag -width 2h .It set accmap Ar hex-value ACCMap は非同期制御文字マップ (Asyncronous Control Character Map) を 意味します。 これはいつも相手とネゴシエートされ、デフォルト値は 16 進数で 00000000 です。 このプロトコルが必要なのは、 (XON/XOFF などの) 特定の文字を終点間で受渡すことに依存するハードウェアを 使用する場合です。 .Pp XON/XOFF については .Dq set accmap 000a0000 を使用します。 .It set Op auth Ns Xo .No key Ar value .Xc クライアントモードでの PAP または CHAP のネゴシエーションで使用される 認証キー (もしくはパスワード) を、指定した値に設定します。 ダイヤルまたはログインスクリプトの .Sq \eP シーケンスで使用するパスワードもまた指定します。 これにより実際のパスワードは記録されません。 .Ar command または .Ar chat のログが有効な場合、セキュリティの観点から、 .Ar value は .Sq ******** として記録されます。 .Pp .Ar value の最初の文字がエクスクラメーションマーク .Pq Dq !\& の場合、 .Nm は残りの文字列を、 .Dq authname と .Dq authkey の値を確定するために実行すべきプログラムとして扱います。 .Pp 実行するプログラムを得るために .Ar value をパーズする際には、 .Dq !\& が二重 ( .Dq !!\& ) である場合、単一のリテラル .Dq !\& として扱います、そうでない場合、 .Dq !\& を無視します。また、前述の .Dq !bg コマンドと同様に特殊な名前を置換します。 プログラムを実行すると、 .Nm はこのプログラムに対して次の 3 行の入力を与えます。 各行の末尾には改行文字が置かれます。 .Bl -bullet .It CHAP チャレンジで送られたホスト名。 .It CHAP チャレンジで送られたチャレンジ文字列。 .It ローカルに定義された .Dq authname 。 .El .Pp そして、出力として次の 2 行を待ちます。 .Bl -bullet .It CHAP 応答と共に送るための .Dq authname 。 .It .Dq authkey 。これは、チャレンジと要求 ID で暗号化したもの であり、この結果は CHAP 応答パケットに含めて送られます。 .El .Pp .Nm をこのように設定するとき、 ホストチャレンジは ASCII の数値もしくは文字であることを 想定しています。 指定されたチャレンジに対する適切な秘密情報を計算するために、 通常は、暗号化デバイスまたは Secure ID カードが必要です。 .It set authname Ar id クライアントモードでの PAP または CHAP のネゴシエーションで使用される 認証 ID を設定します。 .Pp CHAP を enable にして .Fl direct モードで利用すると、 .Ar id は初期認証チャレンジで用いられ、通常はローカルマシン名に設定されます。 .It set autoload Xo .Ar min-percent max-percent period .Xc これらの設定はマルチリンクモードでのみ適用され、 デフォルト値はそれぞれ 0, 0, 5 です。 1 つ以上の .Ar demand-dial ( .Fl auto としても知られる) モードのリンクが存在する場合、 .Nm が最初に tun デバイスからデータを読むときには最初のリンクのみが 有効になっています。 次の .Ar demand-dial リンクが開かれるのは、現在のバンドルの .Ar period 秒間のスループットがバンドルの総バンド幅の最低 .Ar max-percent パーセントであるときに限られます。 現在のバンドルの .Ar period 秒間のスループットがバンドルの総バンド幅の .Ar min-percent パーセント以下に減少したとき、最後のアクティブな リンクでない場合、 .Ar demand-dial リンクはダウンします。 .Pp バンドルのスループットは、 内向きおよび外向きのトラフィックの最大値として計測されます。 .Pp デフォルト値では .Ar demand-dial リンクは 1 つだけオープンされます。 .Pp デバイスによっては物理バンド幅を判定できないものがありますので、 .Dq set autoload が正しく動作するためには、(後述の) .Dq set bandwidth コマンドを使用する必要がある場合があります。 .It set bandwidth Ar value 本コマンドは、接続のバンド幅を、秒あたりのビット数で設定します。 .Ar value は 0 より大きいことが必要です。 現在、前述の .Dq set autoload コマンドのみが使用します。 .It set callback Ar option Ns No ... 引数が与えられない場合、コールバックは disable になります。 そうでない場合には、 .Nm は与えられた .Ar option でコールバックを要求します (もしくは .Ar direct モードでは受け付けます)。 クライアントモードでは、 .Ar option の否定応答が返されると、 .Nm は他に選択肢がなくなるまで別の .Ar option 要求を出します ( .Ar option のひとつとして .Dq none を指定していた場合を除きます)。 サーバモードでは、 .Nm は与えられるプロトコルをなんでも受け付けますが、 クライアントがいずれかひとつを要求する .Em 必要があります 。コールバックをオプションにしたいのであれば、オプションとして .Ar none を指定する必要があります。 .Pp .Ar option は下記の通りです (優先度順): .Pp .Bl -tag -width Ds .It auth コールバック応答側は、認証に基づいてコールバック番号を 決定することが求められます。 .Nm がコールバック応答側である場合、番号は .Pa /etc/ppp/ppp.secret 中の接続先エントリの 5 番目のフィールドで指定されます。 .It cbcp Microsoft コールバック制御プロトコルが用いられます。後述の .Dq set cbcp を参照してください。 .Pp クライアントモードで .Ar cbcp をネゴシエートしたい場合でありかつ、 CBCP ネゴシエーション時にサーバがコールバック無しを要求することを許したい場合、 コールバックオプションとして .Ar cbcp と .Ar none の両方を指定する必要があります。 .It E.164 *| Ns Xo .Ar number Ns Op , Ns Ar number Ns .No ... .Xc コールバック要求側が .Ar number を指定します。 .Nm がコールバック応答側である場合、 .Ar number は許可する番号をコンマで区切って並べたリスト、もしくは 任意の番号を許可するという意味の .Dq \&* とします。 .Nm がコールバック要求側である場合、1 つの数字だけを指定します。 .Pp .Dq \&* を用いる場合、このオプションはとても危険なものとなることに 注意してください。 というのは、悪意あるコールバック要求者が、最初の認証なしに 電話すべき番号として任意の (国際通話番号も可能です) 番号を 伝えることができるからです。 .It none 接続相手がコールバックをまったく望まない場合、 .Nm はそのことを受け入れ、接続を終了するのではなく コールバックせずに処理を続けます。 コールバックをオプションにしたいのであれば、 (1 個以上の他のコールバックオプションに加えて) これも指定する必要があります。 .El .Pp .It set cbcp Oo .No *| Ns Ar number Ns Oo .No , Ns Ar number Ns ...\& Oc .Op Ar delay Op Ar retry .Oc 引数が与えられない場合、CBCP (Microsofts CallBack Control Protocol) は disable です。言い換えれば .Dq set callback コマンドで CBCP を設定すると .Nm が CBCP フェーズでコールバック要求を行わなくなります。 そうでない場合、 .Nm は与えられた電話番号 .Ar number を使おうとします。 .Pp サーバモード .Pq Fl direct では、 .Dq \&* を使わない限り .Nm はクライアントがこれらの番号の 1 つを使うことを主張します。 .Dq \&* を使った場合には、クライアントが番号を指定するものと想定します。 .Pp クライアントモードでは .Nm は与えられた番号 (そのうち接続相手と合意可能なもの) を使用しようとします。 .Dq \&* が指定された場合には、 .Nm 接続相手が番号を指定するものと想定します。 .It set cd Oo .No off| Ns Ar seconds Ns Op !\& .Oc 通常、オープンしたデバイスのタイプにより、 .Nm はキャリアの存在をチェックします。 .Bl -tag -width XXX -offset XXX .It 端末デバイス ログインスクリプト完了後、1 秒間キャリアがチェックされます。 このパラメータが設定されていない場合、 デバイスがキャリアをサポートしていない (ほとんどの .Dq laplink ヌルモデムケーブルの場合がそうです) と .Nm は仮定し、この事実をログに取って、キャリアのチェックを止めます。 .Pp 仮想端末 (pty) は TIOCMGET ioctl をサポートしていないため、 デバイスが仮想端末であることを検知した場合、 端末デバイスはすべてのキャリア検出をオフにします。 .It ISDN (i4b) デバイス 6 秒間、1 秒ごとに 1 回キャリアの検出を行ないます。 6 秒後にキャリアが設定されない場合、接続の試みは失敗したと見なされ、 デバイスはクローズされます。 i4b デバイスの場合、キャリアが常に要求されます。 .It PPPoE (netgraph) デバイス 5 秒間、1 秒ごとに 1 回キャリアの検出を行ないます。 5 秒後にキャリアが設定されない場合、接続の試みは失敗したと見なされ、 デバイスはクローズされます。 PPPoE デバイスの場合、キャリアが常に要求されます。 .El .Pp 他のすべてのデバイスタイプはキャリアをサポートしていません。 デバイスをオープンするときにキャリアを設定すると警告が出ます。 .Pp モデムによっては、接続が確立してからキャリア信号線がアサートされるまで 1 秒以上かかるものがあります。この遅れを増やせない場合、 .Nm はそのデバイスがキャリアをアサートできないと見なすので、 .Nm はリンクのドロップを検出できないことになります。 .Pp .Dq set cd コマンドはデフォルトのキャリアの動作を上書きします。 .Ar seconds は、ダイヤルスクリプトが完了してからキャリアが利用可能か判断する前に、 .Nm が待つべき秒数の上限を指定します。 .Pp .Dq off が指定されると、 .Nm はデバイスのキャリアを確認しません。そうでない場合、 キャリアが検出されるか .Ar seconds の秒数が経過するまで、 .Nm はログインスクリプトへは進みません。このとき、 .Ar seconds の秒数が経過した時点で、 .Nm はデバイスがキャリアを設定できないと想定します。 .Pp 引数を与えない場合、キャリア設定はデフォルトの値に戻ります。 .Pp .Ar seconds の直後にエクスクラメーションマーク .Pq Dq !\& がある場合、 .Nm はキャリアを .Em 要求 します。 .Ar seconds 秒後にキャリアが検知されないと、リンクは切断されます。 .It set choked Op Ar timeout これは .Nm がすべての未送出パケットを破棄する前に 送出キュー詰まりを保持する秒数を設定します。 .Ar timeout が 0 以下もしくは .Ar timeout が指定されない場合、デフォルト値の .Em 120 秒 に設定されます。 .Pp 送出キュー詰まりは .Nm がローカルネットワークから特定の数の送出パケットを読み込んだが、 リンク失敗 (接続相手がビジーなど) のためにデータを送れない場合に 発生します。 .Nm はパケットを無限には読み込みません。代りに .Em 30 パケット (マルチリンクモードでは .Em 30 No + .Em nlinks No * .Em 2 パケット) まで読み込み、 .Ar timeout 秒経過するか、1 つ以上のパケットが送られるまで ネットワークインタフェースの読み込みを停止します。 .Pp .Ar timeout 秒が経過すると、すべての未送出パケットは破棄されます。 .It set ctsrts|crtscts on|off ハードウェアフロー制御をセットします。 デフォルトではハードウェアフロー制御は .Ar on です。 .It set deflate Ar out-winsize Op Ar in-winsize DEFLATE アルゴリズムの、 デフォルトの出力ウィンドウサイズと入力ウィンドウサイズを設定します。 .Ar out-winsize および .Ar in-winsize は、 .Em 8 から .Em 15 までの値をとる必要があります。 .Ar in-winsize が指定されると、 .Nm はこのウィンドウサイズの使用を強要し、相手が他の値を示しても受け入れません。 .It set dns Op Ar primary Op Ar secondary .Dq accept dns コマンドで使用される、DNS 上書きを設定します。 詳細については前述の .Dq accept コマンドの記述を参照してください。本コマンドは .Dq enable dns を使用して要求される IP 番号には影響を与えません。 .It set device|line Xo .Ar value Ns No ... .Xc .Nm が使用するデバイスを、指定された .Dq value に設定します。 .Pp すべての ISDN デバイスとシリアルデバイスの名前は .Pa /dev/ から始まることが仮定されています。 ISDN デバイスは通常 .Pa i4brbchX という名前であり、シリアルデバイスは通常 .Pa cuaXX という名前です。 .Pp .Dq value が .Pa /dev/ から始まらない場合、エクスクラメーションマーク .Pq Dq !\& から始めるか、 .No PPPoE: Ns Ar iface Ns Xo .Op \&: Ns Ar provider Ns .Xc の形式 ( .Xr netgraph 4 が有効なシステム上) であるか、 .Sm off .Ar host : port /tcp|udp .Sm on の形式である必要があります。 .Pp エクスクラメーションマークで始まる場合、 デバイス名の残りはプログラム名として扱われ、 そのデバイスがオープンされるときにそのプログラムが実行されます。 標準入出力およびエラーは .Nm にフィードバックされ、それらが通常デバイスであるかのように読み書きされます。 .Pp .No PPPoE: Ns Ar iface Ns Xo .Op \&: Ns Ar provider Ns .Xc 指定が与えられる場合、 .Nm は、指定された .Ar iface インタフェースを使用して .Em PPP オーバイーサネット接続を作成しようとします。 この際 .Xr netgraph 4 を使用します。 .Xr netgraph 4 が使用不能の場合、 .Nm は .Xr kldload 2 を使用してロードしようとします。 これが失敗する場合には、 .Ox で利用できる .Xr pppoe 8 のような外部プログラムを使用する必要があります。 与えられた .Ar provider は、PPPoE Discovery Initiation (PADI) パケット中で サービス名として渡されます。 provider が与えられないと、空の値が使用されます。 .Pp PPPoE 接続が確立されるとき、 .Nm は、アクセスコンセントレータの名前を環境変数 .Va ACNAME に設定します。 .Pp さらなる詳細は .Xr netgraph 4 と .Xr ng_pppoe 4 を参照してください。 .Pp .Ar host Ns No : Ns Ar port Ns Oo .No /tcp|udp .Oc 指定が与えられる場合、 .Nm は、指定された .Ar host の指定された .Ar port と接続しようとします。 .Dq /tcp または .Dq /udp のサフィックスがない場合、デフォルトは .Dq /tcp となります。 詳細は上述の .Em PPP オーバ TCP と PPP オーバ UDP の節を参照してください。 .Pp 複数の .Dq value を指定した場合、 .Nm は成功するか全デバイスについて実行し終るまで、順番にオープンを試みます。 .It set dial Ar chat-script 相手へダイヤルする際に使用されるチャットスクリプトを指定します。 後述の .Dq set login コマンドも参照してください。 チャットスクリプトのフォーマットの詳細については、 .Xr chat 8 と設定ファイルの例を参照してください。 次の特殊な .Sq value をチャットスクリプトに指定可能です: .Bl -tag -width 2n .It \ec .Sq 送信 文字列の最後の文字として使用した場合、 改行を追加してはならないことを意味します。 .It \ed チャットスクリプトがこのシーケンスに出会うと、2 秒待ちます。 .It \ep チャットスクリプトがこのシーケンスに出会うと、1/4 秒待ちます。 .It \en 改行文字と置き換えられます。 .It \er 復改文字と置き換えられます。 .It \es 空白文字と置き換えられます。 .It \et タブ文字と置き換えられます。 .It \eT 現在の電話番号と置き換えられます (後述の .Dq set phone 参照)。 .It \eP 現在の .Ar authkey 値と置き換えられます (前述の .Dq set authkey 参照)。 .It \eU 現在の .Ar authname 値と置き換えられます (前述の .Dq set authname 参照)。 .El .Pp 2 つのパーザがこれらのエスケープシーケンスを検査することに注意してください。 .Sq チャットのパーザ にエスケープ文字を見せるには、 .Sq コマンドパーザ からエスケープする必要があります。 つまり、2 つのエスケープを使用する必要があります。例えば次のようにします: .Bd -literal -offset indent set dial "... ATDT\\\\T CONNECT" .Ed .Pp チャットスクリプトから外部コマンドを実行することもできます。 そうするためには、 受信待ち文字列または送信文字列の最初の文字をエクスクラメーションマーク .Pq Dq !\& にします。 リテラルのエクスクラメーションマークが必要な場合には、二重 .Dq !!\& にすれば、単一のリテラル .Dq !\& として扱われます。 コマンドが実行されると、標準入力と標準出力がオープンデバイス ( .Dq set device 参照) に向けられ、標準エラー出力が .Nm に読まれて受信待ち文字列もしくは送信文字列に置き換えられます。 .Nm が対話モードで実行されている場合、ファイル記述子 3 は .Pa /dev/tty に接続されます。 .Pp 例えば (読み易さのために折り返しています); .Bd -literal -offset indent set login "TIMEOUT 5 \\"\\" \\"\\" login:--login: ppp \e word: ppp \\"!sh \\\\-c \\\\\\"echo \\\\-n label: >&2\\\\\\"\\" \e \\"!/bin/echo in\\" HELLO" .Ed .Pp は次のチャットシーケンスになります (ダイヤル前の .Sq set log local chat コマンドによる出力): .Bd -literal -offset indent Dial attempt 1 of 1 dial OK! Chat: Expecting: Chat: Sending: Chat: Expecting: login:--login: Chat: Wait for (5): login: Chat: Sending: ppp Chat: Expecting: word: Chat: Wait for (5): word: Chat: Sending: ppp Chat: Expecting: !sh \\-c "echo \\-n label: >&2" Chat: Exec: sh -c "echo -n label: >&2" Chat: Wait for (5): !sh \\-c "echo \\-n label: >&2" --> label: Chat: Exec: /bin/echo in Chat: Sending: Chat: Expecting: HELLO Chat: Wait for (5): HELLO login OK! .Ed .Pp 複数レベルのネストについて、 エスケープ文字の使用方法に (再度) 注意してください。 ここでは、4 つのパーザが動作してます。 1 番目は、オリジナルの行をパーズし、3 つの引数として読みます。 2 番目は、第 3 引数を 11 個の引数として読みます。 ここで、 .Dq \&- 記号がエスケープされていることが重要です。 そうでなければパーザは、 受信待ち-送信-受信待ちのシーケンスとして見てしまいます。 .Dq !\& 文字を見付けると、実行パーザは最初のコマンドを 3 つの引数として読み、 .Xr sh 1 自身が .Fl c 以降の引数を展開します。 我々は出力をモデムに送り返したいので、 1 番目の例では出力をファイル記述子 2 (stderr) にリダイレクトして .Nm 自身に送信および記録させ、 2 番目の例では単に stdout に出力して直接モデムに出力させます。 .Pp もちろん全体を、組み込みのものではなく外部の .Dq chat コマンドに実行させることが可能です。 良い代替方法については .Xr chat 8 を参照してください。 .Pp 実行される外部コマンドは、 .Dq !bg コマンドと同様に、特殊語の展開対象となります。 .It set enddisc Op label|IP|MAC|magic|psn value このコマンドは、ローカル終点の選択値を設定します。 LCP ネゴシエーションの前に設定された場合であり、 .Dq disable enddisc コマンドを使用していない場合、 .Nm は LCP 終点選択値オプションを使用して、相手に情報を送ります。 次の選択値を設定可能です。 .Bl -tag -width indent .It Li label 現在のラベルが使用されます。 .It Li IP 当方のローカル IP 番号を使用します。 LCP は IPCP より前にネゴシエートされますので、 IPCP 層が後からこの値を変更することが可能です。 その場合、手動でリセットしない限り、終点の選択値は古い値のままとなります。 .It Li MAC 前述の .Ar IP オプションに似ていますが、 ローカル IP 番号に関係する MAC アドレスが使用される点が異なります。 ローカル IP 番号がどのイーサネットインタフェースにも存在しない場合、 本コマンドは失敗します。 .Pp ローカル IP 番号のデフォルトは、 マシンホスト名がなんであれ、その名前になりますので、通常 .Dq set enddisc mac を .Dq set ifaddr コマンドよりも先に実行します。 .It Li magic 20 桁の乱数が使用されます。 マジックナンバを使用するときには注意が必要です。 .Nm の再開や別の .Nm を使ったリンク作成においては、別のマジックナンバを使用するため、 同じバンドルに属すとは相手に認識されないのです。 このため、 .Fl direct 接続では使えません。 .It Li psn Ar value 指定された .Ar value が使用されます。 .Ar value は、絶対的な公衆スイッチネットワーク番号の先頭に 国コードを付けたものであるべきです。 .El .Pp 引数が与えられない場合、終点の選択値はリセットされます。 .It set escape Ar value... このオプションは前述の .Dq set accmap オプションに似ています。 リンクを経由する時に .Sq エスケープ される文字を指定するために使用します。 .It set filter dial|alive|in|out Ar rule-no Xo .No permit|deny|clear| Ns Ar rule-no .Op !\& .Oo Op host .Ar src_addr Ns Op / Ns Ar width .Op Ar dst_addr Ns Op / Ns Ar width .Oc [ tcp|udp|ospf|ipip|igmp|icmp Op src lt|eq|gt Ar port .Op dst lt|eq|gt Ar port .Op estab .Op syn .Op finrst .Op timeout Ar secs ] .Xc .Nm は 4 つのフィルタセットをサポートします。 .Em alive フィルタは接続を活性状態に保つパケットを指定します - アイドルタイマをリセットします。 .Em dial フィルタは、 .Fl auto モード時に .Nm にダイヤルさせるパケットを指定します。 .Em in フィルタは、マシンに入力可能なパケットを指定します。 .Em out フィルタは、マシンから出力可能なパケットを指定します。 .Pp フィルタリングが行われるのは、 出力パケットでは NAT エンジンによる IP 変更前であり、 入力パケットでは NAT エンジンによる IP 変更後です。 デフォルトでは、すべての空のフィルタセットは全パケットの通過を許可します。 ルールは .Ar rule-no に従って順番に処理されます (ルール番号を .Ar action に指定してスキップする場合を除きます)。 各セットに対し 40 までのルールを指定可能です。 指定されるセットにおけるどのルールにもマッチしないパケットは破棄されます。 .Em in と .Em out のフィルタでは、パケットをドロップすることを意味します。 .Em alive フィルタでは、アイドルタイマをリセットしないことを意味します (これは .Ar in Ns No / Ns Ar out フィルタが .Dq timeout 付きである場合でもです)。 .Em dial フィルタではダイヤルさせることにはならないことを意味します。 ダイヤルを引き起こさないパケットは、 キューされるのではなく、捨てられることに注意してください。 上述の .Sx パケットのフィルタリング の節を参照してください。 .It set hangup Ar chat-script デバイスを閉じる前にこれをリセットする時に使用する、 チャットスクリプトを指定します。 通常は不要であるべきですが、 閉じる時に自己を正しくリセットできないデバイスに対して使用できます。 .It set help|? Op Ar command 利用可能な set コマンドのまとめを表示するか、 .Ar command が指定されると、コマンドの使用方法を表示します。 .It set ifaddr Oo Ar myaddr Ns .Op / Ns Ar \&nn .Oo Ar hisaddr Ns Op / Ns Ar \&nn .Oo Ar netmask .Op Ar triggeraddr .Oc Oc .Oc このコマンドは、IPCP ネゴシエーションの間使用される IP アドレスを指定します。 アドレスのフォーマットは次の通りです。 .Pp .Dl a.b.c.d/nn .Pp ここで .Dq a.b.c.d は希望する IP アドレスであり、 .Ar nn はこのうち何ビットが有効であるかを示します。 .No / Ns Ar nn が省略された場合、デフォルトの .Dq /32 になります。 ただし IP アドレスが 0.0.0.0 である場合には、マスクのデフォルトは .Dq /0 です。 .Pp 相手に動的な IP 番号を割り当てたい場合、 .Ar hisaddr に IP 番号の範囲として .Bd -ragged -offset indent .Ar \&IP Ns Oo \&- Ns Ar \&IP Ns Xo .Oc Ns Oo , Ns Ar \&IP Ns .Op \&- Ns Ar \&IP Ns .Oc Ns ... .Xc .Ed .Pp のフォーマットを指定できます。例えば: .Pp .Dl set ifaddr 10.0.0.1 10.0.1.2-10.0.1.10,10.0.1.20 .Pp は .Dq 10.0.0.1 のみをローカル IP 番号としてネゴシエートしますが、 指定された 10 個の IP 番号から 相手に割り当てを行います。 相手がこれらの番号のうちの 1 つを要求し、この番号が未使用な場合には、 .Nm は相手の要求を認めます。 相手がリンクを再確立して前回割り当てていた IP 番号を使用したい場合に有用です (既存の TCP と UDP の接続を保存します)。 .Pp 相手が要求した IP 番号が範囲外もしくは使用中の場合、 .Nm は範囲内の未使用 IP 番号をランダムに指示します。 .Pp .Ar triggeraddr が指定された場合、この値が .Ar myaddr の代りに IPCP ネゴシエートで使用されます。 ただし、 .Ar myaddr の範囲のアドレスのみ受け入れられます。 これが有用なのは、相手が .Dq 0.0.0.0 を要求しない限り IP アドレスを割り当てようとしない .Dv PPP 実装とネゴシエートするときです。 .Pp .Fl auto モードでは設定ファイルの .Dq set ifaddr 行を読んだ直後に .Nm がインタフェースを構成することに注意してください。 他のモードではこれらの値は IPCP ネゴシエーションで使用され、 IPCP 層がアップするまでこれらのインタフェースは構成されません。 .Pp (PAP か CHAP が .Dq enable である場合) クライアントが自己証明をした後では、 .Ar HISADDR 引数は .Pa ppp.secret ファイルの第 3 引数で上書きされうることに注意してください。 .Sx 内向き接続の認証 の節を参照してください。 .Pp どの場合でも、インタフェースが既に構成されている場合には、 .Nm はインタフェースの IP 番号を保存して、 既にバインドされているソケットが正しいままであるようにします。 .It set ifqueue Ar packets どのリンクへもデータが送信できない状態のとき、 .Nm がトンネルインタフェースから読み込むパケット数の最大値を 指定します。 .Nm が利用できるリンクの束よりもトンネルインタフェースがはるかに 高速となりそうな場合に、送出データのフロー制御のために このキューの制限は必要になります。 .Ar packets にリンクの数よりも小さな値を設定した場合、 その設定に関わらず .Nm はリンクの数までは読み込みます。これにより、遅延の問題が回避されます。 .Pp .Ar packets のデフォルトの値は .Dq 30 です。 .It set ccpretry|ccpretries Oo Ar timeout .Op Ar reqtries Op Ar trmtries .Oc .It set chapretry|chapretries Oo Ar timeout .Op Ar reqtries .Oc .It set ipcpretry|ipcpretries Oo Ar timeout .Op Ar reqtries Op Ar trmtries .Oc .It set lcpretry|lcpretries Oo Ar timeout .Op Ar reqtries Op Ar trmtries .Oc .It set papretry|papretries Oo Ar timeout .Op Ar reqtries .Oc これらのコマンドは .Nm が有限状態機械 (Finite State Machine; FSM) に要求パケットを送る前に 待つ秒数を指定します。 .Ar timeout のデフォルトは、全 FSM において 3 秒です (ほとんどの場合十分です)。 .Pp .Ar reqtries を指定すると、 相手から応答を受信しなくても諦めるまでに設定要求を作成する回数を、 .Nm に指示します。 デフォルトの試行回数は、CCP, LCP, IPCP の場合 5 回であり、 PAP と CHAP の場合 3 回です。 .Pp .Ar trmtries を指定すると、 相手の応答を待つことを諦めるまでに終了要求を作成する回数を、 .Nm に指示します。 デフォルトの試行回数は 3 回です。 認証プロトコルは終了されませんので、 PAP や CHAP に対して指定することは不正です。 .Pp 合意できない相手とのネゴシエーションを避けるために、 どのようなネゴシエーションセッションであっても諦めたり層をクローズする前には、 .Nm は最大で .Ar reqtries の設定値の 3 倍までのみ送信します。 .It set log Xo .Op local .Op +|- Ns .Ar value Ns No ... .Xc このコマンドにより現在のログレベルを修正できます。 詳細はログ機能の節を参照してください。 .It set login chat-script この .Ar chat-script はダイヤルスクリプトを補います。 もし両方が指定された場合、ダイヤルスクリプトの後で、 ログインスクリプトが実行されます。 ダイヤルスクリプト中で使用可能なエスケープシーケンスはここでも使用可能です。 .It set logout Ar chat-script このコマンドは、 ハングアップスクリプトが呼ばれる前にログアウトのために使用される、 チャットスクリプトを指定します。 通常では必要ないでしょう。 .It set lqrperiod Ar frequency このコマンドは、 .Em LQR または .Em ECHO LQR のパケットが送信される頻度 .Ar frequency を秒で指定します。デフォルトは 30 秒です。 相手に LQR 要求を送りたい場合には、 .Dq enable lqr コマンドもまた使用する必要があります。 .It set mode Ar interactive|auto|ddial|background 指定したリンクにおけるモード .Sq mode を変更できます。通常マルチリンクモードでのみ有用ですが、 単一リンクモードでも使用可能です。 .Pp .Sq direct または .Sq dedicated のリンクを変更することはできません。 .Pp 注: コマンド .Dq set mode auto を発行し、ネットワークアドレス変換が enable にされていた場合、後で .Dq enable iface-alias を行うと便利です。 .Nm が必要なアドレス変換を行うようにすることにより、 相手が当方に新しい (動的な) IP アドレスを割り当てたとしても、 リンクがアップすると接続のトリガとなるプロセスが接続できるようにします。 .It set mppe Op 40|56|128|* Op stateless|stateful|* 本オプションは、 MPPE のネゴシエーション時に使用する暗号パラメータを選択します。 .Dq disable mppe コマンドで、MPPE は完全に無効化可能です。 引数を指定しないと、 .Nm は、128 ビット鍵の状態有りリンクをネゴシエートしようとしますが、 相手が要求するすべてに合意します (暗号化無しも含みます)。 .Pp 引数を指定すると、MPPE の使用に .Nm は .Em 固執 し、相手が拒否するとリンクを閉じます。 .Pp 第 1 引数は、ネゴシエート中に .Nm が固執すべきビット数を指定し、第 2 引数は、 状態有りモードまたは状態無しモードのいずれに .Nm が固執すべきかを指定します。 状態無しモードでは、各パケットに応じて変更される暗号化鍵に対応し、 暗号化辞書が再インストールされます。 状態有りモードでは、 暗号化辞書は 256 パケット毎もしくはデータ喪失後に再インストールされ、 鍵は 256 パケット毎に変更されます。 状態無しモードは、効率が悪いものの、 信頼性の無いトランスポート層では良いです。 .It set mrru Op Ar value このオプションを設定すると、 マルチリンクプロトコルまたは MP としても知られる、 マルチリンク PPP ネゴシエーションを有効にします。 MRRU (Maximum Reconstructed Receive Unit) の値にはデフォルトはありません。 引数を指定しないと、マルチリンクモードは無効にされます。 .It set mru Xo .Op max Ns Op imum .Op Ar value .Xc デフォルトの MRU (最大受信単位; Maximum Receive Unit) は 1500 です。 この値を増加させた場合、相手は MTU を増加させても *かまいません*。 理論的には、デフォルトの MRU より減らすことは意味がありません。 なぜなら、 .Em PPP プロトコルでは少なくとも 1500 オクテットのパケットを 受信できなければ *ならない* からです。 .Pp .Dq maximum キーワードが使用された場合、より大きな値のネゴシエートを .Nm は拒否します。 最大 MRU は、最大でも 2048 です。 最大値を 1500 未満にすることは .Em PPP RFC 違反ですが、必要な場合もあります。 例えば、 .Em PPPoE では、ハードウェアの制約により最大が 1492 になります。 .Pp 引数を指定しないと、1500 が仮定されます。 .Dq maximum 指定時には、値の指定が必要です。 引数が指定されないと、1500 が仮定されます。 .It set mtu Xo .Op max Ns Op imum .Op Ar value .Xc デフォルトの MTU は 1500 です。 ネゴシエーション時に、(296 バイト未満でなく、最大値を越えなければ) 相手が望むいかなる MRU も受け付け可能です。 MTU が設定されると、 .Nm は .Ar value よりも小さい MRU の値を受け付けなくなります。 ネゴシエーションが完了すると、 相手がより大きな MRU を要求していたとしても、 インタフェースに対して書き込みを行う時には MTU が使用されます。 当方のパケットサイズを制限するのに有用です (よりよくバンド幅を共有できるようになりますが、 ヘッダデータが増えるというコストがかかります)。 .Pp .Dq maximum キーワードが使用された場合、より大きな値のネゴシエートを .Nm は拒否します。 最大 MTU は、最大でも 2048 です。 .Pp .Ar value を指定しないと、1500 または相手が要求した値が使用されます。 .Dq maximum 指定時には、値の指定が必要です。 .It set nbns Op Ar x.x.x.x Op Ar y.y.y.y このオプションは、相手の要求によって返される Microsoft NetBIOS ネームサーバの値を設定します。 値を指定しないと、 .Nm はそのような要求を拒否するようになります。 .It set openmode active|passive Op Ar delay デフォルトでは、 .Ar openmode は常に、1 秒の .Ar delay をもって .Ar active となります。 この場合、 .Nm は回線が設定されてから 1 秒が経過したなら いつでも LCP/IPCP/CCP のネゴシエーションを開始します。 相手がネゴシエーションを開始するのを待ちたい場合は、値 .Dq passive を使用します。 直ちにもしくは 1 秒以上待ってからネゴシエーションを開始したい場合、 .Ar delay を秒単位で指定します。 .It set parity odd|even|none|mark 回線のパリティを設定できます。デフォルト値は .Ar none です。 .It set phone Ar telno Ns Xo .Oo \&| Ns Ar backupnumber .Oc Ns ... Ns Oo : Ns Ar nextnumber .Oc Ns ... .Xc ダイヤルおよびログインのチャットスクリプトで使用される \\\\T 文字列が 置き換えられる電話番号を指定できます。 複数の電話番号をパイプ .Pq Dq \&| もしくはコロン .Pq Dq \&: で区切って指定可能です。 .Pp パイプの後の番号がダイヤルされるのは、 直前の番号へのダイヤルもしくはログインのスクリプトが失敗した場合のみです。 回線の切断の理由にかかわらず、 コロンで区切られた番号は順番に試行されます。 .Pp 複数の番号を指定した場合、接続が確立するまで .Nm はこのルールに基づいてダイヤルします。 再試行の最大値は、後述の .Dq set redial で指定します。 .Fl background モードでは各番号は最大 1 回試行されます。 .It set Op proc Ns Xo .No title Op Ar value .Xc .Xr ps 1 が表示する現在のプロセスタイトルを、 .Ar value に従って変更します。 .Ar value が指定されないと、元のプロセスタイトルが回復されます。 シェルコマンドが行うすべての語置換 (前述の .Dq bg コマンドを参照してください) は、ここでも行われます。 .Pp プロセスタイトル中に USER が必要な場合、 .Dq set proctitle コマンドは .Pa ppp.linkup 中に登場する必要があることに注意してください。 .Pa ppp.conf が実行されているときには、分からないからです。 .It set radius Op Ar config-file このコマンドは RADIUS サポートを (組み込まれていれば) 有効にします。 .Ar config-file は、 .Xr radius.conf 5 に記述されている radius クライアント設定ファイルを参照します。 PAP または CHAP が .Dq enable にされている場合、 .Nm は .Em \&N Ns No etwork .Em \&A Ns No ccess .Em \&S Ns No erver として振舞い、設定されている RADIUS サーバを使用して認証し、 .Pa ppp.secret ファイルやパスワードデータベースによる認証は行いません。 .Pp PAP と CHAP のいずれも有効になっていない場合、 .Dq set radius は効果がありません。 .Pp .Nm は、RADIUS 応答中の、次の属性を使用します: .Bl -tag -width XXX -offset XXX .It RAD_FRAMED_IP_ADDRESS 相手の IP アドレスは指定された値に設定されました。 .It RAD_FRAMED_IP_NETMASK tun インタフェースのネットマスクは指定された値に設定されました。 .It RAD_FRAMED_MTU 指定された MTU が LCP ネゴシエーションで合意された相手の MRU より 小さい場合であり、 *かつ* 設定された MTU のいずれよりも小さい場合 ( .Dq set mru コマンド参照)、 tun インタフェースの MTU は指定した値に設定されます。 .It RAD_FRAMED_COMPRESSION 受信した圧縮タイプが .Dq 1 の場合、 .Dq disable vj 設定コマンドが指定されていたとしても、IPCP ネゴシエーションにおいて .Nm は VJ 圧縮を要求します。 .It RAD_FRAMED_ROUTE 受信した文字列は、 .Ar dest Ns Op / Ns Ar bits .Ar gw .Op Ar metrics という書式であると期待します。 指定した metrics は無視されます。 .Dv MYADDR と .Dv HISADDR は、 .Ar dest と .Ar gw の正当な値として理解されます。 .Dq default を .Ar dest に使用可能であり、デフォルト経路を指定します。 .Dq 0.0.0.0 は、 .Ar dest に対する .Dq default と同じであると解釈され、 .Ar gw に対する .Dv HISADDR と同じであると解釈されます。 .Pp 例えば、戻り値 .Dq 1.2.3.4/24 0.0.0.0 1 2 -1 3 400 は 1.2.3.0/24 ネットワークへは .Dv HISADDR を介するという経路表エントリになり、 戻り値 .Dq 0.0.0.0 0.0.0.0 または .Dq default HISADDR は .Dv HISADDR 行きのデフォルト経路になります。 .Pp すべての RADIUS の経路は、 すべてのスティッキーな経路が適用された後で適用されます。 これにより、RADIUS の経路が、設定済みの経路に優先します。 これは、 .Dv MYADDR または .Dv HISADDR というキーワードを含まない RADIUS の経路にもあてはまります。 .Pp .El RADIUS サーバから受信した値は、 .Dq show bundle を使用して見られます。 .It set reconnect Ar timeout ntries (CD の喪失もしくは LQR の失敗により) 予想外の回線切断となった場合、 指定した .Ar timeout の後に接続が再確立されます。 回線は最大 .Ar ntries 回、再接続されます。 .Ar ntries のデフォルトは 0 です。 .Ar timeout に .Ar random を指定すると、1 から 30 秒の間の任意時間の停止となります。 .It set recvpipe Op Ar value ルーティングテーブルの RECVPIPE 値を設定します。 最適な値は、MTU 値を 2 倍した値を丁度越える値です。 .Ar value が指定されないまたは 0 の場合、デフォルトの、カーネルが制御する値を使用します。 .It set redial Ar secs Ns Xo .Oo + Ns Ar inc Ns .Op - Ns Ar max Ns .Oc Ns Op . Ns Ar next .Op Ar attempts .Xc .Nm に .Ar attempts 回のリダイヤルを指示できます。 1 より大きな数を指定した場合 (前述の .Ar set phone 参照)、 各番号にダイヤルする前に、 .Ar next だけ停止します。 最初の番号に戻ってダイヤル開始する前に .Ar secs だけ停止します。リテラル値 .Dq Li random を .Ar secs および .Ar next のところで使用でき、1 から 30 秒の間の任意時間の停止となります。 .Pp .Ar inc が指定されると、 .Nm が新規番号を試すたびに、この値が .Ar secs に加えられます。 .Ar secs が増加されるのは、最大 .Ar max 回だけです。 .Ar max のデフォルト値は 10 です。 .Ar attempts が経過した後でも .Ar secs の遅延は効果があるので、 すぐに手動でダイヤルしても何も起ってないように見えるかもしれません。 すぐにダイヤルする必要がある場合、 .Dq !\& を .Dq open キーワードの直後に付けます。 更なる詳細については、前述の .Dq open の記述を参照してください。 .It set sendpipe Op Ar value ルーティングテーブルの SENDPIPE 値を設定します。 最適な値は、MTU 値を 2 倍した値を丁度越える値です。 .Ar value が指定されないまたは 0 の場合、デフォルトの、カーネルが制御する値を使用します。 .It "set server|socket" Ar TcpPort Ns No \&| Ns Xo .Ar LocalName Ns No |none|open|closed .Op password Op Ar mask .Xc このコマンドは .Nm に指定したソケットもしくは .Sq 診断ポート にてコマンド接続の入力を listen するように指示します。 .Pp 語 .Ar none は .Nm に既に存在するソケットを閉じさせ、ソケット設定を消させます。 語 .Dq open は .Nm にポートを再度オープンさせます。 語 .Dq closed は .Nm にオープンしているポートを閉じさせます。 .Pp ローカルドメインソケットを指定したい場合、 .Ar LocalName に絶対ファイル名を指定します。そうしないと、TCP ポートの名前もしくは番号 であると解釈されます。 ローカルドメインソケットに使用される 8 進 umask を指定可能です。 umask の詳細については .Xr umask 2 を参照してください。TCP ポート名がどのように変換されるかについては .Xr services 5 を参照してください。 .Pp このソケットにクライアントが接続するときに使用されねばならないパスワードも 指定可能です ( 前述の .Dq passwd 変数を使用します)。 パスワードが空文字列として指定される場合、 クライアントが接続するときにパスワードを必要とされません。 .Pp ローカルドメインソケットが指定される場合、ソケット名中の最初の .Dq %d シーケンスは現在のインタフェースユニット番号で置換されます。 複数接続のために同一のプロファイルを使用したい場合に便利です。 .Pp 同様の方法で TCP ソケットの前に .Dq + 文字を付けることができます。 この場合、現在のインタフェースユニット番号が、ポート番号に加算されます。 .Pp .Nm をサーバソケットと共に使用する場合、通信機構として .Xr pppctl 8 コマンドを使用することが好ましいです。 現在 .Xr telnet 1 も使用可能ですが、将来リンク暗号化が実装されるかもしれませんので、 .Xr telnet 1 は避けてください。 .Pp 注: .Dv SIGUSR1 と .Dv SIGUSR2 は、診断ソケットと相互に作用します。 .It set speed Ar value シリアルデバイスの速度を指定します。 速度指定が .Dq sync の場合、 .Nm はデバイスを同期デバイスとして扱います。 .Pp デバイスタイプによっては、 同期または非同期のいずれかであることが分るものがあります。 これらのデバイスでは、不正な設定を上書きして、 この結果に対する警告を記録します。 .It set stopped Op Ar LCPseconds Op Ar CCPseconds このオプションが指定されると、 指定した FSM (有限状態機械; Finite State Machine) が停止状態になってから .Dq seconds で指定した秒数だけ停止したのち、 .Nm はタイムアウトします。 このオプションは、 相手が終了要求を送り我々が終了確認応答を送ったにもかかわらず 実際には接続を閉じない場合に、有用かもしれません。また、 .Dq set openmode passive を使用した場合に相手が指定時間内に Configure Request を送らないことを タイムアウト検出する場合には、便利かもしれません。 .Dq set log +lcp +ccp を使用すると、 .Nm は適切な状態遷移を記録します。 .Pp デフォルト値は 0 であり、 停止状態による .Nm のタイムアウトは発生しません。 .Pp この値は openmode の遅延 (上述の .Dq set openmode 参照) より小さくなってはなりません。 .It set timeout Ar idleseconds Op Ar mintimeout このコマンドはアイドルタイマの値を指定します。 更なる詳細については .Sx アイドルタイマの設定 というタイトルの節を参照してください。 .Pp .Ar mintimeout が指定された場合、 最短でも指定された秒数だけリンクがアップしていないと、 .Nm はアイドルアウトしません。 .It set urgent Xo .Op tcp|udp|none .Oo Op +|- Ns .Ar port .Oc No ... .Xc このコマンドは、データ転送時に .Nm が優先するポートを制御します。 デフォルトの優先 TCP ポートは、ポート 21 (ftp control), 22 (ssh), 23 (telnet), 513 (login), 514 (shell), 543 (klogin), 544 (kshell) です。 優先 UDP ポートは、デフォルトではありません。 詳細は .Xr services 5 を参照してください。 .Pp .Dq tcp も .Dq udp も指定しないと、 .Dq tcp が仮定されます。 .Pp .Ar port を指定しないと、優先ポートリストがクリアされます ( .Dq tcp または .Dq udp を指定すると、そのリストのみがクリアされます)。 最初の .Ar port 引数にプラス .Pq Dq \&+ またはマイナス .Pq Dq \&- のプレフィックスを付けた場合、現在のリストが修正されますが、 そうでない場合には、再割り当てされます。 プラスのプレフィックス付きまたはプレフィックス無しの .Ar port はリストに追加され、マイナスのプレフィックス付きの .Ar port はリストから削除されます。 .Pp .Dq none が指定された場合、優先ポートリスト全体が無効になり、 .Dv IPTOS_LOWDELAY パケットも特別扱いされなくなります。 .It set vj slotcomp on|off このコマンドは .Nm に VJ スロット圧縮をネゴシエートするか否かを指示します。 デフォルトではスロット圧縮は .Ar on です。 .It set vj slots Ar nslots このコマンドは最初の .Ar slots 番号を指定します。 .Nm は VJ 圧縮が enable されている時には、 これを使用して相手とネゴシエートします (前述の .Sq enable コマンドを参照してください)。 デフォルト値は 16 です。 .Ar nslots は .Ar 4 以上 .Ar 16 以下の値です。 .El .Pp .It shell|! Op Ar command .Ar command が指定されない場合、 .Dv SHELL 環境変数で指定されるシェルが起動されます。 そうでなければ指定された .Ar command が実行されます。 語の置換は、前述の .Dq !bg コマンドと同様の方法で行われます。 .Pp 文字 ! を使用する場合、コマンドとの間に空白が必要です。 このコマンドはフォアグラウンドで実行されることに注意してください - .Nm はプロセスが終了するまでは実行を続けません。 バックグラウンドでコマンド処理を行いたい場合には、 .Dv bg コマンドを使用してください。 .It show Ar var このコマンドを使用して、次の内容を確認できます: .Bl -tag -width 2n .It show bundle 現在のバンドル設定を表示します。 .It show ccp 現在の CCP 圧縮統計を表示します。 .It show compress 現在の VJ 圧縮統計を表示します。 .It show escape 現在のエスケープ文字を表示します。 .It show filter Op Ar name 指定したフィルタの現在のルールをリストします。 .Ar name を指定しないと、全フィルタが表示されます。 .It show hdlc 現在の HDLC 統計を表示します。 .It show help|? 利用可能な show コマンドのまとめを表示します。 .It show iface 現在のインタフェース情報 ( .Dq iface show と同じです) を表示します。 .It show ipcp 現在の IPCP 統計を表示します。 .It show layers 現在使用中のプロトコル層を表示します。 .It show lcp 現在の LCP 統計を表示します。 .It show Op data Ns Xo .No link .Xc 高レベルリンク情報を表示します。 .It show links 利用可能な論理リンクのリストを表示します。 .It show log 現在のログ値を表示します。 .It show mem 現在のメモリ統計を表示します。 .It show physical 現在の下位レベルリンク情報を表示します。 .It show mp マルチリンク情報を表示します。 .It show proto 現在のプロトコルの総計を表示します。 .It show route 現在の経路表を表示します。 .It show stopped 現在の stopped タイムアウト値を表示します。 .It show timer アクティブアラームタイマを表示します。 .It show version .Nm の現在のバージョン番号を表示します。 .El .Pp .It term 端末モードに移行します。 キーボードからタイプした文字はデバイスに送られます。 デバイスから読んだ文字はスクリーンに表示されます。 .Nm の相手が認識された時には、 .Nm は自動的にパケットモードを有効にし、コマンドモードに戻ります。 .El .Sh 更に詳細について .Bl -bullet .It 設定ファイルの例を読んでください。良い情報源です。 .It 何が利用できるかについては、 .Dq help , .Dq nat \&? , .Dq enable \&? , .Dq set \&? , .Dq show \&? コマンドを使って、オンライン情報を取得してください。 .It 次の URL に有用な情報があります: .Bl -bullet -compact .It -http://www.FreeBSD.org/doc/faq/ppp.html +http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/faq/ppp.html .It http://www.FreeBSD.org/doc/handbook/userppp.html .El .Pp .El .Sh 関連ファイル .Nm は、4 つのファイル .Pa ppp.conf , .Pa ppp.linkup , .Pa ppp.linkdown , .Pa ppp.secret を参照します。 これらのファイルは .Pa /etc/ppp に置かれます。 .Bl -tag -width 2n .It Pa /etc/ppp/ppp.conf システムのデフォルト設定ファイル。 .It Pa /etc/ppp/ppp.secret 各システム用の認証設定ファイル。 .It Pa /etc/ppp/ppp.linkup .Nm がネットワークレベルの接続を確立した時に実行されるファイル。 .It Pa /etc/ppp/ppp.linkdown .Nm がネットワークレベルの接続を閉じる時にチェックするファイル。 .It Pa /var/log/ppp.log ログとデバッグ情報のファイル。このファイル名は .Pa /etc/syslog.conf にて指定されます。詳細は .Xr syslog.conf 5 を参照してください。 .It Pa /var/spool/lock/LCK..* tty ポートをロックするためのファイル。詳細は .Xr uucplock 3 を参照してください。 .It Pa /var/run/tunN.pid tunN デバイスに接続されている .Nm プログラムのプロセス ID (pid)。 ここで .Sq N はデバイスの番号です。 .It Pa /var/run/ttyXX.if このポートで使われている tun インタフェース。 このファイルも .Fl background , .Fl auto , .Fl ddial のいずれかのモードの時のみ作成されます。 .It Pa /etc/services サービス名でポート番号が指定されている場合に、ポート番号を取得します。 .It Pa /var/run/ppp-authname-class-value マルチリンクモードでは、 相手の認証名称 .Pq Sq authname と相手の終点選択クラス .Pq Sq class と相手の終点選択値 .Pq Sq value を使用して、ローカルドメインソケットが生成されます。 終点選択値はバイナリ値であってもかまわないため、 実際のファイル名を判定するために 16 進数に変換されます。 .Pp このソケットは、別の .Nm のインスタンスとリンクを受け渡しを行うために使用します。 .El .Sh 関連項目 .Xr at 1 , .Xr ftp 1 , .Xr gzip 1 , .Xr hostname 1 , .Xr isdnd 8 , .Xr login 1 , .Xr tcpdump 1 , .Xr telnet 1 , .Xr kldload 2 , .Xr libalias 3 , .Xr libradius 3 , .Xr syslog 3 , .Xr uucplock 3 , .Xr netgraph 4 , .Xr ng_pppoe 4 , .Xr crontab 5 , .Xr group 5 , .Xr passwd 5 , .Xr radius.conf 5 , .Xr resolv.conf 5 , .Xr syslog.conf 5 , .Xr adduser 8 , .Xr chat 8 , .Xr getty 8 , .Xr inetd 8 , .Xr init 8 , .Xr named 8 , .Xr ping 8 , .Xr pppctl 8 , .Xr pppd 8 , .Xr pppoe 8 , .Xr route 8 , .Xr sshd 8 , .Xr syslogd 8 , .Xr traceroute 8 , .Xr vipw 8 .Sh 歴史 元のプログラムは .An Toshiharu OHNO Aq tony-o@iij.ad.jp が作成し、 .Fx 2.0.5 に .An Atsushi Murai Aq amurai@spec.co.jp が提出しました。 .Pp 1997 年中に .An Brian Somers Aq brian@Awfulhak.org が本格的な修正をし、 11 月に .Ox に移植されました (2.2-RELEASE の直後です)。 .Pp 1998 年初頭にマルチリンク ppp サポートが追加されたときに、 ほとんどのコードを .An Brian Somers が書き直しました。 diff --git a/ja_JP.eucJP/man/man8/rc.8 b/ja_JP.eucJP/man/man8/rc.8 index 764ceed2a0..9b0a2555ee 100644 --- a/ja_JP.eucJP/man/man8/rc.8 +++ b/ja_JP.eucJP/man/man8/rc.8 @@ -1,273 +1,273 @@ .\" Copyright (c) 1980, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)rc.8 8.2 (Berkeley) 12/11/93 -.\" %FreeBSD: src/share/man/man8/rc.8,v 1.9.2.6 2002/03/20 09:38:00 cjc Exp % +.\" %FreeBSD: src/share/man/man8/rc.8,v 1.9.2.7 2002/08/23 16:57:42 schweikh Exp % .\" .\" $FreeBSD$ .\" .Dd December 11, 1993 .Dt RC 8 .Os BSD 4 .Sh 名称 .Nm rc .Nd 自動リブート処理とデーモン起動のためのコマンドスクリプト .Sh 書式 .Nm .Nm rc.conf .Nm rc.conf.local .Nm rc.early .Nm rc.d .Nm rc.serial .Nm rc.pccard .Nm rc.network .Nm rc.firewall .Nm rc.atm .Nm rc. .Nm rc.local .Nm rc.shutdown .Sh 解説 .Nm は自動リブート処理を制御するコマンドスクリプト (他のスクリプトを呼びます) で、 .Nm rc.local は特定サイトに特化したコマンドを記述するスクリプトです。 今日では、 典型的には /usr/local/etc/rc.d の機構が rc.local の代りに使用されます。 しかしながら、 rc.local を使用したいのであれば /etc/rc は未だこれをサポートしています。 この場合、rc.local が /etc/rc.conf を読み取るようにしてから、 あなたのシステム特有の更なるカスタムスタートアップコードを rc.local に追加してください。 .Nm rc.conf は rc ファイル群から参照されるグローバルなシステム構成情報を持ち、 .Nm rc.conf.local はローカルなシステム構成情報を持ちます。 .Xr rc.conf 5 を参照してください。 .Pp .Nm rc.d ディレクトリは、ブート時およびシャットダウン時に 自動的に実行されるスクリプトを保持します。 ブート時には、指定されたディレクトリは、 .Nm rc.local の実行直後に処理されます (処理対象ディレクトリの指定方法の詳細は後述します)。 シャットダウン時には、ディレクトリは .Nm rc.shutdown が処理します。 各ディレクトリ内のスクリプトには、次の重要事項が適用されます: .Pp .Bl -bullet -compact .It スクリプトは、 .Xr basename 1 がシェルグロブパターン .Pa *.sh にマッチし、実行可能である場合のみ、実行されます。 このディレクトリ中の他のファイルやディレクトリは、黙って無視されます。 .It ブート時にスクリプトを実行するとき、文字列 .Dq start が、最初かつ唯一の引数として渡されます。 シャットダウン時には、文字列 .Dq stop が、最初かつ唯一の引数として渡されます。 すべての .Nm rc.d スクリプトは、これら引数を適切に扱えるものであると期待されます。 指定時に動作不要の場合 (ブート時にもシャットダウン時にも)、 スクリプトは成功裏に終了し、エラーメッセージを出力してはなりません。 .It 各ディレクトリ内のスクリプトは、辞書順に処理されます。 特定の順序が必要な場合には、 既存のファイル名の前に番号を付けると良いかもしれません。 例えば、 .Pa 100.foo は .Pa 200.bar の前に実行されますが、番号を前に付けないと逆の順番になります。 .El .Pp 典型的な各スクリプトの出力は、1 個の空白文字の後に、 起動または終了されたソフトウェアパッケージ名が続き、 最後には改行文字は .Em 付きません ( .Sx 使用例 の節を見てください)。 .Pp 複数の .Nm rc.d ディレクトリから、システム起動スクリプトを実行可能です。 デフォルトの位置は .Pa /usr/local/etc/rc.d と .Pa /usr/X11R6/etc/rc.d ですが、 .Va local_startup .Xr rc.conf 5 変数で変更可能です。 .Pp .Nm rc.shutdown は、システムシャットダウンにおいて実行されることが必要なコマンドを持つ コマンドスクリプトです。 .Pp 自動リブート処理の進行中、 .Nm は .Em autoboot を引数として起動されます。 .Nm はその最初の部分で .Xr fsck 8 を .Fl p オプション付きで実行し、 前回のシステムシャットダウンによる些細なディスク不整合を全て「修繕」し、 ハードウェアあるいはソフトウェアの障害から生じた 重大なディスク不整合を調べます。 この自動チェックと修繕がうまくいくと、 .Nm の第二部が開始します。 .Pp .Nm の第二部は 自動リブート処理が成功した後および シングルユーザモードのシェルが終了して .Nm が起動された場合( .Xr init 8 参照)に実行されます。 この第二部はシステムの全てのデーモンを起動し、 エディタファイルを保存し、 一時ディレクトリ .Pa /tmp をクリアします。 .Pp .Nm rc.early は、起動処理の非常に早い段階、 すなわちファイルシステムチェックの直前に実行されます。 .Pp .Nm rc.serial は、シリアルデバイスの特殊な構成があればそれを設定するために使用します。 .Pp .Nm rc.pccard は PC カードを有効にするために使用します。 .Pp .Nm rc.network はネットワークを起動するために使用します。 ネットワークの起動は 3 パスで行われます。 最初のパスは、ホスト名とドメイン名を設定し、 ネットワークインタフェースを構成し、 IP ファイアウォール規則があれば有効にし、ルーティングを有効にします。 第 2 パスは、ほとんどのネットワーク関連デーモンの起動を行います。 第 3 パスは、NFS, amd, rwhod, Kerberos, マルチキャストルーティングデーモンの 起動を行います。 .Pp .Nm rc.firewall は、カーネルベースのファイアウォールサービスの規則の設定に使用されます。 .Pp .Bl -tag -width "fBfilename" -compact -offset indent .It open 全入力を許可します。 .It client このマシンのみを保護しようとします。 .It simple 全ネットワークを保護しようとします。 .It closed lo0 以外の全 IP サービスを無効にします。 .It UNKNOWN ファイアウォール規則のロードを無効にします。 .It filename 指定したファイル名の規則をロードします (フルパス指定が必要)。 .El .Pp .Nm rc.atm は ATM ネットワークインタフェースを設定するために使用されます。 インタフェースは 3 つのパスで設定されます。 第 1 のパスでは、インタフェースの初期設定をおこないます。 第 2 のパスでは、インタフェースの設定が終り、 PVC および永続的な ATMARP エントリを定義します。 第 3 のパスでは、任意の ATM デーモンを起動します。 .Pp .Nm rc. はアーキテクチャ依存のプログラムを起動します。 .Pp .Nm rc.local が起動されるのは、上記スクリプトの後ですが、残りの .Nm ファイルが完了する前です。 デフォルトインストールでは、 .Nm rc.local は存在しませんが、システム管理者がこのファイルを生成すれば、 その内容が実行されます。 .Pp 伝統に従い、スタートアップファイルは .Pa /etc ディレクトリに置かれます。 .Sh 使用例 ブート時にデーモンを起動し、シャットダウン時にこれを終了する、 .Nm rc.d スクリプトの仮想的な例を示します。 .Bd -literal -offset indent #!/bin/sh - # # foobar パッケージの初期化/シャットダウンスクリプト case "$1" in start) /usr/local/sbin/foo -d && echo -n ' foo' ;; stop) kill `cat /var/run/foo.pid` && echo -n ' foo' ;; *) echo "unknown option: $1 - should be 'start' or 'stop'" >&2 ;; esac .Ed .Pp シャットダウン時には .Xr init 8 が全プロセスを終了させるので、明示的な .Xr kill 1 は不要ですが、これが含まれることが多いです。 .Sh 関連項目 .Xr kill 1 , .Xr rc.conf 5 , .Xr init 8 , .Xr reboot 8 , .Xr savecore 8 .Sh 歴史 .Nm コマンドは .Bx 4.0 で登場しました。 diff --git a/ja_JP.eucJP/man/man8/usbdevs.8 b/ja_JP.eucJP/man/man8/usbdevs.8 index 16f6c5502f..ff21be1931 100644 --- a/ja_JP.eucJP/man/man8/usbdevs.8 +++ b/ja_JP.eucJP/man/man8/usbdevs.8 @@ -1,70 +1,72 @@ -.\" %NetBSD: usbdevs.8,v 1.3 1998/07/23 13:57:51 augustss Exp % -.\" %FreeBSD: src/usr.sbin/usbdevs/usbdevs.8,v 1.5.2.1 2001/07/22 12:41:35 dd Exp % -.\" $FreeBSD: doc/ja_JP.eucJP/man/man8/usbdevs.8,v 1.6 2001/05/14 01:10:01 horikawa Exp $ -.\" Copyright (c) 1998 The NetBSD Foundation, Inc. +.\" $NetBSD: usbdevs.8,v 1.5 2000/10/15 12:44:11 bjh21 Exp $ +.\" Copyright (c) 1999 The NetBSD Foundation, Inc. .\" All rights reserved. .\" .\" Author: Lennart Augustsson .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the NetBSD .\" Foundation, Inc. and its contributors. .\" 4. Neither the name of The NetBSD Foundation nor the names of its .\" contributors may be used to endorse or promote products derived .\" from this software without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS .\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED .\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR .\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS .\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR .\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF .\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS .\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN .\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -.\" -.\" %FreeBSD: src/usr.sbin/usbdevs/usbdevs.8,v 1.5.2.1 2001/07/22 12:41:35 dd Exp % .\" POSSIBILITY OF SUCH DAMAGE. .\" -.Dd July 12, 1998 +.\" %FreeBSD: src/usr.sbin/usbdevs/usbdevs.8,v 1.5.2.2 2002/08/27 12:25:41 joe Exp % +.\" +.\" $FreeBSD$ +.Dd October 15, 2000 .Dt USBDEVS 8 .Os .Sh 名称 .Nm usbdevs .Nd システムに接続されている USB 機器を表示する .Sh 書式 .Nm .Op Fl a Ar addr +.Op Fl d .Op Fl f Ar dev .Op Fl v .Sh 解説 .Nm は、システムに接続されているすべての USB 機器の一覧を、 それぞれの機器に関するいくらかの情報とともに表示します。 各行のインデントは root からの距離を示しています。 .Pp オプションは次の通りです: -.Bl -tag -width Ds +.Bl -tag -width Fl .It Fl a Ar addr 指定されたアドレスにある機器の情報のみを表示します。 +.It Fl d +各デバイスに関連付けられたデバイスドライバを表示します。 .It Fl f Ar dev 指定された USB コントローラの情報のみを表示します。 .It Fl v 冗長になります。 .El .Sh 関連項目 .Xr usb 4 .Sh 歴史 コマンドは .Nx 1.4 で登場しました。