我创建了 6 个命名空间并使用 veth 链接配置它们。我正在尝试附加 MAC 地址。但显示以下错误:
SIOCSIFHWADDR: Cannot assign requested address
SIOCSIFHWADDR: Cannot assign requested address
SIOCSIFHWADDR: Cannot assign requested address
这是我的代码:
添加命名空间
ip netns add ns1
ip netns add ns2
ip netns add ns3
ip netns add ns4
ip netns add ns5
ip netns add ns6
添加veth
ip link add eth0 type veth peer name eth1
ip link add eth2 type veth peer name eth3
ip link add eth4 type veth peer name eth5
ip link add eth6 type veth peer name eth7
ip link add eth8 type veth peer name eth9
链接韦斯
ip link set netns ns1 eth0
ip link set netns ns2 eth3
ip link set netns ns3 eth6
ip link set netns ns4 eth9
ip link set netns ns5 eth1
ip link set netns ns5 eth2
ip link set netns ns5 eth4
ip link set netns ns6 eth5
ip link set netns ns6 eth7
ip link set netns ns6 eth8
分配 mac
ip netns exec ns1 ifconfig eth0 hw ether 00:00:00:00:00:00
ip netns exec ns2 ifconfig eth3 hw ether 03:03:03:03:03:03
ip netns exec ns3 ifconfig eth6 hw ether 06:06:06:06:06:06
ip netns exec ns4 ifconfig eth9 hw ether 09:09:09:09:09:09
有人可以帮忙吗?
答案1
不存在命名空间问题。不存在 veth(虚拟以太网)类型问题。唯一的问题是MAC地址选择:
00:00:00:00:00:00
肯定是为“未设置”之类的事情保留的,因此无效
任何地址带有多播位(第一个八位字节的最低有效位)设置不能是卡的硬件地址:多播地址只能是目的地地址,不是来源,因此将其分配给卡片是没有意义的。所以打击那些:
03:03:03:03:03:03
09:09:09:09:09:09
剩余有效以太网 MAC 地址:
06:06:06:06:06:06
其中甚至有本地位(第一个八位字节的第二个最低有效位)集,这对于测试和虚拟化来说是更可取的(但技术上根本不是强制性的)。
正如评论中所说,最好保留那些已经随机且正确生成的内容。如果需要它们,只需检索它们的值以供以后使用(包括以后重新使用它们以获得完全的可重复性)。