pppサーバの構築

FreeBSD-2.2.2Rでpppサーバを料理した時の記録です.OS付属のpppd(多分2.2.0)を使用しています.また,シリアルポートやモデムはすでに使える状態にあるものとします.

1.前準備
モデムの設定を以下の条件に合わせる.
・フロー制御はRTS/CTS.Xon/Xoffは使用しない.
・CD信号は相手のキャリアに従う.
・DTR信号がoffで回線切断,モデムを初期化する. 
・自動着信する.
・コマンドエコー無し.
使用するモデムによってコマンドが違うので注意.設定が済んだら,不揮発メモリに書き込んでおく.

kernelに必要数のpppデバイス(pseudo-device)を組み込んでおくこと.無ければ再構築する.

2./etc/rc.serialの設定
/etc/rc.serial内「modem()」のところにあるDTE速度を確認する.

stty </dev/ttyi$ci$i crtscts 115200
stty </dev/ttyl$ci$i crtscts
stty </dev/cuai$co$i crtscts 115200
stty </dev/cual$co$i crtscts
等とする.また,DTE速度は使用するモデムに合わせる.
今回は28800bpsのmodemを使用するので,115kを指定する.

また,rc.serialの最後の方で初期化するportを指定しているので

modem d a sioport
等としておく.斜体部分は使用するsioのデバイス番号に合わせること.sio0ならば0,sio1なら1になる.

3.pppdの設定
/etc/pppに,pppdが使用する各種fileを作成する.
作成するのはoptionsとoptions.ttynameの2種類.

</etc/ppp/options>

netmask 255.255.255.0
proxyarp
lock
silent
name hostname
domain my.domain
crtscts
115200	(/etc/rc.serialで設定したDTE速度)
modem
+pap
-chap
login
-detach
passive
上の例で斜体になっている部分は各自の環境に合わせること.

次にoptions.ttynameを設定する.使用するポートの分だけ作成すること.ttynameの部分は,例えばcom1の場合options.ttyd0,com2の場合options.ttyd1となる.

</etc/ppp/options.ttyname>

xxx.xxx.xxx.xxx:yyy.yyy.yyy.yyy
この一行だけ.xxx.xxx.xxx.xxxはpppサーバにするマシン自体のipアドレス,yyy.yyy.yyy.yyyは接続してきた相手に割り当てるipアドレスを書く.
例えば,サーバのipアドレスが192.168.1.20,割り当てるipアドレスが192.168.1.200だとすると
192.168.1.20:192.168.1.200
と書くことになる.

4./etc/gettytabの設定
以下のエントリを追加する.斜体部分は/etc/rc.serialで設定したDTE速度に合わせる.

</etc/gettytab>

ppp.115200|115200-baud:\
        :np:sp#115200:lo=/etc/ppp/ppp.sh:
また,呼び出している/etc/ppp/ppp.shを
</etc/ppp/ppp.sh>

#!/bin/sh
exec /usr/sbin/pppd
以上の内容で作成しておく.実行属性を付けるのを忘れないこと.

※/etc/gettytabで直接/usr/sbin/pppdを呼び出しても良いかも知れない.

5./etc/ttysの設定
斜体部分を使用するttyname,下線部分を/etc/gettytabに追加したエントリに合わせ,以下のように設定する.

</etc/ttys>

ttyname	"/usr/libexec/getty ppp.115200"	unknown	on	secure

6.動作試験その他
設定が終わったら,kill -HUP 1として変更箇所を有効にする.ps axとすると

  ???  ??  I      0:00.01 /usr/libexec/getty ppp.115200 ttyname
なんてプロセスが追加されているはず.これで,win95やWinNT,Macintosh相手にppp接続が可能になる.例ではpapでの認証を行なっているが,認証のための特別なscriptは不要.

レシピへ戻る
ホームページへ戻る