4

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

lxc 配置文件设备添加默认 eth0 nic nictype=bridged parent=br0

lxc 网络附加 br0

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

4

2 回答 2

6

每个容器都将保持与首次启动时相同的 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
于 2016-11-29T21:33:08.200 回答
1

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

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

    用于创建此容器的模板:/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 地址不变。

于 2021-03-29T18:03:26.587 回答