PPP を拡張した PPxP というのもあるようです (真鍋さん のところを見てください)。 私は Slackware にもともと入っている PPP を使うことにしました。
とりあえず Slackware 3.4 に入っている PPP 2.2.0 で学校につながるようにしました。 /usr/sbin/ppp-on に電話番号とアカウント名,パスワードを書き込みます。 下から3行目の /dev/ttyS0 は COM1 のことです。 COM2 にモデムがつながっているなら /dev/ttyS1 にします。 IP アドレス類は自動で決まるので 0.0.0.0 のままでかまいません。 サブネットマスクは 255.255.255.0 です。
/etc/ppp/ppp-on/dialer のほうは,最後が
assword: $PASSWORDで終っていますが,うちの場合はダイヤル後にメニューが出て, Option: というプロンプトでPPP接続なら 1, 無手順接続なら 2 を入れなければならないようになっていますので,ここは
assword: $PASSWORD \ ption: 1のように追加します。 また,中程で TIMEOUT 30 となっているところは,60 くらいにしないと私の自宅(市外)からではタイムアウトになってしまいました。
さらに,/etc/resolv.conf には
domain matsusaka-u.ac.jp nameserver 192.244.75.X nameserver 192.244.75.Yのように書き込みます(X,Y は実際は数字です)。
これで root になって ppp-on と打ち込めば, 自動的につながります。 別の窓で tail -f /var/log/messages でも実行しておけば,接続の様子がリアルタイムにわかります。 Windows 95 で「接続後にターミナルウインドウを開く」 などとして手で打ち込んでいたときよりずっと楽になりました。 仕事が終れば ppp-off と打ち込めば電話が切れます。
上の手順では Biglobe に接続できませんでした。 Biglobe が PAP を使っているためと思われます。 面倒なので,pppsetup というツールを使って設定することにしました。 このツールは Linux の配布によっては入っていると思いますが, たまたまうちのものには入っていませんでした。
SunSITE のミラーの ppp ディレクトリ,たとえば ftp://ftp.riken.go.jp/pub/Linux/sunsite/system/network/serial/ppp に最新の ppp および pppsetup が入っています。 これを書いている時点では次のようになっていました。
-r--r--r-- 1 archive archive 668649 Apr 24 02:11 ppp-2.3.4.tar.gz -r--r--r-- 1 archive archive 108488 Jul 7 08:30 pppsetup-2.02.tar.gz
このうち pppsetup だけもらってきました。
これを展開して,次のようにしました。
su mv pppsetup /usr/sbin mv chat /usr/sbin pppsetup
pppsetup がいろいろ聞いてきますので,適当に答えます。
これで OK です。あとは ppp-go と打ち込むだけで PPP 接続できます。 切るのは従来どおり ppp-off です。
ありがたいことに, /etc/resolv.conf 以外は,従来のファイルは上書きされませんでした。 そこで,大学に接続するためには ppp-on, そこで,Biglobe に接続するためには ppp-go でとりあえず使うことにしました。
/etc/resolv.conf については, 上記の二つのシェルスクリプトの適当なところに
ln -sf /etc/resolv.conf.b /etc/resolv.confまたは
ln -sf /etc/resolv.conf.m /etc/resolv.confと書いておいて,二つの /etc/resolv.conf.? から自動的に選ぶようにしました。 /etc/resolv.conf の書き方については man 5 resolver してください。
電話代が気になるので,超簡単な接続時間表示プログラムをつくりました。
#include <iostream.h> #include <stdlib.h> #include <time.h> #include <unistd.h> int main(int argc, char *argv[]) { time_t t = time(0); if (argc > 1) t -= atoi(argv[1]); while (1) { cerr << time(0) - t << " \r"; sleep(1); } }
これを g++ でコンパイルして,ppp-on スクリプトの最後に起動するようにしておきます。 その際,exec /usr/sbin/pppd ... となっている行の exec は削除しなければなりません。 つまり,このファイルの最後を次のようにするわけです。
/usr/sbin/pppd debug lock modem crtscts /dev/ttyS0 38400 \ asyncmap 20A0000 escape FF kdebug 0 $LOCAL_IP:$REMOTE_IP \ noipdefault netmask $NETMASK defaultroute connect $DIALER_SCRIPT /usr/local/bin/mytimer -19
うちの場合はちょうど -19 秒から始めれば 0 秒のときに電話がつながりました。 これで 180 秒になるまでぎりぎり使います。
リンクはご自由にどうぞ。
松阪大学 奥村晴彦 okumura@matsusaka-u.ac.jp
Copyright (c) 1998 Haruhiko Okumura. Last modified: Mon Sep 14 12:00:57 1998