PPP(Point to Point Protocol)は2つのコンピュータをシリアル回線など で接続し、TCP/IP接続を行うことができるようにするためのプロトコルです。
ソースアーカイブ名 FreeBSD付属の user ppp 導入環境 FeeBSD 3.3-RELEASE
インストール
FreeBSDには標準でついてきていますので、割愛します。
モデムの設定
- モデムは次のように設定します
- CD は相手のモデムのキャリアに従う (at&c1)
- 自動着信を行う (ats0=1)
- ERが on から off になったとき回線を切断する(at&d2)
- ブレーク信号は直ちに送出(at&y1)
- モデム端末間はハードウェア(RTS/CTS)フロー制御を行う(at&h1,at&r2)
- DR はシーケンスに従う(at&s1)
上記のかっこ内はOMRON ME5614Bでのコマンドです。このコマンドはモデムによって 異なりますので、お使いのモデムのマニュアルでご確認ください。
以上の内容を不揮発性のメモリに(at&w0などを使って)保存しておくとよいでしょう。
# cu -l /dev/cuaa0 at&f OK at&c1 OK ats0=1 OK at&d2 OK at&y1 OK at&h1 OK at&r2 OK at&s1 OK at&w0 OK ati4 OMRON ME5614B Settings... B0 E1 F1 L2 M1 Q0 V1 X1 Y0 BAUD=115200 PARITY=N WORDLEN=8 DIAL=PULSE ON HOOK &A3 &B1 &C1 &D2 &H1 &I0 &K1 &M4 &N0 &P0 &R2 &S1 &Y3 LAST DIALED #: S00=001 S01=000 S02=043 S03=013 S04=010 S05=008 S06=004 S07=050 S08=002 S09=012 S10=007 S12=050 S15=000 S19=000 S21=010 S25=005 S32=002 OK ~. #/etc/ppp.confの設定
pppの設定ファイル/etc/ppp.confを以下のように設定します。
default: set speed 115200 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" ATZ0 OK-ATZ0-OK ATH1 \\d ATDT\\T TIMEOUT 40 CONNECT" set timeout 60 disable lqr deny lqr enable passwdauth enable proxy enable pap enable dns set dns 210.252.0.210 #DNS SERVER incoming: set ifaddr 210.252.0.210 210.252.0.217ここでは、接続してきたサーバにdnsは210.252.0.210 を使うように 指定します。
またこのホストのアドレスは 210.252.0.210 でppp接続をする 相手のアドレスは 210.252.0.217 とすることを指定しています。
ppp接続用スクリプト ppplogin
/usr/local/bin/ppploginに以下のスクリプトを作ります。
#!/bin/sh exec /usr/sbin/ppp -direct incoming/etc/ttys, /etc/gettytab の設定
- /etc/ttys
ttyd0 "/usr/libexec/getty ppp.115200" dialup on insecure
- /etc/gettytab
ppp.115200|PPP|PPP-115200-baud:\ :np:hw:sp#115200:pp=/usr/local/bin/ppploginnpはノンパリティー, hwはハードウェアフロー制御することを意味します。 (このhwは必要ないかもしれませんが念のために入れています)
- init に/etc/ttysを再度読み込ませて、gettyを起動する
- # kill -HUP 1
/dev/ttyd0の設定
デバイスファイルの設定上の /dev/ttyid0 への設定はデバイスをオープンしたときの初期状態がどのようになるかを 指定します。また下の /dev/ttyld0 はアプリケーションから変更できない設定を指定します。 これら設定は /etc/rc.serialでリブート時に実行されるようにしておきます。
- stty -f /dev/ttyid0 crtscts 115200
- stty -f /dev/ttyld0 crtscts
私が陥った問題(みなさんの参考のために)
私は/etc/remoteにporta:dv=/dev/cuaa0:br#57600:pa=noneと書いてtip portaとやって上の設定を行っていました。すると接続できませんでした。 電話回線からモデムにつなぐと文字化けするのです。 なぜかわからずかなり悩みました。これが起こる理由はtipでモデムの設定をする時に、 端末からは57600で通信するので、atコマンドを受け取るさいに、 モデムがそれを検出して端末-モデム間の通信スピードを57600設定します。 そして、それ以降モデムは端末との通信スピードを57600 であると思って、この設定後もこのスピードで通信しようとします。
ところが、/etc/gettytabで
ppp.115200|PPP|PPP-115200-baud:\ :hw:np:sp#115200:pp=/usr/local/bin/ppploginと書かれているので、gettyはモデムから送られてくるデータの スピードは115200として通信するのです。ということで、 私は/etc/remoteに
porta:dv=/dev/cuaa0:br#115200:pa=noneと書き直して、tip portaとやってatコマンドを打って、 モデムにスピードを認識させたら、うまくいったのです。端末モデム間の通信スピードは最初のATコマンドで自動設定する モデムがほとんどですので、この点にも気を付けましょう。
「サーバの構築」のページへ戻る ホームへ戻る