OpenVZ 容器内完全忽略 ip6tables 规则

OpenVZ 容器内完全忽略 ip6tables 规则

我们已经使用桥接 veth 设备在 openvz 上设置了 IPv6 网络。往返于 VE 的 IPv6 流量运行正常。

ip6tables 在 HN 上运行,iptables 在 VE 上运行。在 VE 中,我们可以设置 ip6tables 规则,而不会出现任何错误消息。然而,它们会被完全忽略。

ip6tables 要工作,需要哪些额外的配置选项?

答案1

看来你正在使用 proxmox 下的容器,对吧?然后,你应该从 proxmox 中的图形界面检查网络地址是否正常并且 PVE 知道。
在某些情况下,pve 会阻止使用某些 iptables 模块,例如:
FATAL:无法加载 /lib/modules/4.15.18-1-pve/modules.dep:没有这样的文件或目录

笔记:在 proxmox 5 上,开放VZ集装箱将转换为龙芯,这可能会带来一些偏见

答案2

确保您明确地将规则应用于 venet0 接口。

答案3

OpenVZ 容器从主机节点继承内核和模块。因此,您无法在 OpenVZ/LXC 容器中加载新的内核模块。我会确保主机节点将内核模块ip6_tables编译到内核中或作为模块加载。

这是一个问题,因为 OpenVZ 是半虚拟化的,这意味着它与主机节点共享同一个内核。由于您与其他 OpenVZ 容器共享同一个内核,因此您无法将模块加载到内核中。使用硬件虚拟机,您可以运行自己的内核,然后可以加载/卸载内核模块,或编译自己的内核以供使用。下面链接的问题更详细地介绍了差异。

完全虚拟化、准虚拟化和硬件辅助虚拟化之间有什么区别?

遗憾的是,当您只能访问 Guest OpenVZ 环境时,确定 IPv6 IPtables 模块是否已加载可能会有点困难lsmod,因为/proc/modules、和/proc/config.gz 经常不存在于 OpenVZ 内部。

因此,您可能只需要联系您的提供商,因为主机节点上具有 root 访问权限的人必须为您加载此内核模块。

相关内容