Last Update: "2009/10/16 08:14:31 makoto"
ppp
【ppp 接続について -- 手動】
ダイアルアップを使ってインターネットに接続する方法についてです。
いまどき ppp は使わないのでは ? と思いますが、例えば PHS 回線から接続する時には
これを使います。もし自営で isdn +
Yamaha router
(RT-50 等)を使って受口
を用意している場合には、この方法が使えます。
ここでは pppd を
使います。man pppd が参考になります。まずは手動で接続出来るか確認します。必要な設定
は大体次のようなものです。
譜名 設定内容
/etc/ppp/options ppp 共通の設定を書きます
/etc/ppp/pap-secrets 認証に関する情報(要するにパスワード)
/etc/ppp/chap-secrets を書きます。
/etc/ppp/peers/isp 接続先(isp) 固有の設定(情報)を書きます
/etc/ppp/chats/internal 接続の最初の会話の設定です。
上記 peers/isp の中に書いてしまってもいいの
ですが別に分けておきます。
上の設定内容については順に説明しますが、これらを設定した上で
起動 # /usr/sbin/pppd call isp (isp という名前の設定を使って起動・接続)
停止 # kill `cat /var/run/ppp0.pid`
状態を見る % pppstats
記録 /var/log/message
/var/log/daemon.debug (*1)
のようにします。では設定内容を見て行きます。
【/etc/ppp/options】共通設定です
ppp で接続先がいくつかある時に、全てに共通な設定を書くと便利です。注釈は # です。
tty00 # modem port
115200 # DTE speed
crtscts # use hardware flow control
# modem # モデムの制御信号を見ます(既定値)
lock # UUCP 方式の lock file を使います
debug # うまく行けばこの行は後で消します
192.168.100.3:192.168.100.1 # 自分:相手の書式です(この行は通常無で大丈夫です)
最後の行については
「IP address は : の書式で、local-IP の
初期値は自分の(最初の) どちらも省略可。機械の名前で書いてもいいし、数字で書
いてもいい。もし remote IP address が省略されている時は相手方からもらう。と
いう訳で、この行は何もなくてもいい。」
と man ppp(8) に書いてあります。ここに何か書いてあって、しかも ipcp-accept-local と
か ipcp-accept-remote がないと、書いてあるアドレスだけを使います。(書いてなくても
相手から指定されたものを使うので、通常は不要です)
【/etc/ppp/pap-secrets】認証
+-----------------------
my_login * encrypted_passwd *
encrypted_passwd の部分は、生(暗号化する前)の平文でも良いようですが、crypt() 形式で
書いておくことにします。
crypt の使い方(作り方)
一つの方法は、crypt 関数を使うことです。例えば perl を使って次のようにします。
perl -e 'print crypt("your_plain_passwd","xx"),"\n"'
これの説明は、perldoc -f crypt、あるいは man crypt で得られます。
xx は種 (seed) で、何でも良い文字二文字(以上)です。二文字以上入力しても無視
されます。生成文字列にはの二文字が含まれますが、それも結果の内です。
この二つの引数が同じ時には、必ず同じ暗号化文字が得られます。
crypt 生成その二
あるいは、
vipw で見えるものをそのまま写すという方法もあります。
実際にその方法で
どのようにして文字列を作るかを説明します。例えば次のような行を vipw の中で追加します。
+-------- vipw の画面 -----------------
my_login:*:2000:200::0:0:Dialup Account generation:/export:/bin/tcsh
そうして、my_login に passwd -l を使ってパスワードを設定します。実際には次のように
します。
passwd -l の様子
# vipw
# passwd -l my_login
Changing local password for my_login.
New password: --- (1)
Retype new password: --- (2)
# vipw
(ここで (1),(2) の password: のところでは test12345 と二回入れました)。
すると、先ほど vipw で入力した行を (もう一度 vipw と入力して) 見ると、
+-------- vipw の画面 -----------------
my_login:oYdufIp0r1Kd6:2000:200:Dialup Account generation:/export:/bin/tcsh
のようになっているので、そのコロン(:) にはさまれた 「oYdufIp0r1Kd6」の部分を
次のように pap-secrets に記入します。
# /etc/ppp/pap-secrets ---------------------
my_login * oYdufIp0r1Kd6 *
ここで vipw で作った my_login の行は、上記の文字列が必要だったからだけなので、
もう不要ですから、ここで消しておきます。
【/etc/ppp/peers/isp】接続先個別の呼出し情報を書いておくと便利です。ここでは
isp という名前の接続先の情報を用意して見ます。
# ---------- /etc/ppp/peers/isp ---------------------
defaultroute
connect '/usr/sbin/chat -f /etc/ppp/chats/internal -T 123-4567'
noauth
user my_login
ipcp-accept-local
ここで
defaultroute 接続中はネットワークの出口を接続先にするという意味です
123-4567 接続先の電話番号を書きます
noauth 相手については認証を要求しない。の意味です(相手が本当に本物かは信
じて確認しない)
ipcp-accept-local
こちら側 (local) の設定は、相手の言ったものを受入れるの意味です。
(もし Connet script failed となる場合には次のように -v
を加えておいて様子を見るのも一つの方法です
connect '/usr/sbin/chat -v -f /etc/ppp/chats/internal -T 123-4567' )
【/etc/ppp/chats/internal】モデムとの会話の設定です
ABORT "NO CARRIER"
ABORT "NO DIALTONE"
ABORT "NO ANSWER"
ABORT "ERROR"
ABORT "BUSY"
"" "at"
"OK-\Kat-OK" "atd\T"
CONNECT ""
右側の文字列が表示されたら左側の作業をするというような対応をこの中で設定します。
ここまでの設定が合っているかを次のようにして確認するのも一つの方法です。
(略)
【つないで見る】
以上を設定したら、次のようにつないで見ます。
/usr/sbin/pppd call isp
筆者が試した時には (iBook なので)音が出ませんでした。そうしてつながっても、特に何も
起きませんので、
/var/log/messages
/var/log/daemon.debug (*1) 等を確認します。
うまく行ってそうだったら
% ping -n ftp.jp.netbsd.org
% traceroute -n ftp.jp.netbsd.org
% netstat -nr | head -15
などをして見ます。接続を切るには
# kill `cat /var/run/ppp0.pid`
とします。
(注*1)
/var/log/daemon.debug に表示させるには、
/etc/syslog.conf に
daemon.debug (TAB) /var/log/daemon.debug
という行を用意して、touch /var/log/daemon.debug をして、更に
# kill -1 `cat /var/run/syslogd.pid` とします。
【ppp 接続について -- 自動】
今度は自動で接断するようにして見ます。demand という字を加えればいいのですが、その他
に少し設定を加えます。
【/etc/ppp/peers/on-demand】
/etc/ppp/peers/isp を写してから demand で始まる最後の五行を加えて on-demand とします。
# cd /etc/ppp/peers
# cp isp on-demand
# --------- /etc/ppp/peers/on-demand -----
defaultroute
connect '/usr/sbin/chat -f /etc/ppp/chats/internal -T 123-4567'
noauth
user my_login
ipcp-accept-local
demand
ipcp-accept-remote
idle 90
192.168.30.100:192.168.30.101
usepeerdns
これらの設定について順に説明しますと
demand 要求があった時に自動でつなぎます
この時には ip address を何か指定しておく必要があります。
(上の 192. で始まる行が必要になります。但しあればいいので、内容
は何でも構いません)
ipcp-accept-remote 相手側のアドレスについて、相手から設定があれば、それを使います。
idle 90 90 秒間何も通信がないと切ります
proxyarp 「代理 arp をやってね」ということは接続先の Ethernet に
つながっているように見えるようにお願いします。
usepeerdns
相手の DNS を使うという指定をします。これは
/etc/ppp/ip-up に DNS1, DNS2 という変数で渡される
/etc/ppp/resolv.conf にこれらの値を使って設定を作るという意味になります。
以上で設定は終りです。これで後は通常のように TCP/IP を使った通信をすれば、自動
的に接いだり切ったりしてくれます。
|