lxd (ubuntu 16.10)容器mac地址

问题描述 投票:0回答:3

我正在使用 LXD 容器运行最新的 Ubuntu (16.10)。容器配置有桥接网络,并且它们从 DHCP 服务器接收自己的 IP 地址。我已对它们进行了以下配置:

lxc 配置文件设备添加默认 eth0 网卡 nictype=桥接父级=br0

lxc 网络连接 br0

现在,我需要为每个容器手动设置硬件地址(MAC),因此它们相应的静态IP永远不会改变。然而,我在 lxc 上很难做到这一点。我是否只是将它们设置在相应的 /etc/network/interfaces 中,还是有更好的(lxd/lxc)方法?

ubuntu containers lxc lxd
3个回答
8
投票

每个容器将保留与首次启动时相同的 MAC 地址。获取其值:

lxc config show container_name
  or, more precise
lxc config get container_name volatile.NIC_NAME.hwaddr

这与纯 lxc 的情况不同,您必须在 /var/lib/lxc/container_name/config 中手动设置它。

但是,如果您确实需要使用自己的一组 MAC 地址(假设 eth0 是容器的 nic):

lxc config set container_name volatile.eth0.hwaddr yo:ur:ma:ca:dd:ress

1
投票

这是在 Centos 7.8 上对我有用的方法。我认为这是一个与发行版无关的解决方案,因此可能是最具弹性的。

在容器目录( /var/lib/lxc/ )中编辑配置文件,如下所示:

 用于创建此容器的模板:/usr/share/lxc/templates/lxc-download
    # 传递给模板的参数:
    # 有关其他配置选项,请查看 lxc.container.conf(5)
    # 分发配置
    lxc.include = /usr/share/lxc/config/ubuntu.common.conf
    lxc.arch = linux64
    # 容器具体配置
    lxc.rootfs = /var/lib/lxc/web0/rootfs
    lxc.utsname = web0
    # 网络配置
    lxc.network.type = veth
    lxc.network.flags = 向上
    lxc.network.link = virbr0
    **lxc.network.hwaddr = 6a:d4:d2:a7:9b:4e**

注意最后一行。这是我添加的 - 这似乎保持了 MAC 地址不变。


0
投票
lxc config device override <instance name> eth0 hwaddr=00:11:22:aa:bb:cc

覆盖命令将 NIC 配置从配置文件复制到实例中,然后修改您提供的配置密钥。

通过托马斯帕罗特

© www.soinside.com 2019 - 2024. All rights reserved.