Назад | Перейти на главную страницу

Как я могу надежно установить net.core.ipv4.conf.rp_filter = 0 в CentOS 7?

Я хотел бы отключить фильтрацию обратного пути на машине 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

Однако после загрузки all и default записи по-прежнему имеют значение 1. Я должен вручную установить их после загрузки системы, чтобы сделать их 0 по желанию. Аналогичным образом, если я остановлю и перезапущу сеть через systemctl restart network.service, они снова сбрасываются на 1.

Есть ли способ сделать этот параметр так, как я хочу?

Оказывается, меня обожгло то, что есть еще один каталог, /usr/lib/sysctl.d/, содержимое которого также учитывается (в лексикографическом порядке) при применении параметров sysctl во время загрузки. Был существующий файл, 50-default.conf, лексикографически позже, чем мой файл, он устанавливал:

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

Я переименовал свой файл, чтобы он появился позже, и он работает.