NetBSD の ppp を使って DTI に接続する


ここでは私が使っている ceres.dti.ne.jp ドメインに接続する場合の例を挙げます。 他のドメインに接続している人または他のプロバイダに接続している方は、 ドメイン名/name server のアドレス/login アカウント等を適時読みかえて下さい。

  1. /etc/resolv.conf の設定
  2. resolv.conf については man resolv.conf すると出てきますが、要は www.ceres.dti.ne.jp といった domain 名を含むホスト名を IP アドレスに変換する際の手続きや ルールなどを記述するファイルです。
    これは以下のように記述します。


    nameserver 202.216.224.67
    nameserver 202.216.224.66
    domain ceres.dti.ne.jp
    lookup file bind

    nameserver のところには文字通りプロバイダから指定される name server の IP アドレスを記述します。たいていは 二つのアドレスを指定されると思うのでそれらを列挙します。

    domain は接続するプロバイダのドメイン名です。DTI ならば ceres.dti.ne.jp などですし、リムネットなら na.rim.or.jp などです。

    lookup はホスト名を IP アドレスに変換する際に /etc/hosts の参照と Domain Name Server(DNS) に対する問い合わせとのどちらを先に 行なうかということを指定します。

    file/etc/hosts の参照を、 yp は NIS を利用した問い合わせを、 bind は DNS を利用した問い合わせを示し、 参照させたい順序にこれら 3つを スペースで区切ってならべて記述します。 通常はスタンドアローンのマシンでは NIS は走っていないでしょうから file bind の順で指定すればよいと思います。


  3. pppd の設定
  4. DTI で提供しているサービスはダイアルアップ PPP 接続のみなので、 NetBSD で DTI に接続するためには pppd を利用する必要があります。 FreeBSD では IIJ-ppp の方がよく使われているようですが、 NetBSD の場合は標準の /usr/sbin/pppd が 使われることが多いようです。
    (私は IIJ-ppp のことはよく知らないのでわかりません)

    NetBSD のページにも書いたように、 man pppd すればたいていのことは書いてあるんですが、 手っ取り早く私が設定したファイルを順に挙げていきます。



    1. ppp ディレクトリの作成

      まず /etc/ppp のディレクトリを作成します。

      # mkdir /etc/ppp

    2. /etc/ppp/options の作成

      次に /etc/ppp/options のファイルを作成します。 とりあえず中身は空でも構いません。

      # touch /etc/ppp/options

    3. /etc/ppp/peers ディレクトリの作成

      次に /etc/ppp/peers というディレクトリを作成します。

      # mkdir /etc/ppp/peers

    4. /etc/ppp/peers/ 以下の設定ファイルの作成

      そして /etc/ppp/peers/dti という設定ファイル (ファイル名は何でも構いません) を作成します。これは以下のような内容とします。


      tty01 115200
      crtscts
      modem
      lock
      defaultroute
      connect '/usr/sbin/chat -V -f /etc/ppp/chat-dti'
      noauth

      これは(man を読めば書いてありますが)、

      モデムがつながっているのが /dev/tty01 で、
      通信速度は 115200bps で、
      ハードウェアフロー制御を用いて、
      ポートのロックファイルを作成して、
      コネクト時に default route を設定することにして、
      コネクト時に /etc/ppp/chat-dti のスクリプトにもとづいて chat(1) を実行し、
      認証を要求しない

      というような意味です。

    5. connect chat script の作成

      次に上に書いた /etc/ppp/chat-dtichat(1) のスクリプトを書きます (ファイル名は上記の設定ファイルで指定した名前にします)。 chat(1) は端末からの応答に対して 指定した文字列を出力するためのコマンドです。
      /etc/ppp/chat-dti には以下のように記述します。


      ABORT "NO CARRIER"
      ABORT "NO DIALTONE"
      ABORT "ERROR"
      ABORT "NO ANSWER"
      ABORT "BUSY"
      ABORT "Username/Password Incorrect"
      "" "at"
      OK "atz"
      OK "atdp952820"
      "ogin:" "username@ceres"
      "word:" "\qyourepassword"

      始めに列挙してある "ABORT" はその行に指定した文字列が返ってきた場合には chat(1) の実行を中断するというものです。
      続く行の記述は、行の 1カラム目に記述した文字列が返ってきたら 続いて記述してある文字列を出力するということを示しています。

      この例では DTI の姫路のアクセスポイントにかける例で、 プロバイダから指定された login ユーザー名は "username@ceres"、 password が "yourpassword" であるとしています。

      まず "at" を出力し、
      "OK" が返ってきたら "atz" を出力して (これはモデムのリセットコマンドです)
      "OK" が返ってきたら "atdp952820" を出力し、
      "ogin:" (が最後にある文字列)が返ってきたら "username@ceres" を出力し、
      "word:" (が最後にある文字列)が返ってきたら "********" を出力します。

      ここで記述した以外の文字列が返ってきたり、 何も返ってこない場合はタイムアウトまで待った上で chat コマンドを中断します。

      接続先によっては login: のプロンプト等が微妙に 異なる場合があるので、スクリプトもそれに合わせます。 password を送っているところにある "\q" というのは それ以降の文字列については log file に出力しないと いうことを指定します。

      モデムに対してはあらかじめ適切なコマンドを設定して セーブしておくか chat script に書いておきます。

      私が持っている HUCOM-EX336 というモデムでは 以下のようなものをデフォルトと変えて設定しています。 各自のモデムのマニュアル等を参考にして 環境にあった設定をして下さい。


      at&d3 [DTR が off になると atz を実行する]
      atl0 [スピーカを off にする]
      at&p3 [ダイアル回線のパルスを 20pps にする]
      atw2 [モデムポートの回線速度を表示]
      atx3 [ダイアルトーンの検出を行なわない](内線ではこれが必要)

      password を直接ファイルに記述するのが気に食わないという場合は、 chat(1) の代わりに expect などの script を用いれば password のところのみ キーボードから入力するといったことも可能です。

      スタンドアローンの環境ではそれほど問題ないと思いますが、 マルチユーザー環境では直接 password が記述してある ファイルのパーミッションには注意して下さい。



  5. PAP を使った接続
  6. 前節では認証においてプロバイダからの login: プロンプトに対して chat を用いて username と password を送信しましたが、 DTI を含むたいていのプロバイダでは PAP をサポートしているので そちらを使って認証をすることもできます。

    PAP で認証を行なうと接続にかかるまでの時間が わずかですが短縮されるようです。また、 login prompt を 待つ必要がないのでどのプロバイダでも同じ chat script が 使用できます。

    PAP を使う場合には前節で説明したファイルにいくつかの変更を加えます。

    1. /etc/ppp/pap-secrets の作成

      PAP による認証では、プロバイダの username や password は /etc/ppp/pap-secrets に記述します。 書式は以下の通りです。


      username@ceres    *    yourpassword

      最初の項はプロバイダから指定された login 時の username です。
      2項目は server を指定する時に使用する項目なので通常の プロバイダに接続する場合は "*" を指定します。
      3項目はプロバイダ接続に使用する password を記述します。 この項も全節の chat script と同じく平文の password を書くことになってしまうため、 マルチユーザ環境では /etc/ppp/pap-secrets のパーミッションに注意する必要があります。
      PAP では encrypt された password も使えるようですが 動作の確認していません。

    2. /etc/ppp/peers/ 以下の設定ファイル

      以下のように name username の項を追加します。


      tty01 115200
      crtscts
      modem
      lock
      defaultroute
      connect '/usr/sbin/chat -V -f /etc/ppp/chat-dti'
      noauth
      name username@ceres

      username@ceres の部分には /etc/ppp/pap-secrets で指定した username (つまりプロバイダから指定された login 時の username) を書きます。

    3. connect chat script

      認証を PAP で行なう場合はテキストで username を 送信する必要はなくなるので chat script も 以下のように変更します。


      ABORT "NO CARRIER"
      ABORT "NO DIALTONE"
      ABORT "ERROR"
      ABORT "NO ANSWER"
      ABORT "BUSY"
      ABORT "Username/Password Incorrect"
      "" "at"
      OK "atz"
      OK "atdp952820"
      CONNECT ""

      動作としては、アクセスポイントにダイアルした後、 "CONNECT" が帰ってきたら PAP 認証に入ることになります。



  7. pppd による接続
  8. 以上の設定を行なった上で

    % pppd call dti
    (dti は前項で設定した /etc/ppp/peers 以下の設定ファイル名です)

    とすればモデムが勝手にダイアルしてプロバイダに接続されるはずです。

    ちゃんと接続されたか判断する手段はあまりないので、

    % tail -f /etc/ppp/connect-errors
    あるいは
    % tail -f /var/log/messages
    として log を参照するなり、
    % ifconfig ppp0
    を繰り返し確認してちゃんと接続されているかを確かめます。 接続が確認できるまではモデムのスピーカは on にしておいたほうがいいかもしれません。

    ちゃんとつながっているようならば

    % nslookup www.dti.ad.jp
    などとして DNS が正しく引けているか確かめましょう。 なんならいきなり netscape を立ち上げてみたりしてもいいでしょう。

    接続を終わる時は、

    % kill `cat /var/run/ppp0.pid`
    として pppd の process を kill してやれば 自動的に回線が切断されます。


  9. メールの設定
  10. 私のマシンではメールの受信は fetchmail で pop 経由で取得し、 送信は sendmail で smtp に 投げる設定にしています。 こうすれば、普段は local spool で メールを読み書きして、プロバイダにつないだ時だけ

    % sendmail -q
    % fetchmail -a
      :
    のようにすれば一気にメールを送受信することができ、 つなぎっぱなしにする必要がありません。

    この設定については以下にメモ書き程度に書いときます。




以下は工事中です…
[BACK] 戻る

tsutsui@ceres.dti.ne.jp