Como fazer com que as configurações da ponte de rede sysctl persistam após uma reinicialização?

1

Estou montando um notebook para fins de demonstração de software. A máquina tem 8GB de RAM, um CPU Intel Core i7, um SSD de 128GB e roda o Ubuntu 12.04 LTS 64bit. O notebook é usado como um host KVM e executa alguns convidados do KVM.

Todos esses convidados usam a ponte padrão virbr0 . Para permitir que eles se comuniquem usando multicast, adicionei o seguinte ao /etc/sysctl.conf do host, como mostrado abaixo

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

Depois, seguindo man sysctl(8) , eu publiquei o seguinte:

sudo /sbin/sysctl -p /etc/sysctl.conf

Meu entendimento é que isso deve fazer com que essas configurações persistam durante as reinicializações. Eu testei e fiquei surpreso ao descobrir o seguinte:

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

Todos os padrões estão voltando!

Sim. Eu posso usar alguns kludgy "contornar", como colocar um /sbin/sysctl -p /etc/sysctl.conf em /etc/rc.local do host, mas eu prefiro "fazer o certo". Eu entendi mal a página do manual ou há algo que eu perdi?

Obrigado por qualquer sugestão.

- Zack

    
por Zack Perry 25.09.2012 / 02:40

2 respostas

1

Por acaso, encontrei algumas informações adicionais. Até mesmo o "kludgy get around" que eu primeiro pensei é uma "solução sugerida" no Wiki do Debain , não trabalhe na minha máquina Ubuntu 12.04! Suspiro :-(

Por favor, veja Alguns sysctl's são ignorados na inicialização - alguém reportou esse bug de volta 2006 e ainda não está consertado!

Note que A configuração de variáveis de kernel relacionadas a pontes também é referenciada no segundo link acima.

Uma situação bastante decepcionante, IMHO.

- Zack

    
por Zack Perry 25.09.2012 / 02:59
0

Ainda bateu este problema na minha instalação do Debian Jessie. Eu escrevi o script systemd abaixo como solução alternativa. Note que será executado mais tarde que as configurações do sysctl teriam sido lidas, mas isso não é problema no meu caso.

[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

Não se esqueça de ativá-lo com systemctl enable bridge-config.service .

    
por Bob Van de Vijver 30.01.2017 / 23:06