Как сохранить настройки сетевого моста sysctl после перезагрузки?

Я настраиваю ноутбук для демонстрации программного обеспечения. Машина имеет 8 ГБ оперативной памяти, процессор Core i7 Intel, твердотельный накопитель 128 ГБ и работает под управлением Ubuntu 12.04 LTS 64bit. Записная книжка используется в качестве хоста KVM и работает с несколькими гостями KVM.

Все такие гости используют мост по умолчанию virbr0. Чтобы они могли общаться друг с другом с помощью многоадресной рассылки, я добавил следующее в /etc/sysctl.conf хоста, как показано ниже

net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0

Впоследствии, после man sysctl(8), я выпустил следующее:

[ 111]

Насколько я понимаю, эти настройки должны сохраняться при перезагрузке. Я проверил это и с удивлением обнаружил следующее:

root@sdn1 :/proc/sys/net/bridge# more *tables
::::::::::::::
bridge-nf-call-arptables
::::::::::::::
1
::::::::::::::
bridge-nf-call-ip6tables
::::::::::::::
1
::::::::::::::
bridge-nf-call-iptables
::::::::::::::
1

Все значения по умолчанию возвращаются!

Да. Я могу использовать некоторые хитрые «обходные пути», такие как вставка /sbin/sysctl -p /etc/sysctl.conf в хост /etc/rc.local, но я бы предпочел «сделать это правильно». Я неправильно понял справочную страницу или что-то упустил?

Спасибо за любые подсказки.

- Зак

1
задан 25 September 2012 в 04:40

2 ответа

По счастливой случайности я столкнулся с некоторой дополнительной информацией. Даже то, о чем я сначала подумал, это «предлагаемое решение» в Debain wiki , оно не работает на моей машине с Ubuntu 12.04! Вздох :-(

Пожалуйста, смотрите Некоторые sysctl игнорируются при загрузке - кто-то сообщил об этой ошибке еще в 2006 году, и она все еще не исправлена!

Обратите внимание, что Настройка Связанные с мостом переменные ядра также упоминаются во 2-й ссылке выше.

Довольно неутешительная ситуация, ИМХО.

- Зак

0
ответ дан 25 September 2012 в 04:40

Эта проблема все еще встречается в моей установке Debian Jessie. Я написал сценарий systemd ниже как обходной путь. Обратите внимание, что позже будет выполнено чтение конфигов sysctl, но в моем случае это не проблема.

[Unit]
Description=Bridge configuration
After=network.target

[Service]
WorkingDirectory=/root
User=root
Type=oneshot
ExecStart=/bin/bash -c "/bin/echo 0 > /proc/sys/net/bridge/bridge-nf-call-iptables"
ExecStart=/bin/bash -c "/bin/echo 0 > /proc/sys/net/bridge/bridge-nf-call-ip6tables"

[Install]
WantedBy=multi-user.target

Не забудьте включить его с помощью systemctl enable bridge-config.service.

0
ответ дан 25 September 2012 в 04:40

Другие вопросы по тегам:

Похожие вопросы: