PPPoEをバラしているFreeBSDのPCルータを、tun device による basesystem ppp から netgraph device による mpd に切り替えたので記録。
- net/mpd を導入
- /usr/local/etc/mpd を適当に設定。参考
- /boot/loader.conf に ng_ether_load="YES" を追加。不必要かもしれないけど、いくつか報告も見かけるので念のため。
- /etc/rc.conf で ppp を廃止・mpd を有効化、ログはsyslogに。 ppp_enable="NO" mpd_enable="YES" mpd_flags="-s mpd -b" あたり。
- うまく自動起動させるために、ちょっと荒技
- mv /usr/local/etc/rc.d/mpd.sh /etc/rc.d/mpd
- /etc/rc.d/mpd の冒頭で、REQUIRE: NETWORKING を外して BEFORE: NETWORKING に変更
- rcorder /etc/rc.d/* とかやって、外への接続性が必要なサービスより前に mpd が実行されることを確認
- もしかしたら /etc/rc.d/NETWORKING で REQUIRE にも追加しないといけないかも。
- インターフェース名を見ている者を tun0 から ng0 に変更
- /etc/pf.conf の
- MRTG
rcNG的にはどう配置してどう書くのが正しいのかな。でも、外部への接続性をmpdで提供するんだから、REQUIRE: NETWORKING は嘘だよな。ロジックとしては、mpd 側は REQUIRE/BEFORE を書かずに NETWORKING から要求させるのが筋なんだろうか。でも標準のファイルは触りたくないしなぁ、絶対間違えて上書きしてはまるし。
とりあえず、CPUかつかつで30Mbpsぐらいで頭打っていたのが50MbpsでまだCPUに余裕がある感じなので満足。