FreeBSD 6.x までは bridge.ko を使っていたんですが、
7.x からは if_bridge.ko を使うそうです。
うちは NIC が fxp0 なので、/etc/sysctl.conf で
net.link.ether.bridge.config="tap0,fxp0" net.link.ether.bridge.enable=1
これが bridge を使った古いやりかた。if_bridge を使うときは /etc/rc.conf に
cloned_interfaces="bridge0" ifconfig_bridge0="up" autobridge_interfaces="bridge0" autobridge_bridge0="tap0 fxp0"
こんな感じ。
コマンドラインだと
# ifconfig bridge0 create # ifconfig bridge0 up # ifconfig bridge0 addm tap0 # ifconfig bridge0 addm fxp0
ですね。
cloned_interfaces が create に、autobridge_bridge* が addm に対応しています。
詳しくは /etc/network.subr や /etc/rc.d/netif を参照してください。
あと、旧 bridge の方だと ipfw をスルーしていたようなんですが一体...?
if_bridge に変更してからおかしいことに気付きました。うーん?