FreeBSD QandA 1624

FreeBSD QandA

Q. 3.5-RELEASE / 4.1-RELEASE / 5.0-CURRENT にしたら、
   ppp(8) が利用できなくなりました。/var/log/ppp.log を
   見ると

   状況 1. chat script の
        set dial "......"
   の部分に書いた $N1=1 という部分が表示されていません。

   状況 2. 認証のところで
        tun0: Phase: Chap Input: CHALLENGE (16 bytes from denwa)
        tun0: Phase: Chap Output: RESPONSE (xxxxxxx)
        tun0: Phase: Chap Input: FAILURE
   とすぐに失敗してしまいます。

A. /etc/ppp/ppp.conf に "$" 記号が含まれていませんか?
   "$" を "\" でエスケープする必要があります。
   2000/3/21 に、3.0-STABLE/4.0-STABLE/5.0-CURRENT の ppp が変更され、
   "$" で始まる文字列は環境変数への参照とみなされるようになりました。
   FreeBSD 3.5 または 4.1 以降のバージョンをお使いの方は気を付けて下さい。


   状況 1. に対して、具体的には次のような設定の場合、

     set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" AT OK-AT-OK
        ATQ0V1X0$N1=1 OK \\dATS7=50&K3 OK ATDT\\T TIMEOUT 30 CONNECT"

   以下のように書き換えなければなりません。

     set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" AT OK-AT-OK
        ATQ0V1X0\$N1=1 OK \\dATS7=50&K3 OK ATDT\\T TIMEOUT 30 CONNECT"

   つまり、
     ATQ0V1X0$N1=1 → ATQ0V1X0\$N1=1
   と、"$" を "\" でエスケープしなければいけません。


   状況 2. に対して、authkey の設定されている password に "$" が
   含まれていませんか。

        set authkey "XXX$XXXX"
        ↓              ^
        set authkey "XXX\$XXXX"
                        ^^
   としてエスケープしなければなりません。

間違い・追加情報を見付けた場合は、 修正案の投稿のしかた を読んだ上で、
QandA@jp.FreeBSD.org まで お知らせください。