ルータ構築基本設定

ルータの構築に必要なカーネルの再構築とppp.confの設定を行います。
なお、FreeBSD5.0以降では基本的にはカーネルの再コンパイルは不要ですが、オプションなど必要に応じて追加変更し再コンパイルを行うこともあります。

カーネル再コンパイル

手順は以下の通り。

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

(eeはFreeBSD標準搭載の簡易エディタ)

カーネルの設定ファイルに追加するオプション (FreeBSD4.X)

/usr/src/sys/i386/conf/MYROUTERに追加 (上の手順の2行目の作業)

options         IPDIVERT                      # NATを使用する場合
options         NETGRAPH
options         NETGRAPH_ETHER
options         NETGRAPH_PPPOE
options         NETGRAPH_SOCKET
options         DEVICE_POLLING                # 高負荷時に耐える為に
options         HZ=1000                       # 上の行とセットで
options         TCP_DROP_SYNFIN
options         IPFW2                         # より高速なipfw2を使用する
options         IPFIREWALL
options         IPFIREWALL_VERBOSE            # ipfwでログを取る場合
options         IPFIREWALL_DEFAULT_TO_ACCEPT  # 原則許可型フィルタリング

パケットフィルタリングを行わない場合は下4行は不要。
通常は原則不許可型のフィルタリングをするので最後の行はあまりお勧めしない。
ipfw2 を有効にするにはこれだけでは駄目でコンパイルし直す必要のあるファイルがあります。マニュアルを読んで下さい。 device pollingを有効にするには /etc/sysctl.conf に kern.polling.enable=1 という一行を記入します。

ppp.confの設定

/etc/ppp/ppp.confの例

default:
set device PPPoE:sis1              # sis1の部分はnicによって変わります
set MRU 1454
set MTU 1454
set speed sync
set log Phase Chat LCP IPCP CCP tun command
add default HISADDR
accept chap
accept pap
provider:
set authname ○○@○○.○○.ne.jp  # プロバイダから貰ったID (メールアドレスではない) 
set authkey ○○○○○○           # プロバイダから貰ったパスワード
nat enable no                      # pppのNAT機能をオフにする
square:                             #フレッツスクエアの例
set authname guest@flets
set authkey guest

/etc/ppp/ppp.confを書く時の注意
プロファイル名(ここではdefault provider square)は必ず行頭から記述し、その他の行は行頭に必ず1つ以上スペースを入れる。
pppのNATはデフォルトでONなので複数グローバルIPアドレス利用時は注意
nat enable noの代わりに/etc/ppp.confでppp_nat="NO"を指定しても良い。
(NATが必要な場合もできるだけnatdで行う)

rc.confの設定

/etc/rc.confの例

ifconfig_sis0="inet ***.***.***.*** netmask 255.255.255.***"
defaultrouter="***.***.***.***" # このマシンのIPアドレスと同じでいいです
gateway_enable="YES"             # この指定を忘れないこと
hostname="hoge.example.com"         # ホスト名だけでもいいです
inetd_enable="NO"
kern_securelevel_enable="NO"
ipv6_enable="NO"
keymap="jp.106"
sendmail_enable="NO"
sshd_enable="YES"
portmap_enable="NO"
firewall_enable="YES"
#firewall_script="/etc/my_ipfw_rule"   #独自のipfwルールファイル
firewall_type="MyRouter"   #ルールファイル内のエントリ名
ppp_enable="YES"
ppp_mode="ddial"
ppp_profile="provider"
ppp_nat="NO"       #(pppによる)NATを禁止する
natd_enable="NO"   #(natdによる)NATが必要ならYES
natd_interface="tun0"

ifconfig_****の部分はNICによって変わります。
ppp_profile行の「provider」は/etc/ppp/ppp.confに書くプロファイル名と同じなら何でも良い。
独自のipfwルールファイルを作る場合、実際は上の様にせずfirewall_type="ファイル名"としても構わない。


パケットフィルタリングの設定その1に進む