LXD public ip 到容器使用路由

LXD public ip to container using routed

我正在尝试使用 LXD 中的路由 nictype 将 public ip 设置到容器, 基本上我启动了一个新容器,运行 lxc config device add c1 eth0 nic nictype=routed parent=eth0 ipv4.address=my.public.ip 然后启动容器,它瞬间在 IPV4 部分显示正确的 ip,运行 一个 lxc 列表再次显示它消失为空白。所以它*被正确设置,至少到 lxc,但启动后几秒钟它就消失了。

我的猜测是容器内部可能存在一些 DHCP 风格的废话,试图从主机 lxd 机器获取 ip?任何想法都是有用的我对网络了解不多

routed正常工作,您需要在LXD中进行一些配置,在容器中进行一些配置。创建包含配置的两个部分的 LXD 配置文件更容易。

这是一个 LXD 配置文件示例。上半部分是关于容器的配置,下半部分是LXD为容器配置routed需要知道的

config:
  user.network-config: |
    version: 2
    ethernets:
        eth0:
            addresses:
            - 192.168.1.200/32
            nameservers:
                addresses:
                - 8.8.8.8
                search: []
            routes:
            -   to: 0.0.0.0/0
                via: 169.254.0.1
                on-link: true
description: Default LXD profile
devices:
  eth0:
    ipv4.address: 192.168.1.200
    nictype: routed
    parent: enp6s0
    type: nic
name: routed_192.168.1.200
used_by:

要使用此配置文件创建容器,您需要 运行

lxc launch ubuntu: mycontainer --profile default --profile routed_192.168.1.200

参考文献:https://blog.simos.info/how-to-get-lxd-containers-get-ip-from-the-lan-with-routed-network/