Comment 24 for bug 96578

Revision history for this message
Brian Candler (b-candler) wrote :

I have observed this as a more general problem with any sysctl setting for "all" interfaces.

For example, try:

sysctl -a | grep '^net\.ipv4\.conf.*send_redirects'
sysctl -w net.ipv4.conf.all.send_redirects=0
sysctl -a | grep '^net\.ipv4\.conf.*send_redirects'
sysctl -w net.ipv4.conf.all.send_redirects=1
sysctl -a | grep '^net\.ipv4\.conf.*send_redirects'

It seems that setting conf.all does not have any effect on the individual conf.<interface> settings. This begs the question of what setting conf.all is supposed to do.

There is also conf.default which appears to be the value inherited when a new interface is created. To test:

sysctl -w net.ipv4.conf.all.send_redirects=1
sysctl -w net.ipv4.conf.default.send_redirects=0
brctl addbr br100
sysctl net.ipv4.conf.br100.send_redirects # it's 0

sysctl -w net.ipv4.conf.all.send_redirects=1
sysctl net.ipv4.conf.br100.send_redirects # it's still 0

sysctl -w net.ipv4.conf.all.send_redirects=0
sysctl -w net.ipv4.conf.default.send_redirects=1
brctl addbr br101
sysctl net.ipv4.conf.br101.send_redirects # it's 1
sysctl net.ipv4.conf.br100.send_redirects # it's still 0

This is sensible. Hence I can see how "default" is useful, but not "all".

Above tests done with Ubuntu 12.04.4 running kernel 3.8.0-36-generic