GNU/Linux >> Linux の 問題 >  >> Linux

ブリッジ インターフェイスに MAC アドレスと IP アドレスを割り当てる理由

ブリッジはイーサネット デバイスであるため、MAC アドレスが必要です。 Linux ブリッジはスパニング ツリー プロトコル フレームなどを発信でき、そのようなトラフィックには発信元 MAC アドレスが必要です。

ブリッジは不要 IP アドレス。持っていない状況がたくさんあります。ただし、多くの場合、できる 次のようなものを用意してください:

  • ブリッジがコンテナーまたは仮想マシン (または物理インターフェイス) のグループのデフォルト ゲートウェイとして機能している場合。この場合、IP アドレスが必要です (ルーティングは IP 層で行われるため)。

  • 「プライマリ」NIC がブリッジのメンバーであり、ブリッジが外部世界への接続である場合。この場合、(たとえば) eth0 に IP アドレスを割り当てるのではなく、 、代わりにブリッジ デバイスに割り当てます。

ブリッジがない場合 IP ルーティングに必要な場合、IP アドレスは必要ありません。この状況の例は次のとおりです。

  • 外部接続のないデバイスのプライベート ネットワークを作成するためにブリッジが使用されている場合、またはブリッジ以外のデバイスを介して外部接続が提供されている場合。

はい、ブリッジ インターフェイスは追加のポートとして機能します。

man 5 systemd.netdev の後 :

<ブロック引用>

ブリッジ デバイスはソフトウェア スイッチであり、その各スレーブ デバイスとブリッジ自体がスイッチのポートです。


他のネットワーク デバイスと一緒に表示されるブリッジ デバイスは、仮想ブリッジを表すのではなく、ブリッジに接続されている仮想 NIC を表します。物理ネットワーク デバイスに接続された物理ブリッジがある場合、ネットワーク デバイスにも物理ブリッジは表示されませんが、ブリッジに接続されている NIC が表示されます。もちろん、次のような独自の MAC アドレスがあります。その他のネットワーク デバイス。

ブリッジ デバイス (これも実際には仮想ブリッジに接続された仮想 NIC) に IP アドレスを割り当てると、ホスト デバイスは、ブリッジによって作成されたサブネットとそれに接続されているすべてのデバイスにパケットをルーティングできます。ナイス!

iproute2 などのデバイス ツールをネットワーク化しながら (ip linkip 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 アドレスさえあるとは思えません。


Linux
  1. パスワードハッシュとその必要性

  2. CentOS8で単一のネットワークインターフェイスに複数のIPアドレスを割り当てる方法

  3. Linux –なぜSuだけでなくSuを使用するのですか?

  1. MacからLinuxに切り替えた理由

  2. なぜRm-rfであり、Rmdir -rfではないのですか?

  3. なぜデイスとそれは何ですか?

  1. CentOS/RHEL 7 および 8 で nmcli を使用してブリッジ インターフェイスを作成する方法

  2. Linux ブリッジが機能しない理由

  3. dhcpd で MAC アドレスによって IP を割り当てるにはどうすればよいですか