bridge(4) は NetBSD 1.6 で実装されました。 元は Jason L. Wright さんの卒論だそうですよ! なお、現在の NetBSD のコードは J. R. Thorpe が奇麗に書き直したもの。
NetBSD カーネルを再構築 し、 カーネルを入れ換えて ください。
ブリッジを有効にするためには、 カーネルの設定ファイルに次のオプションを追加してください。
pseudo-device bridge
また、これはオプションですが、 ブリッジの中からフィルタシステムを呼び出すために、 次のオプションも追加してください。
options BRIDGE_IPF
bridge の設定は brconfig コマンドを使って行ないます。
起動時に、 自動的にブリッジを有効にするには /etc/ifconfig.bridge0 を作成します。
「ifconfig.識別子」 ファイルの中に書かれた ! マークはコマンドの実行です。 次のように brconfig コマンドを実行するように設定します。
!brconfig bridge0 up add fxp0 add fxp1この例では fxp0 と fxp1 を同じネットワークに所属しています。
PC1 -- fxp0 - NetBSD - fxp1 -- PC2
ポートが二つ以上でも同様に設定すればOKです。
+----- fxp3 -- PC4 PC1 -- fxp0 - NetBSD - fxp1 -- PC2 +----- fxp2 -- PC3
!brconfig bridge0 up add fxp0 add fxp2 up add fxp3
例: fxp0 fxp1 fxp2 fxp3 の4インターフェイスで一つのブリッジ。
[/etc/ifconfig.bridge0] !brconfig add up fxp0 add fxp1 add fxp2 add fxp3 [/etc/ifconfig.fxp0] up [/etc/ifconfig.fxp1] up [/etc/ifconfig.fxp2] up [/etc/ifconfig.fxp3] up
2011/10 記(現在どうなってるか?は未調査): フィルタの呼び出しが間違ってると思うんだ。
[/usr/src/sys/net/if_bridge.c] bridge_forward() { ループ { ... snip ... お初なら、宛先のインターフェイスを学習 ... snip ... if (ユニキャスト) { 転送先インターフェイス(dst_if)を決定。 転送先(dst_if)が入力インターフェイス(src_if)の場合、捨てる。 ( if (src_if == dst_if) { パケットを捨てる;} ) } else { 全インターフェイスに転送。 } パケットフィルタを呼び出す。 ブロードキャストの場合、ここでブロードキャスト。 ... snip ... } }
Copyright (C) 1993-2025 Ken'ichi Fukamachi mail:< fukachan at fml.org >