LXD容器设置静态ip

LXD容器设置静态ip

关于此问题有很多疑问和帖子,但没有一个能解决我的问题。

我想为特定容器分配特定 IP,而无需在容器内进行配置。目标是将容器绑定到特定 IP。

  • 由于 IP/数据包欺骗,容器不能使用相同的桥作为接口。

  • 有 2 个公共 IP 指向我的主机服务器。第一个应该属于主机,第二个属于特定容器。

1.尝试:使用 lxd 桥接

如果我使用 lxd 桥接器,我可以从 lxd 桥接器网络为每个容器分配一个固定的 IP 地址(这意味着:lxd 桥接器创建一个具有 IP 范围的私有网络,该范围不是公开的,但可以从主机服务器访问)

我的主机系统可以访问私有 lxd 网络和公共网络。现在我可以(在主机系统上)将公共 IP 路由到私有 IP,从而路由到特定容器,但我还没有找到这样做的方法,因为来自公共 IP 的传入流量需要转发到私有 IP,而从私有 IP 传出的流量需要转发到公共 IP。

2.尝试:为每个 IP 创建一个网络接口,并将特定接口分配给容器

由于这非常复杂(而且我是 Linux 新手),我尝试按照以下说明进行操作https://lists.linuxcontainers.org/pipermail/lxc-users/2016-March/011271.html

但它没有成功。

我会进行第一次尝试,因为如果我可以将 IP 相互路由,它应该可以工作,但我不知道如何操作。

编辑

刚看到这个答案如何限制 LXD 客户机使用单个公共 IP 地址?

看起来这个方法可行。目前无法测试,因为我的家用路由器无法为设备分配免费 IP 地址。

答案1

  1. 配置标准 lxd 桥

  2. 创建文件/etc/默认/lxd-静态ip.conf每个主机一行,如下所示:

    dhcp-host=<containername>,<static-ipaddress>
    
  3. 编辑/etc/default/lxd-bridge, 放LXD_CONFILE变量为:

    LXD_CONFILE="/etc/default/lxd-static-ip.conf"
    
  4. 重新启动 lxd-bridge(例如systemctl 重启 lxd-bridge), 重启容器

答案2

解决方案是在主机上创建多个桥接接口,然后将一个桥接接口分配给一个容器。

这是一个完美的教程:https://wiki.hetzner.de/index.php/KVM_mit_Nutzung_aller_IPs_aus_Subnetz/en

相关内容