★FreeBSDにPPPoEを喋らせてブロードバンドルータにする 2
May 25,2003 takamura@itoh.co.jp
最近のFreeBSDはPPPoEするためにカーネルの再構築が要りません。と言うか
余計なオプションを付けてkernel makeするとエラーになることもあります。
(ipfilterもカーネル再構築不要です。)
そんな訳でカーネル再構築のあたりを削り、パフォーマンスアップチューンを
ちょっと施して書き直ししてみました。
条件は
FreeBSD 4.8-RELEASEを使用
OCN光アクセスIP8/16、InfosphereIP8、同ADSLのように固定のグローバルサブ
ネットを振り出してくれるサービスに対応します。
★PPPの準備
/etc/ppp/ppp.conf
を下記のように作成
default:
set device PPPoE:rl0 ### これはPPPoEに使うネットワークデバイス
set log Phase Chat LCP IPCP CCP tun command
set speed sync
set mru 1454
set mtu 1454
set ctsrts off
set timeout 0
accept CHAP
add default HISADDR
enable tcpmssfix
disable deflate
disable pred1
pppoe:
set authname is********@***.sphere.ne.jp
set authkey **********
続いて
/etc/ppp/ppp.linkup
を下記のように作成
pppoe:
! ifconfig tun0 delete
! ifconfig tun0 PPPoEルータのIPアドレス netmask 255.255.255.248 HISADDR
add! default HISADDR
この ppp.linkupが無いとInfoshereBizADSL8/16や OCN ADSL IP8/16、そのほか光
も なぜかネットワークアドレスそのものを名乗ってしまうのでその対策です。
★rc.confの追加事項
/etc/rc.conf
network_interfaces="rl0 rl1 lo0"
tcp_extensions="YES"
ifconfig_rl0="media 10BaseT/UTP up"
#ifconfig_rl0="up" だけだとオートネゴが効かないのでADSLの場合は上記のように記述
#B-Fletsの場合は下記を採用しないとオートネゴが効かない。
#ifconfig_rl0="media 100baseTX mediaopt full-duplex up"
#ADSLもBフレッツもADSLモデム/メディアコンバータ(光加入者線終端装置)と直結時は
#必ず上記のように記述。 2セッション(Bフレッツ)を張る場合にスイッチを経由する
#ときはupだけでも多分OKだと思われる。
ifconfig_rl1="inet PPPoEルータのIPアドレス netmask 255.255.255.248"
gateway_enable="YES"
ppp_enable="YES"
ppp_mode="ddial"
ppp_profile="pppoe"
ppp_nat="NO"
ipfilter_enable="YES"
ipfilter_rules="/etc/ipf.rules"
ipfilter_flags=""
ipmon_enable="YES"
ipmon_flags="-D /var/log/ipf.log"
★パフォーマンスアップ
/etc/rc.network の
ppp_command="/usr/sbin/ppp -quiet -${ppp_mode}"
の行を探してその後に
ppp_command="/usr/sbin/rtprio 5 ${ppp_command}"
を追加します。どうやらpppdプロセスの優先度をこれで上げてあげるようです。
★パケットフィルタリング設定
これは
http://www.tac.tsukuba.ac.jp/~hiromi/ipf4.html
を参考に適当に設定してください。
とりあえずPPPoEの動作確認の為に臨時で
/etc/ipf.rulesを
pass in all
pass out all
などと書いておけばとりあえず動きますが、ちゃんとしたパケットフィルタ設定
は必須です。
★いよいよ動かしてみます。
shutdown -r now
で立ち上がったら
/var/log/ppp.log
をみてみたり
ifconfig tun0
なんかも確認してみます。
高村のホームに戻る