如何在 CentOS 7 上可靠地设置 net.core.ipv4.conf.rp_filter = 0?

如何在 CentOS 7 上可靠地设置 net.core.ipv4.conf.rp_filter = 0?

我想在 CentOS 7 计算机上禁用反向路径过滤。我有一个文件包含/etc/sysctl.d/以下内容,试图为我的所有网络接口禁用它:

net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.enp1s0f0.rp_filter = 0
net.ipv4.conf.enp1s0f1.rp_filter = 0
net.ipv4.conf.enp1s0f2.rp_filter = 0
net.ipv4.conf.enp1s0f3.rp_filter = 0
net.ipv4.conf.ens1f0.rp_filter = 0
net.ipv4.conf.ens1f1.rp_filter = 0
net.ipv4.conf.lo.rp_filter = 0

但是,启动后,alldefault条目仍设置为 1。我必须在启动系统后手动设置它们,以使它们按需要变为 0。同样,如果我通过 停止并重新启动网络systemctl restart network.service,它们会再次重置为 1。

有什么方法可以让这个设置按照我想要的方式保持下去吗?

答案1

事实证明,我被另一个目录所困扰,/usr/lib/sysctl.d/在启动时应用 sysctl 选项时,也会考虑其内容(按字典顺序)。有一个现有文件,50-default.conf按字典顺序排列在我的文件之后,它正在设置:

net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1

我将我的文件重命名为比这个更晚的版本,并且可以正常工作。

相关内容