Reviewed by: The Japanese Online Manual Project <man-jp@jp.FreeBSD.ORG> Submitted by: horikawa@jp.freebsd.org
2701 lines
70 KiB
Groff
2701 lines
70 KiB
Groff
.\" %Id: ppp.8,v 1.19.2.37 1998/03/16 07:11:27 steve Exp %
|
|
.\" jpman %Id: ppp.8,v 1.4 1997/06/08 18:41:58 saeki Stab %
|
|
.Dd 20 September 1995
|
|
.Os FreeBSD
|
|
.Dt PPP 8
|
|
.Sh 名称
|
|
.Nm ppp
|
|
.Nd PPP (Point to Point Protocol) (別名 iijppp)
|
|
.Sh 書式
|
|
.Nm
|
|
.\" SOMEONE FIX ME ! The .Op macro can't handle enough args !
|
|
[
|
|
.Fl auto |
|
|
.Fl background |
|
|
.Fl ddial |
|
|
.Fl direct |
|
|
.Fl dedicated
|
|
]
|
|
.Op Fl alias
|
|
.Op Ar system
|
|
.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 パケットエイリアシングをサポート
|
|
パケットエイリアシング (別名: IP マスカレード) により、
|
|
未登録でプライベートなネットワーク上のコンピュータからも
|
|
インターネットにアクセスすることが可能です。
|
|
.Em PPP
|
|
ホストはマスカレードゲートウェイとして動作します。
|
|
送信パケットの IP アドレスと TCP や UDP のポート番号は
|
|
どちらもエイリアスされ、返信パケットではエイリアスが元に戻されます。
|
|
.It バックグラウンド PPP 接続をサポート
|
|
バックグラウンドモードでは、接続を確立するのに成功した場合に
|
|
.Nm
|
|
はデーモンになります。
|
|
それ以外の場合はエラーで終了します。
|
|
これにより、
|
|
接続が成功裏に確立した場合のみコマンドを実行するようなスクリプト
|
|
をセットアップすることが出来ます。
|
|
.It サーバとしての PPP 接続をサポート
|
|
ダイレクトモードでは、
|
|
.Nm
|
|
は標準入力/標準出力からの
|
|
.Em PPP
|
|
接続を受け入れるサーバとして動作させることができます。
|
|
.It PAP と CHAP による認証をサポート
|
|
PAP もしくは CHAP を用いることにより、Unix スタイルの
|
|
.Xr login 1
|
|
手続きをスキップし、
|
|
.Em PPP
|
|
プロトコルを代りに認証に使用することが可能です。
|
|
.It 代理 arp (Proxy Arp) をサポート
|
|
.Em PPP
|
|
がサーバとして動作している時、その接続について代理 arp を行うよう
|
|
設定できます。
|
|
.It パケットのフィルタリングをサポート
|
|
ユーザは 4 種類のフィルタを定義できます。
|
|
.Em ifilter
|
|
は受信パケットに対するフィルタです。
|
|
.Em ofilter
|
|
は送信パケットに対するフィルタです。
|
|
.Em dfilter
|
|
はダイアルを行うきっかけとなるパケットを定義するフィルタで、
|
|
.Em afilter
|
|
は接続を保持するためのパケットを定義するフィルタです。
|
|
.It トンネルドライバは bpf (Berkeley Packet Filter) をサポート
|
|
.Em PPP
|
|
リンクを流れるパケットを調べるために、
|
|
.Xr tcpdump 1
|
|
を使うことができます。
|
|
.It PPP オーバ TCP をサポート
|
|
.It IETF ドラフトの Predictor-1 圧縮をサポート
|
|
.Nm
|
|
は VJ 圧縮の他に Predictor-1 圧縮もサポートしています。
|
|
モデムは通常 (例えば v42.bis のような) 組み込みの圧縮機能を持っており、
|
|
その結果システムは
|
|
.\"(訳注)「転送データレートよりも」をここにいれたいと考えています。
|
|
.\" 2.2.1R 対象(1997/04/02) Takeshi MUTOH <mutoh@info.nara-k.ac.jp>
|
|
より高いデータレートで通信できます。
|
|
これは一般には良いことですが、より高速のデータによってシリアル回線からの
|
|
割り込みが増加します。
|
|
システムはこの割り込みをモデムと通信して処理しなくてはならないため、
|
|
システムの負荷と遅延時間が増加することになります。
|
|
VJ 圧縮とは異なり、Predictor-1 圧縮はリンクを通る
|
|
.Em すべての
|
|
データをあらかじめ圧縮しておくことで、オーバヘッドを最小にします。
|
|
.It Microsoft の IPCP 拡張をサポート
|
|
Microsoft の
|
|
.Em PPP
|
|
スタックを使用するクライアント (つまり Win95, WinNT) との間で
|
|
ネームサーバのアドレスと NetBIOS ネームサーバのアドレスを
|
|
交渉することができます。
|
|
.El
|
|
.Sh パーミッション
|
|
.Nm ppp
|
|
はユーザ
|
|
.Dv root
|
|
、グループ
|
|
.Dv network
|
|
、パーミッション
|
|
.Dv 4550
|
|
でインストールされます。
|
|
デフォルトでは
|
|
.Nm ppp
|
|
は、起動したユーザ ID が 0 でない場合には実行しません。
|
|
これは
|
|
.Dq allow users
|
|
コマンドを
|
|
.Pa /etc/ppp/ppp.conf
|
|
に記載することにより変更することが可能です。
|
|
通常ユーザとして実行する場合には、
|
|
.Nm
|
|
はユーザ ID 0 に変わり、システムのルーティングテーブルを変更するために、
|
|
システムロックファイルを作成し、
|
|
ppp の設定ファイルを読みます。
|
|
全ての外部コマンド ("shell" や "!bg" で実行されます) は、
|
|
.Nm ppp
|
|
を起動したユーザ ID で実行されます。
|
|
ユーザ ID 0 にて正確になにが行われているのかに興味がある場合には、
|
|
ログ機能の
|
|
.Sq ID0
|
|
を参照してください。
|
|
.Sh 始める前に
|
|
最初に
|
|
.Nm
|
|
を実行する時には、いくつかの初期設定を整える必要があります。
|
|
まず、カーネルにトンネルデバイスが含まれていなければ
|
|
なりません (GENERIC カーネルではデフォルトで 1 つ含まれます)。
|
|
もし含まれていない場合や複数の tun インタフェースが必要な場合、
|
|
以下の行をカーネル設定ファイルに追加して、
|
|
カーネルを再構築する必要があります:
|
|
.Pp
|
|
.Dl pseudo-device tun N
|
|
.Pp
|
|
ここで
|
|
.Ar N
|
|
は
|
|
.Em PPP
|
|
接続を行いたい最大の数です。
|
|
つぎに、
|
|
.Pa /dev
|
|
ディレクトリにトンネルデバイスのエントリ
|
|
.Pa /dev/tunN
|
|
があるかどうかを調べてください。
|
|
ここで
|
|
.Sq N
|
|
は、0 から始まる tun デバイスの番号です。
|
|
もし無いようならば、"sh ./MAKEDEV tunN" を実行すれば作ることができます。
|
|
これにより 0 から
|
|
.Ar N
|
|
までの tun デバイスが作成されます。
|
|
最後に、ログファイルを作成します。
|
|
.Nm ppp
|
|
は
|
|
.Xr syslog 3
|
|
を使用して情報をログします。通常のログファイル名は
|
|
.Pa /var/log/ppp.log
|
|
です。
|
|
このファイルに出力を行うためには、以下の行を
|
|
.Pa /etc/syslog.conf
|
|
ファイルに記述してください:
|
|
.Bd -literal -offset indent
|
|
!ppp
|
|
*.*<TAB>/var/log/ppp.log
|
|
.Ed
|
|
.Pp
|
|
TAB と書かれている場所には、実際にはタブを入力します。
|
|
スペースを使うと、なにも知らされぬままこの行は無視されます。
|
|
.Nm
|
|
の実行形式にリンクを作成することにより、複数の
|
|
.Em PPP
|
|
ログファイルを持つことが可能です:
|
|
.Pp
|
|
.Dl # cd /usr/sbin
|
|
.Dl # ln ppp ppp0
|
|
.Pp
|
|
として
|
|
.Pa /etc/syslog.conf
|
|
で
|
|
.Bd -literal -offset indent
|
|
!ppp0
|
|
*.* /var/log/ppp0.log
|
|
.Ed
|
|
.Pp
|
|
とします。
|
|
.Pa /etc/syslog.conf
|
|
を更新した後に、
|
|
.Xr syslogd 8
|
|
に
|
|
.Dv HUP
|
|
シグナルを送ることをお忘れなく。
|
|
.Sh 手動ダイアル
|
|
以下の例では、あなたのマシン名が
|
|
.Dv awfulhak
|
|
であるとして説明します。
|
|
.Nm
|
|
を引数無しで起動すると (前述の
|
|
.Em パーミッション
|
|
参照) 次のプロンプトが表示されます:
|
|
.Bd -literal -offset indent
|
|
ppp ON awfulhak>
|
|
.Ed
|
|
.Pp
|
|
プロンプトの
|
|
.Sq ON
|
|
の部分は常に大文字であるべきです。ここが小文字の場合、
|
|
.Dq passwd
|
|
コマンドを使用してパスワードを入力しなければならないことを意味します。
|
|
実行中の
|
|
.Nm
|
|
に接続し、
|
|
まだ正しいパスワードを入力していない場合にのみこのような状態になります。
|
|
.Pp
|
|
ここで、モデムのデバイス名、スピードやパリティの設定、
|
|
CTS/RTS 信号を使うかどうか (デフォルトでは CTS/RTS が使用されます) を
|
|
指定して、開始可能です。もしハードウェアが CTS/RTS 信号を持っていない場合
|
|
(これは PPP 可能な端末サーバに直接つなぐ場合に起こり得ます)、
|
|
.Nm
|
|
は そのポートを通してどんな出力も送らず、来るはずのない信号を待ち続けます。
|
|
したがって、直接接続で通信ができないような場合には、
|
|
CTS/RTS を off にしてみてください:
|
|
.Bd -literal -offset indent
|
|
ppp ON awfulhak> set line /dev/cuaa0
|
|
ppp ON awfulhak> set speed 38400
|
|
ppp ON awfulhak> set parity even
|
|
ppp ON awfulhak> set ctsrts on
|
|
ppp ON awfulhak> show modem
|
|
* モデム関連のパラメータが、ここに示されます *
|
|
ppp ON awfulhak>
|
|
.Ed
|
|
.Pp
|
|
ここでは、直接モデムと通信するために term コマンドを使用可能です:
|
|
.Bd -literal -offset indent
|
|
ppp ON awfulhak> term
|
|
at
|
|
OK
|
|
atdt123456
|
|
CONNECT
|
|
login: ppp
|
|
Password:
|
|
Protocol: ppp
|
|
.Ed
|
|
.Pp
|
|
相手が
|
|
.Em PPP
|
|
で話しはじめると、
|
|
.Nm
|
|
はそれを自動的に検出してコマンドモードに戻ります。
|
|
.Bd -literal -offset indent
|
|
ppp ON awfulhak>
|
|
PPP ON awfulhak>
|
|
.Ed
|
|
.Pp
|
|
これで接続されました!
|
|
プロンプトの
|
|
.Sq PPP
|
|
が大文字に変化して、接続されたことを知らせます。
|
|
show コマンドを使用すれば、どのように事態が進行しているのかが分ります:
|
|
.Bd -literal -offset indent
|
|
PPP ON awfulhak> show lcp
|
|
* LCP 関連の情報がここに表示されます *
|
|
PPP ON awfulhak> show ipcp
|
|
* IPCP 関連の情報がここに表示されます *
|
|
.Ed
|
|
.Pp
|
|
この時点で、マシンは接続先に対するホスト単位のルート (host route)
|
|
を持っています。
|
|
これはリンクの相手のホストとのみ接続可能であるという意味です。
|
|
デフォルトルートのエントリ
|
|
(他のルーティングエントリを持たずに、全パケットを
|
|
.Em PPP
|
|
リンクの相手に送る
|
|
ように、あなたのマシンに指示します)を追加したければ、
|
|
以下のコマンドを入力してください。
|
|
.Bd -literal -offset indent
|
|
PPP ON awfulhak> add default HISADDR
|
|
.Ed
|
|
.Pp
|
|
.Sq HISADDR
|
|
という文字列は、相手側の IP アドレスを表します。
|
|
.Sq HISADDR
|
|
の位置に
|
|
.Sq INTERFACE
|
|
キーワードを使用可能です。
|
|
これにより tun インタフェース上に直接経路を作成します。
|
|
ここで、(ping, telnet, ftp のような) ネットワークアプリケーションを
|
|
別のウインドウで使用可能です。
|
|
使用可能コマンドの詳細は
|
|
.Em PPP コマンドリスト
|
|
の節を参照してください。
|
|
.Sh 自動ダイアル
|
|
自動ダイアルを行うためには、 Dial と Login のチャットスクリプトを
|
|
用意しなければなりません。定義の例は
|
|
.Pa /etc/ppp/ppp.conf.sample
|
|
を見てください (
|
|
.Pa /etc/ppp/ppp.conf
|
|
の書式は非常に簡単です)。
|
|
各行は単一のコメント、インクルード、ラベル、コマンドのいずれかを含みます。
|
|
.Bl -bullet -compact
|
|
.It
|
|
.Pq Dq #
|
|
で始まる行は、コメントとして扱われます。
|
|
コメント行と認識した場合、先行する空白は無視されます。
|
|
.It
|
|
インクルードは語
|
|
.Sq !include
|
|
から始まる行です。
|
|
一つの引数 - インクルードするファイル - を持つ必要があります。
|
|
古いバージョンの
|
|
.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
|
|
ひとたび接続が確立したなら、プロンプトの
|
|
.Sq ppp
|
|
は
|
|
.Sq PPP
|
|
に変わります:
|
|
.Bd -literal -offset indent
|
|
# ppp MyISP
|
|
...
|
|
ppp ON awfulhak> dial
|
|
dial OK!
|
|
login OK!
|
|
PPP ON awfulhak>
|
|
.Ed
|
|
.Pp
|
|
もし
|
|
.Pa /etc/ppp/ppp.linkup
|
|
が存在していれば、
|
|
.Em PPP
|
|
接続が確立された時に、その内容が実行されます。
|
|
デフォルトルート追加については。
|
|
提供されている
|
|
.Pa /etc/ppp/ppp.conf.sample
|
|
の
|
|
.Dq pmdeman
|
|
の例を参照してください。
|
|
.Dv HISADDR ,
|
|
.Dv MYADDR ,
|
|
.Dv INTERFACE
|
|
という文字列はおのおのの IP アドレスとインタフェース名を表しています。
|
|
同様に、接続が閉じられると、
|
|
.Pa /etc/ppp/ppp.linkdown
|
|
ファイルの内容が実行されます。
|
|
これらのファイルのフォーマットは
|
|
.Pa /etc/ppp/ppp.conf
|
|
と同じです。
|
|
.Sh バックグラウンドダイアル
|
|
.Nm ppp
|
|
を使って非対話的に接続を確立したい場合 (例えば
|
|
.Xr crontab 5
|
|
エントリや
|
|
.Xr at 1
|
|
ジョブから使うような場合) には、
|
|
.Fl background
|
|
オプションを使います。この場合にも
|
|
.Pa /etc/ppp/ppp.conf
|
|
で定義された接続先のラベルを指定しなければなりません。
|
|
このラベルには
|
|
.Dq set ifaddr
|
|
コマンドが含まれ、
|
|
リモートの接続先の IP アドレスを定義する必要があります。(
|
|
.Pa /etc/ppp/ppp.conf.sample
|
|
参照。)
|
|
.Fl background
|
|
が指定された場合、
|
|
.Nm
|
|
はすぐに接続を確立しようとします。
|
|
複数の電話番号が指定された場合には、各電話番号が一回づつ試されます。
|
|
これらに失敗すると、
|
|
.Nm
|
|
は即座に終了し、0 でない終了コードを返します。
|
|
接続に成功すると
|
|
.Nm
|
|
はデーモンになり、呼び出し側に終了コード 0 を返します。
|
|
デーモンは、リモートシステムが接続を終了した場合、
|
|
もしくは
|
|
.Dv TERM
|
|
シグナルを受け取った場合に、自動的に終了します。
|
|
.Sh ダイアルオンデマンド
|
|
デマンドダイアル機能は
|
|
.Fl auto
|
|
または
|
|
.Fl ddial
|
|
オプションにて有効にされます。この場合にも
|
|
.Pa /etc/ppp/ppp.conf
|
|
で定義された接続先のラベルを指定しなければなりません。
|
|
これには、リモート接続先の IP アドレスを指定するための
|
|
.Dq set ifaddr
|
|
コマンドも書かれていなければなりません (
|
|
.Pa /etc/ppp/ppp.conf.sample
|
|
を参照してください)。
|
|
.Bd -literal -offset indent
|
|
# ppp -auto pmdemand
|
|
...
|
|
#
|
|
.Ed
|
|
.Pp
|
|
.Fl auto
|
|
または
|
|
.Fl ddial
|
|
が指定された時に
|
|
.Nm
|
|
はデーモンとして動作しますが、以下のように診断ポートを
|
|
通じて設定を確認したり変更したりすることができます
|
|
(これは
|
|
.Fl background
|
|
や
|
|
.Fl direct
|
|
のモードでも可能です):
|
|
.Bd -literal -offset indent
|
|
# pppctl -v 3000 show ipcp
|
|
Password:
|
|
IPCP [Opened]
|
|
his side: xxxx
|
|
....
|
|
.Ed
|
|
.Pp
|
|
現在
|
|
.Xr telnet 1
|
|
を使用して対話的に会話することもできます。
|
|
.Pp
|
|
これを実現するために、後述のように
|
|
.Dq set server
|
|
コマンドを使用する必要があります。
|
|
.Pa /etc/ppp/ppp.secret
|
|
を設定し
|
|
.Dv USR1
|
|
シグナルを送ることにより、
|
|
過去を振り返って診断ポートにて listen するように
|
|
.Nm
|
|
プログラムを実行することが可能です。
|
|
.Fl auto
|
|
モードにて
|
|
送信パケットが検出された時、
|
|
.Nm
|
|
は (チャットスクリプトに基づいて) ダイアルを行い、
|
|
通信相手に接続しようとします。
|
|
.Fl ddial
|
|
モードでは回線がダウンしていることが確認された場合にはいつでも
|
|
ダイアルが行われます。
|
|
接続に失敗したら、デフォルトの動作では 30 秒間待ち、
|
|
別の送信パケットが検出された時に接続しようとします。
|
|
この動作は
|
|
.Bd -literal -offset indent
|
|
set redial seconds|random[.nseconds|random] [dial_attempts]
|
|
.Ed
|
|
.Pp
|
|
によって変更することができます。
|
|
.Sq seconds
|
|
は、再び接続しようとするまでの秒数です。
|
|
引数が
|
|
.Sq random
|
|
の場合には、待ち時間を 0 秒から 30 秒の間でランダムに選びます。
|
|
.Sq nseconds
|
|
は電話番号リストの中の次の番号をダイアルする前に待つ秒数です。(
|
|
.Dq set phone
|
|
コマンドを参照してください)。これのデフォルトは 3 秒です。
|
|
繰り返しますが、引数が
|
|
.Sq random
|
|
の場合には、待ち時間を 0 秒から 30 秒の間でランダムに選びます。
|
|
.Sq dial_attempts
|
|
は、受け取った個々の送信パケットに対して、何回接続を試みるのかを示す
|
|
数字です。
|
|
このパラメータが省略された場合には、以前の値がそのまま使われます。
|
|
.Sq dial_attempts
|
|
に 0 が指定された場合には、
|
|
.Nm
|
|
は接続できるまでダイアルを続けます。
|
|
.Bd -literal -offset indent
|
|
set redial 10.3 4
|
|
.Ed
|
|
.Pp
|
|
は個々の送信パケットに対して 4 回接続を試み、
|
|
番号間の待ち時間が 3 秒で、すべての番号を試した後に
|
|
10 秒待つことを表します。
|
|
複数の電話番号が指定されている場合でも、トータルのダイアル回数は
|
|
4 回のままです。 (それぞれの番号を 4 回ダイアルするのではありません)。
|
|
リンクの両端が
|
|
.Nm
|
|
のデマンドダイアルモードを利用している場合は、
|
|
ダイアル間隔を変更しておくのが良いでしょう。
|
|
もし、リンクの両端が同じタイムアウト時間に設定されていて、
|
|
リンクが切れて両方に送信待ちのパケットがあった場合、
|
|
両方が同時に相手を呼び出しあうことになってしまいます。
|
|
場所によっては、シリアルリンクに信頼性がなく、
|
|
切れるべきでない時にキャリアが失われるかもしれません。
|
|
セッションの途中で予期せずキャリアが失われた場合、
|
|
.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 のデフォルト値はゼロ (再接続しない) です。
|
|
このオプションを使用する際には注意が必要です。
|
|
もしローカル側のタイムアウトがリモート側よりもわずかに長いと、
|
|
リモート側がタイムアウトにより回線を切断した場合に、
|
|
再接続機能が (指定した回数まで) 起動されてしまいます。
|
|
注: この文脈においては、多くの LQR を喪失するとキャリア喪失を引き起こし、
|
|
ひいては再接続を引き起こします。
|
|
.Fl background
|
|
フラグが指定された場合、接続が行えるまで
|
|
すべての電話番号が最大一回ダイアルされます。
|
|
.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
|
|
を編集します。
|
|
例えば、以下のように設定すれば良いでしょう:
|
|
.Dl ttyd1 "/usr/libexec/getty std.38400" dialup on secure
|
|
.Xr getty 8
|
|
を起動するために
|
|
.Xr init 8
|
|
プロセスに
|
|
.Dv HUP
|
|
シグナルを送るのを
|
|
忘れないでください。
|
|
.Dl # kill -HUP 1
|
|
.It
|
|
接続するユーザのためのアカウントを用意します。
|
|
.Bd -literal
|
|
ppp:xxxx:66:66:PPP Login User:/home/ppp:/usr/local/bin/ppplogin
|
|
.Ed
|
|
.Pp
|
|
.It
|
|
.Pa /usr/local/bin/ppplogin
|
|
ファイルを以下のような内容で作成します:
|
|
.Bd -literal -offset indent
|
|
#!/bin/sh -p
|
|
exec /usr/sbin/ppp -direct
|
|
.Ed
|
|
.Pp
|
|
(さらに制御を行うためにラベル名を指定することもできます。)
|
|
.Pp
|
|
ダイレクトモード
|
|
.Pq Fl direct
|
|
では、
|
|
.Nm
|
|
は標準入力と標準出力を使って動作します。クライアント動作の
|
|
.Nm
|
|
と同様に、
|
|
.Xr pppctl 8
|
|
を使用するか設定済みの診断ポートに
|
|
.Xr telnet 8
|
|
することで、コマンドモードでの制御が可能です。
|
|
.It
|
|
オプションでサポートされている
|
|
Microsoft の IPCP ネームサーバと NetBIOS ネームサーバの
|
|
交渉を有効にすることが可能です。
|
|
.Dq enable msext
|
|
と
|
|
.Dq set ns pri-addr [sec-addr]
|
|
および
|
|
.Dq set nbns pri-addr [sec-addr]
|
|
を
|
|
.Pa /etc/ppp/ppp.conf
|
|
ファイルに追加します。
|
|
.El
|
|
.Pp
|
|
.Sh PPP 接続の受け入れ (方法その 2)
|
|
この方法は、モデムの接続を扱うのに
|
|
.Em mgetty+sendfax
|
|
を使用するようにすすめている点が異なります。
|
|
最近のバージョン (0.99 以降) では、
|
|
.Dq AUTO_PPP
|
|
オプションをつけてコンパイルすることで、クライアントが
|
|
ログインプロンプトに向かって
|
|
.Em PPP
|
|
を話すのを検出することができます。
|
|
手順は以下の通りです:
|
|
.Bl -enum
|
|
.It
|
|
AUTO_PPP オプションが使えるように、バージョン 0.99 か
|
|
それ以降の mgetty+sendfax を入手、設定、インストールします。
|
|
.It
|
|
モデムが接続されているポートで mgetty が起動されるように
|
|
.Pa /etc/ttys
|
|
を編集します。
|
|
例えば、以下のように設定すれば良いでしょう:
|
|
.Dl cuaa1 "/usr/local/sbin/mgetty -s 57600" dialup on
|
|
.It
|
|
接続するユーザのためのアカウントを用意します。
|
|
.Bd -literal
|
|
Pfred:xxxx:66:66:Fred's PPP:/home/ppp:/etc/ppp/ppp-dialup
|
|
.Ed
|
|
.Pp
|
|
.It
|
|
ファイル
|
|
.Pa /etc/ppp/sample.ppp-dialup ,
|
|
.Pa /etc/ppp/sample.ppp-pap-dialup ,
|
|
.Pa /etc/ppp/ppp.conf.sample
|
|
をよく読んで、要点を理解してください。以下のようにすると
|
|
.Pa /etc/ppp/ppp-pap-dialup
|
|
が
|
|
.Pa /usr/local/etc/mgetty+sendfax/login.conf
|
|
から呼び出されます。
|
|
.Dl /AutoPPP/ - - /etc/ppp/ppp-pap-dialup
|
|
.El
|
|
.Pp
|
|
.Sh 内向き接続の認証
|
|
通常、接続の受信側は相手が相手自身を認証することを要求します。
|
|
これは通常
|
|
.Xr login 1
|
|
にて行われますが、代りに PAP か CHAP を使用可能です。
|
|
2 つのうちで CHAP の方がより安全ですが、
|
|
クライアントによってはサポートしていないものがあります。
|
|
どちらを使いたいか決めたら、
|
|
.Sq enable chap
|
|
または
|
|
.Sq enable pap
|
|
を
|
|
.Pa ppp.conf
|
|
の適切なセクションに追加してください。
|
|
.Pp
|
|
その後、
|
|
.Pa /etc/ppp/ppp.secret
|
|
ファイルの設定を行う必要があります。
|
|
このファイルは、クライアントになりうるマシンごとに 1 行を含みます。
|
|
各行は 4 つまでのフィールドからなります:
|
|
.Bd -literal -offset indent
|
|
name key [hisaddr [label]]
|
|
.Ed
|
|
.Pp
|
|
.Ar name
|
|
と
|
|
.Ar key
|
|
は期待されるクライアントを指定します。
|
|
.Pa ppp.secret
|
|
の如何なる
|
|
.Ar name No / Ar key
|
|
の組み合わせにおいても適切でない返答をクライアントが与える場合、
|
|
認証は失敗します。
|
|
.Pp
|
|
認証に成功したならば、
|
|
.Pq 指定時には
|
|
.Ar hisaddr
|
|
を IP 番号交渉時に使用します。詳細は
|
|
.Dq set ifaddr
|
|
コマンドを参照してください。
|
|
.Pp
|
|
認証に成功し
|
|
.Ar label
|
|
が指定された場合、現在のシステムラベルは
|
|
.Ar label
|
|
にマッチするように修正されます。
|
|
このことはファイル
|
|
.Pa ppp.linkup
|
|
と
|
|
.Pa ppp.linkdown
|
|
の後続のパーズに影響があります。
|
|
.Sh PPP オーバ TCP (別名: トンネリング)
|
|
シリアルリンク上以外の
|
|
.Nm
|
|
の使用方法として、
|
|
ホストとポートを指定することにより、
|
|
TCP 接続を使用することが可能です:
|
|
.Dl set device ui-gate:6669
|
|
シリアルデバイスをオープンする代りに、
|
|
.Nm
|
|
は指定されたマシンの指定されたソケットへの TCP 接続をオープンします。
|
|
.Nm
|
|
は telnet プロトコルを使用しないこと、
|
|
telnet サーバと交渉できないことに注意を払うべきです。
|
|
受信マシン (ui-gate) 上に、
|
|
この ppp 接続を受信するポートを設定する必要があります。まず
|
|
.Pa /etc/services
|
|
を更新して、サービスを定義します:
|
|
.Dl ppp-in 6669/tcp # Incoming PPP connections over tcp
|
|
そして
|
|
.Pa /etc/inetd.conf
|
|
を更新して、このポートへの受信接続をどのように扱うかを
|
|
.Xr inetd 8
|
|
に指示します:
|
|
.Dl ppp-in stream tcp nowait root /usr/sbin/ppp ppp -direct ppp-in
|
|
.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 255.255.255.0 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
|
|
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 15 5
|
|
set log Phase Chat Connect Carrier hdlc LCP IPCP CCP tun
|
|
set ifaddr 10.0.4.2 10.0.4.1
|
|
add 10.0.2.0 255.255.255.0 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 のアドレスを割り当てようとしています。
|
|
接続をオープンするためには、以下をタイプするだけで良いです。
|
|
.Dl awfulhak # ppp -background ui-gate
|
|
結果として、
|
|
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 パケットのフィルタリング
|
|
この実装では、パケットのフィルタリングがサポートされています。
|
|
ifilter, ofilter, dfilter, afilter の 4 種類のフィルタがあります。
|
|
ここでは基本的なことについて書くことにします。
|
|
.Bl -bullet -compact
|
|
.It
|
|
フィルタ定義は以下のような構文になっています。
|
|
set filter-name rule-no action [src_addr/src_width] [dst_addr/dst_width]
|
|
[proto [src [lt|eq|gt] port ]] [dst [lt|eq|gt] port] [estab]
|
|
.Bl -enum
|
|
.It
|
|
.Sq filter-name
|
|
には、ifilter, ofilter, dfilter, afilter のうちのどれか一つを指定します。
|
|
.It
|
|
.Sq permit
|
|
と
|
|
.Sq deny
|
|
の二つの action があります。
|
|
もし、あるパケットが規則に一致した場合、
|
|
結びつけられた action が直ちに実行されます。
|
|
.It
|
|
.Sq src_width
|
|
と
|
|
.Sq dst_width
|
|
は、アドレスの範囲を表現するネットマスクのように働きます。
|
|
.It
|
|
.Sq proto
|
|
は icmp, udp, tcp のうちのいずれか一つです。
|
|
.It
|
|
.Sq port number
|
|
は数字で指定するか、
|
|
.Pa /etc/services
|
|
のサービス名で指定することができます。
|
|
.El
|
|
.Pp
|
|
.It
|
|
各フィルタは規則 0 から始まり、20 個までの規則をもつことができます。
|
|
規則の集合は、規則 0 が定義されていなければ、有効にはなりません。
|
|
すなわち、デフォルトでは全てが通されます。
|
|
.It
|
|
パケットにマッチする規則が無い場合は、パケットは破棄 (ブロック) されます。
|
|
.It
|
|
すべての規則を消去するには、
|
|
.Dq set filter-name -1
|
|
を使ってください。
|
|
.El
|
|
.Pp
|
|
.Pa /etc/ppp/ppp.conf.filter.example
|
|
を参照してください。
|
|
.Sh アイドルタイマ、回線品質要求タイマ、リトライタイマの設定
|
|
アイドルタイマを調べたり/設定するためには、それぞれ
|
|
.Dq show timeout
|
|
と
|
|
.Dq set timeout idle [LQR [FSM-resend]]
|
|
コマンドを使ってください:
|
|
.Bd -literal -offset indent
|
|
ppp ON awfulhak> set timeout 600
|
|
.Ed
|
|
.Pp
|
|
タイムアウト時間は秒数で指定します。デフォルト値は timeout が 180 秒
|
|
(3 分)、lprtimer が 30 秒、 retrytimer が 3 秒です。
|
|
アイドルタイマ機能を使わないようにするためには、
|
|
次のコマンドを利用してください。
|
|
.Bd -literal -offset indent
|
|
ppp ON awfulhak> set timeout 0
|
|
.Ed
|
|
.Pp
|
|
.Fl auto
|
|
モードでは、アイドルタイムアウトが発生すると
|
|
.Nm
|
|
プログラムは実行したままで
|
|
.Em PPP
|
|
セッションを終了します。別の引金となるパケットがきた時に
|
|
リンクを再び確立しようとします。
|
|
.Sh Predictor-1 および DEFLATE 圧縮
|
|
このバージョンでは、
|
|
現在の IETF ドラフトに基づき、CCP および Predictor type 1 圧縮
|
|
もしくは deflate 圧縮をサポートしています。
|
|
デフォルトの動作として、
|
|
.Nm
|
|
は、接続相手が同意
|
|
.Pq あるいは要求
|
|
した場合に、
|
|
この機能を使おうと (もしくは受け入れようと) します。
|
|
.Nm
|
|
は deflate プロトコルを優先します。
|
|
これらの機能を使用したくない時には
|
|
.Dq disable
|
|
と
|
|
.Dq deny
|
|
のコマンドを参照してください。
|
|
.Pp
|
|
.Dq disable deflate
|
|
か
|
|
.Dq deny deflate
|
|
の一方を使用することにより、
|
|
方向ごとに異ったアルゴリズムを使用することができます。
|
|
.Sh IP アドレスの制御
|
|
.Nm
|
|
は IP アドレスの交渉のために IPCP を使います。接続の両側は、自分が
|
|
使おうとするアドレスを提示し、要求された IP アドレスが受け入れ可能な
|
|
ものであれば、相手に ACK (肯定応答) を返します。
|
|
受け入れることができなければ、別の IP アドレスの使用を促すために
|
|
.Nm
|
|
は相手に NAK (否定応答) を返します。
|
|
接続の両側が受け取った要求に同意し (ACK を送っ) た時、
|
|
IPCP はオープン状態にセットされ、ネットワーク層での接続が確立されます。
|
|
IPCP の動作を制御するために、この実装はローカルとリモートの IP
|
|
アドレスを定義するための
|
|
.Dq set ifaddr
|
|
コマンドを持っています。
|
|
.Bd -literal -offset indent
|
|
set ifaddr [src_addr [dst_addr [netmask [trigger_addr]]]]
|
|
.Ed
|
|
.Pp
|
|
ここで、
|
|
.Sq src_addr
|
|
はローカル側で使おうと思っている IP アドレスで、
|
|
.Sq dst_addr
|
|
はリモート側が使用すべき IP アドレスです。
|
|
.Sq netmask
|
|
は使用すべきネットマスクです。
|
|
.Sq src_addr
|
|
と
|
|
.Sq dst_addr
|
|
のデフォルトは 0.0.0.0 であり、
|
|
.Sq netmask
|
|
のデフォルトは
|
|
.Sq src_addr
|
|
に適したマスク値です。
|
|
.Sq netmask
|
|
は小さくすることのみ可能です。便利な値は 255.255.255.255 でしょう。
|
|
誤った
|
|
.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
|
|
上の例の意味は次の通りです:
|
|
.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 アドレスを制御する
|
|
サーバとして動作しており、もう一方はその方針に従わなくてはなりません。
|
|
より柔軟な動作をさせるために、`ifaddr' 変数の IP アドレス指定を
|
|
もっと緩やかにすることが可能です:
|
|
.Pp
|
|
.Dl set ifaddr 192.244.177.38/24 192.244.177.2/20
|
|
.Pp
|
|
スラッシュ (/) に続く数字は、この IP アドレスで意味のあるビットの数を
|
|
表現しています。上の例は以下のことを示しています。
|
|
.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
|
|
コマンドを使って、ダイアルスクリプトにプロバイダの電話番号を記述します。
|
|
ダイアルやリダイアルに使用する電話番号は、
|
|
パイプ (|) またはコロン (:) で区切って
|
|
複数指定することができます。例えば、以下のようになります。
|
|
.Bd -literal -offset indent
|
|
set phone "111[|222]...[:333[|444]...]...
|
|
.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 秒以内に受信できなければ、
|
|
もう一度 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
|
|
ログ使用時には) コマンドのログは特別な方法でとられ、(
|
|
.Sq ********
|
|
とログされますので) 実際のパスワードが危険にさらされることはありません。
|
|
.Ar chat
|
|
ログ使用時には、実際のパスワードの代りに '\\P' とログされます。
|
|
.Pp
|
|
ログインスクリプトはプロバイダによって大きく違うものになるでしょう。
|
|
.It
|
|
シリアル回線と通信速度を指定するためには
|
|
.Dq set line
|
|
と
|
|
.Dq set speed
|
|
を使います。例えば以下のようになります。
|
|
.Bd -literal -offset indent
|
|
set line /dev/cuaa0
|
|
set speed 115200
|
|
.Ed
|
|
.Pp
|
|
FreeBSD では cuaa0 が一つめのシリアルポートになります。
|
|
OpenBSD で
|
|
.Nm
|
|
を実行している場合には cua00 が一つめです。
|
|
あなたのモデムが 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
|
|
ISP があなたが提示した最初の IP 番号を受け付ける場合、
|
|
第 3, 4 の引数に
|
|
.Dq 0.0.0.0
|
|
を指定してください。
|
|
これにより ISP が番号を割当てます。
|
|
(3 つめの引数は、
|
|
.Sq src_addr
|
|
に対してデフォルトのマスクよりも制約が緩いため、無視されます。)
|
|
.El
|
|
.Pp
|
|
自分の IP アドレスもプロバイダの IP アドレスも
|
|
知らない場合には、以下の例のようにするとよいでしょう。
|
|
.Bd -literal -offset indent
|
|
set ifaddr 10.10.10.10/0 10.10.11.11/0 0.0.0.0 0.0.0.0
|
|
.Ed
|
|
.Pp
|
|
.It
|
|
ほとんどの場合、プロバイダはデフォルトルータでもあるでしょう。
|
|
この場合で
|
|
.Fl auto
|
|
モード使用時には、以下の行を
|
|
.Pa /etc/ppp/ppp.conf
|
|
に追加します。
|
|
.Bd -literal -offset indent
|
|
delete ALL
|
|
add default HISADDR
|
|
.Ed
|
|
.Pp
|
|
これは、
|
|
.Nm
|
|
が使用している tun インタフェースに関連する直接ではない
|
|
ルーティングエントリを削除して、
|
|
それから 10.10.11.11 をデフォルトルートとして追加するよう
|
|
.Nm
|
|
に指示します。
|
|
.Fl auto
|
|
モードを使用していない時にはこれは必要ありません。
|
|
なぜなら、
|
|
.Nm
|
|
がすぐにダイアルして新しい IP 番号を相手と交渉できるからです。
|
|
.Pp
|
|
.Fl auto
|
|
モードを使用していないとき、もしくは動的 IP 番号を使用するときには、
|
|
次の 2 行を
|
|
.Pa /etc/ppp/ppp.linkup
|
|
ファイルに追加しておかなければなりません:
|
|
.Bd -literal -offset indent
|
|
delete ALL
|
|
add default HISADDR
|
|
.Ed
|
|
.Pp
|
|
HISADDR は「相手」の IP 番号を意味するマクロです。
|
|
使用する IP 番号に関して (IPCP を使用して) 合意
|
|
もしくは (
|
|
.Dq set ifaddr
|
|
を使用して) 設定してはじめて、使用可能です。
|
|
一旦接続が確立されると、
|
|
.Nm
|
|
は直接ではないインタフェースのルートを全て削除し、
|
|
デフォルトルートが相手の IP 番号を指すように設定します。
|
|
.Pa /etc/ppp/ppp.conf
|
|
で使ったのと同じラベルを使用してください。
|
|
.Pp
|
|
もしコマンドを対話的に入力しているのであれば、接続に成功した後で
|
|
.Bd -literal -offset indent
|
|
add default HISADDR
|
|
.Ed
|
|
.Pp
|
|
とタイプするだけで充分です。
|
|
.It
|
|
プロバイダが PAP/CHAP による認証を要求している場合は、
|
|
.Pa /etc/ppp/ppp.conf
|
|
ファイルに以下の行を追加してください:
|
|
.Bd -literal -offset indent
|
|
set authname MyName
|
|
set authkey MyPassword
|
|
.Ed
|
|
.Pp
|
|
デフォルトではどちらも受け付けられますので、ISP が何を要求しても大丈夫です。
|
|
.El
|
|
.Pp
|
|
現実の例を見たい場合には、
|
|
.Pa /etc/ppp/ppp.conf.sample
|
|
と
|
|
.Pa /etc/ppp/ppp.linkup.sample
|
|
を参照してください。
|
|
ラベル pmdemand は、ほとんどのプロバイダで使用できるでしょう。
|
|
.Sh ログ機能
|
|
.Nm
|
|
は以下のログ情報を、
|
|
.Xr syslog 3
|
|
経由で、もしくはスクリーンに出力することができます:
|
|
.Bl -column SMMMMMM -offset indent
|
|
.It Li Async 非同期レベルパケットの 16 進ダンプ
|
|
.It Li Carrier 'CARRIER' まで含めたチャットログの生成
|
|
.It Li CCP CCP パケットトレースの生成
|
|
.It Li Chat チャットスクリプトのトレースログの生成
|
|
.It Li Command コマンド実行のログ
|
|
.It Li Connect 完全なチャットログの生成
|
|
.It Li Debug (非常に長い)デバッグ情報のログ
|
|
.It Li HDLC HDLC パケットの 16 進ダンプ
|
|
.It Li ID0 ユーザ ID 0 で実行された全関数呼び出しを詳細に記録
|
|
.It Li IPCP IPCP パケットトレースの生成
|
|
.It Li LCP LCP パケットトレースの生成
|
|
.It Li Link アドレスの割当およびリンクの確立、解放イベントのログ
|
|
.It Li LQM LQR レポートの生成
|
|
.It Li Phase フェイズ遷移ログの出力
|
|
.It Li TCP/IP 全 TCP/IP パケットのダンプ
|
|
.It Li TUN ログの各行に tun デバイスを含めます
|
|
.It Li Warning 端末デバイスへの出力。端末が存在しない場合は、LOG_WARNING を使用してファイルに送ります。
|
|
.It Li Error 端末デバイスとログファイルへの出力で、LOG_ERROR を使用します。
|
|
.It Li Alert ログファイルへの出力で、LOG_ALERT を使用します。
|
|
.El
|
|
.Pp
|
|
.Dq set log
|
|
コマンドで、ログの出力レベルを設定することができます。
|
|
また、複数のレベルを単一コマンドラインにて指定することも可能です。
|
|
デフォルトは、
|
|
.Dq set log Carrier Link Phase
|
|
です。
|
|
.Pp
|
|
スクリーンに直接ログを表示することも可能です。
|
|
文法は同じで、語
|
|
.Dq local
|
|
が
|
|
.Dq set log
|
|
の直後に付くことだけが違います。
|
|
デフォルトは
|
|
.Dq set log local
|
|
(つまり、直接スクリーンにログ表示) です。
|
|
.Pp
|
|
.Dq set log Op local
|
|
への最初の引数が '+' か '-' の文字で始まる場合、
|
|
現在のログレベルを消去せずに修正します。例えば:
|
|
.Bd -literal -offset indent
|
|
PPP ON awfulhak> set log carrier link phase
|
|
PPP ON awfulhak> show log
|
|
Log: Carrier Link Phase Warning Error Alert
|
|
Local: Warning Error Alert
|
|
PPP ON awfulhak> set log -link +tcp/ip -warning
|
|
PPP ON awfulhak> set log local +command
|
|
PPP ON awfulhak> show log
|
|
Log: Carrier 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 20
|
|
.It INT
|
|
このシグナルを受信すると、現在の接続がもしあればそれを終了します。
|
|
.Fl auto
|
|
もしくは
|
|
.Fl ddial
|
|
のモードではない場合、
|
|
.Nm
|
|
は終了します。
|
|
.It HUP, TERM, QUIT
|
|
.Nm
|
|
を終了させます。
|
|
.It USR1
|
|
対話モードではない場合、
|
|
.Nm
|
|
にサーバソケットが存在する場合にはそれらをクローズさせ、
|
|
3000 + トンネルデバイス番号のインターネットソケットを
|
|
オープンさせます。
|
|
これは、適切なローカルパスワードが
|
|
.Pa /etc/ppp/ppp.secret
|
|
に指定されている場合にのみ行われます。
|
|
.It USR2
|
|
.Nm
|
|
に全サーバソケットをクローズさせます。
|
|
.El
|
|
.Pp
|
|
.Sh PPP コマンドリスト
|
|
この節では利用可能コマンドとその効果をリストします。
|
|
.Nm ppp
|
|
セッションで対話的に使用することも、
|
|
設定ファイルで指定することも、
|
|
.Xr pppctl 8
|
|
もしくは
|
|
.Xr telnet 1
|
|
セッションで指定することも可能です。
|
|
.Bl -tag -width 20
|
|
.It accept|deny|enable|disable option....
|
|
これらのディレクティブは
|
|
最初の接続においてどのように相手と交渉するかを
|
|
.Nm
|
|
に指示します。各
|
|
.Dq option
|
|
は、accept/deny および enable/disable のデフォルトを持ちます。
|
|
.Dq accept
|
|
は相手がこのオプションを要求したら、ACK を送ることを意味します。
|
|
.Dq deny
|
|
は相手がこのオプションを要求したら、NACK を送ることを意味します。
|
|
.Dq enable
|
|
はこのオプションを当方が要求することを意味します。
|
|
.Dq disable
|
|
はこのオプションを当方が要求しないことを意味します。
|
|
.Pp
|
|
.Dq option
|
|
は以下のいずれかです:
|
|
.Bl -tag -width 20
|
|
.It acfcomp
|
|
デフォルト: enable かつ accept。
|
|
ACFComp はアドレスおよびコントロールフィールド圧縮
|
|
(Address and Control Field Compression) を意味します。
|
|
LCP パケット以外は非常に良く似たフィールトを持ちますので、
|
|
簡単に圧縮可能です。
|
|
.It chap
|
|
デフォルト: 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" を使用するものがあります。
|
|
詳細については
|
|
.Dq set encrypt
|
|
コマンドの記述を参照してください。
|
|
.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 Magnalink Variable Resource Compression
|
|
と指定されています!
|
|
.Nm
|
|
は
|
|
.Nm pppd
|
|
と交渉する能力がありますが、
|
|
.Dq pppd-deflate
|
|
が
|
|
.Ar enable
|
|
かつ
|
|
.Ar accept
|
|
されている場合のみです。
|
|
.It lqr
|
|
デフォルト: disable かつ accept。
|
|
このオプションはリンク品質要求 (Link Quality Request) を送信するかどうかを
|
|
決定します。
|
|
LQR は、モデムのキャリア検出を使用せずに、リンクダウンを
|
|
.Nm
|
|
に決定させるプロトコルです。
|
|
.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
|
|
オプションを参照)。
|
|
.Pp
|
|
クライアントとして PAP を使用する場合、
|
|
.Dq AuthName
|
|
と
|
|
.Dq AuthKey
|
|
を
|
|
.Pa /etc/ppp/ppp.conf
|
|
に指定するだけで良いです。
|
|
PAP はデフォルトで accept されます。
|
|
.It pppd-deflate
|
|
デフォルト: disable かつ deny。
|
|
.Ar deflate
|
|
オプションのバリエーションで、
|
|
.Xr pppd 8
|
|
プログラムとの交渉を許可します。
|
|
詳細は、上述の
|
|
.Ar deflate
|
|
部分を参照してください。デフォルトでは抑止されますので、
|
|
.Pa rfc1975
|
|
に従っていないことになります。
|
|
.It pred1
|
|
デフォルト: enable かつ accept。
|
|
このオプションは圧縮制御プロトコル (Compression Control Protocol; CCP) に
|
|
Predictor 1 圧縮を使用するかどうかを決定します。
|
|
.It protocomp
|
|
デフォルト: enable かつ accept。
|
|
このオプションは PFC (プロトコルフィールド圧縮)
|
|
の交渉を行うために使用されます。
|
|
この機構により、
|
|
プロトコルフィールドが 2 オクテッドから 1 オクテッドに減ります。
|
|
.It vjcomp
|
|
デフォルト: enable かつ accept。
|
|
このオプションは Van Jacobson ヘッダ圧縮を使用するかどうかを決定します。
|
|
.El
|
|
.Pp
|
|
以下のオプションは、実際には相手と交渉しません。
|
|
それゆえ accept および deny は意味を持ちません。
|
|
.Bl -tag -width 20
|
|
.It msext
|
|
デフォルト: disable。
|
|
このオプションは Microsoft の
|
|
.Em PPP
|
|
拡張の使用を許可します。
|
|
これにより、DNS と NetBIOS NS の交渉をサポートします。
|
|
このオプションを有効にすることにより、"set ns" と "set nbns" で
|
|
与えられる値を渡せるようになります。
|
|
.It passwdauth
|
|
デフォルト: disable。
|
|
このオプションを指定することにより、
|
|
PAP 認証コードが呼び出し側を認証する時に、
|
|
.Pa /etc/ppp/ppp.secret
|
|
ファイルではなくパスワードファイル (
|
|
.Xr passwd 5
|
|
参照) を使用させます。
|
|
.It proxy
|
|
デフォルト: disable。
|
|
このオプションを指定することにより、
|
|
.Nm
|
|
に相手のためにプロクシ ARP をさせます。
|
|
.It throughput
|
|
デフォルト: disable。
|
|
このオプションを有効にすると、
|
|
.Nm
|
|
はスループット統計を収集します。
|
|
ずれ動く 5 秒間のウィンドウにおいて入出力が検査され、
|
|
現在、最良、総計の数値が保持されます。
|
|
このデータは関連する
|
|
.Em PPP
|
|
層が終了するときに出力され、また
|
|
.Dq show
|
|
コマンドで表示することで得られます。スループット統計は
|
|
.Dq IPCP
|
|
と
|
|
.Dq modem
|
|
のレベルで利用可能です。
|
|
.It utmp
|
|
デフォルト: enable。
|
|
通常ユーザが PAP もしくは CHAP で認証された時で、
|
|
.Nm
|
|
が
|
|
.Fl direct
|
|
モードで実行されている時は、このユーザのエントリが
|
|
utmp ファイルおよび wtmp ファイルに作成されます。
|
|
このオプションを disable すると、
|
|
.Nm
|
|
は utmp および wtmp のエントリを作成しません。
|
|
通常、
|
|
ユーザがログインしかつ認証することを要求する場合のみ必要です。
|
|
.El
|
|
.It add[!] dest mask gateway
|
|
.Ar dest
|
|
は宛先 IP アドレスであり、
|
|
.Ar mask
|
|
はそのマスクです。
|
|
.Ar 0 0
|
|
はデフォルトルートを意味します。
|
|
.Ar dest
|
|
および
|
|
.Ar mask
|
|
の引数の場所で、シンボル名
|
|
.Sq default
|
|
を使用可能です。
|
|
.Ar gateway
|
|
は、
|
|
.Ar dest
|
|
マシン/ネットワークに至る、次のホップのゲートウェイです。
|
|
宛先にシンボル名
|
|
.Sq MYADDR
|
|
と
|
|
.Sq HISADDR
|
|
を使用可能であり、
|
|
.Ar gateway
|
|
には
|
|
.Sq HISADDR
|
|
もしくは
|
|
.Sq INTERFACE
|
|
を使用可能です。
|
|
.Sq MYADDR
|
|
はインタフェースアドレスに置き換えられ、
|
|
.Sq HISADDR
|
|
はインタフェースの宛先アドレスに置き換えられ、
|
|
.Sq INTERFACE
|
|
は現在のインタフェース名に置き換えられます。
|
|
インタフェースの宛先アドレスが (
|
|
.Dq set ifaddr
|
|
によって) 割当てられていない場合、現在の
|
|
.Sq INTERFACE
|
|
が
|
|
.Sq HISADDR
|
|
の代りに使用されます。
|
|
.Pp
|
|
このコマンドを
|
|
.Pa ppp.conf
|
|
ファイルで使用するときの制限についての詳細は、後述の
|
|
.Dq set ifaddr
|
|
コマンドを参照してください。
|
|
.Pp
|
|
.Ar add!
|
|
コマンド (
|
|
.Dq \&!
|
|
に注意) 使用時には、
|
|
ルートが存在する場合には
|
|
.Sq route change
|
|
コマンド (詳細は
|
|
.Xr route 8
|
|
参照) にてルートを更新します。
|
|
.It allow .....
|
|
このコマンドは
|
|
.Nm
|
|
と設定ファイルへのアクセスを制御します。
|
|
ユーザレベルでのアクセスは可能であり、
|
|
設定ファイルのラベルと
|
|
.Nm
|
|
の実行モードに依存します。
|
|
例えば、ユーザ
|
|
.Sq fred
|
|
のみがラベル
|
|
.Sq fredlabel
|
|
に
|
|
.Fl background
|
|
モードでアクセスできるように、
|
|
.Nm
|
|
を構成したいかもしれません。
|
|
.Pp
|
|
ユーザ ID 0 はこれらのコマンドの対象外です。
|
|
.Bl -tag -width 20
|
|
.It allow user|users logname...
|
|
デフォルトでは、ユーザ ID 0 のみがアクセスを許されています。
|
|
このコマンドが指定されると、
|
|
.Dq allow users
|
|
が記載されている個所に列挙されているユーザのアクセスが可能となります。
|
|
.Sq default
|
|
セクションは
|
|
常に最初にチェックされます (スタートアップ時に常にロードされる唯一の
|
|
セクションです)。後続する
|
|
.Dq allow users
|
|
コマンドは、先行するコマンドに優先します。
|
|
あるラベル以外のすべてにアクセスを許すことが可能であり、
|
|
そのためにはデフォルトユーザを
|
|
.Sq default
|
|
セクションで指定し、新しいユーザリストをこのあるラベルに指定します。
|
|
.Pp
|
|
ユーザ
|
|
.Sq *
|
|
が指定されると、全ユーザにアクセスが許されます。
|
|
.It allow mode|modes modelist...
|
|
デフォルトでは全
|
|
.Nm
|
|
モードが使用可能です。
|
|
このコマンドが使用されると、
|
|
このコマンドが指定されたラベルのロードに許されるアクセスモードが制限されます。
|
|
.Dq allow users
|
|
コマンドと同様、
|
|
各
|
|
.Dq allow modes
|
|
コマンドは先行するコマンドに優先し、
|
|
.Sq default
|
|
セクションは常に最初にチェックされます。
|
|
.Pp
|
|
使用可能なモードは以下の通りです:
|
|
.Sq interactive ,
|
|
.Sq auto ,
|
|
.Sq direct ,
|
|
.Sq dedicated ,
|
|
.Sq ddial ,
|
|
.Sq background ,
|
|
.Sq * .
|
|
.El
|
|
.Pp
|
|
.It alias .....
|
|
このコマンドは
|
|
.Nm
|
|
組込みのエイリアシング (マスカレーディング) 機能を
|
|
制御するために使用します。
|
|
このコードが必要となるまで、
|
|
.Nm
|
|
はこのコードをロードしません。
|
|
エイリアスライブラリがあなたのシステムにインストールされないことも
|
|
大いにありえます
|
|
(エイリアスライブラリがセキュリティ的に危険だと認識する管理者もいます)。
|
|
あなたのシステムでエイリアシングが有効になると、
|
|
以下のコマンドが使用可能となります:
|
|
.Bl -tag -width 20
|
|
.It alias enable [yes|no]
|
|
エイリアシングを有効もしくは無効にします。
|
|
.Fl alias
|
|
コマンドラインフラグは
|
|
.Dq alias enable yes
|
|
と同じ意味です。
|
|
.It alias port [proto targetIP:targetPORT [aliasIP:]aliasPORT]
|
|
このコマンドにより、
|
|
マシン [aliasIP] の
|
|
.Dq aliasPORT
|
|
へ到着する接続を、
|
|
.Dq targetIP
|
|
の
|
|
.Dq targetPORT
|
|
へリダイレクトします。
|
|
proto を指定した場合、指定したプロトコルの接続のみマッチします。
|
|
あなたのゲートウェイの後のマシンでインターネット電話等を実行したい場合に、
|
|
このオプションは有用です。
|
|
.It alias addr [addr_local addr_alias]
|
|
このコマンドにより、
|
|
.Dq addr_alias
|
|
へのデータを
|
|
.Dq addr_local
|
|
へリダイレクトします。
|
|
あなたのゲートウェイの後で
|
|
少数の実 IP アドレスを持ち、
|
|
これらをあなたのゲートウェイの後の特定のマシンにマップしたい場合に有用です。
|
|
.It alias deny_incoming [yes|no]
|
|
yes に設定した場合、ファイアウォールがパケットを落すのと同様に、
|
|
全ての入力の接続を拒否します。
|
|
.It alias log [yes|no]
|
|
このオプションを指定することにより、
|
|
種々のエイリアシングの統計と情報を、ファイル
|
|
.Pa /var/log/alias.log
|
|
にログします。
|
|
.It alias same_ports [yes|no]
|
|
有効になると、
|
|
エイリアスライブラリが出力パケットのポート番号を変更しようとすることを
|
|
止めさせます。
|
|
RPC や LPD といった、
|
|
ウェルノウンポート (well known port) からの接続を要求する
|
|
プロトコルをサポートするのに有用です。
|
|
.It alias use_sockets [yes|no]
|
|
有効になると、
|
|
エイリアスライブラリにソケットを作成させ、
|
|
正しい ftp データ入力や IRC 接続を保証できるようになります。
|
|
.It alias unregistered_only [yes|no]
|
|
出力パケットを、登録されていない送信元アドレスに変更することだけを行います。
|
|
RFC1918 に依ると、登録されていない送信元アドレスは
|
|
10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 です。
|
|
.It alias help|?
|
|
このコマンドにより、
|
|
使用可能なエイリアスコマンドのまとめを表示します。
|
|
.El
|
|
.Pp
|
|
.It [!]bg command
|
|
指定したコマンドをバックグラウンドで実行します。
|
|
擬似引数
|
|
.Dv HISADDR ,
|
|
.Dv INTERFACE ,
|
|
.Dv MYADDR
|
|
は適切な値に置き換えられます。
|
|
コマンド実行中に
|
|
.Nm
|
|
を停止させたい場合は、
|
|
.Dv shell
|
|
コマンドを使用してください。
|
|
.It close
|
|
現在の接続をクローズします (が終了しません)。
|
|
.It delete[!] dest
|
|
このコマンドは指定した
|
|
.Ar dest
|
|
IP アドレスのルートを削除します。
|
|
.Ar dest
|
|
に
|
|
.Sq ALL
|
|
が指定された場合、
|
|
.Nm
|
|
が使用中のインタフェースの非直接エントリが全て削除されます。
|
|
tunX のエントリで実際のリンク以外を削除することを意味します。
|
|
.Ar dest
|
|
に
|
|
.Sq default
|
|
が指定された場合、デフォルトルートが削除されます。
|
|
.Pp
|
|
.Ar delete!
|
|
コマンドが使用された場合 (最後の
|
|
.Dq \&!
|
|
に注意)、存在しないルートについて
|
|
.Nm
|
|
は文句を言わなくなります.
|
|
.It dial|call [remote]
|
|
.Dq remote
|
|
が指定されている場合、
|
|
.Dq remote
|
|
システムへの接続が
|
|
.Dq dial
|
|
および
|
|
.Dq login
|
|
スクリプトを使用して確立されます。
|
|
そうでない場合、現在の設定が使用されて接続が確立されます。
|
|
.It display
|
|
上述
|
|
.Dq accept|deny|enable|disable option....
|
|
で指定された、交渉可能な値の現在の状態を表示します。
|
|
.It down
|
|
リンクを切断しますが、
|
|
綺麗な方法ではなく、物理層が使用不能になったように見えます。
|
|
このコマンドを使用することは丁寧ではないとされています。
|
|
.It help|? [command]
|
|
利用可能なコマンドをリストします。
|
|
.Dq command
|
|
を指定した場合、このコマンドの使用方法を表示します。
|
|
.It load [remote]
|
|
指定された
|
|
.Dq remote
|
|
ラベルをロードします。
|
|
.Dq remote
|
|
が指定されない場合、
|
|
.Dq default
|
|
ラベルが仮定されます。
|
|
.It passwd pass
|
|
全ての
|
|
.Nm
|
|
コマンドセットにアクセスするために要求されるパスワードを指定します。
|
|
このパスワードは診断ポート (
|
|
.Dq set server
|
|
コマンド参照) に接続するときに必要です。
|
|
.Ar pass
|
|
の指定は、
|
|
.Dq set server
|
|
コマンドラインもしくは
|
|
ローカルホストの
|
|
.Pa /var/log/ppp.secret
|
|
エントリにて可能です。
|
|
.Ar command
|
|
ログが有効でも、値
|
|
.Ar pass
|
|
はログされず、文字列
|
|
.Dq ********
|
|
がログされます。
|
|
.It quit|bye [all]
|
|
.Nm
|
|
を終了します。
|
|
.Nm
|
|
が対話モードであるか
|
|
.Dq all
|
|
引数が指定された場合、
|
|
.Nm
|
|
は終了し、接続をクローズします。
|
|
単に
|
|
.Dq quit
|
|
を
|
|
.Xr pppctl 8
|
|
もしくは
|
|
.Xr telnet 1
|
|
のセッションから発行しても、現在の接続をクローズしません。
|
|
.It save
|
|
このオプションは (まだ) 実装されていません。
|
|
.It set[up] var value
|
|
このオプションは以下の変数の設定のために使用します:
|
|
.Bl -tag -width 20
|
|
.It set accmap hex-value
|
|
ACCMap は非同期制御文字マップ (Asyncronous Control Character Map) を
|
|
意味します。
|
|
これはいつも相手と交渉され、デフォルト値は 0x00000000 です。
|
|
このプロトコルが必要なのは、
|
|
(XON/XOFF などの) 特定の文字を終点間で受渡すことに依存するハードウェアを
|
|
使用する場合です。
|
|
.It set filter-name rule-no action [src_addr/src_width]
|
|
[dst_addr/dst_width] [proto [src [lt|eq|gt] port ]]
|
|
[dst [lt|eq|gt] port] [estab]
|
|
.Pp
|
|
.Nm ppp
|
|
は 4 つのフィルタセットをサポートします。
|
|
afilter は接続を維持 - アイドルタイマをリセット -
|
|
するためのパケットを指定します。
|
|
dfilter は
|
|
.Fl auto
|
|
モードにおいて
|
|
.Nm
|
|
にリダイアルさせるパケットを指定します。
|
|
ifilter はマシンに入力可能なパケットを指定します。
|
|
ofilter はマシンから出力可能なパケットを指定します。
|
|
デフォルトでは全てのフィルタが全パケットを通過させる値に設定されます。
|
|
ルールは
|
|
.Dq n
|
|
に従って順番に処理されます。
|
|
各セットに対し 20 までのルールを指定可能です。
|
|
指定されるセットにおけるどのルールにもマッチしないパケットは破棄されます。
|
|
ifilter と ofilter では、パケットをドロップすることを意味します。
|
|
afilter では、アイドルタイマをリセットしないことを意味します。
|
|
dfilter ではダイアルさせることにはならないことを意味します。
|
|
上述のパケットのフィルタリングの節を参照してください。
|
|
.It set authkey|key value
|
|
クライアントモードでの PAP または CHAP の交渉で使用される
|
|
認証キー (もしくはパスワード) を、指定した値に設定します。
|
|
ダイアルもしくはログインスクリプトの '\\P' シーケンス
|
|
で使用されるパスワードを指定しますが、
|
|
実際のパスワードがログされることを防ぎます。
|
|
.Ar command
|
|
ログが有効な場合、セキュリティの観点から、
|
|
.Ar value
|
|
は
|
|
.Ar ********
|
|
としてログされます。
|
|
.It set authname id
|
|
クライアントモードでの PAP または CHAP の交渉で使用される
|
|
認証 ID を設定します。
|
|
.It set ctsrts
|
|
ハードウェアフロー制御をセットします。
|
|
これがデフォルトです。
|
|
.It set device|line value[,value...]
|
|
.Nm
|
|
が使用するデバイスを指定する
|
|
.Dq value
|
|
に設定します。
|
|
全シリアルデバイス名は
|
|
.Pa /dev/
|
|
から始まることが仮定されています。
|
|
.Dq value
|
|
が
|
|
.Pa /dev/
|
|
から始まらない場合、
|
|
.Dq host:port
|
|
の形式である必要があります。
|
|
この場合、
|
|
.Nm
|
|
指定された
|
|
.Dq host
|
|
の指定された
|
|
.Dq port
|
|
と接続しようとします。
|
|
詳細は上述の
|
|
.Em PPP オーバ TCP
|
|
の節を参照してください。
|
|
複数の
|
|
.Dq value
|
|
を指定した場合、
|
|
.Nm
|
|
は全デバイスについて実行し終るまで、順番にオープンを試みます。
|
|
.It set dial chat-script
|
|
相手へダイアルする際に使用されるチャットスクリプトを指定します。
|
|
後述の
|
|
.Dq set login
|
|
コマンドも参照してください。
|
|
チャットスクリプトのフォーマットの詳細については、
|
|
.Xr chat 8
|
|
と設定ファイルの例を参照してください。
|
|
以下の特殊な
|
|
.Sq value
|
|
をチャットスクリプトに指定可能です:
|
|
.Bd -literal -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
|
|
が対話モードで実行している場合、ファイルデスクリプタは
|
|
.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
|
|
.It set hangup chat-script
|
|
モデムをクローズする前にこれをリセットする時に使用する、
|
|
チャットスクリプトを指定します。
|
|
.It set encrypt MSChap|MD5
|
|
CHAP チャレンジを発行するときに要求および使用する
|
|
暗号化アルゴリズムを指定します。
|
|
MSChap に設定すると、
|
|
.Nm
|
|
は CHAP チャレンジ送信時 (CHAP が enable されていると仮定しています)
|
|
に Microsoft RAS のように振舞います。
|
|
チャレンジへの応答時には、
|
|
.Nm
|
|
チャレンジに基いてどのように暗号化するかを決定しますので、
|
|
この設定は無視されます。
|
|
.Bl -tag -width 注:
|
|
.It 注:
|
|
Microsoft の暗号化アルゴリズムは MD4 と DES の組み合わせを使用しますので、
|
|
.Nm
|
|
構築前にマシンに DES 暗号化ソフトウェアをインストールしていないと、
|
|
このオプションは使用できません - この場合 MD5 のみ使用されます。
|
|
.El
|
|
.Pp
|
|
.It set escape value...
|
|
このオプションは上述の
|
|
.Dq set accmap
|
|
オプションに似ています。
|
|
リンクを経由する時に「エスケープ」される文字を指定するために使用します。
|
|
.It set ifaddr [myaddr [hisaddr [netmask [triggeraddr]]]]
|
|
このコマンドは、IPCP 交渉の間使用される IP アドレスを指定します。
|
|
アドレスのフォーマットは以下の通りです。
|
|
.Dl a.b.c.d/n
|
|
a.b.c.d は IP アドレスであり、
|
|
n はこのうち何ビットが有効であるかを示します。
|
|
もし /n ビットが省略された場合、デフォルトの /32 になります。
|
|
ただし IP アドレスが 0.0.0.0 である場合には、マスクのデフォルトは /0 です。
|
|
.Pp
|
|
.Ar hisaddr
|
|
に IP 番号の範囲として
|
|
.Dl a.b.c.d[-d.e.f.g][,h.i.j.k[-l,m,n,o]]...
|
|
のフォーマットを指定できます。例えば:
|
|
.Dl set ifaddr 10.0.0.1 10.0.1.2-10.0.1.10,10.0.1.20
|
|
は
|
|
.Ar 10.0.0.1
|
|
のみをローカル IP 番号として交渉しますが、指定された 10 個の IP 番号から
|
|
相手に割り当てを行います。
|
|
相手がこれらの番号のうちの一つを要求し、この番号が未使用な場合には、
|
|
.Nm
|
|
は相手の要求を認めます。
|
|
相手がリンクを再確立して前回割当てていた IP 番号を使用したい場合に有用です。
|
|
相手が要求した IP 番号が範囲外もしくは使用中の場合、
|
|
.Nm
|
|
はまず範囲内の未使用 IP 番号をランダムに指示します。
|
|
相手がこれに賛成しないと、
|
|
番号が選択されるか過多の IPCP 構成要求が送出されるまで、
|
|
.Nm
|
|
は次の番号を指示します。
|
|
.Pp
|
|
.Ar triggeraddr
|
|
が指定された場合、この値が
|
|
.Ar myaddr
|
|
の代りに IPCP 交渉で使用されます。
|
|
ただし、
|
|
.Ar myaddr
|
|
の範囲のアドレスのみ受け入れられます。
|
|
.Pp
|
|
.Fl auto
|
|
モードでは設定ファイルの
|
|
.Dq set ifaddr
|
|
行を読んだ直後に
|
|
.Nm
|
|
がインタフェースを構成することに注意してください。
|
|
他のモードではこれらの値は IPCP 交渉で使用され、
|
|
IPCP 層がアップするまでこれらのインタフェースは構成されません。
|
|
結果として、
|
|
.Fl auto
|
|
モードでない限り、
|
|
.Dq add
|
|
コマンドを
|
|
.Pa ppp.conf
|
|
で使用することは不可能
|
|
.Pq か、少くとも賢くない
|
|
です (代りに
|
|
.Pa ppp.linkup
|
|
ファイルが使用されます)。
|
|
.Dq allow mode auto
|
|
を使用して、現在のプロファイルを
|
|
.Fl auto
|
|
モードのみに限定してください。
|
|
.Pp
|
|
また、一旦クライアントが自己を認証した後では、
|
|
.Ar hisaddr
|
|
引数は
|
|
.Pa ppp.secret
|
|
ファイルによって優先されることに注意してください。詳細は
|
|
.Em 内向き接続の認証
|
|
の節を参照してください。
|
|
.It set loopback on|off
|
|
.Ar on
|
|
に設定された場合 (デフォルトです)、
|
|
宛先アドレスが
|
|
.Em PPP
|
|
インタフェースのアドレスと同一の送出パケットを、
|
|
.Nm
|
|
は自動的にループバックさせます。
|
|
.Ar off
|
|
に設定された場合、
|
|
.Nm
|
|
はパケットを送信します。
|
|
この場合おそらく相手方で ICMP リダイレクトが発生します。
|
|
.It set log [local] [+|-]value...
|
|
このコマンドにより現在のログレベルを修正できます。
|
|
詳細はログ機能の節を参照してください。
|
|
.It set login chat-script
|
|
この
|
|
.Ar chat-script
|
|
はダイアルスクリプトを補います。
|
|
もし両方が指定された場合、ダイアルスクリプトの後で、
|
|
ログインスクリプトが実行されます。
|
|
ダイアルスクリプト中で使用可能なエスケープシーケンスはここでも使用可能です。
|
|
.It set mru value
|
|
デフォルトの MRU は 1500 です。
|
|
この値を増加させた場合、相手は MTU を増加させても *かまいません*。
|
|
デフォルトの MRU より減らすことは意味がありません。
|
|
なぜなら、
|
|
.Em PPP
|
|
プロトコルでは少なくとも 1500 オクテッドのパケットを
|
|
受信できなければ *ならない* からです。
|
|
.It set mtu value
|
|
デフォルトの MTU は 1500 です。
|
|
相手が指定した MRU によって増加させることができます。
|
|
MTU はこのオプションによってのみ減らすことが可能です。
|
|
この値を増加させることは無効です。
|
|
なぜなら、相手は大きくなったパケットを受信できる保証が無いからです。
|
|
.It set ns x.x.x.x y.y.y.y
|
|
このオプションは交渉される Microsoft DNS サーバを設定します。
|
|
.It set nbns x.x.x.x y.y.y.y
|
|
このオプションは交渉される Microsoft NetBIOS DNS サーバを設定します。
|
|
.It set openmode active|passive Op 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 telno[|telno]...[:telno[|telno]...]...
|
|
ダイアルおよびログインのチャットスクリプトで使用される \\\\T 文字列が
|
|
置き換えられる電話番号を指定できます。
|
|
複数の電話番号をパイプ (|) もしくはコロン (:) で区切って指定可能です。
|
|
パイプの後の番号がダイアルされるのは、
|
|
直前の番号へのダイアルもしくはログインのスクリプトが失敗した場合のみです。
|
|
ラインの切断の理由にかかわらず、
|
|
コロンで区切られた番号は順番に試行されます。
|
|
複数の番号を指定した場合、接続が確立するまで
|
|
.Nm
|
|
はこのルールに基いてダイアルします。
|
|
再試行の最大値は、後述の
|
|
.Dq set redial
|
|
で指定します。
|
|
.Fl background
|
|
モードでは各番号は最大 1 回試行されます。
|
|
.It set reconnect timeout ntries
|
|
(CD の喪失もしくは LQR の失敗により) 予想外のライン切断となった場合、
|
|
指定した
|
|
.Ar timeout
|
|
の後に接続が再確立されます。
|
|
ラインは最大
|
|
.Ar ntries
|
|
回、再接続されます。
|
|
.Ar ntries
|
|
のデフォルトは 0 です。
|
|
.Ar timeout
|
|
に
|
|
.Ar random
|
|
を指定すると、0 から 30 秒の間の任意時間の停止となります。
|
|
.It set redial seconds[.nseconds] [attempts]
|
|
.Nm ppp
|
|
に
|
|
.Ar attempts
|
|
回のリダイアルを指示できます。
|
|
1 より大きな数を指定した場合 (上述の
|
|
.Ar set phone
|
|
参照)、
|
|
各番号にダイアルする前に、
|
|
.Ar nseconds
|
|
だけ停止します。
|
|
最初の番号にダイアル開始する前に
|
|
.Ar seconds
|
|
だけ停止します。
|
|
.Dq random
|
|
もここで使用できます。
|
|
.It set stopped [LCPseconds [IPCPseconds [CCPseconds]]]
|
|
このオプションが指定されると、
|
|
指定した有限状態機械が停止状態になってから
|
|
.Dq seconds
|
|
で指定した秒数だけ停止したのち、
|
|
.Nm
|
|
はタイムアウトします。
|
|
このオプションは、
|
|
.Nm
|
|
が停止状態になったことにより返事をしないといった状態を見る場合と、
|
|
.Dq set openmode passive
|
|
を使用した場合に相手が指定時間内に Configure Request を送らないことを
|
|
タイムアウト検出する場合には、便利かもしれません。
|
|
.Dq set log +lcp +ipcp +ccp
|
|
を使用すると、
|
|
.Nm
|
|
は全状態遷移をログします。
|
|
.Pp
|
|
デフォルト値は 0 であり、
|
|
停止状態による
|
|
.Nm
|
|
のタイムアウトは発生しません。
|
|
.Pp
|
|
この値は openmode の遅延 (上述の
|
|
.Dq set openmode
|
|
参照) より小さくなってはなりません。
|
|
.It set server|socket TcpPort|LocalName|none [password] [mask]
|
|
このコマンドは
|
|
.Nm
|
|
に指定したポートもしくは
|
|
.Sq 診断ポート
|
|
にてコマンド接続の入力を listen するように指示します。
|
|
これは
|
|
.Nm
|
|
が対話モードの時には出来ません。
|
|
語
|
|
.Ar none
|
|
は
|
|
.Nm
|
|
に既に存在するソケットをクローズさせます。
|
|
UNIX ドメインソケットを指定したい場合、
|
|
.Ar LocalName
|
|
に絶対ファイル名を指定します。そうしないと、TCP ポートの名前もしくは番号
|
|
であると解釈されます。
|
|
UNIX ドメインソケットに使用される 8 進 umask を指定可能です。
|
|
.Sq 0
|
|
から始まる 4 桁 8 進数で指定します。
|
|
umask の詳細については
|
|
.Xr umask 2
|
|
を参照してください。TCP ポート名がどのように変換されるかについては
|
|
.Xr services 5
|
|
を参照してください。
|
|
.Pp
|
|
このソケットにクライアントが接続するときに使用されねばならないパスワードも
|
|
指定可能です。
|
|
ここにパスワードを指定しないと、
|
|
.Pa /etc/ppp/ppp.secret
|
|
からドメインサフィックスを除いたローカルホスト名にてマシン名で検索を行います。
|
|
詳細は
|
|
.Xr hostname 1
|
|
を参照してください。
|
|
パスワードに空文字列を指定すると、パスワードは要求されなくなります。
|
|
.Pp
|
|
.Nm
|
|
をサーバソケットと共に使用する場合、通信機構として
|
|
.Xr pppctl 8
|
|
コマンドを使用することが好ましいです。
|
|
現在
|
|
.Xr telnet 1
|
|
も使用可能ですが、将来リンク暗号化が実装されるかもしれませんので、
|
|
.Xr telnet 1
|
|
に依存しないようにしてください。
|
|
.It set speed value
|
|
シリアルデバイスの速度を指定します。
|
|
.It set timeout idle [LQR [FSM-resend]]
|
|
アイドルタイマ、
|
|
(有効にされているなら) LQR タイマ、
|
|
有限状態機械
|
|
.Pq FSM; finite state machine
|
|
リトライタイマの値を指定します。
|
|
.It set vj slots nslots
|
|
このコマンドは最初の
|
|
.Ar slots
|
|
番号を指定します。
|
|
.Nm
|
|
は VJ 圧縮が enable されている時には、
|
|
これを使用して相手と交渉をします (前述の
|
|
.Sq enable
|
|
コマンドを参照してください)。
|
|
デフォルト値は 16 です。
|
|
.Ar nslots
|
|
は
|
|
.Ar 4
|
|
から
|
|
.Ar 16
|
|
の間で、それぞれの値を含みます。
|
|
.It set vj slotcomp on|off
|
|
このコマンドは
|
|
.Nm
|
|
に VJ スロット圧縮を交渉するか否かを指示します。
|
|
デフォルトではスロット圧縮は
|
|
.Ar on
|
|
です。
|
|
.It set help|?
|
|
使用可能なセットコマンドのまとめを表示します。
|
|
.El
|
|
.Pp
|
|
.It shell|! [command]
|
|
.Dq command
|
|
が指定されない場合、
|
|
.Dv SHELL
|
|
環境変数で指定されるシェルが起動されます。
|
|
そうでなければ指定されたコマンドが実行されます。
|
|
擬似引数
|
|
.Dv HISADDR ,
|
|
.Dv INTERFACE ,
|
|
.Dv MYADDR
|
|
は適切な値に置き換えられます。! 文字を使用した場合、
|
|
この後のコマンドとの間にスペースが必要です。
|
|
このコマンドはフォアグラウンドで実行されることに注意してください -
|
|
.Nm
|
|
はプロセスが終了するまでは実行を続けません。
|
|
バックグラウンドでコマンド処理を行いたい場合には、
|
|
.Dv bg
|
|
コマンドを使用してください。
|
|
.It show var
|
|
このコマンドを使用して、以下を確認できます:
|
|
.Bl -tag -width 20
|
|
.It show [adio]filter
|
|
指定したフィルタの現在のルールをリストします。
|
|
.It show auth
|
|
現在の authname と暗号値を表示します。
|
|
.Nm
|
|
を DES サポート無しで構築した場合、
|
|
.Ar MD5
|
|
が使用されるため、暗号値は表示されません。
|
|
.It show ccp
|
|
現在の CCP 統計を表示します。
|
|
.It show compress
|
|
現在の圧縮統計を表示します。
|
|
.It show escape
|
|
現在のエスケープ文字を表示します。
|
|
.It show hdlc
|
|
現在の HDLC 統計を表示します。
|
|
.It show ipcp
|
|
現在の IPCP 統計を表示します。
|
|
.It show lcp
|
|
現在の LCP 統計を表示します。
|
|
.It show loopback
|
|
現在のループバック状態を表示します。
|
|
.It show log
|
|
現在のログ値を表示します。
|
|
.It show mem
|
|
現在のメモリ統計を表示します。
|
|
.It show modem
|
|
現在のモデム統計を表示します。
|
|
.It show mru
|
|
現在の MRU を表示します。
|
|
.It show mtu
|
|
現在の MTU を表示します。
|
|
.It show proto
|
|
現在のプロトコルの総計を表示します。
|
|
.It show reconnect
|
|
現在の再接続値を表示します。
|
|
.It show redial
|
|
現在のリダイアル値を表示します。
|
|
.It show stopped
|
|
現在の stopped タイムアウト値を表示します。
|
|
.It show route
|
|
現在のルーティングテーブルを表示します。
|
|
.It show timeout
|
|
現在のタイムアウト値を表示します。
|
|
.It show msext
|
|
現在の Microsoft 拡張値を表示します。
|
|
.It show version
|
|
.Nm
|
|
の現在のバージョン番号を表示します。
|
|
.It show help|?
|
|
利用可能な show コマンドのまとめを表示します。
|
|
.El
|
|
.Pp
|
|
.It term
|
|
端末モードに移行します。
|
|
キーボードからタイプした文字はモデムに送られます。
|
|
モデムから読んだ文字はスクリーンに表示されます。
|
|
モデムの相手側に
|
|
.Nm
|
|
の相手が認識された時には、
|
|
.Nm
|
|
は自動的にパケットモードを有効にし、コマンドモードに戻ります。
|
|
.El
|
|
.Pp
|
|
.Sh 更に詳細について
|
|
.Bl -bullet -compact
|
|
.It
|
|
設定ファイルの例を読んでください。良い情報源です。
|
|
また、
|
|
.It
|
|
.Dq help ,
|
|
.Dq show ? ,
|
|
.Dq alias ? ,
|
|
.Dq set ? ,
|
|
.Dq set ? <var>
|
|
コマンドを使ってください。
|
|
.El
|
|
.Pp
|
|
.Sh 関連ファイル
|
|
.Nm
|
|
は、4 つのファイル
|
|
.Pa ppp.conf ,
|
|
.Pa ppp.linkup ,
|
|
.Pa ppp.linkdown ,
|
|
.Pa ppp.secret
|
|
を参照します。
|
|
これらのファイルは
|
|
.Pa /etc/ppp
|
|
に置かれます。
|
|
.Bl -tag -width flag
|
|
.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/tunX.pid
|
|
tunX デバイスに接続されている
|
|
.Nm
|
|
プログラムのプロセス ID (pid) 。
|
|
ここで 'X' はデバイスの番号です。このファイルは
|
|
.Fl background ,
|
|
.Fl auto ,
|
|
.Fl ddial
|
|
のいずれかのモードの時のみ作成されます。
|
|
.It Pa /var/run/ttyXX.if
|
|
このポートで使われている tun インタフェース。
|
|
このファイルも
|
|
.Fl background ,
|
|
.Fl auto ,
|
|
.Fl ddial
|
|
のいずれかのモードの時のみ作成されます。
|
|
.Pa It /etc/services
|
|
サービス名でポート番号が指定されている場合に、ポート番号を取得します。
|
|
.El
|
|
.Pp
|
|
.Sh 関連項目
|
|
.Xr at 1 ,
|
|
.Xr chat 8 ,
|
|
.Xr crontab 5 ,
|
|
.Xr ftp 1 ,
|
|
.Xr getty 8 ,
|
|
.Xr gzip 1 ,
|
|
.Xr hostname 1 ,
|
|
.Xr inetd 8 ,
|
|
.Xr init 8 ,
|
|
.Xr login 1 ,
|
|
.Xr passwd 5 ,
|
|
.Xr ping 8 ,
|
|
.Xr pppctl 8 ,
|
|
.Xr pppd 8 ,
|
|
.Xr route 8 ,
|
|
.Xr syslog 3 ,
|
|
.Xr syslog.conf 5 ,
|
|
.Xr syslogd 8 ,
|
|
.Xr tcpdump 1 ,
|
|
.Xr telnet 1 ,
|
|
.Xr traceroute 8 ,
|
|
.Xr uucplock 3
|
|
.Sh 歴史
|
|
元のプログラムは Toshiharu OHNO (tony-o@iij.ad.jp) が作成し、
|
|
FreeBSD-2.0.5 に Atsushi Murai (amurai@spec.co.jp) が提出しました。
|
|
.Pp
|
|
それから、本質的に Brian Somers (brian@Awfulhak.org) が修正をし、'97 年
|
|
11 月に OpenBSD に移植されました (2.2-RELEASE の直後です)。
|