lxd(ubuntu 16.10)容器mac地址

时间:2016-11-04 15:21:07

标签: ubuntu containers lxc lxd

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

lxc profile device add default eth0 nic nictype = bridged parent = br0

lxc network attach br0

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

2 个答案:

答案 0 :(得分:3)

每个容器将保留与首次启动时相同的MAC地址。要获得它的价值:

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

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

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

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

答案 1 :(得分:0)

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

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

    Template used to create this container: /usr/share/lxc/templates/lxc-download
    # Parameters passed to the template: 
    # For additional config options, please look at lxc.container.conf(5)
    # Distribution configuration
    lxc.include = /usr/share/lxc/config/ubuntu.common.conf
    lxc.arch = linux64
    # Container specific configuration
    lxc.rootfs = /var/lib/lxc/web0/rootfs
    lxc.utsname = web0
    # Network configuration
    lxc.network.type = veth
    lxc.network.flags = up
    lxc.network.link = virbr0
    **lxc.network.hwaddr = 6a:d4:d2:a7:9b:4e**

注意最后一行。这就是我添加的内容 - 这似乎可以保持 MAC 地址不变。