IP サブネットを作成して、 それらのセグメントをルータを使って接続することなしに、 (Ethernet セグメントのような) 一つの物理ネットワークを二つのネットワークセグメントに分割することはとても有効な場合があります。 この方法で二つのネットワークを繋ぐデバイスは 「ブリッジ」 と呼ばれます。 二つのネットワークインタフェースカードを持つ FreeBSD システムは、ブリッジとして動作することができます。
ブリッジは、各ネットワークインタフェイスに繋がるデバイスの MAC 層のアドレス (Ethernet アドレス) を記憶することにより動作します。 ブリッジはトラフィックの送信元と受信先が異なったネットワーク上にある場合にのみトラフィックを転送します。
多くの点で、ブリッジはポート数の少ない Ethernet スイッチのようなものといえます。
今日ブリッジが活躍する場面は大きく分けて二つあります。
ひとつは、 物理ネットワークセグメントがトラフィック過剰になっているが、 なんらかの理由によりネットワークをサブネットに分け、 ルータで接続することができない場合です。
編集部門と製作部門がおなじサブネットに同居している新聞社を例に考えてみましょう。
編集部門のユーザはファイルサーバとして全員サーバ
A
を利用し、
製作部門のユーザはサーバ B
を利用します。
すべてのユーザを接続するのには Ethernet が使われており、
高負荷となったネットワークは遅くなってしまいます。
もし編集部門のユーザを一つのネットワークセグメントに分離することができ、 製作部門のユーザも同様にできるのなら、 二つのネットワークセグメントをブリッジで繋ぐことができます。 ブリッジの 「反対」 側へ向かうネットワークトラフィックだけが転送され、 各ネットワークセグメントの混雑は緩和されます。
ブリッジを利用するには少なくとも 2 枚のネットワークカードが必要です。 残念なことに FreeBSD 4.0 ではすべてのネットワークインタフェースカードがブリッジ機能に対応しているわけではありません。 カードに対応しているかどうかについては bridge(4) を参照してください。
以下に進む前に、 二枚のネットワークカードをインストールしてテストしてください。
ファイアウォールとしてブリッジを利用しようとしている場合には
IPFIREWALL
オプションも指定する必要があります。
ブリッジをファイアウォールとして設定する際の一般的な情報に関しては、
「ファイアウォール」 を参照してください。
IP 以外のパケット (ARP など)
がブリッジを通過するようにするためには、
ファイアウォール用オプションを設定しなければなりません。
このオプションは IPFIREWALL_DEFAULT_TO_ACCEPT
です。この変更により、
デフォルトではファイアウォールがすべてのパケットを受け入れるようになることに注意してください。
この設定を行う前に、
この変更が自分のルールセットにどのような影響をおよぼすかを把握しておかなければなりません。
ブリッジで帯域制御機能を利用したい場合、
カーネルコンフィグレーションで DUMMYNET
オプションを加える必要があります。
詳しい情報に関しては dummynet(4) を参照してください。
ブリッジを有効にするには、
/etc/sysctl.conf
に以下の行を加えてください。
指定したインタフェースでブリッジを可能にするには以下を加えてください。
if1
,if2
(if1
および
if2
は二つのネットワークインタフェースの名前に置き換えてください)。
ブリッジを経由したパケットを ipfw(8) でフィルタしたい場合には、
以下の行も付け加える必要があります
FreeBSD 5.2-RELEASE 以降では、かわりに以下の行を使用してください。
if1
,if2
net.link.ether.bridge.ipfw=1本文書、および他の文書は ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ からダウンロードできます。
FreeBSD に関する質問がある場合には、
ドキュメント を読んだ上で
<questions@FreeBSD.org> まで (英語で) 連絡してください。
本文書に関する質問については、
<doc@FreeBSD.org> まで電子メールを (英語で) 送ってください。