written by Fujiwara, Kazunori
注意: 現在のFreeBSDではうごかない可能性があります。2000年10月ごろのものではうごくはずです。
IPv6生線で接続する場合、Ether, FDDI, ATM, 専用線の方法があるが、
安く遠距離接続をしようとすると、64Kbps, 128Kbpsのデジタル専用線を使う
こととなる。ところで、従来のkame or FreeBSDでデジタル専用線接続をしよ
うとすると、RISCom/N2 cardとV.35つきCSU(TA)が必要になるが、この二つは
とても高価であわせて20万円以上する。ところが、最近、安価な同期非同期変
換機能つきINS64 TAに専用線接続機能が付加されている。
そこで、if_spppsubr.cの同期PPPの下位ドライバとして、HDLC frameを非同期PPP形式にて非同期シリアルポート経由でINS64 TAに送るドライバを書いた。slipのコードとほぼ同じ構造で、encodingを非同期PPPとした。受信時には復元したHDLC frameをif_spppsubr.cのsppp_inputに与える。
FreeBSD 2.2.8ではテストしていません。
FreeBSD 3.4R, 4.0R, 4.0-stable, 5.0-current, 3.4R+kame
FreeBSDの対応している非同期シリアルポート
同期非同期変換機能つきの専用線対応TA (例 NTT-TE東京のMN128,MN128V3)
FreeBSD 2/3用 slsppp-20000517.tar.gz
FreeBSD 4/5用 slsppp-20001017.tar.gz
if_slsppp.ko moduleとslspppattachをインストールする。 kernelをつくるときには pseudo-device sl を削除し、pseudo-device spppを追加する。
rc.confのnetwork_interfaces変数に slsppp0 を追加し、
ifconfig_slsppp0=""
とし、次に /etc/start_if.slsppp0 を作成する。
#!/bin/sh
kldload if_slsppp
slspppattach -C -s 115200 -h -l /dev/cuaa0
sleep 3
ifconfig slsppp0 inet xx.xx.xx.xx yy.yy.yy.yy netmask zz.zz.zz.zz
この例では、/dev/cuaa0(=sio0)に115200bpsで接続したTAを接続し、
CISCO_HDLC modeでRTS/CTSフロー制御、DCD無視。
こちらのアドレスがxx.xx.xx.xxで相手側のアドレスがyy.yy.yy.yy、
netmaskがzz.zz.zz.zzである。
また、シリアルポートに、電源onで専用線モードに入るよう
に指定したMN128を接続しておく。
通信速度のデフォルトは115200bpsである。 MN128の設定について
AT*B2&Wして専用線をつないだあと電源off→on
通信速度は64K専用線のとき115200bps, 128Kのとき230400bpsにする。
普通のPCのシリアルポートは115200bpsまでなので、16650をつんだ
特殊なカードを入手するか、最近のマルチI/Oチップは230400, 460800bpsにも
対応しているらしいので情報を調べるとよい。
<URL:http://configure.sh/FreeBSD/>
<URL:http://www.devdrv.co.jp/shsmod/index.htm>参照
64K専用線を115200bpsで接続する場合
AT&Q5\Q3%B12$S12*B2S135=13&W
64K専用線を230400bpsで接続する場合。(RTTが小さくなる)
AT&Q5\Q3%B12$S12*B2S135=15&W
同期非同期変換のため、遅延が大きい。
128Kbps時の遅延 PING 70msec (同期カードを使う場合、30ms程度)