升级到Debian 9后,多个IP的容器(LXC)的网络配置无法正常工作

问题描述 投票:0回答:1

我们有一个代理LXC容器在Proxmox服务器上运行,具有多个IP(和MAC地址),没有任何问题。托管公司(OVH)的指示是添加每个IP及其自己的虚拟mac,所有虚拟mac都指向主机默认网关。正如所解释的那样,在我们现在升级之前,它已经工作了一段时间。

在Debian 9上出于某种未知原因(可能与网络配置命名更改有关),相同的设置似乎只适用于第一个IP但不适用于后续IP。我已经读过类似的问题在CentOS上发生,因为它不允许不同的接口指向同一个网关。

Net config

Proxmox通过在/ etc / network / interfaces上添加post up规则解决了这个问题(至少达到了Deb8):

    # --- BEGIN PVE ---
    post-up ip route add xx.XX.XX.254 dev eth2
    post-up ip route add default via XX.XX.XX.254 dev eth2
    pre-down ip route del default via xx.XX.XX.254 dev eth2
    pre-down ip route del xx.XX.XX.254 dev eth2
    # END PVE ---

这似乎只在第一个界面上有效,但在其余界面上失败。

由于我们没有找到行为从Deb8变为Deb9的原因,我们只能想到以下形式的解决方案:

  1. 在没有网关的情况下声明所有辅助IP,并找到创建IP ROUTE规则的方法,该规则的工作类似于:ip route add default via xx.XX.XX.254 dev eth2但不清楚为什么它不能很难实现
  2. 仅声明容器上的第一个IP / MAC地址,并使用新语法将其他IP添加到同一接口ip address add 94.xx.xx.xx/32 dev eth2 label eth2:extraIP1,但此方法将需要使用单个虚拟MAC地址到所有ips,这是从我们的观点中移除的有各种IP的原因

任何帮助将不胜感激,或者一些关于在何处修补建议的更改的指导......为了不重写我们在重新启动或定义更改时的更改,理想情况下仅在ethX已经上升时(不能在接口定义中执行此操作)本身PVE坚持覆盖该文件。

  • /if-up.的/
  • /interfaces.的/
  • interfaces.tail(假设在接口末尾由PVE使用)
networking ip lxc debian-stretch proxmox
1个回答
1
投票

在没有找到为什么debian 8容器与debian 9上的不同行为之后,我们通过应用第二个解决方案并改变我们过去定义容器的方式来解决它。这是:

  • 只有一个公共ip在“传统”方式的容器(net0)的LXC定义上定义。这是IP指向主机网关。
  • 指向该容器的所有其他IP将共享与该容器相同的MAC地址
  • 在容器中我们在/if-up.d上添加了一个脚本: if [ "$IFACE" = eth0 ]; then ip address add XXXXXXXX/32 dev eth0 label eth0:ip2 ip address add XXXXXXXX/32 dev eth0 label eth0:ip3 fi

和/if-post-down.d/上删除(del)类似的一个

我们确实有一个额外的net1本地内部IP定义没有问题。

© www.soinside.com 2019 - 2024. All rights reserved.