我们有一个Proxmox服务器上运行的代理LXC容器,该服务器具有多个IP(和mac地址),没有问题。托管公司(OVH)的指示是在每个IP上添加自己的虚拟mac,这些虚拟mac都指向主机默认网关。如前所述,在我们升级之前,它一直运行良好。
在Debian 9上,由于某些未知的原因(可能与网络配置命名更改有关),相同的设置似乎仅适用于第一个IP,但不适用于随后的IP。我读过CentOS上发生过类似的问题,因为它不允许不同的接口指向同一网关。
Proxmox通过在/ etc / network / interfaces上添加发布规则来解决此问题(至少达到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的原因,因此我们只能想到以下形式的解决方案:
ip route add default via xx.XX.XX.254 dev eth2
,但不清楚为什么它很难实现ip address add 94.xx.xx.xx/32 dev eth2 label eth2:extraIP1
,但是这种方法将需要对所有ip使用单个虚拟MAC地址。从我们的角度来看,消除了拥有各种IP的原因我们将不胜感激任何帮助,或者提供一些指导,指导在何处修补建议的更改...,以便PVE在重新启动或定义更改时不要覆盖我们的更改,并且最好仅在ethX升高时才能覆盖(不能这样做)在接口定义本身中,因为PVE坚持要覆盖该文件。
答案 0 :(得分:1)
在不知道为什么在debian 8容器和debian 9上存在不同的行为之后,我们通过应用第二种解决方案并更改了过去定义容器的方式来解决了该问题。 这是:
在容器内,我们在/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
和一个类似的要删除的(del)在/if-post-down.d /
我们确实定义了一个额外的net1本地内部IP,没有问题。