ブリッジはイーサネット デバイスであるため、MAC アドレスが必要です。 Linux ブリッジはスパニング ツリー プロトコル フレームなどを発信でき、そのようなトラフィックには発信元 MAC アドレスが必要です。
ブリッジは不要 IP アドレス。持っていない状況がたくさんあります。ただし、多くの場合、できる 次のようなものを用意してください:
-
ブリッジがコンテナーまたは仮想マシン (または物理インターフェイス) のグループのデフォルト ゲートウェイとして機能している場合。この場合、IP アドレスが必要です (ルーティングは IP 層で行われるため)。
-
「プライマリ」NIC がブリッジのメンバーであり、ブリッジが外部世界への接続である場合。この場合、(たとえば)
eth0
に IP アドレスを割り当てるのではなく、 、代わりにブリッジ デバイスに割り当てます。
ブリッジがない場合 IP ルーティングに必要な場合、IP アドレスは必要ありません。この状況の例は次のとおりです。
- 外部接続のないデバイスのプライベート ネットワークを作成するためにブリッジが使用されている場合、またはブリッジ以外のデバイスを介して外部接続が提供されている場合。
はい、ブリッジ インターフェイスは追加のポートとして機能します。
man 5 systemd.netdev
の後 :
ブリッジ デバイスはソフトウェア スイッチであり、その各スレーブ デバイスとブリッジ自体がスイッチのポートです。
他のネットワーク デバイスと一緒に表示されるブリッジ デバイスは、仮想ブリッジを表すのではなく、ブリッジに接続されている仮想 NIC を表します。物理ネットワーク デバイスに接続された物理ブリッジがある場合、ネットワーク デバイスにも物理ブリッジは表示されませんが、ブリッジに接続されている NIC が表示されます。もちろん、次のような独自の MAC アドレスがあります。その他のネットワーク デバイス。
ブリッジ デバイス (これも実際には仮想ブリッジに接続された仮想 NIC) に IP アドレスを割り当てると、ホスト デバイスは、ブリッジによって作成されたサブネットとそれに接続されているすべてのデバイスにパケットをルーティングできます。ナイス!
iproute2
などのデバイス ツールをネットワーク化しながら (ip link
と ip addr
コマンド) を使用すると、ブリッジに接続された仮想 NIC を確認できます。また、brctl
を使用して仮想ブリッジ自体を確認することもできます。 プログラム。 brctl show
コマンドは、すべてのブリッジとそれに接続されているインターフェイスを一覧表示します。 iproute
を使用した例を次に示します。 および brctl
Linux ブリッジとタンタップを使用:
# ip link add br0 type bridge
# ip tuntap add dev tap0 mode tap
# ip tuntap add dev tap1 mode tap
# ip addr add 10.0.0.1/24 broadcast 10.0.0.255 dev br0
# ip addr add 10.0.0.2/24 broadcast 10.0.0.255 dev tap0
# ip addr add 10.0.0.3/24 broadcast 10.0.0.255 dev tap1
# brctl addif br0 tap0
# brctl addif br0 tap1
# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.2e22e593fe8c no tap0
tap1
# ip addr show to 10.0.0.0/24
11: br0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
inet 10.0.0.1/24 brd 10.0.0.255 scope global br0
valid_lft forever preferred_lft forever
12: tap0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast master br0 state DOWN group default qlen 1000
inet 10.0.0.2/24 brd 10.0.0.255 scope global tap0
valid_lft forever preferred_lft forever
13: tap1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast master br0 state DOWN group default qlen 1000
inet 10.0.0.3/24 brd 10.0.0.255 scope global tap1
valid_lft forever preferred_lft forever
brctl show
の出力の「interfaces」の下にリストされているものに注意してください その他です br0
に加えて、ブリッジに接続されたインターフェイス ブリッジの作成時に自動的に追加されたインターフェイス。 (Linux では、デバイスが接続されていない仮想ブリッジを作成することは許可されておらず、デバイスのないブリッジは自動的に破棄されると思います。) 記録として、私はカーネルでこれを調査していませんし、ネットワークの専門家でもありません。これを投稿したのは、Linux での仮想ブリッジのやや紛らわしい実装を説得力をもって説明しているように思われるからです。仮想ブリッジ自体に MAC アドレスさえあるとは思えません。