FreeBSD による PPP 接続方法

本稿では、FreeBSD と PPP に関する簡単な基礎知識と、 FreeBSD による姫路工大アクセスサーバ への PPP 接続に関する設定方法等について紹介する。
【3. FreeBSD での PPP 〜設定基礎編〜】


PPP では様々な接続方法・モデム関連設定が詳細に可能であるが、 本稿では姫路工大のアクセスサーバを利用する場合の設定方法に絞って解説する。

使用するモデムは、 接続先の機器の性能や電話回線状態に依存するが、 DCE (データ回線終端装置) 速度 が速い程レスポンスがよいであろう。 モデムの基本設定としては、

  1. フロー制御には RTS (Ready To Send) / CTS (Clear To Send) 信号を使用
  2. DCD (Data Carrier Detect) 信号はキャリア検出に同期
  3. DTR (Data Terminal Ready) 信号オフで回線を切断
  4. DTE (Data Terminal Equipment) 速度は CPU などの性能に応じて出来るだけ高速に設定
として使用する。設定方法等は各モデムの取扱説明書を参照して欲しい。

FreeBSD での PPP クライアントプログラムとしては、 OS に附属している iij-ppp を使用する。 iij-ppp では、OS内からトンネルデバイスの /dev/tun を 用いて動作する。

iij-ppp の起動に必要なファイル (通常 /etc/ppp のディレクトリに置く) として、以下のものがある。
ppp.conf
モデムとの接続に関する設定・接続先に関する設定等のファイル。 インタラクティブに実行するコマンドをそのまま順に列挙したもの。
(~/.ppp.confがあるとこれを優先して読む)
ppp.linkup
相手側と接続した際に実行するコマンド記述ファイル。 主に routing を指定する。 (~/.ppp.linkupがあるとこれを優先して読む)
ppp.secret
接続相手を Password Authentication Protocol (PAP)/ Challenge-Handshake Authentication Protocol (CHAP) で 認証する際に参照するファイル
これらのファイルがなくとも、Kermit-like なユーザインターフェースにより 対話的に設定可能である。


3.1 ppp.conf

ppp.conf の表記規則は、次の通りである。

ラベルで定義されるコマンド群は、対話的に上から順次実行される。 下のリスト3-1は、姫路工大アクセスサーバへの接続するための 最も単純な ppp.conf ファイルの設定例である。
ppp.conf の設定例のリスト
[リスト3-1] ppp.conf の設定例
[表3-1] 通信フラグ
指定 設定 指定 設定
enable 自分側から相手側に対する
利用提案をする
disable 自分側から相手側に対する
利用提案を禁止
accept 相手側からの利用提案を受付 deny 相手側からの利用提案を拒否

[表3-2] 通信フラグのパラメータ
パラメータ 内容 デフォルトの設定
自分側 相手側
vjcomp VJヘッダ圧縮機能の動作制御 enable accept
lqr LQR (Link-Quality-Report) を使用する enable accept
chap 認証プロトコルにchapを使用する disable accept
pap 認証プロトコルにpapを使用する disable accept
acfcomp ACF 圧縮 (Address-and-Control-Field-Compression) を行なう enable accept
protocomp PFC (Protocol-Field-Compression) を行なう enable accept
pred1 Predictor Type1 圧縮を行なう enable accept
proxy arp (Address Resolution Protocol) table の対応付けを行なう disable deny

display コマンドの実行例
[図3a] display コマンドの実行例
[表3-3] 特殊シーケンス一覧
\d 2秒間待ち \p 0.25秒間待ち \s Space \t Tab
\r CR (Carriage-Return) \n LF (Line-Feed) ^X Ctrl-X \c CRを付加しない (送信時)
\\ Back-Slash \T phone値 \U authname値 \P+ authkey値

この様にラベルをつけてコマンドを登録すれば、

ppp起動例
[図3b] pppの起動例

としてコマンド群を自動的に実行出来る。 コマンド群の最後に dial コマンドを指定してあれば、 自動的にダイヤリングも行なう (設定していない場合は、更に括弧内の操作でダイヤリングを行なう)。


