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

sysctl -p /etc/sysctl.conf возвращает ошибку

При новой установке CentOS 6 на VPS после запуска sysctl -p /etc/sysctl.conf У меня такие ошибки:

error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key
error: "net.bridge.bridge-nf-call-iptables" is an unknown key
error: "net.bridge.bridge-nf-call-arptables" is an unknown key

Что является отправной точкой для решения этой ошибки?

Пытаться:

modprobe bridge
lsmod | grep bridge

Вы не загружаете те модули в ядро.

В Red Hat Bugzilla есть несколько сообщений об ошибках, например Вот, Вот и Вот.

Просто удалите строки или запустите sysctl -e -p вместо того sysctl -p.

Вы упоминаете в своем вопросе, что используете VPS. Что за VPS? Похоже, вы находитесь на OpenVZ VPS. Если это OpenVZ, он разделяет ядро ​​между многими контейнерами, такими как ваш, и вы не можете изменять конфигурацию ядра для каждого контейнера, а непосредственно на хосте. Я фактически создал небольшой контейнер OpenVZ centos и попытался применить конфигурацию ядра net.bridge.bridge-nf-call-ip6tables = 0 с последующим sysctl -p и у меня такая же ошибка, как и у вас. Если вам это действительно нужно, это означает, что вам, возможно, придется подумать об изменении типа виртуализации, которую вы используете, или вы можете попытаться связаться с вашим провайдером VPS и попросить его включить этот параметр.

Лучший.

Вы получаете ошибки, потому что у вас нет bridge модуль ядра загружен. Три варианта:

  1. Загрузите модуль, если он вам нужен
  2. Прокомментируйте эти строки из /etc/sysctl.conf
  3. Позволять sysctl игнорировать ошибки, давая ему -e флаг.

Это было исправлено в исправления redhat: RHBA-2015: 1289 (Возможно платный доступ).

Таким образом, исправление заключается в перемещении конфигурации из sysctl.conf к modprobe.d/dist.conf:

Удалите оскорбительные строки из /etc/sysctl.conf

sed -i '/net.bridge.bridge-nf-call-/d' /etc/sysctl.conf

И добавьте поведение в свой /etc/modprobe.d/dist.conf

cat <<EOF>>/etc/modprobe.d/dist.conf

# Disable netfilter on bridges when the bridge module is loaded
install bridge /sbin/modprobe --ignore-install bridge && /sbin/sysctl -q -w net.bridge.bridge-nf-call-arptables=0 net.bridge.bridge-nf-call-iptables=0 net.bridge.bridge-nf-call-ip6tables=0
EOF

Что установит значения правильно при загрузке модуля моста или просто обновит ваши rpms до версий

module-init-tools-3.9-25.el6  
initscripts-9.03.53-1.el6

Оба по умолчанию присутствуют в RHEL 6.8.

Если кому-то интересна история, стоящая за этим, то она присутствует. Вот с объяснением там.