カーネルの再構築

※ 1回線の場合はカーネルの再構築の必要はありません。

多回線化の準備としてカーネルの再構築を行います。
回線数分のシリアルポート(sio)を扱えるようにし、トンネルデバイスを使えるようにします。

カーネル設定ファイルの作成

/usr/src/sys/i386/conf/GENERIC を /usr/src/sys/i386/conf/RAS 等の適当な名前でコピーします。(赤字の部分は自由です)
コンフィグレーションファイル(/usr/src/sys/i386/conf/RAS)に以下の行が存在するようにします。他も必要な部分を適切に変更して下さい。

4回線の場合のカーネルコンフィグレーションの必須項目

device sio0 at isa? port "IO_COM1" tty irq4
device sio1 at isa? port "IO_COM2" tty irq3
device sio2 at isa? port "IO_COM3" tty irq5
device sio3 at isa? port "IO_COM4" tty irq10
pseudo-device tun 4

上の例の場合では4回線分のsioポートにそれぞれIRQ4,3,5,10を割り当てています。
他の拡張カードとIRQが競合しないように適切に割り当てます。
トンネルデバイスの数はsioポートと同じ数にしておけば問題無いでしょう。
回線数が5以上であればインテリジェント型のシリアルカードを準備します。
(回線数が増えると非インテリジェントタイプだとCPUの占有率が非常に高くなり処理が重くなります)
この場合は使用するカードに合わせて適切に変更して下さい。

RASサーバでよく使うその他のカーネルコンフィグレーションのオプション

options         IPFIREWALL # <--ipfwを使う場合
options         IPFIREWALL_VERBOSE # <--ipfwでログを取る場合
options         IPDIVERT #NATを使用する場合

旧 カーネルのコンパイル手順 (FreeBSD 2.* 3.* 4.*)

# cd /usr/src/sys/i386/conf
# config RAS
# cd ../../compile/RAS
# make depend
# make all
# make install


新 カーネルのコンパイル手順 (FreeBSD 4.*~)

# cp /usr/src/sys/i386/conf/GENERIC /usr/src/sys/i386/conf/RAS
# ee /usr/src/sys/i386/conf/RAS
# cd /usr/src
# make buildkernel KERNCONF=RAS
# make installkernel KERNCONF=RAS

/etc/make.confにKERNCONF=RASという一行を書いておけばここでKERNCONF=RASを指定する必要はありません。


カーネルを再構築してshutdown -r nowでリブートしたら必要なだけtunデバイスを作成します。

例 (rootでコンソールに入力)

# cd /dev
# ./MAKEDEV tun0 tun1 tun2 tun3

正しく設定されているかは ifconfig -a で調べます。
/dev/cuaa*も確認し必要な回線数分存在しなければ作成します。

例 (rootでコンソールに入力)

cd /dev
./MAKEDEV cuaa0 cuaa1 cuaa2 cuaa3

/etc/rc.confファイル内に gateway_enable="YES" を記述します。