Comfortable Life with NetBSD

おうちで NetBSD (PPPの設定)

おうちで NetBSD といっても、特別なことはほとんどありません。 単に大学だと LAN 環境にいるけれども、家に帰ると電話回線でしか よその計算機とお話しできないって事だけです。そこで、 ここでは NetBSD 附属の pppd を用いて ppp 接続するための方法についてまとめます。

NOTE:福井医科大学内のユーザで防火壁内部から 見ている場合はてらに 大学に特化した物があります。そちらもあわせて御覧下さい。 NOTE2:これは古いバージョンです。新しいバージョンは こちらになります。


MENU

  1. カーネルの確認
  2. モデムの設定
  3. 手動接続
  4. Dial_On_Demand

カーネルのチェック

まずはともあれ、自分のカーネルが、ppp をサポートしているか確認しましょう。

[tamp]~% /sbin/ifconfig -a
...
ppp0: flags=8010<POINTTOPOINT,MULTICAST> mtu 1500
ppp1: flags=8010<POINTTOPOINT,MULTICAST> mtu 1500
...

と出てくればサポートしています。(一つあれば十分です。) 出てこないばあいは カーネルの configuration file に
pseudo-device ppp 2 # PPP
という行を付け加えて(別に 0 でなければいくつでもかまいません) カーネルを作り直しリブートをかけます。

モデムの設定

次は modem の設定確認です。 root になって /etc/remote に次の行を加えてください。

    # test modem entry
    my_modem|caf56k:\
    	:dv=/dev/tty01:br#9600:dc:
  

br は今テストに用いるだけなので 9600 でかまいませんが、dv には 正しく modem のつながっている device 名を指定しましょう。 さて準備が出来たので modem とお話ししてみます。

[tamp]/root# tip my_modem
connected
at
OK

ここまでくれば、modem ときちんとお話しできる環境になっています。 Modem のマニュアルを片手に必要なセットアップを行ってください。 ちなみに私の modem で現在の設定を表示させると次の様になりました。

at&v
ACTIVE PROFILE:
B0 E1 L3 M1 N1 P Q0 V1 W0 X4 Y0 &C1 &D2 &K3 &Q5 &S0 &T5 &Y0
S00:000 S01:000 S02:043 S03:013 S04:010 S05:008 S06:004 S07:050 S08:002 S09:006
S10:014 S11:070 S12:050 S18:000 S25:005 S26:001 S36:007 S37:000 S38:020 S44:020
S46:138 S48:007 S95:000 

STORED PROFILE 0:
B0 E1 L3 M1 N1 P Q0 V1 W0 X4 Y0 &C1 &D2 &K3 &Q5 &S0 &T5 
S00:000 S02:043 S06:004 S07:050 S08:002 S09:006 S10:014 S11:070 S12:050 S18:000
S36:007 S37:000 S40:104 S41:195 S46:138 S95:000 

STORED PROFILE 1:
B1 E1 L3 M2 N1 Q0 T V1 W1 X4 Y0 &C1 &D2 &K3 &Q5 &S0 &T5 
S00:000 S02:043 S06:004 S07:050 S08:002 S09:006 S10:014 S11:070 S12:050 S18:000
S36:007 S37:000 S40:104 S41:195 S46:138 S95:046 

TELEPHONE NUMBERS:
0=                                     1=
2=                                     3=

OK

現在の設定を記憶することが出来る modem ならば設定した物を記憶させておくと あとあと便利です。私は STORED PROFILE 1 に記憶させました。 modem と話をするのを止めるのには "~." を入力します。

補記: いつの頃からか忘れてしまいましたが、 pcmcia のモデムカードを使っているせいか、最初の at に 反応しないときがあります。その際は "~#" を入力して break 信号を送ってみてください。

手動接続

必要な時に自分で pppd を立ち上げてネットワーク設定を行う 方法です。自動接続と違って一々しないといけない面倒くささはありますが、 思いもかけないときに勝手に電話されないので、まずこちらでつなぐことに しましょう。 次の様なファイルを作成します。基本的には pppd(8) に書いてあることと 同じですから、よくわからないときには参照してください。

