aboutsummaryrefslogtreecommitdiff
path: root/ja/man/man8/pppd.8
blob: 0f169e45f90658b381b3774da72481588b070d31 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
.\" manual page [] for pppd 2.0
.\" %Id: pppd.8,v 1.7.2.2 1997/05/07 23:57:42 brian Exp %
.\" jpman %Id: pppd.8,v 1.2 1997/05/27 00:43:48 mutoh Stab %
.\" SH section heading
.\" SS subsection heading
.\" LP paragraph
.\" IP indented paragraph
.\" TP hanging label
.TH PPPD 8
.SH 名称
pppd \- PPP(Point to Point Protocol) を処理するデーモン
.SH 書式
.B pppd
[
.I options
] [
.I tty_name
] [
.I speed
]
.SH 解説
.LP
Point-to-Point プロトコル (PPP) は、シリアル回線上に確立された 
Point-to-Point リンクを介したデータグラムの送受方法を提供します。
PPP は、データグラムのカプセル化方式、拡張可能なリンク制御プロトコル (LCP)、
そして異なるネットワーク層プロトコルの設定とコネクションの確立を行なう
一群のネットワーク制御プロトコル (NCP) の 3 つの部分から構成されています。
.LP
カプセル化体系は、カーネル内のドライバコードにより提供されています。
.B pppd
は、基本的な LCP 機能、認証機能、そして IP コネクションの確立と設定を行なう
NCP(IP Control Protocol(IPCP) と呼ばれています)を提供します。
.SH よく使われるオプション
.TP
.I <tty_name>
使用するシリアルポートの特殊ファイル名を指定します。
もし必要であれば、特殊ファイル名の前に"/dev/"文字列が追加されます。
デバイス名が指定されていない場合や制御端末の名前が与えられた場合には、
.I pppd
は自らの制御端末をコネクションの確立に使用し、
バックグラウンド実行のための fork を行ないません。
.TP
.I <speed>
tty の速度を設定します。4.4BSD や NetBSD では任意の速度を指定することが
できます。その他のシステム (SunOS 等) では一定の組合せのみが指定可能です。
.TP
.B asyncmap \fI<map>
非同期キャラクタマップを <map> に設定します。
このマップは、シリアル回線を経由するとどのコントロールキャラクタの受信が
うまくいかなくなるかを記述するものです。
.I pppd
は、相手側にこれらのキャラクタを 2 バイトのエスケープシーケンスとして
送信するよう依頼します。
引数は 32 ビットの 16 進数であり、各ビットがエスケープするべきキャラクタを
表しています。
ビット 0 (00000001) はキャラクタ 0x00 をあらわし、
ビット 31 (80000000) は、キャラクタ 0x1f '^_' をあらわしています。
複数の \fBasyncmap\fR オプションが与えられた場合、それらの値の論理和が
採用されます。
\fBasyncmap\fR が与えられなかった場合には、このホストが受信側となる
非同期キャラクタマップは設定されません。
相手側はすべてのコントロールキャラクタをエスケープして送信します。
.TP
.B auth
ネットワークパケットの送受信を許可する前に、相手側に自分自身の認証を
行なうよう要求します。
.TP
.B connect \fI<p>
\fI<p>\fR で指定された実行可能コマンドまたはシェルコマンドを
シリアル回線のセットアップに用います。
ほとんどの場合ここで指定されるスクリプトには、
モデムにダイヤルコマンドを送ったり リモート ppp セッションを
開始したりするための "チャット(chat)" プログラムを使用します。
.TP
.B connect-max-attempts \fI<n>
指定した時間 (デフォルトでは 1)以上 リモートシステムとの
ダイアルコネクションを保持しません。コネクションができない場合は、
pppd は終了します。 \fBpersist\fR を指定することが要求されます。
.TP
.B crtscts
シリアルポートのフロー制御にハードフロー制御 (RTS/CTS) を用います。
.TP
.B -crtscts
シリアルポートのハードウエアフロー制御 (RTS/CTS) を使いません。
\fBcrtscts\fR か \fB\-crtscts\fR の両方のオプションが与えられない時、
シリアルポートのハードウエアフロー制御の設定は変更されずに
そのままになります。
.TP
.B xonxoff
シリアルポートのフロー制御に XON/XOFF キャラクタによるフロー制御を用います。
現時点では、このオプションは Linux では実装されていません。
.TP
.B defaultroute
IPCP ネゴシエーションが成功すると、相手側をゲートウェイとする
デフォルトルートをシステムのルーティングテーブルに追加します。
このオプションにより追加されたデフォルトルートエントリは、
PPP コネクションが切断された際に削除されます。
.TP
.B disconnect \fI<p>
pppd が接続を切った後に \fI<p>\fR で指定した実行可能コマンドまたは
シェルコマンドを実行します。
このスクリプトで、例えばハードウェアモデム制御信号 (DTR) が使えない場合に
モデムに回線切断のコマンドを発行することができます。
.TP
.B escape \fIxx,yy,...
転送時にエスケープを行なうべきキャラクタを指定します(相手側が
非同期キャラクタマップでエスケープを要求しているかどうかには影響されません)。
エスケープされるキャラクタは、カンマで区切られた 16 進の数字で指定します。
コントロールキャラクタしか指定できない非同期キャラクタマップ (asyncmap)
とは異なり、\fBescape\fR オプションではどんなキャラクタでも指定できる
ことに注意してください。
ただし 16 進表記で 0x20 から 0x3f までと 0x5e のキャラクタは
エスケープするべきではありません。
.TP
.B file \fI<f>
オプションをファイル <f> から読み込みます(フォーマットは後述します)。
.TP
.B lock
シリアルデバイスに対する排他アクセスを確実に行なうために、
UUCP 形式のロックファイルを作成するよう \fIpppd\fR に指示します。
.TP
.B mru \fI<n>
ネゴシエーション時の MRU [Maximum Receive Unit] 値を <n> に設定します。
.I pppd
は、通信相手に <n> バイトを超えるパケットを送信しないよう要求します。
最小の MRU 値は、128 です。
デフォルトの MRU 値は 1500 です。低速のリンクでは 296 を推奨します。
(TCP/IP ヘッダ 40 バイト + データ 256 バイト).
.TP
.B netmask \fI<n>
インターフェースの netmask を <n> に設定します。
32 bit の netmask を、255.255.255.0 のように、
10 進 + ピリオド表記 (符号付き 10 進表現) で指定します。
.TP
.B dns1 \fI<n>
接続先が プライマリ DNS サーバを聞いてきた場合、このアドレスを答えます。
32 bit IP アドレスを 符号付き 10 進表現で指定します。
.TP
.B dns2 \fI<n>
接続先が セカンダリ DNS サーバを聞いてきた場合、このアドレスを答えます。
32 bit IP アドレスを 符号付き 10 進表現で指定します。
.TP
.B passive
LCP で "passive" オプションを有効にします。このオプションを指定した場合には、
コネクションを開始しようとしても相手からの返答がない場合、
.I pppd
は相手から有効な LCP パケットが到着するのを待ち続けます。
(このオプションを指定しなければ、相手からの返答がない場合に
.I pppd
は実行を中断します。)
.TP
.B silent
このオプションを指定した場合、
.I pppd
は相手から有効な LCP パケットを受信するまで
接続を開始するための LCP パケットを送信せずに待ちます。
(旧バージョンの \fIpppd\fR で 'passive' オプションを指定した場合と
同じ動作です。)
.SH オプション
.TP
.I <local_IP_address>\fB:\fI<remote_IP_address>
ローカルインターフェースとリモートインターフェースの IP アドレスを設定します。
どちらか一方を省略することも可能です。IP アドレスは、ホスト名もしくは
符号付き 10 進表現 (例 :150.234.56.78) のどちらでも指定可能です。
デフォルトのローカルアドレスは、そのシステムの ( 最初の )IP アドレスと
なります。( ただし
.B noipdefault
オプションが指定された場合を除きます。) リモートアドレスは、
オプションで指定されていない場合には相手側から取得されます。
ですから、もっとも単純な指定を行う場合には、このオプションは不必要です。
ローカルまたはリモートの IP アドレスがこのオプションで指定されている場合には、
.I pppd
は IPCP ネゴシエーションで相手側がこの指定と異なるアドレスを送って来た場合
これを拒否します。ただし、
.B ipcp-accept-local
や
.B ipcp-accept-remote
が指定されている場合にはこの限りではありません。
.TP
.B -all
LCP や IPCP でのオプションによるネゴシエーションは
要求も許可もされません。(デフォルト値を用います。)
.TP
.B -ac
Address/Control 圧縮ネゴシエーションを無効にします
( これがデフォルトで、address/control フィールドの圧縮は通常行なわれません)。
.TP
.B -am
asyncmap ネゴシエーションを無効にします(デフォルトの asyncmap が用られ、
全てのコントロールキャラクタがエスケープされます)。
.TP
.B -as \fI<n>
.B asyncmap \fI<n>
と同じ意味です。
.TP
.B -d
デバッグレベルを増やします。(\fBdebug\fR オプションと同じ意味です。)
.TP
.B -detach
バックグラウンドプロセスになるための fork を行ないません(
.I pppd
は、シリアルデバイスが指定されていて
このオプションが指定されていない場合もしくはシリアルデバイスが
制御端末ではない場合には fork します)。
.TP
.B -ip
IP アドレスネゴシエーションを無効にします
(このオプションを指定した場合には、リモート IP アドレスを
コマンドラインもしくはオプションファイルで指定する必要があります)。
.TP
.B -mn
magic number ネゴシエーションを無効にします。このオプションを指定した場合には、
.I pppd
はループバック回線を検出することができません。
.TP
.B -mru
MRU [Maximum Receive Unit] ネゴシエーションを無効にします
( デフォルトの MRU 値の 1500 を使用します)。
.TP
.B -p
.B passive
オプションと同じ意味です。
.TP
.B -pc
プロトコルフィールド圧縮ネゴシエーションを無効にします
(これがデフォルトで、プロトコルフィールドの圧縮は通常無効になっています)。
.TP
.B +ua \fI<p>
相手側から PAP [Password Authentication Protocol] による認証を
要求された場合には、それに同意します。そしてファイル <p> に記述された
データを用いてユーザ名とパスワードを相手に送ります。
このファイルには、リモートのユーザ名と改行が格納され、
続いてリモートパスワードと改行が格納されています。
このオプションは旧式です。
.TP
.B +pap
PAP を用いて自分自身の認証を行なうよう相手に要求します。
.TP
.B -pap
PAP による認証を拒否します。
.TP
.B +chap
CHAP [Challenge Handshake Authentication Protocol] を用いて
自分自身の認証を行なうことを相手に要求します。
.TP
.B -chap
CHAP による認証を拒否します。
.TP
.B -vj
Van Jacobson 形式の IP ヘッダ圧縮のネゴシエーションを無効にします
(これがデフォルトで、ヘッダの圧縮は通常行なわれません)。
.TP
.B bsdcomp \fInr,nt
接続相手に、BSD圧縮方式を使った送出時のパケット圧縮を要求します。
ここでの最大コードサイズは \fInr\fR ビットです。
相手側が送るパケットの最大の大きさは、 \fInt\fR ビットです。
\fInt\fR が指定されない時は、デフォルトの値が使われます。
9 から 15 の範囲の値が、 \fInr\fR と \fInt\fR で使われます。
より大きな値は、よりよい圧縮となりますが、圧縮辞書のためにより多くの
カーネルメモリを消費します。\fInr\fR や \fInt\fR に対して、値 0 を
指定すると、圧縮を指定した方向には行いません。
.TP
.B \-bsdcomp
圧縮を行いません。 \fBpppd\fR は、BSD 圧縮方式を使ったパケットの圧縮を
要求しませんし、許可もしません。
.TP
.B debug
デバッグレベルを増加させます (\fB\-d\fR と同じ意味です)。
このオプションを指定した場合、\fIpppd\fR は送受信した
すべての制御パケットの内容を可読形式でログをとります。
パケットは syslog を経由して、\fIdaemon\fR ファシリティの 
\fIdebug\fR レベルとして記録されます。
本情報は、/etc/syslog.conf を適切に記述することで
ファイルに記録することができます(syslog.conf(5) 参照)。
(もし \fIpppd\fR が extra debugging オプションを有効にして
コンパイルされていれば、\fIdaemon\fR ファシリティの
かわりに \fIlocal2\fR ファシリティを使用してメッセージを記録します。)
.TP
.B \-defaultroute
\fBdefaultroute\fR オプションを無効にします。
\fIpppd\fR を使っているユーザにデフォルトルートを作成させたくない
システム管理者は、このオプションを /etc/ppp/options ファイルに
記述することができます。
.TP
.B domain \fI<d>
認証のために使用するローカルホスト名にドメイン名 <d> を付加します。
例えば、FQDN が porsche.Quotron.COM であって、
gethostname() が porsche という名前を返す場合には、
このオプションを用いてドメイン名を Quotron.COM と指定します。
.TP
.B ipparam \fIstring
ip-up と ip-down スクリプト用に余分のパラメータを指定します。
このオプションが与えられた場合、 \fIstring\fR が 6 番目のパラメータと
して、これらのスクリプトに与えられます。
.TP
.B modem
モデム制御線を使用します。このオプションはデフォルトです。
このオプションを使うことで、
.B pppd
は、シリアルデバイスをオープンした時に 
(接続スクリプトが指定されていなくても)
モデムから CD (Carrier Detect) 信号が送られるのを待ちます。
そして、接続が中断された時や接続スクリプトが終了する時に、
DTR (Data Terminal Ready) 信号を落します。 Ultrix では、
このオプションは、 \fBcrtscts\fR オプションのように
ハードワイアフロー制御を実行します。
.TP
.B kdebug \fIn
カーネルレベルの PPP ドライバのデバッグコードを有効にします。
引数 \fIn\fR として、以下の数値のうち必要なものの合計を指定します。
1 は一般的なデバッグメッセージ出力を有効にします。
2 は受信したパケットの内容の出力を要求します。
4 は送信したパケットの内容の出力を要求します。
.TP
.B local
モデム制御線を使用しません。
.B pppd
は、モデムからの CD (Carrier Detect) 信号の状態を無視し、
DTR (Data Terminal Ready) 信号の状態を変化しません。
.TP
.B mtu \fI<n>
MTU [Maximum Transmit Unit] 値を \fI<n>\fR に設定します。
相手が MRU ネゴシエーションを通じてこれより小さい値を要求してこない限り、
\fIpppd\ は、PPP ネットワークインタフェースを通して \fIn\fR バイトを
越えないデータパケットを送ることをカーネルのネットワークコードに要求します。
.TP
.B name \fI<n>
認証の目的で用いられるローカルシステムの名前を <n> に設定します。
.TP
.B user \fI<u>
PAP を用いてこのマシンの認証を行なう際に用いるユーザ名を <u> に設定します。
.TP
.B usehostname
認証時にホスト名をローカルシステムの名前として使用することを強制します。
(
このオプションは
.B name
オプションに優先します。
)
.TP
.B remotename \fI<n>
リモートシステムの名前を <n> とみなして認証を行ないます。
.TP
.B papcrypt
相手の同一性を調べるために使われる
/etc/ppp/pap-secrets ファイル内の全ての秘密を暗号化することを
指示します。そして、 pppd は、 (暗号化前の) /etc/ppp/pap-secrets 
ファイルからの秘密と等かであってもパスワードを受け入れません。
.TP
.B proxyarp
自システムの ARP [Address Resolution Protocol] テーブルに相手の IP アドレス
と自イーサネットアドレスを追加します。
.TP
.B \-proxyarp
\fBproxyarp\fR オプションを使いません。\fIpppd\fR のユーザに 
proxy ARP エントリを作成させたくないシステム管理者はこのオプションを
/etc/ppp/options ファイルに記述することでそのようにできます。
.TP
.B persist
接続が切断された後で終了しません。代わりに再接続しようとします。
.TP
.B login
PAP を用いた相手の認証に、システムパスワードデータベースを用います。
.TP
.B noipdefault
ローカル IP アドレスが指定されない場合にデフォルトで行なわれる、
ホスト名から IP アドレスを ( 可能であれば ) 決定する動作を無効にします。
このオプションを指定した場合には、IPCP ネゴシエーション時に
相手側がローカルの IP アドレスを指定する必要があります
(明示的にコマンドラインで指定されているか、
オプションファイルで指定されている場合を除きます)。
.TP
.B lcp-echo-interval \fI<n>
このオプションを指定すると、\fIpppd\fR は LCP echo-request frame を
\fIn\fR 秒毎に相手側に送信します。Linux では、相手側からのパケットが
\fIn\fR 秒間途切れた場合に echo-request が相手側に送信されます。
通常、相手側は echo-request を受信すると echo-reply を送り返して返答します。
このオプションは、相手側との接続が切れたことを検出するために
\fIlcp-echo-failure\fR オプションとともに使用されます。
.TP
.B lcp-echo-failure \fI<n>
このオプションが指定された場合、 LCP echo-request を \fIn\fR 回送信しても
相手から有効な LCP echo-reply が帰ってこなければ、\fIpppd\fR は
相手がダウンしているものと推測します。このような場合、\fIpppd\fR は
コネクションを切断します。このオプションを使用する際には、
\fIlcp-echo-interval\fR のパラメータとして 0 以外の数値を指定して下さい。
このオプションは、ハードウェアモデム制御線 (DSR) が使用できない状況で、
( モデムが回線を切断するなどの ) 物理的なコネクションが切断された後に
\fIpppd\fR を終了するために用いられます。
.TP
.B lcp-restart \fI<n>
( 再送のタイムアウトによる ) LCP restart の間隔を <n> 秒に設定します。
デフォルト値は 3 です。
.TP
.B lcp-max-terminate \fI<n>
LCP terminate-request の最大送信回数を <n> 回に設定します。
デフォルト値は 3 です。
.TP
.B lcp-max-configure \fI<n>
LCP configure-request の最大送信回数を <n> 回に設定します。
デフォルト値は 10 です。
.TP
.B lcp-max-failure \fI<n>
LCP configure-Rejects を送信開始するまでの LCP configure-NAKs 最大応答回数を
<n> 回に設定します。デフォルト値は 10 です。
.TP
.B ipcp-restart \fI<n>
( 再送のタイムアウトによる ) IPCP restart の間隔を <n> 秒に設定します。
デフォルト値は 3 です。
.TP
.B ipcp-max-terminate \fI<n>
IPCP terminate-request の最大送信回数を <n> 回に設定します。
デフォルト値は 3 です。
.TP
.B ipcp-max-configure \fI<n>
IPCP configure-request の最大送信回数を <n> 回に設定します。
デフォルト値は 10 です。
.TP
.B ipcp-max-failure \fI<n>
IPCP configure-Rejects を送信開始するまでの IPCP configure-NAKs 最大応答回数を
<n> 回に設定します。デフォルト値は 10 です。
.TP
.B pap-restart \fI<n>
( 再送のタイムアウトによる ) PAP restart の間隔を <n> 秒に設定します。
デフォルト値は 3 です。
.TP
.B pap-max-authreq \fI<n>
PAP authenticate-request の最大送信回数を <n> 回に設定します。
デフォルト値は 10 です。
.TP
.B pap-timeout \fI<n>
.I pppd
が PAP において接続先の認証のために待機する最大時間を <n> 秒に
設定します(0 は制限を設けないことを意味します)。
.TP
.B chap-restart \fI<n>
( 再送のタイムアウトによる ) CHAP restart の間隔を <n> 秒に設定します。
デフォルト値は 3 です。
.TP
.B chap-max-challenge \fI<n>
CHAP challenge の最大送信回数を <n> 回に設定します。
デフォルト値は 10 です。
.TP
.B chap-interval \fI<n>
このオプションが指定された場合、
.I pppd
は <n> 秒おきに CHAP challenge を再送信します。
.TP
.B ipcp-accept-local
このオプションが指定された場合には、
別のオプションによってローカル IP アドレスの指定が行なわれている場合でも、
.I pppd
は相手からのローカル IP アドレスの指定を受け入れます。
.TP
.B ipcp-accept-remote
このオプションが指定された場合には、
別のオプションによってリモート IP アドレスの指定が行なわれている場合でも、
.I pppd
は相手からのリモート IP アドレスの指定を受け入れます。
.SH オプションファイル
オプションは、コマンドラインから与えられるのと同様に、
ファイルに記述されたものを用いることも可能です。
.I pppd
は、コマンドラインからのオプションを
読み込む前に /etc/ppp/options および ~/.ppprc から
オプションを読み込みます。オプションファイルの内容は、
空白文字をデリミタとする単語の並びとして解釈されます。
空白文字を含む文字列はダブルクォート (") で囲うことで
1 つの文字列として解釈されるようになります。
バックスラッシュ (\\) は、直後の 1 キャラクタをクォートします。
シャープ文字 (#) はコメントの始まりとして解釈され、
改行までをコメントとみなします。
.SH 認証
.I pppd
は、正当なユーザに対するサーバマシンへの PPP アクセスを提供しつつ、
サーバ自身やそのサーバが存在するネットワークのセキュリティを危険に
さらす心配のない、充分なアクセス制御をシステム管理者に提供します。
このアクセス制御の一部は、
/etc/ppp/options ファイルにより提供されます。
このファイルでシステム管理者は
.I pppd
が実行される時には常に認証を要求するように
オプションを設定することができます。
また一部は、PAP や CHAP のシークレットファイルにより提供されます。
このファイルで個々のユーザが使用する IP アドレスの組を
管理者が制限することができます。
.LP
.I pppd
のデフォルトの挙動は、もし認証の要求があればそれを受け入れ、
相手側には認証を要求しないというものです。
ただし、
.I pppd
がその認証を行なうのに必要なシークレットを持っていない
特定のプロトコルによる認証は拒否します。
.LP
認証はシークレットファイルから選ばれたシークレットをベースにしています。
(PAP では /etc/ppp/pap-secrets が、CHAP では /etc/ppp/chap-secrets が
シークレットファイルです。)
どちらのシークレットファイルも同じフォーマットになっており、
どちらもサーバ ( 認証する側 ) とクライアント ( 認証される側 ) の
それぞれの組合せを記録しておくことができます。
.I pppd
はサーバにもクライアントにもなれることと、必要ならそれぞれの方向で
異なったプロトコルを使用した認証ができることに注意してください。
.LP
シークレットファイルはオプションファイルと同じように単語の並びとして
解釈されます。一組のシークレットは最低でも 3 つの単語を含む 1 つの行として
指定され、3 つの単語はそれぞれクライアント名・サーバ名・シークレットとして
解釈されます。残りの単語があれば、それはクライアント側で
使用可能な IP アドレスのリストとして解釈されます。
もしその行に 3 つの単語しかない場合は、どのような IP アドレスでも受け入れ
可能であると仮定されます。全ての IP アドレスを禁止するには "-" を使います。
もしシークレットが一個の `@' で始まる場合には、続く文字列がシークレットを
読み込むファイルの名前であると仮定されます。
クライアント名またはサーバ名が "*" であれば、それはどのような名前とも
マッチします。
シークレットを選択する際、\fIpppd\fR は最も良くマッチするものを選びます。
つまり、最もワイルドカードの少ないマッチが選ばれます。
.LP
このように、シークレットファイルは他のホストを認証するための
シークレットに加えて、自分自身を他のホストに認証させるための
シークレットを含んでいます。
どのシークレットを使うかは、自分の名前 ( ローカル名 ) と
相手側の名前 ( リモート名 ) をベースにして選ばれます。
ローカル名は以下のようにしてセットされます。
.TP 3
\fBusehostname\fR オプションが指定されていれば、
ローカル名はそのマシンのホスト名になります
( domain が指定されていれば追加されます)。
.TP 3
そうではなく、\fBname\fR が指定されていれば
最初の \fBname\fR オプションの引数が使われます。
.TP 3
そうではなく、ローカル IP アドレスがホスト名で指定されていれば
そのホスト名が使われます。
.TP 3
何も指定されていない場合は、このマシンのホスト名が使われます
( domain が指定されていれば追加されます)。
.LP
PAP を使用して自分の認証を行なう場合、ユーザ名というものがありますが、
デフォルトではローカル名が使われます。
しかし、\fBuser\fR オプションまたは \fB+ua\fR オプションで
ユーザ名をセットすることができます。
.LP
リモート名は以下のようにしてセットされます。
.TP 3
\fBremotename\fR オプションが指定されていれば、
最後の \fBremotename\fR の引数が使われます。
.TP 3
そうではなく、リモート IP アドレスがホスト名で指定されていれば、
そのホスト名が使用されます。
.TP 3
何も指定されていない場合、リモート名は空文字列 "" になります。
.LP
PAP シークレットファイルからのシークレットの選択は
以下のように行なわれます。
.TP 2
*
相手側の認証を行なう場合には、PAP 認証要求で指定されたユーザ名が
クライアント名と一致し、サーバ名がローカル名と一致する
シークレットが選ばれます。
.TP 2
*
相手側に自分を認証してもらう場合には、クライアント名がユーザ名と
一致し、サーバ名がリモート名と一致するシークレットを探します。
.LP
相手側を PAP で認証する際に、"" というシークレットは相手側から
送られてきた任意のパスワードとマッチします。
もしパスワードがシークレットとマッチしなければ、
パスワードは crypt() を使用して暗号化され、再びシークレットと
比較されます。このため相手側の認証に使用するシークレットは
暗号化された形式で記録することができます。 
\fBpapcrypt\fR オプションが与えられた場合、よりよいセキュリティのため
最初の (暗号化されていない) 比較対象は除外されます。
.LP
もし \fBlogin\fR オプションが指定されていれば、ユーザ名とパスワードも
システムパスワードデータベースでチェックされます。
このためシステム管理者は特定のユーザだけに PPP アクセスを
許可し、個々のユーザが使用できる IP アドレスの組を
制限するよう pap-secrets ファイルをセットアップすることができます。
典型的には、\fBlogin\fR オプションを使う時に、 /etc/ppp/pap-secrets 
中の シークレット部分を "" とすることで、同じシークレットが二つの
場所で必要とされることを避けることができます。
.LP
\fBlogin\fR オプションが使われている時には、更なる確認が行われます。
/etc/ppp/ppp.deny が存在して、ユーザがそこに記述されている場合、
認証は失敗します。 /etc/ppp/ppp.shells が存在して、ユーザの普通の
ログインシェルが記述されていない場合、認証は失敗します。
.LP
CHAP シークレットファイルからのシークレットの選択は
以下のように行なわれます。
.TP 2
*
相手側の認証を行なう場合には、CHAP-Response メッセージで指定された
名前がクライアント名と一致し、サーバ名がローカル名と一致する
シークレットを探します。
.TP 2
*
相手側に自分を認証してもらう場合には、クライアント名がローカル名と
一致し、CHAP-Challenge メッセージで指定された名前がサーバ名と一致する
シークレットを探します。
.LP
認証は IPCP (またはその他の NCP) が開始される前に納得のいくように
完了している必要があります。
もしも認証に失敗すると、\fIpppd\fR は (LCP をクローズすることで)
リンクを切断します。
もし IPCP で得られたリモートホストの IP アドレスが受け入れられない
ものであった場合、IPCP はクローズされます。 IP パケットは IPCP が
オープンしている時だけ送受信可能です。
.LP
ローカルホストが一般的に認証を必要とする時でも、
接続を行い限定された IP アドレスの組の一つを使うために
自分自身の認証を行うことができないようないくつかのホストに対して、
接続を認める必要がある場合もあります。
もし相手側がこちらの認証要求を拒否した場合、\fIpppd\fR はそれを
ユーザ名とパスワードが空文字列である PAP 認証として扱います。
そこで、クライアント名とパスワードに空文字列を指定した 1 行を
pap-secrets ファイルに追加することで、自分自身の認証を拒否する
ホストにも制限つきのアクセスを許可することができます。
.SH 経路制御
.LP
IPCP negotiation が成功した場合、
.I pppd
はカーネルに、PPP インタフェースで用いるローカル IP アドレスおよび
リモート IP アドレスを通知します。これは、相手側と IP パケットを交換する
リンクのリモート終端への経路を作成するのに充分な情報です。
サーバ以外のマシンとの通信には、一般的にはルーティング
テーブルや ARP テーブルのさらなる更新が必要となります。
いくつかのケースでは、これらのテーブルの
更新は \fIrouted\fR や \fIgated\fR などのデーモンプロセスが
自動的に行なってくれます。
しかし、大半のケースでは、さらに何らかの介入が必要となります。
.LP
インターネットへの接続を PPP インタフェース経由のみで行なうマシンの
場合には、リモートホストを通る default route の追加が
しばしば必要となる場合があります。
\fBdefaultroute\fR オプションは、IPCP が完了した際に \fIpppd\fR に
そのような default route を作成させ、リンクが切断されたときには
その default route を削除させます。
.LP
例えばサーバマシンが LAN に接続されている場合、LAN 上の他のホストが
リモートホストと通信できるようにするために proxy ARP の使用が
必要な場合もあります。
\fBproxyarp\fR オプションを指定すると、\fIpppd\fR はリモートホストと
同一サブネット上にある ( ブロードキャストと ARP をサポートし、動作中
かつ point-to-point やループバックでない ) ネットワークインターフェースを
探します。そのようなインターフェースが見つかった場合、\fIpppd\fR は
恒久的に公開された ARP エントリとしてリモートホストの IP アドレスと
その見つかったネットワークインターフェースのイーサネット (MAC) アドレスを
登録します。
.SH 使用例
.LP
もっとも単純な場合では、2 つのマシンのシリアルポートをつなぎ、
それぞれのマシンで以下のようなコマンドを実行します。
.IP
pppd /dev/ttya 9600 passive
.LP
ただしそれぞれのマシンにおいて、シリアルポートで \fIgetty\fR が
走っていないものと仮定しています。
もし片方のマシンで \fIgetty\fR が走っている場合、
\fIkermit\fR や \fItip\fR などの通信プログラムを用いて \fIgetty\fR が
走っているマシンにログインし、次のようなコマンドを実行します。
.IP
pppd passive
.LP
それから通信プログラムを終了し、( コネクションが切断されていないことを確
認して ) 次のようなコマンドを実行します。
.IP
pppd /dev/ttya 9600
.LP
もう一方のマシンへのログインおよび \fIpppd\fR の開始処理は、
\fBconnect\fR オプションを使用して \fIchat\fR スクリプトを起動することで
自動化できます。
例 :
.IP
pppd /dev/ttya 38400 connect 'chat "" "" "login:" "username"
"Password:" "password" "% " "exec pppd passive"'
.LP
(ただし、このように chat プログラムを起動すると、パスワードの文字列が
pppd や chat のパラメータリスト (ps 等の出力で得られます ) で
見えてしまうことに注意して下さい。)
.LP
もしあなたのシリアルコネクションがケーブル一本でなく、もっと複雑な場合には、
いくつかのコントロールキャラクタがエスケープされるように
準備しておく必要があります。とりわけ、XON (^Q) および XOFF (^S) を、
\fBasyncmap a0000\fR を用いてエスケープすることはしばしば有効です。
パスが telnet を含む場合には、 ^] キャラクタも同様にエスケープ
(\fBasyncmap 200a0000\fR を指定 ) する必要があるでしょう。
パスが rlogin を含む場合には、rlogin クライアントの動作している側の
ホストで \fBescape ff\fR を指定する必要があるでしょう。これは、多くの
rlogin の実装がネットワーク透過でないためです。
それらの rlogin では、 0xff, 0xff, 0x73, 0x73 とそれに続く 8 バイトの
シーケンスをストリームから取り除きます。
.SH 診断
.LP
メッセージは LOG_DAEMON ファシリティを用いて syslog デーモンに
送られます (これは希望するファシリティを LOG_PPP マクロとして定義し、
\fIpppd\fR を再コンパイルすることで変更することができます)。
エラーメッセージやデバッグメッセージを見るためには、
/etc/syslogd.conf ファイルを編集して pppd からのメッセージが
希望する出力デバイスやファイルに書き出されるようにしておく必要があります。
.LP
\fBdebug\fR オプションは送受信されるすべての制御パケットの内容が
ログに記録されるようにします。対象となる制御パケットは、
すべての LCP, PAP, CHAP, IPCP パケットです。
この機能は、PPP ネゴシエーションがうまくいかない場合の原因究明に
効果的でしょう。
コンパイル時にデバッギングオプションを有効にしていた場合には、
\fBdebug\fR もまた他のデバッグメッセージを記録するために使われます。
.LP
.I pppd
プロセスに SIGUSR1 シグナルを送ってデバッギングを有効にすることが
できます。これはトグル動作します。
.SH 関連ファイル
.TP
.B /var/run/ppp\fIn\fB.pid \fR(BSD or Linux), \fB/etc/ppp/ppp\fIn\fB.pid \fR(others)
ppp インタフェースユニット \fIn\fR に対応する \fIpppd\fR プロセスの
プロセス ID が記録されます。
.TP
.B /var/run/tty\fIXn\fB.if \fR(BSD or Linux), \fB/etc/ppp/tty\fIXn\fB.if \fR(others)
シリアルデバイス /dev/tty\fIXn\fR 上の \fIpppd\fR プロセスのための
インターフェイスです。
.TP
.B /etc/ppp/ip-up
そのリンクで IP パケットの送受信が行なえるようになった時
(IPCP が完了した時 ) に実行されるプログラムまたはスクリプトです。
これは
.IP
\fIinterface-name tty-device speed local-IP-address
remote-IP-address\fR
.IP
をパラメータに与えて標準入力をつかって実行されます。
出力とエラー出力は、 \fB/dev/null\fR にリダイレクトされます。
.IP
このプログラムまたはスクリプトは、pppd と同一の実ユーザ ID および実効
ユーザ ID で実行されます。
つまり、少なくとも実効ユーザ ID は \fBroot\fR であり、
できれば実ユーザ ID も \fBroot\fR であることが望まれます。
これは、経路情報を変更したり、( 例えば sendmail のような ) 特権デーモン等を
動作させたりするのに必要だからです。
/etc/ppp/ip-up や /etc/ppp/ip-down スクリプトの内容については、
システムのセキュリティを危うくしないよう注意して下さい。
.TP
.B /etc/ppp/ip-down
そのリンクで IP パケットの送受信ができなくなった場合に実行される
プログラムまたはスクリプトです。
このスクリプトは /etc/ppp/ip-up スクリプトで行なった変更を
元にもどすために用いられます。
これは ip-up と同じパラメータを与えて実行されます。
なお、\fIpppd\fR と同じ実効ユーザ ID および実ユーザ ID で実行されるため、
ip-up スクリプトと同様にセキュリティ上の考慮が必要になります。
.TP
.B /etc/ppp/pap-secrets
PAP 認証で使用するユーザ名、パスワード、IP アドレスを格納します。
.TP
.B /etc/ppp/chap-secrets
CHAP 認証で使用する名前、シークレット、IP アドレスを格納します。
.TP
.B /etc/ppp/options
.I pppd
のシステムデフォルトオプションを記述します。このファイルは、コマンド
ラインのオプションが解釈される前に読み込まれます。
.TP
.B ~/.ppprc
ユーザごとのデフォルトオプションを記述します。このファイルは、コマンド
ラインのオプションが解釈される前に読み込まれます。
.TP
.B /etc/ppp/options.\fIttyname
各シリアルポートのシステムデフォルトオプションを指定します。
このファイルは、コマンドラインのオプションが解釈された後で読み込まれます。
.TP
.B /etc/ppp/ppp.deny
システムのパスワードによる PAP 認証を使わせないユーザを記述します。
.TP
.B /etc/ppp/ppp.shells
システムのパスワードによる PAP 認証ログインのために適切なシェルを
記述します。
.SH 関連項目
.IR chat(8),
.IR ppp(8)
.TP
.B RFC1144
Jacobson, V.
.I Compressing TCP/IP headers for low-speed serial links.
1990 February.
.TP
.B RFC1321
Rivest, R.
.I The MD5 Message-Digest Algorithm.
1992 April.
.TP
.B RFC1332
McGregor, G.
.I PPP Internet Protocol Control Protocol (IPCP).
1992 May.
.TP
.B RFC1334
Lloyd, B.; Simpson, W.A.
.I PPP authentication protocols.
1992 October.
.TP
.B RFC1548
Simpson, W.A.
.I The Point\-to\-Point Protocol (PPP).
1993 December.
.TP
.B RFC1549
Simpson, W.A.
.I PPP in HDLC Framing.
1993 December
.SH 注意
以下のシグナルが
.I pppd
プロセスに送られた場合、ここで説明する効果が得られます。
.TP
.B SIGINT, SIGTERM
これらのシグナルを受信した場合、\fIpppd\fR は (LCP をクローズすることで )
リンクを切断し、シリアルデバイスの設定を復元して、プログラムを終了します。
.TP
.B SIGHUP
物理層のリンク切断を指示します。\fIpppd\fR はシリアルデバイスの設定を復元し、
プログラムを終了します。
\fBpersist\fR オプションが指定されている場合、 \fBpppd\fR は
シリアルデバイスを再オープンし、新しい接続を始めようとします。
そうでない場合は、 \fBpppd\fR は終了します。
.B SIGUSR2
このシグナルは、
.B pppd
に圧縮に付いて再交渉させます。これは、致命的な伸長エラーの結果として
圧縮を止めた後で、再び圧縮を有効にするために便利です。
BSD 圧縮方式では、致命的な伸長エラーは一般にどちらかの実装上の
バグである可能性を示します。
.\".SH バグ
.\"モデム制御線の使用と \fBmodem\fR オプション、\fBlocal\fR オプションの
.\"動作については、はっきりとは定義されていません。
.\"(訳中)前記原文には確認できないので、コメントアウトした。
.\" 2.2.1R 対象(1997/05/26) Takeshi MUTOH <mutoh@info.nara-k.ac.jp>
.SH 作者
Drew Perkins,
Brad Clements,
Karl Fox,
Greg Christy,
Brad Parker ,
Paul Mackerras (paulus@cs.anu.edu.au)