Reviewed by: Japanese Online Manual Project <man-jp@jp.FreeBSD.ORG> Submitted by: Kazuo Horikawa <k-horik@yk.rim.or.jp>
4727 lines
115 KiB
Groff
4727 lines
115 KiB
Groff
.\" %Id: ppp.8,v 1.142.2.7 1999/06/08 11:59:49 brian Exp %
|
|
.\"
|
|
.\" jpman %Id: ppp.8,v 1.4 1997/06/08 18:41:58 saeki Stab %
|
|
.\" WORD: expect string 受信待ち文字列 (chat.8)
|
|
.\" WORD: negotiation 交渉
|
|
.Dd 20 September 1995
|
|
.nr XX \w'\fC00'
|
|
.Os FreeBSD
|
|
.Dt PPP 8
|
|
.Sh 名称
|
|
.Nm ppp
|
|
.Nd PPP (Point to Point Protocol) (別名 user-ppp)
|
|
.Sh 書式
|
|
.Nm
|
|
.Oo
|
|
.Fl auto |
|
|
.Fl background |
|
|
.Fl ddial |
|
|
.Fl direct |
|
|
.Fl dedicated
|
|
.Oc
|
|
.Op Fl alias
|
|
.Op Ar system Ns
|
|
.No ...
|
|
.Sh 解説
|
|
本プログラムは、ユーザプロセスとして動作する
|
|
.Em PPP
|
|
パッケージです。
|
|
.Em PPP
|
|
は通常、(
|
|
.Xr pppd 8
|
|
でそうなっているように) カーネルの一部として実装されますが、
|
|
そのため、デバッグや動作の変更が少々難しい場合があります。
|
|
それに対し、この実装ではトンネルデバイスドライバ (tun) を利用して、
|
|
ユーザプロセスで
|
|
.Em PPP
|
|
を実現しています。
|
|
.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 パケットエイリアシングをサポート
|
|
パケットエイリアシング (別名: IP マスカレード) により、
|
|
未登録でプライベートなネットワーク上のコンピュータからも
|
|
インターネットにアクセスすることが可能です。
|
|
.Em PPP
|
|
ホストはマスカレードゲートウェイとして動作します。
|
|
送信パケットの IP アドレスと TCP や UDP のポート番号は
|
|
どちらもエイリアスされ、返信パケットではエイリアスが元に戻されます。
|
|
.It バックグラウンド PPP 接続をサポート
|
|
バックグラウンドモードでは、接続を確立するのに成功した場合に
|
|
.Nm
|
|
はデーモンになります。
|
|
それ以外の場合はエラーで終了します。
|
|
これにより、
|
|
接続が成功裏に確立した場合のみコマンドを実行するようなスクリプト
|
|
をセットアップすることが出来ます。
|
|
.It サーバとしての PPP 接続をサポート
|
|
ダイレクトモードでは、
|
|
.Nm
|
|
は標準入力/標準出力からの
|
|
.Em PPP
|
|
接続を受け入れるサーバとして動作させることができます。
|
|
.It PAP と CHAP (rfc 1994) による認証をサポート
|
|
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
|
|
は、集中データベースまたは分散データベースに、
|
|
ユーザごとに異なる接続特性を含んだ認証情報を、格納できます。
|
|
コンパイル時に
|
|
.Pa libradius
|
|
が利用可能な場合、利用するように設定すると、
|
|
.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 をサポート
|
|
デバイス名が
|
|
.Em host Ns No : Ns Em port
|
|
形式で指定された場合、
|
|
.Nm
|
|
は通常のシリアルデバイスを使うのではなく、データ転送のための TCP
|
|
接続を開きます。
|
|
.It "IETF ドラフトの Predictor-1 (rfc 1978) と DEFLATE (rfc 1979) 圧縮をサポート
|
|
.Nm
|
|
は VJ 圧縮の他に Predictor-1 と DEFLATE 圧縮もサポートしています。
|
|
モデムは通常 (例えば v42.bis のような) 組み込みの圧縮機能を持っており、
|
|
その結果システムは
|
|
.\"(訳注)「転送データレートよりも」をここにいれたいと考えています。
|
|
.\" 2.2.1R 対象(1997/04/02) Takeshi MUTOH <mutoh@info.nara-k.ac.jp>
|
|
より高いデータレートで通信できます。
|
|
これは一般には良いことですが、より高速のデータによってシリアル回線からの
|
|
割り込みが増加します。
|
|
システムはこの割り込みをモデムと通信して処理しなくてはならないため、
|
|
システムの負荷と遅延時間が増加することになります。
|
|
VJ 圧縮とは異なり、Predictor-1 と DEFLATE 圧縮はリンクを通る
|
|
.Em すべての
|
|
ネットワークトラフィックをあらかじめ圧縮しておくことで、オーバヘッドを
|
|
最小にします。
|
|
.It Microsoft の IPCP 拡張をサポート
|
|
Microsoft の
|
|
.Em PPP
|
|
スタックを使用するクライアント (つまり Win95, WinNT) との間で
|
|
ネームサーバのアドレスと NetBIOS ネームサーバのアドレスを
|
|
交渉することができます。
|
|
.It マルチリンク PPP をサポート (rfc 1990)
|
|
接続先への複数の物理的な回線をオープンし、すべてのリンクの
|
|
帯域幅を合わせてより高いスループットを得ることができます。
|
|
.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 ppp
|
|
は理解します:
|
|
.Bl -tag -width XXX -offset XXX
|
|
.It Fl auto
|
|
.Nm
|
|
は tun インタフェースをオープンし、これを設定した後バックグラウンドになります。
|
|
出力データが tun インタフェース上で検出されるまでリンクはアップせず、
|
|
出力データが tun インタフェース上で検出されると
|
|
.Nm
|
|
はリンクをアップしようとします。
|
|
.Nm
|
|
がリンクをアップしようとしている間に受信したパケット
|
|
(最初のものを含みます) は、デフォルトで 2 分間キューにとどまります。
|
|
後述の
|
|
.Dq set choked
|
|
コマンドを参照してください。
|
|
.Pp
|
|
コマンドラインには少なくとも 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 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
|
|
はコマンドラインで指定されたセクションをロードし、対話プロンプトを提供します。
|
|
.It Fl alias
|
|
このフラグは
|
|
.Nm
|
|
のモードを制御しません。
|
|
.Dq enable alias yes
|
|
と等価です。さらに、
|
|
.Fl auto
|
|
もまた指定されている場合、暗黙的に
|
|
.Dq enable iface-alias
|
|
が実行されます。
|
|
詳細については後述しているものを参照してください。
|
|
.Pp
|
|
IP エイリアシングを有効にすると、
|
|
.Nm
|
|
は、内部 LAN 上の全マシンに対する
|
|
NAT もしくはマスカレーディングエンジンとして動作します。詳細は
|
|
.Xr libalias 3
|
|
を参照してください。
|
|
.El
|
|
.Pp
|
|
さらに、1 つ以上の設定エントリ
|
|
.Pq Pa /etc/ppp/ppp.conf で指定されます
|
|
をコマンドライン上に指定可能です。
|
|
起動時に
|
|
.Nm
|
|
は
|
|
.Pa /etc/ppp/ppp.conf
|
|
から
|
|
.Dq default
|
|
システムを読み込み、その後コマンドラインで指定した各 system を読み込みます。
|
|
.Pp
|
|
.Fl auto ,
|
|
.Fl background ,
|
|
.Fl ddial ,
|
|
.Fl direct ,
|
|
.Fl dedicated ,
|
|
.Fl interactive
|
|
のいずれか 1 つのスイッチのみ指定可能です。
|
|
.Nm
|
|
の
|
|
.Sq モード
|
|
は、
|
|
.Dq set mode
|
|
コマンド (後述) を使用することで後で変更可能です。
|
|
.Pp
|
|
以降、対話モードの使用方法について説明します。
|
|
.Pp
|
|
最初に
|
|
.Nm
|
|
を実行する時には、いくつかの初期設定を整える必要があります。
|
|
.Bl -bullet
|
|
.It
|
|
カーネルにトンネルデバイスが含まれていなければ
|
|
なりません (GENERIC カーネルではデフォルトで 1 つ含まれます)。
|
|
もし含まれていない場合や複数の 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
|
|
*.*<TAB>/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
|
|
*.*<TAB>/var/log/ppp0.log
|
|
.Ed
|
|
.Pp
|
|
とします。
|
|
.Pa /etc/syslog.conf
|
|
を更新した後に、
|
|
.Xr syslogd 8
|
|
に
|
|
.Dv HUP
|
|
シグナルを送ることをお忘れなく。
|
|
.It
|
|
厳密には
|
|
.Nm
|
|
の操作とは関係ありませんが、リゾルバが正しく働くように設定した方が
|
|
良いでしょう。
|
|
これは
|
|
.Pq Xr named 8 を用いて
|
|
ローカルな DNS サーバを設定するか、もしくは
|
|
.Pa /etc/resolv.conf
|
|
ファイルに適切な
|
|
.Sq name-server
|
|
行を加えることで行われます。
|
|
詳細は
|
|
.Xr resolv.conf 5
|
|
のマニュアルを参照してください。
|
|
.Pp
|
|
他の方法として、もし接続先がサポートしている場合には
|
|
.Nm
|
|
が接続先にネームサーバのアドレスを尋ねて、自動的に
|
|
.Pa /etc/resolv.conf
|
|
を更新することができます。詳細は後述の
|
|
.Dq enable dns
|
|
コマンドを参照してください。
|
|
.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 ppp
|
|
のデフォルトです。
|
|
パリティはどちらかというと古風なエラーチェック機構であり、
|
|
今となっては使用しません。
|
|
最近のモデムは各自のエラーチェック機構を持っており、
|
|
ほとんどのリンク層プロトコル (
|
|
.Nm
|
|
はこれです) はより信頼できるチェック機構を使用します。
|
|
パリティは相対的に大きなオーバヘッドを持ちますので
|
|
(トラフィックが 12.5% 増加します)、
|
|
.Dv PPP
|
|
がオープンされると常に無効化
|
|
.Pq set to 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 modem
|
|
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 modem
|
|
* モデム関連の情報がここに表示されます *
|
|
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 ppp
|
|
を立ち上げる際に、接続先のラベル名を指定可能です。
|
|
.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
|
|
コマンドを使うことで、設定を確認したり変更したりすることができます。
|
|
.Po
|
|
たとえば、
|
|
.Dq set server +3000 mypasswd
|
|
とすると
|
|
.Pc
|
|
次のように診断ポートを通じて接続することができます。
|
|
.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 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 maxinc
|
|
は、
|
|
.Nm
|
|
が
|
|
.Ar secs
|
|
を増加させる最大回数です。
|
|
.Ar maxinc
|
|
のデフォルト値は 10 です。
|
|
.It Ar next
|
|
は電話番号リストの中の次の番号をダイヤルする前に待つ秒数です。(
|
|
.Dq set phone
|
|
コマンドを参照してください)。これのデフォルトは 3 秒です。
|
|
繰り返しますが、引数がリテラル文字列
|
|
.Sq Li random
|
|
の場合には、待ち時間を 1 秒以上 30 秒以下の間でランダムに選びます。
|
|
.It Ar attempts
|
|
は、受け取った個々の送信パケットに対して、何回接続を試みるのかを示す
|
|
数字です。
|
|
.It Ar attempts
|
|
に 0 を指定すると、接続されるまで試みを続けます。
|
|
.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 "/usr/libexec/getty std.38400" dialup on secure
|
|
.Pp
|
|
.Xr getty 8
|
|
を起動するために
|
|
.Xr init 8
|
|
プロセスに
|
|
.Dv HUP
|
|
シグナルを送るのを
|
|
忘れないでください:
|
|
.Pp
|
|
.Dl # kill -HUP 1
|
|
.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
|
|
.Pp
|
|
.Sh PPP 接続の受け入れ (方法その 2)
|
|
この方法は、
|
|
.Xr login 1
|
|
ではなく
|
|
.Nm ppp
|
|
で接続の認証を行うという点が異なります。
|
|
.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
|
|
.Pq もしくはその両方
|
|
を加えてください。
|
|
.It
|
|
.Pa /etc/ppp/ppp.secret
|
|
に、受け入れるユーザそれぞれについて、エントリを作成してください。
|
|
.Bd -literal
|
|
Pfred<TAB>xxxx
|
|
Pgeorge<TAB>yyyy
|
|
.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
|
|
認証に成功したならば、
|
|
.Pq 指定時には
|
|
.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 (別名: トンネリング)
|
|
シリアルリンク上以外の
|
|
.Nm
|
|
の使用方法として、
|
|
device にホストとポートを指定することにより、
|
|
TCP 接続を使用することが可能です:
|
|
.Pp
|
|
.Dl set device ui-gate:6669
|
|
.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
|
|
add 10.0.1.0/24 10.0.4.2
|
|
.Ed
|
|
.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
|
|
が
|
|
.Pq 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
|
|
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
|
|
add 10.0.2.0/24 10.0.4.1
|
|
.Ed
|
|
.Pp
|
|
PAP を有効にしようとしている場合、次の設定も必要です:
|
|
.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 ストリーム中でカプセル化されます
|
|
(パケットがパケットに対応するわけではありません)。
|
|
この機構の大きな欠点は、同時に 2 つの「配送保証」機構が存在することです -
|
|
この 2 つとは、下位レベルの TCP ストリームと
|
|
.Em PPP
|
|
リンク上で使用されるプロトコルであり、おそらくまた TCP でしょう。
|
|
パケット喪失が起ると、両者はそれぞれの方法で喪失した
|
|
パケットを再送しようと
|
|
するでしょう。
|
|
.Sh パケットエイリアシング
|
|
.Fl alias
|
|
コマンドラインオプションにより、
|
|
パケットエイリアシングが有効になります。
|
|
これにより、
|
|
.Nm
|
|
ホストがローカルエリアネットワークの他のコンピュータに対して
|
|
マスカレードゲートウェイとして動作するようになります。
|
|
送信される IP パケットは、まるで
|
|
.Nm
|
|
ホストから来たかのようにエイリアスされ、
|
|
受信パケットは、それがローカルエリアネットワークの正しいマシンに
|
|
送られるようにエイリアスが戻されます。
|
|
パケットエイリアシングにより、
|
|
未登録でプライベートなサブネット上のコンピュータを
|
|
外部から見えないようにしつつ、
|
|
インターネットへアクセス可能とします。
|
|
一般に、
|
|
.Nm
|
|
が正しく動作していることの確認は、
|
|
まず最初にパケットエイリアシングを禁止して行います。
|
|
次に
|
|
.Fl alias
|
|
オプションを有効にして、
|
|
.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
|
|
.Oo
|
|
.Ar src_addr Ns Op / Ns Ar width
|
|
.Op Ar dst_addr Ns Op / Ns Ar width
|
|
.Oc
|
|
.Oo Ar proto Op src Ar cmp port
|
|
.Op dst Ar cmp port
|
|
.Op estab
|
|
.Op syn
|
|
.Op finrst
|
|
.Oc
|
|
.Bl -enum
|
|
.It
|
|
.Ar name
|
|
は
|
|
.Sq in ,
|
|
.Sq out ,
|
|
.Sq dial ,
|
|
.Sq alive
|
|
のいずれかです。
|
|
.It
|
|
.Ar rule-no
|
|
は
|
|
.Sq 0
|
|
から
|
|
.Sq 19
|
|
までの数値で、ルール番号を指定します。
|
|
ルールは
|
|
.Ar rule-no
|
|
の番号順に指定されます。
|
|
ただしルール
|
|
.Sq 0
|
|
が指定されている場合のみです。
|
|
.It
|
|
.Ar action
|
|
は
|
|
.Sq permit ,
|
|
.Sq deny
|
|
のいずれかです。
|
|
もし、あるパケットがルールに一致した場合、
|
|
結びつけられた action が直ちに実行されます。
|
|
.It
|
|
.Op Ar src_addr Ns Op / Ns Ar width
|
|
と
|
|
.Op Ar dst_addr Ns Op / Ns Ar width
|
|
は始点と終点の IP アドレスです。
|
|
.Op / Ns Ar width
|
|
が指定された場合には、それによって適切なネットマスクのビット値を与え、
|
|
アドレスの範囲を指定することができます。
|
|
.It
|
|
.Ar proto
|
|
は
|
|
.Sq icmp ,
|
|
.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 フラグを表わします。
|
|
.El
|
|
.Pp
|
|
.It
|
|
各フィルタはルール 0 から始まり、40 個までのルールをもつことができます。
|
|
規則のルールは、ルール 0 が定義されていなければ、有効にはなりません。
|
|
すなわち、デフォルトではすべてが通されます。
|
|
.It
|
|
パケットにマッチするルールが無い場合は、パケットは破棄 (ブロック) されます。
|
|
.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 秒
|
|
.Pp 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
|
|
は、接続相手が同意
|
|
.Pq あるいは要求
|
|
した場合に、
|
|
この機能を使おうと (もしくは受け入れようと) します。
|
|
.Nm
|
|
は deflate プロトコルを優先します。
|
|
これらの機能を使用したくない時には
|
|
.Dq disable
|
|
と
|
|
.Dq deny
|
|
のコマンドを参照してください。
|
|
.Pp
|
|
.Dq disable deflate
|
|
か
|
|
.Dq deny deflate
|
|
の一方を使用することにより、
|
|
方向ごとに異ったアルゴリズムを使用することができます。
|
|
.Pq 接続相手が両方のプロトコルをサポートしていると仮定しています。
|
|
.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 -literal -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
|
|
.Pp
|
|
.Sh インターネットサービスプロバイダと接続する
|
|
プロバイダに接続する際には、次のステップを踏む必要があるでしょう:
|
|
.Bl -enum
|
|
.It
|
|
.Dq set phone
|
|
コマンドを使って、ダイヤルスクリプトにプロバイダの電話番号を記述します。
|
|
ダイヤルやリダイヤルに使用する電話番号は、
|
|
パイプ
|
|
.Pq Dq \&|
|
|
またはコロン
|
|
.Pq Dq \&:
|
|
で区切って複数指定することができます。例えば、次のようになります。
|
|
.Pq Dq \&: :
|
|
.Bd -literal -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 ******** Ns
|
|
が記録されます。
|
|
.Pp
|
|
ログインスクリプトはプロバイダによって大きく違うものになるでしょう。
|
|
始めてそれを設定するときには
|
|
.Em チャットログを有効化
|
|
することで、あなたのスクリプトが予定通りに動いているかを
|
|
調べることができます。
|
|
.It
|
|
シリアル回線と通信速度を指定するためには
|
|
.Dq set device
|
|
と
|
|
.Dq set speed
|
|
を使います。例えば次のようになります。
|
|
.Bd -literal -offset indent
|
|
set device /dev/cuaa0
|
|
set speed 115200
|
|
.Ed
|
|
.Pp
|
|
FreeBSD では cuaa0 が 1 つめのシリアルポートになります。
|
|
OpenBSD で
|
|
.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
|
|
.Pp
|
|
.Ed
|
|
ローカル DNS を走らせている場合には、これを
|
|
.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 Async
|
|
非同期レベルパケットの 16 進ダンプ。
|
|
.It Li CBCP
|
|
CBCP (CallBack Control Protocol) ログの生成。
|
|
.It Li CCP
|
|
CCP パケットトレースの生成。
|
|
.It Li Chat
|
|
.Sq dial ,
|
|
.Sq login ,
|
|
.Sq hangup
|
|
のチャットスクリプトのトレースログの生成。
|
|
.It Li Command
|
|
コマンド実行のログ。
|
|
.It Li Connect
|
|
文字列 "CONNECT" を含むチャット行のログ。
|
|
.It Li Debug
|
|
デバッグ情報のログ。
|
|
.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 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 XX
|
|
.It INT
|
|
このシグナルを受信すると、現在の接続がもしあればそれを終了します。
|
|
.Fl auto
|
|
もしくは
|
|
.Fl ddial
|
|
のモードではない場合、
|
|
.Nm
|
|
は終了します。
|
|
.It HUP, TERM, QUIT
|
|
.Nm
|
|
を終了させます。
|
|
.It USR2
|
|
.Nm
|
|
に全サーバソケットを閉じさせ、すべての既存の診断ポートへの接続を
|
|
取り下げます。
|
|
.El
|
|
.Pp
|
|
.Sh マルチリンク PPP
|
|
.Em PPP
|
|
相手に接続するのに複数の物理的なリンクを利用したいなら、
|
|
接続相手も
|
|
.Em マルチリンク PPP
|
|
プロトコルを理解する必要があります。
|
|
仕様の詳細は RFC 1990 を参照してください。
|
|
.Pp
|
|
接続先は、
|
|
.Dq 終点の選択
|
|
とその
|
|
.Dq 認証 ID
|
|
の組み合わせによって識別されます。
|
|
これらの一方、もしくは両方を指定することができます。
|
|
最低でも片方は指定しておくことが推奨されます。
|
|
そうでないと、すべてのリンクが実際に同一のプログラムに接続されていることを
|
|
確認する方法がなくなり、
|
|
混乱してロックアップを引き起こすことがあります。
|
|
ローカルには、これらの識別変数は
|
|
.Dq set enddisc
|
|
と
|
|
.Dq set authname
|
|
コマンドを用いることで指定されます。先立って接続相手と
|
|
.Sq authname
|
|
.Pq と Sq authkey
|
|
について合意しておく必要があります。
|
|
.Pp
|
|
マルチリンクの能力は
|
|
.Dq set mrru
|
|
コマンド (set maximum reconstructed receive unit) を用いることで
|
|
有効になります。一度マルチリンクが有効になれば、
|
|
.Nm
|
|
は接続相手とマルチリンク接続の交渉を行います。
|
|
.Pp
|
|
デフォルトでは
|
|
.Po
|
|
.Sq deflink
|
|
と呼ばれる
|
|
.Pc
|
|
ただ 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
|
|
set authname ppp
|
|
set authkey ppppassword
|
|
set mrru 1500
|
|
clone 1,2,3
|
|
link deflink remove
|
|
.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 ppp
|
|
セッションで対話的に使用することも、
|
|
設定ファイルで指定することも、
|
|
.Xr pppctl 8
|
|
もしくは
|
|
.Xr telnet 1
|
|
セッションで指定することも可能です。
|
|
.Bl -tag -width XX
|
|
.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 XX
|
|
.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 認証要求に応答しますが、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 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 ロギングを有効にすることで、詳細なリンク品質を監視することが
|
|
可能になります。
|
|
接続相手が同意しなかった場合、ppp は代りに ECHO LQR 要求を
|
|
送ります。これらのパケットは興味ある情報を何も渡しませんが、
|
|
.Em 必ず
|
|
接続相手に応答しなければなりません。
|
|
.Pp
|
|
LQR, ECHO LQR のいずれを用いるにせよ、
|
|
.Nm
|
|
は 5 つのパケットを送ったが確認応答が無い場合、6 つ目のパケットを送らずに
|
|
回線を切断します。
|
|
メッセージを
|
|
.Em PHASE
|
|
レベルで記録し、回線切断の原因が接続相手にあるものとして、適当な
|
|
.Dq reconnect
|
|
値を使用します。
|
|
.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
|
|
がマルチリンクモードの交渉時に
|
|
.Pq 12 ビットの
|
|
短いシーケンス番号を要求し、そして受け入れるかどうかを決定します。
|
|
これは、当方の MMRU が設定されたときのみ
|
|
(マルチリンクが有効になっているときのみ)
|
|
適用されます。
|
|
.It vjcomp
|
|
デフォルト: enable かつ accept。
|
|
このオプションは Van Jacobson ヘッダ圧縮を使用するかどうかを決定します。
|
|
.El
|
|
.Pp
|
|
次に示すオプションは、実際には相手と交渉しません。
|
|
それゆえ accept および deny は意味を持ちません。
|
|
.Bl -tag -width 20
|
|
.It idcheck
|
|
デフォルト: enable。
|
|
低レベルな LCP, CCP, IPCP 設定トラフィックを交換するときに、
|
|
すべての応答の識別子フィールドはその要求の識別子フィールドと
|
|
同一であることが予定されています。デフォルトでは
|
|
.Nm
|
|
は予定された識別子フィールドを持たないすべての応答パケットを
|
|
捨て、それぞれのログレベルで報告します。もし
|
|
.Ar idcheck
|
|
が disable になっている場合、
|
|
.Nm
|
|
は識別子フィールドを無視します。
|
|
.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 表に単一エントリを作成することを意味します。
|
|
.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 throughput
|
|
デフォルト: enable。
|
|
このオプションを有効にすると、
|
|
.Nm
|
|
はスループット統計を収集します。
|
|
ずれ動く 5 秒間のウィンドウにおいて入出力が検査され、
|
|
現在、最良時、総計の数値が保持されます。
|
|
このデータは関連する
|
|
.Em PPP
|
|
層が終了するときに出力され、また
|
|
.Dq show
|
|
コマンドで表示することで得られます。スループット統計は
|
|
.Dq IPCP
|
|
と
|
|
.Dq modem
|
|
のレベルで利用可能です。
|
|
.It utmp
|
|
デフォルト: enable。
|
|
通常ユーザが PAP もしくは CHAP で認証された時で、
|
|
.Nm
|
|
が
|
|
.Fl direct
|
|
モードで実行されている時は、このユーザのエントリが
|
|
utmp ファイルおよび wtmp ファイルに作成されます。
|
|
このオプションを disable にすると、
|
|
.Nm
|
|
は utmp および wtmp のエントリを作成しません。
|
|
通常、
|
|
ユーザがログインしかつ認証することを要求する場合のみ必要です。
|
|
.It iface-alias
|
|
デフォルト:
|
|
.Fl alias
|
|
が指定された場合 enable。
|
|
このオプションは、
|
|
インタフェースのアドレスを交換するのではなく、
|
|
インタフェースに新規アドレスを追加するように、
|
|
.Nm
|
|
に指示します。
|
|
IP エイリアシングが有効な場合のみ
|
|
.Pq Dq alias enable yes
|
|
、本オプションを enable にできます。
|
|
.Pp
|
|
本オプションを enable にすると、
|
|
.Nm
|
|
は古いインタフェースアドレスのトラフィックを IP エイリアスエンジン
|
|
.Pq Xr libalias 5 参照
|
|
を通すようになり、(
|
|
.Fl auto
|
|
モードでは)
|
|
最初に PPP リンクを立ち上げたプロセスが正しく接続できるようにします。
|
|
.Pp
|
|
.Dq alias enable off
|
|
として IP エイリアシングを 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!
|
|
コマンド
|
|
.Po
|
|
.Dq \&!
|
|
に注意
|
|
.Pc
|
|
使用時には、経路が存在する場合には
|
|
.Sq route change
|
|
コマンド (詳細は
|
|
.Xr route 8
|
|
参照) にて経路を更新します。
|
|
.Pp
|
|
.Dq HISADDR
|
|
もしくは
|
|
.Dq MYADDR
|
|
を含む経路は
|
|
.Sq スティッキー
|
|
と見なされます。これらはリスト (リストを見るには
|
|
.Dq show ipcp
|
|
コマンドを使用します) に格納され、
|
|
.Dv HISADDR
|
|
もしくは
|
|
.Dv MYADDR
|
|
の値が変更される度に、経路表の関連するエントリが更新されます。
|
|
この機能は
|
|
.Dq disable sroutes
|
|
を使用することで無効にできます。
|
|
.It allow user Ns Xo
|
|
.Op s
|
|
.Ar logname Ns No ...
|
|
.Xc
|
|
このコマンドは
|
|
.Nm
|
|
と設定ファイルへのアクセスを制御します。
|
|
ユーザレベルでのアクセスは可能であり、
|
|
設定ファイルのラベルと
|
|
.Nm
|
|
の実行モードに依存します。
|
|
例えば、ユーザ
|
|
.Sq fred
|
|
のみがラベル
|
|
.Sq fredlabel
|
|
に
|
|
.Fl background
|
|
モードでアクセスできるように、
|
|
.Nm
|
|
を構成したいかもしれません。
|
|
.Pp
|
|
ユーザ ID 0 はこれらのコマンドの対象外です。
|
|
.Bl -tag -width XX
|
|
.It allow user[s] Ar logname...
|
|
デフォルトでは、ユーザ ID 0 のみが
|
|
.Nm
|
|
へのアクセスを許されています。
|
|
このコマンドが指定されると、
|
|
.Dq allow users
|
|
が記載されているセクションに列挙されているユーザのアクセスが可能となります。
|
|
.Sq default
|
|
セクションは
|
|
常に最初にチェックされます (スタートアップ時に常にロードされる唯一の
|
|
セクションです)。後続する
|
|
.Dq allow users
|
|
コマンドは、先行するコマンドに優先します。
|
|
あるラベル以外のすべてにアクセスを許すことが可能であり、
|
|
そのためにはデフォルトユーザを
|
|
.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 alias Ar command Op Ar args
|
|
このコマンドは
|
|
.Nm
|
|
組込みのエイリアシング (マスカレーディング) 機能を
|
|
制御するために使用します。
|
|
あなたのシステムでエイリアシングが有効になると (コンパイル時に削除できます)、
|
|
次のコマンドが使用可能となります:
|
|
.Bl -tag -width XX
|
|
.It alias enable Op yes|no
|
|
エイリアシングを有効もしくは無効にします。
|
|
.Fl alias
|
|
コマンドラインフラグは
|
|
.Dq alias enable yes
|
|
と同じ意味です。
|
|
.It alias addr Op Ar addr_local addr_alias
|
|
このコマンドには、
|
|
.Ar addr_alias
|
|
のデータを
|
|
.Ar addr_local
|
|
へリダイレクトします。
|
|
少数の実 IP アドレスを持ち、
|
|
それらをゲートウェイの後の特定のマシンにマップしたい場合に有用です。
|
|
.It alias deny_incoming Op yes|no
|
|
yes に設定すると、
|
|
ファイアウォールとほぼ同様にパケットを落とすことにより、
|
|
このコマンドは全入力接続を拒否します。
|
|
.It alias help|?
|
|
このコマンドは、使用可能な alias コマンドのまとめを表示します。
|
|
.It alias log Op yes|no
|
|
このオプションは、alias の様々な統計と情報がファイル
|
|
.Pa /var/log/alias.log
|
|
に記録されるようにします。
|
|
.It alias port Ar proto Ar targetIP Ns Xo
|
|
.No : Ns Ar port Ns
|
|
.Oo
|
|
.No - Ns Ar port
|
|
.Oc Ar aliasport Ns
|
|
.Oo
|
|
.No - Ns Ar aliasport Ns
|
|
.Oc
|
|
.Xc
|
|
このコマンドは、ポート
|
|
.Ar aliasport
|
|
への入力の
|
|
.Ar proto
|
|
接続を、
|
|
.Ar targetIP
|
|
のポート
|
|
.Ar port
|
|
へリダイレクトします。
|
|
.Ar proto
|
|
は、
|
|
.Dq tcp
|
|
または
|
|
.Dq udp
|
|
です。
|
|
.Pp
|
|
ポート番号の範囲は、前述のように指定可能です。
|
|
範囲は同じ大きさであることが必要です。
|
|
.Pp
|
|
あなたのゲートウェイの後のマシンでインターネット電話等を実行したい場合に、
|
|
このオプションは有用です。
|
|
しかし、ポートあたり内部マシン 1 台のみに接続可能という制限があります。
|
|
.It alias pptp Op Ar addr
|
|
すべての
|
|
.Em G Ns No eneral
|
|
.Em R Ns No outing
|
|
.Em E Ns No encapsulated
|
|
.Pq Dv IPPROTO_GRE
|
|
パケットを、ローカルインタフェースアドレスではなく
|
|
.Ar addr
|
|
を使用することにより、
|
|
.Nm
|
|
にエイリアスさせます。
|
|
これは、マシンの内部ネットワーク上で
|
|
.Em P Ns No oint
|
|
to
|
|
.Em P Ns No oint
|
|
.Em T Ns No unneling
|
|
.Em P Ns No rotocol
|
|
の使用を許します。
|
|
.Pp
|
|
.Ar addr
|
|
を指定しないと、
|
|
.Dv PPTP
|
|
エイリアスは無効になります。
|
|
.It "alias proxy cmd" Ar arg Ns No ...
|
|
このコマンドは、
|
|
.Nm
|
|
に特定の接続に対する代理をさせ、
|
|
これらの接続を指定したサーバにリダイレクトします。
|
|
使用可能なコマンドについての詳細は
|
|
.Xr libalias 3
|
|
の
|
|
.Fn PacketAliasProxyRule
|
|
の記述を参照してください。
|
|
.It alias same_ports Op yes|no
|
|
有効になると、
|
|
エイリアスライブラリが出力パケットのポート番号を変更しようとすることを
|
|
止めさせます。
|
|
RPC や LPD といった、
|
|
ウェルノウンポート (well known port) からの接続を要求する
|
|
プロトコルをサポートするのに有用です。
|
|
.It alias use_sockets Op yes|no
|
|
有効になると、
|
|
エイリアスライブラリにソケットを作成させ、
|
|
正しい ftp データ入力や IRC 接続を保証できるようになります。
|
|
.It alias unregistered_only Op yes|no
|
|
登録されていない送信元アドレスの出力パケットのみを、変更します。
|
|
RFC1918 によると、登録されていない送信元アドレスは
|
|
10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 です。
|
|
.El
|
|
.Pp
|
|
これらのコマンドはソース配布物の
|
|
.Pa README.alias
|
|
ファイル中でも議論されています。
|
|
.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 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 USER
|
|
これは、PAP もしくは CHAP で認証されたユーザ名と置き換えられます。
|
|
通常、この変数は -direct モードでのみ割り当てられます。
|
|
この値は、utmp ロギングが有効になっているかどうかに関わらず、利用可能です。
|
|
.El
|
|
.Pp
|
|
これらの置換は
|
|
.Dq set proctitle
|
|
コマンドによっても実行されます。
|
|
.Pp
|
|
コマンド実行中に
|
|
.Nm
|
|
を停止させたい場合は、
|
|
.Dq shell
|
|
コマンドを使用してください。
|
|
.It clear modem|ipcp Op current|overall|peak...
|
|
.Dq modem
|
|
もしくは
|
|
.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
|
|
.Pq 後述
|
|
を使用して相手のマシンと会話できます。
|
|
.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!
|
|
コマンドが使用された場合
|
|
.Po
|
|
最後の
|
|
.Dq \&!
|
|
に注意
|
|
.Pc
|
|
、存在しない経路について
|
|
.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 ppp
|
|
が使用するインタフェースを制御します。
|
|
.Ar command
|
|
は次のいずれかです:
|
|
.Bl -tag -width XX
|
|
.It iface add[!] Ar addr[[/bits| mask] peer]
|
|
指定された
|
|
.Ar addr mask peer
|
|
の組み合わせをインタフェースに追加します。
|
|
.Ar mask
|
|
を指定する代りに、
|
|
.Ar /bits
|
|
を使用可能です
|
|
.Pq 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 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
|
|
の反対のコマンドです。
|
|
閉じられている全リンクがすぐに立ち上がります
|
|
(しかしながら auto リンクによっては立ち上がらないものがあります。
|
|
これは、どのような
|
|
.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 save
|
|
このオプションは (まだ) 実装されていません。
|
|
.It set Ns Xo
|
|
.No Op up
|
|
.Ar var value
|
|
.Xc
|
|
このオプションは次に示す変数の設定のために使用します:
|
|
.Bl -tag -width XX
|
|
.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 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\P
|
|
シーケンスで使用するパスワードもまた指定します。
|
|
これにより実際のパスワードは記録されません。
|
|
.Ar command
|
|
または
|
|
.Ar chat
|
|
のログが有効な場合、セキュリティの観点から、
|
|
.Ar value
|
|
は
|
|
.Sq ********
|
|
として記録されます。
|
|
.Pp
|
|
.Ar value
|
|
の最初の文字がエクスクラメーションマーク
|
|
.Pq Dq \&
|
|
の場合、
|
|
.Nm
|
|
は残りの文字列を、
|
|
.Dq authname
|
|
と
|
|
.Dq authkey
|
|
の値を確定するために実行すべきプログラムとして扱います。
|
|
.Pp
|
|
.Dq \&!
|
|
を無視し、前述の
|
|
.Dq !bg
|
|
コマンドと同様に特殊な名前を同様に置換しながら、
|
|
.Ar value
|
|
は実行すべきプログラムとしてパーズされます。
|
|
プログラムを実行すると、
|
|
.Nm
|
|
はこのプログラムに対して 3 行の入力を与えます。
|
|
各行は改行文字で終了しています:
|
|
.Bl -bullet
|
|
.It
|
|
CHAP チャレンジに含めて送られるホスト名。
|
|
.It
|
|
CHAP チャレンジに含めて送られるチャレンジ文字列。
|
|
.It
|
|
ローカルに定義された
|
|
.Dq authname
|
|
。
|
|
.El
|
|
.Pp
|
|
2 行の出力が期待されています:
|
|
.Bl -bullet
|
|
.It
|
|
CHAP 応答と共に送るべき
|
|
.Dq authname
|
|
。
|
|
.It
|
|
チャレンジと要求 ID で暗号化した
|
|
.Dq authkey
|
|
であり、応答は 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 max-duration max-load Op Ar min-duration min-load
|
|
.Xc
|
|
これらの設定はマルチリンクモードでのみ適用され、
|
|
デフォルト値はすべて 0 です。
|
|
1 つ以上の
|
|
.Ar demand-dial
|
|
.Po
|
|
.Fl auto
|
|
としても知られる
|
|
.Pc
|
|
モードのリンクが存在する場合、
|
|
.Nm
|
|
が最初に tun デバイスからデータを読むときには最初のリンクのみが
|
|
有効になっています。
|
|
次の
|
|
.Ar demand-dial
|
|
リンクは、
|
|
.Ar max-duration
|
|
秒の間、送出キューに
|
|
.Ar max-load
|
|
以上のパケットが存在した場合にのみ開かれます。
|
|
両方のデフォルト値が 0 であるため、
|
|
.Ar demand-dial
|
|
リンクはデフォルトでは 1 つだけオープンされます。
|
|
.Pp
|
|
複数のリンクが開かれていて、少なくともその内の 1 つが
|
|
.Ar demand-dial
|
|
リンクである場合、
|
|
.Ar min-duration
|
|
秒の間、送出キューに最大
|
|
.Ar min-packets
|
|
未満のパケットしか存在しなかったときに閉じられます。
|
|
.Ar min-duration
|
|
が 0 の場合には、タイマは無効になります。
|
|
デフォルトでは両方の値が 0 であるため、
|
|
.Ar demand-dial
|
|
リンクはバンドルされたアイドルタイマが期限切れになるまで
|
|
アクティブであり続けます。
|
|
.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
|
|
.It auth
|
|
コールバック応答側は、認証に基づいてコールバック番号を
|
|
決定することが求められます。
|
|
.Nm
|
|
がコールバック応答側である場合、番号は
|
|
.Pa /etc/ppp/ppp.secret
|
|
中の接続先エントリの 5 番目のフィールドで指定されます。
|
|
.It cbcp
|
|
Microsoft コールバック制御プロトコルが用いられます。後述の
|
|
.Dq set cbcp
|
|
を参照してください。
|
|
.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
|
|
はそのことを受け入れ、接続を終了するのではなく
|
|
コールバックせずに処理を続けます。
|
|
コールバックをオプションにしたいのであれば、これを指定する必要があります。
|
|
.El
|
|
.Pp
|
|
.It set cbcp Oo Xo
|
|
.No *| Ns Ar number Ns No
|
|
.Oo
|
|
.No , Ns Ar number Ns
|
|
.Oc
|
|
.No ...
|
|
.Op Ar delay Op Ar retry
|
|
.Oc
|
|
.Xc
|
|
引数が与えられない場合、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 Ar seconds Ns Op \&!
|
|
通常、ログインスクリプト完了の 1 秒後に、
|
|
.Nm
|
|
はキャリアの存在をチェックします。
|
|
キャリアが設定されていないと、
|
|
デバイスがキャリアをサポートしていない
|
|
(ほとんどのヌルモデムケーブルの場合がそうです) と
|
|
.Nm
|
|
は仮定し、この事実を記録して、キャリアのチェックを止めます。
|
|
しかし、モデムによってはキャリアのアサートに時間がかかるものがあるので、
|
|
リンクが落ちたときを
|
|
.Nm ppp
|
|
は検知できなくなります。
|
|
.Ar seconds
|
|
は、ログインスクリプトが完了してから最初のキャリアチェックを行う前に、
|
|
.Nm
|
|
が待つべき秒数を指定します。
|
|
.Pp
|
|
.Ar seconds
|
|
の直後にエクスクラメーションマーク
|
|
.Pq Dq \&!
|
|
がある場合、
|
|
.Nm
|
|
はキャリアを
|
|
.Em 要求
|
|
します。
|
|
最初のチェックでキャリアを検知しないと、リンクは切断されているとみなされます。
|
|
.Pp
|
|
リンクが tty でない場合、キャリアの
|
|
.Em 必要性
|
|
は無視されます。
|
|
.It set choked Op Ar timeout
|
|
これは
|
|
.Nm
|
|
がすべての未送出パケットを破棄する前に
|
|
送出キュー詰まりを保持する秒数を設定します。
|
|
.Ar timeout
|
|
が 0 以下もしくは
|
|
.Ar timeout
|
|
が指定されない場合、デフォルト値の
|
|
.Em 120 秒
|
|
に設定されます。
|
|
.Pp
|
|
送出キュー詰まりは
|
|
.Nm
|
|
がローカルネットワークから特定の数の送出パケットを読み込んだが、
|
|
リンク失敗 (接続相手がビジーなど) のためにデータを送れない場合に
|
|
発生します。
|
|
.Nm
|
|
はパケットを無限には読み込みません。代りに
|
|
.Em 20
|
|
パケット (マルチリンクモードでは
|
|
.Em 20 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
|
|
に設定します。
|
|
全シリアルデバイス名は
|
|
.Pa /dev/
|
|
から始まることが仮定されています。
|
|
.Dq value
|
|
が
|
|
.Pa /dev/
|
|
から始まらない場合、エクスクラメーションマーク
|
|
.Pq Dq \&!
|
|
から始めるか、
|
|
.Dq host:port
|
|
の形式である必要があります。
|
|
.Pp
|
|
エクスクラメーションマークで始まる場合、
|
|
デバイス名の残りはプログラム名として扱われ、
|
|
そのデバイスがオープンされるときにそのプログラムが実行されます。
|
|
標準入出力およびエラーは
|
|
.Nm
|
|
にフィードバックされ、それらが通常デバイスであるかのように読み書きされます。
|
|
.Pp
|
|
.Dq host:port
|
|
の組が与えられる場合、
|
|
.Nm
|
|
は、指定された
|
|
.Dq host
|
|
の指定された
|
|
.Dq port
|
|
と接続しようとします。
|
|
詳細は上述の
|
|
.Em PPP オーバ TCP
|
|
の節を参照してください。
|
|
.Pp
|
|
複数の
|
|
.Dq value
|
|
を指定した場合、
|
|
.Nm
|
|
は成功するか全デバイスについて実行し終るまで、順番にオープンを試みます。
|
|
.It set dial Ar chat-script
|
|
相手へダイヤルする際に使用されるチャットスクリプトを指定します。
|
|
後述の
|
|
.Dq set login
|
|
コマンドも参照してください。
|
|
チャットスクリプトのフォーマットの詳細については、
|
|
.Xr chat 8
|
|
と設定ファイルの例を参照してください。
|
|
次の特殊な
|
|
.Sq value
|
|
をチャットスクリプトに指定可能です:
|
|
.Bd -unfilled -offset indent
|
|
.It \\\\\\\\\\\\\\\\c
|
|
.Sq 送信
|
|
文字列の最後の文字として使用した場合、
|
|
改行を追加してはならないことを意味します。
|
|
.It \\\\\\\\\\\\\\\\d
|
|
チャットスクリプトがこのシーケンスに出会うと、2 秒待ちます。
|
|
.It \\\\\\\\\\\\\\\\p
|
|
チャットスクリプトがこのシーケンスに出会うと、1/4 秒待ちます。
|
|
.It \\\\\\\\\\\\\\\\n
|
|
改行文字と置き換えられます。
|
|
.It \\\\\\\\\\\\\\\\r
|
|
復改文字と置き換えられます。
|
|
.It \\\\\\\\\\\\\\\\s
|
|
空白文字と置き換えられます。
|
|
.It \\\\\\\\\\\\\\\\t
|
|
タブ文字と置き換えられます。
|
|
.It \\\\\\\\\\\\\\\\T
|
|
現在の電話番号と置き換えられます (後述の
|
|
.Dq set phone
|
|
参照)。
|
|
.It \\\\\\\\\\\\\\\\P
|
|
現在の
|
|
.Ar authkey
|
|
値と置き換えられます (前述の
|
|
.Dq set authkey
|
|
参照)。
|
|
.It \\\\\\\\\\\\\\\\U
|
|
現在の
|
|
.Ar authname
|
|
値と置き換えられます (前述の
|
|
.Dq set authname
|
|
参照)。
|
|
.Ed
|
|
.Pp
|
|
2 つのパーザがこれらのエスケープシーケンスを検査することに注意してください。
|
|
.Sq チャットのパーザ
|
|
にエスケープ文字を見せるには、
|
|
.Sq コマンドパーザ
|
|
からエスケープする必要があります。
|
|
つまり、2 つのエスケープを使用する必要があります。例えば次のようにします:
|
|
.Bd -literal -offset indent
|
|
set dial "... ATDT\\\\T CONNECT"
|
|
.Ed
|
|
.Pp
|
|
チャットスクリプトから外部コマンドを実行することもできます。
|
|
そうするためには、
|
|
受信待ち文字列または送信文字列の最初の文字をエクスクラメーションマーク
|
|
.Pq 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 交渉の前に設定されると、
|
|
.Nm
|
|
は LCP 終点選択値オプションを使用して、相手に情報を送ります。
|
|
次の選択値を設定可能です。
|
|
.Bd -unfilled -offset 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 桁の乱数が使用されます。
|
|
.It Li psn Ar value
|
|
指定された
|
|
.Ar value
|
|
が使用されます。
|
|
.Ar value
|
|
は、絶対的な公衆スイッチネットワーク番号の先頭に
|
|
国コードを付けたものであるべきです。
|
|
.Ed
|
|
.Pp
|
|
引数が与えられない場合、終点の選択値はリセットされます。
|
|
.It set escape Ar value...
|
|
このオプションは前述の
|
|
.Dq set accmap
|
|
オプションに似ています。
|
|
リンクを経由する時に
|
|
.Sq エスケープ
|
|
される文字を指定するために使用します。
|
|
.It set filter dial|alive|in|out Ar rule-no Xo
|
|
.No permit|deny
|
|
.Oo Ar src_addr Ns Op / Ns Ar width
|
|
.Op Ar dst_addr Ns Op / Ns Ar width
|
|
.Oc Oo tcp|udp|icmp Op src lt|eq|gt Ar port
|
|
.Op dst lt|eq|gt Ar port
|
|
.Op estab
|
|
.Op syn
|
|
.Op finrst
|
|
.Oc
|
|
.Xc
|
|
.Nm
|
|
は 4 つのフィルタセットをサポートします。
|
|
.Em alive
|
|
フィルタは接続を活性状態に保つパケットを指定します -
|
|
アイドルタイマをリセットします。
|
|
.Em dial
|
|
フィルタは、
|
|
.Fl auto
|
|
モード時に
|
|
.Nm
|
|
にダイヤルさせるパケットを指定します。
|
|
.Em in
|
|
フィルタは、マシンに入力可能なパケットを指定します。
|
|
.Em out
|
|
フィルタは、マシンから出力可能なパケットを指定します。
|
|
.Pp
|
|
フィルタリングは、
|
|
エイリアスエンジンが行う IP 変更の前に適用されます。
|
|
デフォルトでは、全フィルタセットが全パケットの通過を許可します。
|
|
ルールは
|
|
.Ar rule-no
|
|
に従って順番に処理されます。
|
|
各セットに対し 40 までのルールを指定可能です。
|
|
指定されるセットにおけるどのルールにもマッチしないパケットは破棄されます。
|
|
.Em in
|
|
と
|
|
.Em out
|
|
のフィルタでは、パケットをドロップすることを意味します。
|
|
.Em alive
|
|
フィルタでは、アイドルタイマをリセットしないことを意味します。
|
|
.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
|
|
.Ar hisaddr
|
|
に IP 番号の範囲として
|
|
.Bd -literal -offset indent
|
|
.Ar \&IP Ns Oo \&- Ns Ar \&IP Ns Xo
|
|
.Oc Oo , Ns Ar \&IP Ns
|
|
.Op \&- Ns Ar \&IP Ns
|
|
.Oc No ...
|
|
.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 接続を保存します)。
|
|
.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
|
|
.Po
|
|
PAP か CHAP が
|
|
.Dq enable
|
|
である場合
|
|
.Pc
|
|
クライアントが自己証明をした後では、
|
|
.Ar HISADDR
|
|
引数は
|
|
.Pa ppp.secret
|
|
ファイルの第 3 引数で上書きされうることに注意してください。
|
|
.Sx 内向き接続の認証
|
|
の節を参照してください。
|
|
.Pp
|
|
どの場合でも、インタフェースが既に構成されている場合には、
|
|
.Nm
|
|
はインタフェースの IP 番号を保存して、
|
|
既にバインドされているソケットが正しいままであるようにします。
|
|
.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 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
|
|
を発行し、IP エイリアシングが enable にされていた場合、後で
|
|
.Dq enable iface-alias
|
|
を行うと便利です。
|
|
.Nm
|
|
が必要なアドレス変換を行うようにすることにより、
|
|
相手が当方に新しい (動的な) IP アドレスを割り当てたとしても、
|
|
リンクがアップすると接続のトリガとなるプロセスが接続できるようにします。
|
|
.It set mrru Op Ar value
|
|
このオプションを設定すると、
|
|
マルチリンクプロトコルまたは MP としても知られる、
|
|
マルチリンク PPP 交渉を有効にします。
|
|
MRRU (Maximum Reconstructed Receive Unit) の値にはデフォルトはありません。
|
|
引数を指定しないと、マルチリンクモードは無効にされます。
|
|
.It set mru Op Ar value
|
|
デフォルトの MRU (最大受信単位; Maximum Receive Unit) は 1500 です。
|
|
この値を増加させた場合、相手は MTU を増加させても *かまいません*。
|
|
デフォルトの MRU より減らすことは意味がありません。
|
|
なぜなら、
|
|
.Em PPP
|
|
プロトコルでは少なくとも 1500 オクテットのパケットを
|
|
受信できなければ *ならない* からです。
|
|
引数が指定されないと、1500 が仮定されます。
|
|
.It set mtu Op Ar value
|
|
デフォルトの MTU は 1500 です。
|
|
交渉時に、(296 バイト未満でなければ)
|
|
相手が望むいかなる MRU および MRRU も受け付け可能です。
|
|
MTU が設定されると、
|
|
.Nm
|
|
は
|
|
.Ar value
|
|
よりも小さい MRU/MRRU の値を受け付けなくなります。
|
|
交渉が完了すると、相手がより大きな MRU/MRRU を要求していたとしても、
|
|
インタフェースに対して MTU が割り当てられます。
|
|
当方のパケットサイズを制限するのに有用です
|
|
(よりよくバンド幅を共有できるようになりますが、
|
|
ヘッダデータが増えるというコストがかかります)。
|
|
.Pp
|
|
.Ar value
|
|
を指定しないと、1500 または相手が要求した値が使用されます。
|
|
.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 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 maxinc
|
|
回だけです。
|
|
.Ar maxinc
|
|
のデフォルト値は 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|LocalName|none password Op Ar mask
|
|
このコマンドは
|
|
.Nm
|
|
に指定したソケットもしくは
|
|
.Sq 診断ポート
|
|
にてコマンド接続の入力を listen するように指示します。
|
|
.Pp
|
|
語
|
|
.Ar none
|
|
は
|
|
.Nm
|
|
に既に存在するソケットを閉じさせます。
|
|
.Pp
|
|
ローカルドメインソケットを指定したい場合、
|
|
.Ar LocalName
|
|
に絶対ファイル名を指定します。そうしないと、TCP ポートの名前もしくは番号
|
|
であると解釈されます。
|
|
ローカルドメインソケットに使用される 8 進 umask を指定する必要があります。
|
|
.Sq 0
|
|
から始まる 4 桁 8 進数で指定します。
|
|
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
|
|
に依存しないようにしてください。
|
|
.It set speed Ar value
|
|
シリアルデバイスの速度を指定します。
|
|
.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
|
|
このコマンドはアイドルタイマの値を指定します。
|
|
更なる詳細については
|
|
.Sx アイドルタイマの設定
|
|
というタイトルの節を参照してください。
|
|
.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 20
|
|
.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
|
|
現在のインタフェース情報
|
|
.Po Dq iface show
|
|
と同じです
|
|
.Pc を表示します。
|
|
.It show ipcp
|
|
現在の IPCP 統計を表示します。
|
|
.It show lcp
|
|
現在の LCP 統計を表示します。
|
|
.It show Op data Ns Xo
|
|
.No link
|
|
.Xc
|
|
高レベルリンク情報を表示します。
|
|
.It show links
|
|
利用可能な論理リンクのリストを表示します。
|
|
.It show log
|
|
現在のログ値を表示します。
|
|
.It show mem
|
|
現在のメモリ統計を表示します。
|
|
.It show modem
|
|
現在の下位レベルリンク情報を表示します。
|
|
.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
|
|
.Pp
|
|
.Sh 更に詳細について
|
|
.Bl -bullet
|
|
.It
|
|
設定ファイルの例を読んでください。良い情報源です。
|
|
.It
|
|
何が利用できるかについては、
|
|
.Dq help ,
|
|
.Dq alias ? ,
|
|
.Dq enable ? ,
|
|
.Dq set ? ,
|
|
.Dq show ?
|
|
コマンドを使って、オンライン情報を取得してください。
|
|
.It
|
|
次の URL に有用な情報があります:
|
|
.Bl -bullet -compact
|
|
.It
|
|
http://www.FreeBSD.org/FAQ/userppp.html
|
|
.It
|
|
http://www.FreeBSD.org/handbook/userppp.html
|
|
.El
|
|
.Pp
|
|
.El
|
|
.Pp
|
|
.Sh 関連ファイル
|
|
.Nm
|
|
は、4 つのファイル
|
|
.Pa ppp.conf ,
|
|
.Pa ppp.linkup ,
|
|
.Pa ppp.linkdown ,
|
|
.Pa ppp.secret
|
|
を参照します。
|
|
これらのファイルは
|
|
.Pa /etc/ppp
|
|
に置かれます。
|
|
.Bl -tag -width XX
|
|
.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/syslogd.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
|
|
.Pp
|
|
.Sh 関連項目
|
|
.Xr at 1 ,
|
|
.Xr ftp 1 ,
|
|
.Xr gzip 1 ,
|
|
.Xr hostname 1 ,
|
|
.Xr login 1 ,
|
|
.Xr tcpdump 1 ,
|
|
.Xr telnet 1 ,
|
|
.Xr libalias 3 ,
|
|
.Xr syslog 3 ,
|
|
.Xr uucplock 3 ,
|
|
.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 route 8 ,
|
|
.Xr syslogd 8 ,
|
|
.Xr traceroute 8 ,
|
|
.Xr vipw 8
|
|
.Sh 歴史
|
|
元のプログラムは Toshiharu OHNO (tony-o@iij.ad.jp) が作成し、
|
|
FreeBSD-2.0.5 に Atsushi Murai (amurai@spec.co.jp) が提出しました。
|
|
.Pp
|
|
1997 年中に Brian Somers (brian@Awfulhak.org) が本格的な修正をし、
|
|
11 月に OpenBSD に移植されました (2.2-RELEASE の直後です)。
|
|
.Pp
|
|
1998 年初頭にマルチリンク ppp サポートが追加されたときに、
|
|
ほとんどのコードを Brian Somers が書き直しました。
|