gpt4 book ai didi

ubuntu - libvirtError : XML error: expected unicast mac address, 发现多播

转载 作者:行者123 更新时间:2023-12-04 11:00:50 26 4
gpt4 key购买 nike

我正在通过 ansible 设置 KVM 自动化,我有一个 VM 不断给我这个错误:

libvirtError:XML 错误:预期的单播 MAC 地址,发现多播 '53:54:00:b4:ad:81'

我不认为这是一个很严重的问题,因为其他几个虚拟机工作得很好。我尝试了不同的主机,甚至将使用的 MAC 更改为以前使用过的 MAC 以及从未使用过的 MAC。最好我能说这不是多播 MAC 地址,我不确定问题是什么或下一步该往哪里看。任何建议,将不胜感激。

这是我用来构建 VM 的 XML - 基于构建我所有其他 VM 的相同模板(MAC 地址、名称等除外)。

<domain type='kvm'>
<name>te01</name>
<cpu mode='host-passthrough'>
<topology sockets='1' cores='1' threads='1'/>
</cpu>
<memory unit='GiB'>8</memory>
<os>
<type arch='x86_64'>hvm</type>
<boot dev='hd'/>
</os>
<features>
<acpi/>
<apic/>
</features>
<clock offset='utc'>
<timer name='rtc' tickpolicy='catchup'/>
<timer name='pit' tickpolicy='delay'/>
<timer name='hpet' present='no'/>
</clock>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<pm>
<suspend-to-mem enabled='no'/>
<suspend-to-disk enabled='no'/>
</pm>
<devices>
<emulator>/usr/bin/kvm-spice</emulator>
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='writeback' discard='ignore' io='threads'/>
<source file='/images/te01.qcow2'/>
<target dev='vda' bus='virtio'/>
</disk>
<interface type='bridge'>
<source bridge='br0'/>
<mac address='53:54:00:b4:ad:81'/>
<guest dev='ens3'/>
</interface>
<interface type='bridge'>
<source bridge='br502'/>
<guest dev='ens5'/>
</interface>
<serial type='pty'>
<source path='/dev/pts/1'/>
<target type='isa-serial' port='0'/>
<alias name='serial0'/>
</serial>
<console type='pty' tty='/dev/pts/1'>
<source path='/dev/pts/1'/>
<target type='serial' port='0'/>
<alias name='serial0'/>
</console>
<graphics type='vnc' autoport='yes'>
<listen type='address' address='0.0.0.0'/>
</graphics>
</devices>
</domain>

最佳答案

Best I can tell this is NOT a multicast mac address...



但它确实是一个多播地址,尽管不是从 IPv4 多播到 MAC 多播( 01-00-5E-00-00-0001-00-5E-7F-FF-FF)、IPv6 多播到 MAC 多播( 33-33-00-00-00-0033-33-FF-FF-FF-FF)或任何预定义的地址IEEE 多播地址,例如STP、LLDP 等。

MAC 地址的最高有效字节中有两个标志。最高有效字节的最低有效位是 I/G(个人/组)标志。设置该位意味着该地址用作组的目标地址。最高有效字节的第二个最低有效位是 U/L(通用/本地)标志。设置该位意味着 MAC 地址是本地创建的; BIA (Burned-in-Addresses) 清除 U/L 位。

任何设置了 I/G 位的 MAC 地址都是多播地址,广播 MAC 地址的特殊情况是 ( ff-ff-ff-ff-ff-ff)。这意味着 MAC 地址的最高有效字节中的任何奇数都是多播地址。

组播地址只能是目的地址,不能是分配给接口(interface)的地址。

您的 MAC 地址, 53:54:00:b4:ad:81 ,同时设置了 I/G 位,表示它是多播(目标组)地址,设置了 U/L 位,表示它是本地定义的 MAC 地址。

最高有效字节是 0x53 ( 01010011 ),因此设置了两个标志。
0   1   0   1   0   0   1   1
^ ^
| |
U/L I/G

您创建的任何 MAC 地址,不包括您拥有的任何 OUI,都应该设置 U/L 位以表明您已经创建了它们,并且它们不会踩到其他公司拥有的 OUI(不幸的是,很多组成自己 MAC 地址的人不这样做,但实际上没有任何方法可以强制执行)。接口(interface)地址必须清除 I/G 位,以防止它们成为多播(组目标)地址。

人们经常问为什么标志是最高有效字节的两个最低有效位。这是因为在以太网上发送比特、字节和帧字段的顺序。首先发送字节的最低有效位,首先发送帧的最高有效字节,并且帧的第一个字段是目标地址。另外,请记住,以太网最初是在共享介质上(现在的 Wi-Fi 方式),因此 LAN 上的所有主机都可以看到所有帧。如果目标地址是个人地址还是组地址,主机接收到的第一位告诉主机看到该帧。

关于ubuntu - libvirtError : XML error: expected unicast mac address, 发现多播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58808705/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com