さて以上のファイルを準備できれば、
[tamp]~% /usr/sbin/pppd call mygate
と入力すれば電話をかけはじめつながります。つながってしまえば、
[tamp]~% telnet <IP_Address>
とすれば外部の計算機につながるでしょう。もちろん、 /etc/resolv.confをきちんと設定しておけば名前でもつながります。 複数のプロバイダと契約している場合には同様にして peers と chats ディレクトリの下に設定ファイルを作ります。peers/mygate 中の connect 行にあるスクリプト名も忘れずに変えてくださいね。

あと、/etc/ppp/ip-up とか /etc/ppp/ip-down とかに つながった時と切れた時に行うコマンドを書くことが出来ますが、必須ではありません。 一応例題を。

    #!/bin/sh
    # /etc/ppp/ip-up
    /bin/echo `/bin/date` PPP: IP up:   $1 on $2 at ${3}b/s from $4 to $5 > /dev/console
    #!/bin/sh
    # /etc/ppp/ip-down
    /bin/echo `/bin/date` PPP: IP down: $1 on $2 at ${3}b/s from $4 to $5 > /dev/console
このようにしておくと PPP の状態が変化したときに console に通知されます。 これらのコマンドはスーパーユーザ権限で起動されるので security には十分 注意する必要があります。また、すべての入出力は /dev/nullに つながれていることにも注意しましょう。

Dial_On_Demand

必要な時にだけ電話を勝手にかけるようにするためには 上にあげたファイルの内、次のファイルだけをほんの少し 変更する必要があります。

/etc/ppp/peers/mygate

    # mygate dial on demand version
    demand
    :<ip_of_pppserver>
    ipcp-accept-local
    ipcp-accept-remote
    noipdefault
    idle 60
    connect '/usr/sbin/chat -v -f /etc/ppp/chats/mygate'
    noauth
    netmask 255.255.255.0

マニュアルによれば remote 側の IP address が指定されていないばあいには dial on demand は出来ないようにみえます。しかしながら ipcp-accept-remote option をつけていると 相手が自分の IP を言ってきたときに動的に変わるので わからないときは適当に設定してしまえばいいです。 嘘の gateway を指定していても接続後の routing table は書き直されます。 違っていた場合は syslogd にdaemon.warning で通知されますから、 log file を見れば正しい remote IP がわかります。あるいは接続中に netstat -rn の出力を見てもわかります。 ちなみに、"<" と ">" は必要ありません。 直接 IP address を書きます。

また、さきほどは必須ではなかった、/etc/ppp/ip-down が 必須になります。

    #!/bin/sh
    # ip-down for dod
    /sbin/ifconfig $1 delete $4
    /bin/echo `date` PPP: IP down: $1 on $2 at ${3}b/s from $4 to $5 > /dev/console

さらに起動方法が若干 tricky になります。 (なんとなく、NetBSD 付属の pppd の bug くさいのですが、よくわかりません。) 必ずスーパーユーザになってから次のようにして起動します。

[tamp]/root# pppd call mygate && ifconfig ppp0 delete 0.0.0.0
起動しても電話かかりませんよね? ではおもむろに
[tamp]~% telnet xxxxxxxx
と打ってみましょう。電話がかかりはじめつながることでしょう。 ときどき、つながるのに時間がかかりすぎて、 time out を起すときにも ありますが、最初のコマンドが失敗するだけで別のコマンドはきちんと 動くはずです。

この Dial on Demand 設定を使うと思いがけないときに勝手に 電話をかけはじめるので cron などで起動されている scripts をチェックしておかないと、電話代が恐しいことになるかも 知れません。:-)


Return to Comfortable Life With NetBSD

Driven By NetBSD Accesses to this page:


Valid HTML 4.0! tacha@tack.fukui-med.ac.jp
$Tera: netbsd_at_home1.html,v 1.1 2001/08/23 08:46:29 tacha Exp $