Я хотел бы отключить фильтрацию обратного пути на машине 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
Я переименовал свой файл, чтобы он появился позже, и он работает.