既に簡潔な解説があった:
LinuxとNetBSDのbridgeの違い――夜でもアッサム
http://assam-at-night.blogspot.com/2009/04/linuxnetbsdbridge.html
Linuxの方、「なんでブリッジにIPアドレス??」といったあたりから、概念がよくわからずに試行錯誤してしまったので、自分なりの解釈をまとめておく。(間違ってたらこっそり教えてください)
NetBSDのbridgeの使い方は:
The NetBSD Guide
24.6. Setting up a network bridge device
https://www.netbsd.org/docs/guide/en/chap-net-practice.html#chap-net-practice-bridge
こんな構成だったとして、
Guideにあるような手順でブリッジを追加すると、こんなイメージ。
ハードウェアのブリッジを追加するのと同じようなことをソフトウェアでやっているだけで、とてもシンプル。
Linuxの場合(Ubuntuを使っていたのでUbuntuのドキュメント):
Bridging Ethernet Connections (as of Ubuntu 16.04)
https://help.ubuntu.com/community/NetworkConnectionBridge
同じようにこんな構成だったとして、
Linuxでブリッジを作るというのは、たぶんこんなイメージ。
ただ、これだと(他にインタフェースがなければ)Linux本体からネットワークが使えないので、br0にIPアドレスを振るなどして使うこともできる。つまり、br0はブリッジとエンドポイントを兼ねている。たぶん。
eth0やeth1に対してブリッジを追加するのではなくて、「お前がブリッジになるんだよ!」といった感じでしょうか。(余計わかりにくい)
機能はLinuxのbridgeの方が圧倒的に充実してますね。まあ、そのせい(あと管理コマンドが何系統もあるとか)でわかりにくかったんですけど。(あと、Linux仕様だと、ブリッジのオンオフをする場合、その都度インタフェースのアドレス振りなおさないといけないのがイマイチというか。)