HardenedBSD/share/doc/ja_JP.EUC/handbook/userppp.sgml
Masafumi Max NAKANE a785ce7ee3 Bump the revision number in the Original revision: line by one iafter
all $Id$ changed to $FreeBSD$.
1997-01-15 13:16:51 +00:00

392 lines
16 KiB
Plaintext

<!-- $FreeBSD$ -->
<!-- The FreeBSD Japanese Documentation Project -->
<!-- Original revision: 1.11 -->
<sect> ユーザ PPP のセットアップ <label id="userppp">
<p><em>原作: &a.nik;<newline>
28 July 1995</em>.
<p><em>訳: &a.saeki;<newline>
11 November 1996</em>.
<!-- この FAQ または手引は, <em> ユーザレベル ppp</em> としても
知られている iijppp を, あなたの FreeBSD 2.0.5 (以降) で
動くようにすることを目的としています.
実は私は PPP の権威ではありません. ですから, このドキュメントが
協力の成果となってくれるよう望んでいます.
わたしは ppp を動かすことができるようになりましたので, 他の人もそれを
動かすことができるように, 私がやったことの詳細を伝えたいと思います.
しかし, 私はいくつかの細かい点について 100% 理解しているわけではありません.
そのため, このドキュメントを書くことにより他の人に情報を伝えるとともに,
私も何かを学びたいと思っています.
-->
<p> ユーザ PPP は FreeBSD 2.0.5-RELEASE において,
既存のカーネル実装版の PPP に加えて導入されました.
それでは, この新しい PPP が追加された理由となる ppp との違いは何でしょう ?
マニュアルから引用すると:
<quote>
これはユーザプロセス PPP ソフトウェアパッケージです. 通常 PPP は
(例えば pppd でそうなっているように) カーネルの一部として
実装されています. そのためデバッグや動作の変更が幾分困難です.
しかしこの実装では, PPP はトンネルデバイスドライバ (tun) の
補助により, ユーザプロセスとして実装されています.
</quote>
これは本質として, 常に PPP デーモンを実行しておかないでも,
必要な時に ppp プログラムを実行できるということを意味します.
このプログラムはカーネルとのデータ送受のために一般のトンネルデバイスを
使うことができるため, PPP インターフェースをカーネルに組み込んでおく
必要がありません.
以降では, ユーザ ppp と他の PPP クライアント / サーバソフトウェアとを
区別する必要がないので, ユーザ ppp を単に ppp とだけ呼びます.
特に断らない限り, このセクションのすべてのコマンドは root 権限で
実行されるべきです.
このセクションでアスタリスクマーク (*) のついている部分は不完全です.
コメントや提案は歓迎しますので, &a.nik; まで送ってください.
私が最初にユーザ ppp を実験していた時に, 価値ある情報の宝庫となってくれた
Rob Snow &lt;rsnow@txdirect.net&gt に感謝します.
訳者注: このユーザ ppp は iij-ppp0.94(beta2?) に由来しています.
作者の大野さんは日本の方ですので, iij-ppp には詳細な日本語
ドキュメントが附属しています. オリジナルアーカイブ
(iij-ppp0.94beta2.tar.gz) を入手して, そちらを参照されることを
強くおすすめします.
<sect1><heading> スタートの前に </heading>
<p> このドキュメントでは, あなたが大体以下のような状況にあると仮定しています:
PPP 接続の使えるインターネットサービスプロバイダ (ISP) のアカウントを
持っている. さらに, 接続済みのモデム (または他のデバイス) があり,
プロバイダとの接続が可能なように正しく設定されている.
以下の情報を手に入れておく必要があるでしょう:
<itemize>
<item> プロバイダのゲートウェイの IP アドレス
<item> プロバイダのネットマスク設定
<item> 一つ以上のネームサーバの IP アドレス
<item> もしプロバイダが固定の IP アドレスとホスト名を割り当ててくれるなら,
同様にそれも必要でしょう. そうでなければ, どの IP アドレス範囲から
割り当てがおこなわれるかを知っておく必要があるでしょう.
</itemize>
もしこれらの情報のうち不明なものがあれば,
プロバイダに連絡して確認しておいてください.
同様に, カーネルを再コンパイルするためのファイルが必要になるかもしれません.
これらを手に入れる方法の詳細については <ref id="kernelconfig" name="FreeBSD
カーネルのコンフィグレーション"> を参照してください.
加えて, インターネットへの接続は常時おこなわれているものではなく,
そのためネームサーバ (<tt>named(8)</tt>) を立ち上げていないと仮定しています.
<sect1><heading>ppp 対応カーネルの構築 </heading>
<p> 説明でも述べているように, ``ppp'' はカーネルの ``tun'' デバイスを使います.
そのため, このデバイスがカーネルに組み込まれていることの確認が不可欠です.
これを確認するためには, カーネルコンパイルディレクトリ
(おそらく /sys/i386/conf) に移動して, カーネルコンフィグレーション
ファイルを調べます. 以下の行がどこかに含まれている必要があります.
<tscreen><verb>
pseudo-device tun 1
</verb></tscreen>
元々の GENERIC カーネルは標準でこれを含んでいますので, カスタムカーネルを
インストールしていなければ, 何も変更する必要はありません.
あなたのカーネルコンフィグレーションファイルに
この行が含まれていなければ, この行を追加して
カーネルの再コンパイルとインストールをおこなう必要があります.
この新しいカーネルを使ってブートしてください.
カーネルコンフィグレーションの詳細については,
<ref id="kernelconfig" name="FreeBSD カーネルのコンフィグレーション">
を参照してください.
<sect1><heading>tun デバイスのチェック </heading>
<p> 私は一つの ``tun'' デバイス (tun0) による ppp の経験しかありません.
より多くのデバイスを使う場合 (すなわち, カーネルコンフィグレーション
ファイルで疑似デバイスの行に `1' 以外の数値が指定されている場合),
以下のすべての ``tun0'' に対する参照を, あなたが使うデバイスの番号に
あわせて変更してください.
tun0 デバイスが正しく設定されていることを確認する最も簡単な方法は,
それを作り直すことです. そのためには, 以下のコマンドを実行します:
<tscreen><verb>
# cd /dev
# ./MAKEDEV tun0
</verb></tscreen>
<sect1><heading>PPP の設定 </heading>
<p> これが問題の核心です.
まぎらわしいことに, ユーザ ppp と pppd (カーネルレベルの PPP 実装) は
ともに, 設定ファイルが /etc/ppp に置かれていると仮定しているようです.
しかし, 提供されているサンプル設定ファイルはユーザ ppp 用のものですので,
参照のため手元に置いておきます.
これをおこなう最も簡単な方法は, 以下の通りです:
<tscreen><verb>
# cd /etc
# mv ppp ppp.orig
# mkdir ppp
</verb></tscreen>
ppp を設定するためには, 必要に応じて一~三つのファイルを
編集する必要があります. 書き込む内容はプロバイダが静的に IP アドレスを
割り当てる (すなわち, 一つの IP アドレスが与えられて, 常にそれを使う) か,
または動的に IP アドレスを割り当てる (すなわち, PPP セッション毎に
IP アドレスが異なる可能性がある) かにある程度依存します.
しかし, 静的な IP アドレスを使うか動的な IP アドレスを使うかにかかわらず,
最初にやらなければならないことがいくつかあります.
<sect2><heading>resolver(5) の設定 </heading>
<p>リゾルバ (resolver) はネットワーキングシステムの一部分で, IP アドレスと
ホスト名の変換をおこないます. これは, IP アドレスとホスト名を対応づける
マップを二つの場所のうちの一つから探すように設定できます.
一つめの場所は <tt>/etc/hosts</tt> (<tt>man 5 hosts</tt>) と呼ばれる
ファイルです.
二つめの場所は, 分散データベースである, インターネットドメイン
ネームサービスです. これに関する議論はこのドキュメントの範囲を
越えています.
リゾルバはマッピングをおこなうシステムコールの集合です.
どこからマッピング情報を得ればよいかはあなたが指示しなければなりません.
これは <tt>/etc/host.conf</tt> ファイルを編集することでおこないます.
混乱する可能性があるので, このファイルを <tt>/etc/hosts.conf</tt> と
呼んでは <bf> いけません </bf> (余分な ``s'' に注意).
このファイルは以下の 2 行を含んでいるはずです.
<tscreen><verb>
hosts
bind
</verb></tscreen>
これは, 最初に <tt>/etc/hosts</tt> ファイルを調べ,
目的の名前が見つからなければ DNS を引きにいくようリゾルバに指示します.
このマシンで ``named'' サービスが走っていないことを確認しておいた方が
良いでしょう.
<tt>/etc/sysconfig</tt> ファイルをチェックして ``namedflags'' の行を探し,
以下のようになっていることを確認します.
<tscreen><verb>
namedflags="NO"
</verb></tscreen>
<sect2><heading>/etc/hosts(5) ファイルの作成 </heading>
<p> このファイルはローカルネットワーク上に存在するマシンの IP アドレスと
ホスト名を含んでいるはずです. 最低でも ppp を動作させるマシンのエントリを
含んでいなければなりません. あなたのマシンのホスト名が foo.bar.com で,
IP アドレスが 10.0.0.1 であると仮定すると, <tt>/etc/hosts</tt> は
以下の行を含んでいなければなりません:
<tscreen><verb>
127.0.0.1 localhost
10.0.0.1 foo.bar.com foo
</verb></tscreen>
最初の行は別名 ``localhost'' を現在のマシンの同義語として定義しています.
固有の IP アドレスによらず, この行の IP アドレスは常に 127.0.0.1 で
なければなりません. 二つめの行はホスト名 ``foo.bar.com''
(そして別名 ``foo'') を IP アドレス 10.0.0.1 にマップします.
もしプロバイダが固定の IP アドレスを割り当ててくれるなら,
それを 10.0.0.1 のかわりに使ってください.
<!-- XXX <em>(* IP アドレスの割り当てが動的におこなわれる場合は
どうするべきか ?)</em> -->
<sect2><heading> /etc/resolv.conf ファイルの作成 </heading>
<p><tt>/etc/resolv.conf</tt> はネームサーバをそのマシンで走らせていない場合に
必要となる特別な情報を含んでいます. これは実際のネームサーバの位置を
リゾルバルーチンに指示したり, その他いくつかの情報を指定したりします.
少なくとも <tt>/etc/resolv.conf</tt> は問い合わせ可能なネームサーバを
示す 1 行を含んでいる必要があります.
これは (ホスト名ではなく) IP アドレスで書かれていなければなりません.
私の <tt>/etc/resolv.conf</tt> は以下の行を含んでいます:
<tscreen><verb>
nameserver 158.152.1.193
nameserver 158.152.1.65
</verb></tscreen>
これはプロバイダ Demon Internet の二つのネームサーバです.
あなたのプロバイダのネームサーバ行をすべて書いてください.
<sect1><heading>PPP と静的 IP アドレス </heading>
<p> これはおそらく設定が最も楽でしょう. 必要なのは <tt>/etc/ppp</tt>
ディレクトリにファイルを三つ作成することだけです.
一つめのファイルは <tt>ppp.conf</tt> です. 以下の例と似たような
ものになるでしょう. ``:'' で終る行は 1 カラム目から始まり, その他の行は
この例の通りにインデントされるべきだということに注意してください.
<tt>/etc/ppp/ppp.conf</tt>
<tscreen><verb>
1 default:
2 set device /dev/cuaa0
3 set speed 9600
4 disable lqr
5 deny lqr
6 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" ATE1Q0 OK-AT-OK
\\dATDT\\T TIMEOUT 40 CONNECT"
7 provider:
8 set phone 01234567890
9 set login "TIMEOUT 10 gin:-BREAK-gin: foo word: bar col: ppp"
10 set timeout 120
11 set ifaddr x.x.x.x y.y.y.y
</verb></tscreen>
行番号はファイルには含めないでください. これは説明のためのものです.
<descrip>
<tag/Line 1:/ デフォルトエントリを指定します. このエントリ中のコマンドは
ppp が起動された時に自動的に実行されます.
<tag/Line 2:/ モデムが接続されているデバイスを指定します.
COM1: は <tt>/dev/cuaa0</tt> で,
COM2: は <tt>/dev/cuaa1</tt> です.
<tag/Line 3:/ 接続速度 (DTE 速度) を設定します.
<tag/* Lines 4 and 5:/ 私はこれらの行がどんな影響を持つかを正確には知りません.
訳者注: LQR 要求および受付を禁止します.
これを有効にすると, 定期的に LQR パケットを送って
相手側が正常に動作しているかどうかを確認します.
LQR が使えない場合は LCP ECHO を使って確認をおこないます.
LQR の詳細については RFC1333 を参照してください.
<tag/Line 6:/ ダイアルスクリプトです. ユーザ ppp は <tt>chat(8)</tt> 言語を
使用します. この言語の仕様についての情報はマニュアルを
参照してください.
<tag/Line 7:/ 接続するプロバイダの名前を ``provider'' として指定します.
<tag/Line 8:/ プロバイダの電話番号を設定します. 電話番号にはスペースを
含めないでください.
<tag/Line 9:/ ログインスクリプトを設定します.
この例は, 以下のようなログインセッションを持つ
プロバイダのためのものです.
<tscreen><verb>
J. Random Provider
login: foo
password: bar
protocol: ppp
</verb></tscreen>
このスクリプトを必要に応じて書き換える必要があるでしょう.
これは <tt>chat(8)</tt> 言語で書かれています.
<tag/Line 10:/ デフォルトのタイムアウトを (秒数で) 設定します.
この例では, 120 秒間通信がおこなわれなければ, 自動的に接続が
切られます.
<tag/Line 11:/ インターフェースアドレスを設定します. 文字列 x.x.x.x は
プロバイダに割り当てられた IP アドレスで置き換えてください.
文字列 y.y.y.y はプロバイダによりゲートウェイとして指示された
IP アドレスで置き換えてください.
</descrip>
次に <tt>/etc/ppp/ppp.linkup</tt> ファイルを編集しなければなりません:
<tscreen><verb>
x.x.x.x:
add 0 0 HISADDR
</verb></tscreen>
先ほどと同じように x.x.x.x をあなたの IP アドレスで置き換えます.
このファイルは, あなたのマシンからプロバイダ (HISADDR マクロは
プロバイダのアドレスで自動的に置き換えられます) へのルートを
デフォルトルートとして自動的に追加するのに使われます.
最後に, <tt>/etc/ppp/ppp.secret</tt> ファイルを作成します.
同じ ppp システムを使う他のユーザの不正使用を防ぐためパスワードを
設定します. どれだけの人がこの ppp システムを触るかによって,
これを設定したいと思うかもしれません.
<sect1><heading>PPP と動的 IP 設定 </heading>
<!-- XXX -->
<p> プロバイダから静的な IP アドレスの割り当てを受けていない場合,
ローカル IP アドレスとして 0 を指定することで <tt>ppp</tt> が
リモートホストとの交渉によりローカルアドレスを決定するように設定できます.
<tscreen><verb>
set ifaddr 0 0
</verb></tscreen>
詳細については <tt>ppp(8)</tt> のマニュアルを参照してください.
<sect1><heading> システムの最終設定 </heading>
<p> これで PPP の設定は終りました. しかし PPP の動作準備が完了するのには
もう少し必要なことがあります.
それはすべて <tt>/etc/sysconfig</tt> ファイルの編集に含まれています.
このファイルを上から順に設定していきます. まず ``hostname='' の行が
設定されていることを確認します. 例えば,
<tscreen><verb>
hostname=foo.bar.com
</verb></tscreen>
次に network_interfaces 変数を探し, tun0 デバイスがリストに追加されて
いることを確認します. 私の設定では以下のようになっています.
<tscreen><verb>
network_interfaces="lo0 tun0 ep0"
</verb></tscreen>
他に私はイーサネットカード (ep0) も持っているので, 同様に設定しています.
次に tun0 デバイスのための ifconfig 行を追加します.
それは以下のようなものになるでしょう.
<tscreen><verb>
ifconfig_tun0="inet foo.bar.com y.y.y.y netmask 0xffffffff"
</verb></tscreen>
先ほどと同じように, ``foo.bar.com'' はあなたのホスト名に,
y.y.y.y はプロバイダのゲートウェイの IP アドレスに, 0xffffffff は
(16 進で) プロバイダから指定されたネットマスクに変更します.
ネットマスクとしては以下の二つの値がよく用いられます.
<tscreen><verb>
255.255.255.255 = 0xffffffff
255.255.255.0 = 0xffffff00
</verb></tscreen>
routed フラグを以下のように ``-s'' に設定します.
<tscreen><verb>
routedflags=-s
</verb></tscreen>
``sendmail_flags'' 行が ``-q'' オプションを含まないようにしておくことは,
おそらく, やっておくだけの価値があるでしょう.
さもなければ, ネットワークからアドレスを引こうとして sendmail が
時々発信をおこなってしまうでしょう. 私の sendmail 行は次の通りです.
<tscreen><verb>
sendmail_flags="-bd"
</verb></tscreen>
この結果, 私は PPP リンクを立ち上げた時はいつでも以下のようにタイプして,
sendmail に mailqueue を調べ直させなければなりません.
<tscreen><verb>
# /usr/sbin/sendmail -q
</verb></tscreen>
これが静的 IP アドレスで PPP を動作させるために必要なすべてのはずです.
後はマシンをリブートするだけです. スタートアップの間に tun0 デバイスが
検出され, 以下のような 2 行が表示されると思います.
<tscreen><verb>
tun0: flags=51<UP,POINTOPOINT,RUNNING> mtu 1500
inet x.x.x.x --> y.y.y.y netmask 0xffffffff
</verb></tscreen>
この時点で, ppp は完全に動作するはずです. 以下のうち好きなほうを
タイプしてください.
<tscreen><verb>
# ppp
</verb></tscreen>
その後 PPP セッションを開始させるために ``dial provider'' をタイプします.
または, 外向きのトラフィックが発生した時に ppp が自動的にセッションを
確立してくれるようにしたければ, 以下をタイプします.
<tscreen><verb>
# ppp -auto provider
</verb></tscreen>
この行を <tt>/etc/rc.local</tt> ファイルに追加しておくのも良いでしょう.