FreeBSDで作るブロードバンドルーター

注意 この記事は結構古いのでpppを使用したものとなっています。最近はより高速なmpdを使うのが流行りなのでpppとmpdそれぞれ長所・短所を十分に比較して採用して下さい。(追記 Feb,2008)

目次

はじめに

最近はブロードバンドルータなる種類の商品がパソコンショップの一角を占めるほどになっているが、何故かそこにある製品には正直ろくなものがない。
特に安価なブロードバンドルータではパッケージに「○○Mbps対応」などという威勢のよい「公称値」を自慢げに大きく書いてあるものもあったりするが、実際に使うとその半分も速度が出なくてがっかりすることになる。(おまけに不安定)
そんなわけでPPPoE対応ルータで安定してある程度の速度の出るものを求めようとすると5万円を超えるわけだが、考えてみれば5万円もあれば今時結構まともなパソコンが一台買えてしまったりする。

実際のところ、PCでルータを作ると多機能で且つ極めて安定し速度も十分に速い。
ただし、PCルータの欠点として筐体・消費電力・騒音・廃熱(CPUによってはそれなりにあります)の大きいことが挙げられる。

必要な機材

FreeBSDルータなら余り物のマシンで十分です。CPUにはBフレッツベーシックで400MHz以上、BフレッツファミリーやADSL(8Mbps)で200MHzから400MHz、ADSL(1.5Mbps)なら133MHzから200MHzもあれば良いです。
(NATやIPパケットのフィルタリング無しでやるなら更に1・2ランク下のマシンでも全然問題ありません。)
メモリは32MB程度は欲しいところです。どうしても不安な人は128MBくらい積んでもいいです。(もっとも今時32MBなんて低容量のメモリは新品では売ってませんが)
ハードディスクはカーネルコンパイルやログの保存の為に2GBはあった方が良いかもしれません。
ただし、別にFreeBSDマシンがあってカーネルコンパイルはそっちでする、運用時のログも別マシンに飛ばすということであればルータ用マシンにはハードディスクは不要でフロッピーディスクドライブだけでも構いません。
もっとも、フロッピー運用するなんて人はこのページを見る必要はありませんね。

内容が古すぎるので取り消し線追加(Feb,2008)

ネットワークカード(NIC)はFeeeBSDで使えるものなら何でも結構です。
Bフレッツベーシックの場合だけはできれば100BaseT対応のものが欲しいところです。
NICの搭載チップにはあまり拘る必要はありませんが、安くてお勧めとしてはNETGEAR(ネットギア)のFA311(又はFA312)なんていうのがあります。(FA312はFA311のNetBoot対応版) どこにでも売ってるNICではないですが、1000円前後の低価格品にしては珍しく評判の良い物です。蟹とか嫌いな人は是非どうぞ。
内容が古すぎるので取り消し線追加(Feb,2008)

追記: 私、このFA311を6枚買いましたがその内5枚はそれぞれ使用開始から2年持たずに全て壊れました(残り1枚は不使用)。安い部品を使っているのか耐久性が全然なかったようです。INTAA.NETのサーバー用にそれより遥か以前から使用しているインテルや3comは壊れていないのでやはり安物はそれなりということでしょうか?(sis900がダメということではないので念のため)

必要なソフトウエア

FreeBSDをルータにする為にはソフトウエアはFreeBSD以外に何も要りません。
インストール時はカーネルのソースも入れるように選択します。
X-Windowは不要です。

ルータのイメージ

これから作るルータのイメージは以下の様になります。

参考 普通のルータ
case0

ケース1 PPPoEでNAT無しの場合
case1

ケース2 PPPoEでNAT有りの場合
case2

普通のルータと違い、Wan側NICの上にtun0(トンネルデバイス /dev/tun0 )というのが見えますが、PPPoEの場合は(正確ではありませんが)このようになります。
つまり、PPPoEの場合は事実上のWan側インターフェースはtun0になるということです。

後のパケットフィルタリングの設定の際に混乱しないように覚えておいて下さい。

※ 3D画像を作ってみましたが本当に下手なので転載禁止です。