我使用 linux-vserver 托管了几个 VPS。现在我想切换到 LXC。到目前为止,它看起来很有希望,但我不知道如何设置网络。特别是要使用哪种接口类型以及如何配置它。
这是我的设置/我需要的:
- 主机有一个 IP,它在启动时使用 DHCP 获取。
- 我想使用其配置文件为每个客户机分配(多个)静态 IP 地址。
- 这些 IP 地址应该是全世界可访问的(它们是公共 IP 地址)。
- 客户机不应该能够分配/设置我在其配置文件中未指定的 IP 地址。
- 理想情况下,客人可以使用 iptables、openvpn 等。
我还想知道如何向正在运行的客户机添加/删除 IP 地址?
提前致谢,科林
答案1
我想答案来得太晚了但如果它能有所帮助......
vserver 和 lxc 以不同的方式处理网络:
将 vserver 视为现有接口上的 IP 别名(即不涉及机器上的复杂路由过程,换句话说不需要 ip_forward)。
LXC 通过使用多种接口类型(phys、veth、vlan、macvlan)来实现更复杂的网络。换句话说,它允许您虚拟化网络的一部分。请看这篇文章:veth、macvlan 或者其他什么?
在 vserver 中,网络配置主要在 LXC 中的主机端(/etc/vserver/)进行,第 2 层主要在主机端配置,而第 3 层(IP、dhcp 等)主要在客户机端配置(通过 /etc/network/interface)。
从 lxc.conf (5) lxc 使用 lxc.network.ipv4=... 在主机端配置 IP 的方法。但据我了解,此配置被客户机配置覆盖。
有一个“lxc.cap.drop”可以限制客户机的功能,并且它可能会限制 IP 分配,但我还没有测试过。
无需登录访客即可从主机更改访客的 IP,这对我来说似乎是不可能的。
当然,iptables 规则可以在主机上定义,但也可以在客户机端设置。对于可以在主机端记录的日志消息有一些限制。但主机和客户机中的 iptables 空间不同(即,在客户机上定义的 iptables 规则不会显示在主机上,反之亦然)。
关于 openvpn,我不知道。这可能有点棘手,因为 openvpn 可能会尝试在 lxc 环境中设置 tun/tap 接口。