《用語説明》
モデム
modem: MOdulator / DEModulator
DCE (データ回線終端装置) 速度
レスポンス
14400bps ではレスポンスが遅く、28800bps で どうにか使用に耐えられる程度。 但し本稿執筆現在 (1997年1月末)、 姫路工大アクセスサーバ側で使用しているモデムは 28800bps である。
iij-ppp
IIJ (Internet Initiative Japan Inc.)の大野俊治氏を中心として 開発された PPP パッケージ。現時点ではバージョン0.94。 RFC1331,1332 準拠 (PPPの旧RFC)・LQRプロトコル (RFC1333) 実装・ PAP / CHAP 機能 (RFC1334)サポート ・Predictor Type1 及び CCP によるパケットデータ圧縮機能サポート。 但し、拡張LCP (RFC1570) には未対応。
トンネルデバイスの /dev/tun
通常の設定では、カーネルを再構築しなくともこのデバイスは用意されている。 昔のバージョンでは仮想デバイス /dev/ppp を使用していたので、 カーネルの再構築が必要であった。
PAPを使用
現在、姫路工大アクセスサーバ側での接続相手の認証方法としては、 接続後、認証が認識されるか connection が切断される迄、 ユーザ名とパスワードが繰り返し送られる…という PAP を使用している。

3.2 ppp.linkup

PPP では接続時に IPCP により、 接続先との間で双方が用いる IPアドレスを相談して決定する。 この際、使用希望アドレス (範囲) を設定したり、 routing指定を設定するファイルが ppp.linkup である。 現在の姫路工大アクセスサーバの設定であれば、 IPアドレスの決定も routing設定も 完全にサーバ側に「お任せ」状態にしておいてよい (リスト3-2)。

ppp.linkup設定例
[リスト3-2] ppp.linkupの設定例
この設定で、接続時のIPアドレスについては相手側である姫路工大アクセス サーバの提案を無条件に受け入れて決定し、さらに接続後にルーティング情報を 追加することで、経路を確保する。


3.3 ppp.secret

接続相手に自分を認証して貰う場合は authname/authkey 変数値が 使用されるが、逆に相手を自分が認証する際にはこのファイルでの設定が参照される。 書式は以下の通りである。

 相手認証名 認証password [IPアドレス範囲]

着信機能・コールバックなどをはじめとして、 接続相手側を自分が認証する様な設定になっている場合以外、 通常のPPPクライアント使用では何も記述する必要はないであろう。


3.4 PPP の起動

上記の設定で iij-ppp を起動してみる。 この使用方法では iij-ppp は tty を一つ占有するので、 tty を複数使用出来る環境 (仮想コンソールや Window System が使える環境) から行なう。起動時の画面表示例としては図3cの様になる。

ppp起動例
[図3c] ppp実行例
  1. ppp.confファイルに default: の定義部がない旨の警告
  2. Log levelの表示。ログに関しては次章参照
  3. ppp.secretファイルにpasswordエントリがない旨の警告
    これは上述した様に「相手を自分が認証する」際のpassword設定がない ので、「誰でも使える (=相手を認証しない) けどいいのか?」と 注意されているもの
  4. interface としてトンネルデバイス{\tt tun0}を使用する旨の表示
    ppp.confで device に指定したデバイス名でなく、PPPがOS内から 使用するデバイス名の表示
  5. ダイヤルし、相手とのネゴシエーションが完了したことを示す
    LCP (Link Control Protocol) によりリンクレベルでの情報を交換開始する
  6. 認証 (この設定ではPAP) が行なわれる。認証がOKと確認され IPCPの接続に成功すれば、プロンプトが小文字の 「ppp ON MyHost>」から 大文字の「PPP ON MyHost>」に変わる
プロンプトが変われば、接続・認証成功で Internetに継ったことになる PPPのセッションが正しく接続出来ているかなどの確認には、 ping/traceroute などで行なえばよい。
また現在の接続設定は show ipcpコマンドで確認出来る (図3d)。

show ipcp例
[図3d] show ipcp実行例

この例での150.12.xxx.aaaは、IPCPにより決定された相手側使用IPアドレス、 150.12.xxx.bbbは同様に決定された自分側使用IPアドレスである。

尚、PPP接続を終了する際には、まず closeコマンドでLCPを切断して 相手側との接続を終了し、quitコマンドで PPPプログラム自体を終了させる。 また、接続中に使用されていたルーティング設定は、 終了時に自動的に削除される。


《用語説明》
ttyを複数使用出来る環境
X Window Systemがベストである。
MyHost
``MyHost''はそのマシンのホスト名が入る。
Internetに継った
但し、現在の姫路工大アクセスサーバの PPPの設定では、直接学外へパケットを飛ばすことは出来ない様になっている。

目次へ / 第1章へ / 第2章へ / 第4章へ / 第5章へ

→ フレーム機能対応版 → Internet関連業績(笑)


by はやし はるひさ hayashi あっとまーく laic.u-hyogo.学術.日本