libvirt
次のように作成された.VMインターフェイスを使用してx86ホストで実行される仮想マシンがあります。
<interface type='bridge'>
<mac address='52:54:00:d0:18:eb'/>
<source bridge='intfe2'/>
<target dev='vnet4'/>
<model type='virtio'/>
<alias name='net4'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/>
</interface>
intfe2
=ホストに存在するLinuxブリッジは次のとおりです。
# brctl show intfe2
bridge name bridge id STP enabled interfaces
intfe2 8000.90e2bab68ff8 no enp2s0f0
vnet4
これで、仮想マシン内のインターフェイスにLACPが設定され、ホストvnet4
インターフェイスを使用して物理ルータにも同じ設定が設定されます。enp2s0f0
ホストの両方のインターフェイスでマルチキャストフレームが表示されることがわかります。
# tcpdump -ni vnet4 -e
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on vnet4, link-type EN10MB (Ethernet), capture size 262144 bytes
15:56:48.160017 34:30:b4:59:06:00 > 01:80:c2:00:00:02, ethertype Slow Protocols (0x8809), length 124: LACPv1, length 110
15:56:49.162163 34:30:b4:59:06:00 > 01:80:c2:00:00:02, ethertype Slow Protocols (0x8809), length 124: LACPv1, length 110
# tcpdump -ni enp2s0f0 -e
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on enp2s0f0, link-type EN10MB (Ethernet), capture size 262144 bytes
15:57:46.173002 ac:4b:c8:89:d7:c1 > 01:80:c2:00:00:02, ethertype Slow Protocols (0x8809), length 124: LACPv1, length 110
15:57:47.171282 ac:4b:c8:89:d7:c1 > 01:80:c2:00:00:02, ethertype Slow Protocols (0x8809), length 124: LACPv1, length 110
15:57:48.171252 ac:4b:c8:89:d7:c1 > 01:80:c2:00:00:02, ethertype Slow Protocols (0x8809), length 124: LACPv1, length 110
私はUbuntu Xenialを実行しています。
# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.2 LTS
Release: 16.04
Codename: xenial
私の質問は次のとおりです
- なぜ浸水しないのですか?
- LinuxブリッジはL2マルチキャストフレームの配信を防止しますか?
次の一部のリンクからLinux仮想スイッチのマルチキャストフレーム私は次のようにIGMPスヌーピングを無効にしました。
echo "0" > /sys/devices/virtual/net/intfe2/bridge/multicast_snooping
次の値を切り替えることもできます。/sys/devices/virtual/net/intfe2/bridge/multicast_querier
どんなアドバイス?
ベストアンサー1
私が考えている問題は、基本的にLinuxブリッジが01:80:c2:00:00:00から01:80:c2:00:00:0fの範囲のターゲットMACアドレスにフレームを渡さないということです。 。 IEEEは、MACブリッジによって転送されるべきではないプロトコルのためにこのアドレスブロックを予約します。 LLDP、LACP、xSTP、およびその他のプロトコルはこの範囲内です。
IEEEには素晴らしい記事があります。標準グループMACアドレス:チュートリアルガイド。必要に応じて、ブリッジカーネルモジュールを再コンパイルしてこれらのフレームの配信を許可することができますが、そうするときに発生するリスクはあなた自身の責任です!を編集して設定する必要が<source_path>/net/bridge/br_private.h
あります。ドライバをコンパイルして再読み込みし、次を実行します。#define
BR_GROUPFWD_RESTRICTED
0x0u
echo 255 > /sys/class/net/<bridge_name>/bridge/group_fwd_mask
これにより、LLDPを通過できるだけでなく、スパニングツリーフレームも許可できます。したがって、ブリッジングループを導入しないでください。