【问题标题】:lxd (ubuntu 16.10) container mac addresslxd (ubuntu 16.10) 容器mac地址
【发布时间】:2017-03-18 11:55:09
【问题描述】:

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

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

lxc 网络附加 br0

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

【问题讨论】:

    标签: ubuntu containers lxc lxd


    【解决方案1】:

    每个容器都将保持与首次启动时相同的 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
    

    【讨论】:

    • “纯 lxc”?是没有 lxd 的 lxc 吗?您知道最新版本是否仍然如此吗?
    • @KenSharp 命令lxc 表示它适用于 LXC 2.x 及更高版本(即使用 LXD)。 LXC 1.x 使用lxc-* 命令。
    • 这个可以设置为默认地址吗?例如,如果我想将所有新容器的 hwaddr 更改为 12:34:56:xx:xx:xx
    【解决方案2】:

    这就是在 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 地址不变。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-21
      • 2016-10-23
      • 1970-01-01
      • 2015-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-09
      相关资源
      最近更新 更多