En sysctl, las /proc/sys/net/ipv[46]/conf/teclas tienen las siguientes subclaves: all, default, y una clave para cada interfaz de red. Por ejemplo, en una máquina con una única interfaz de red eth0, se verá así:
iserv ~ # ll /proc/sys/net/ipv[46]/conf/
/proc/sys/net/ipv4/conf/:
insgesamt 0
dr-xr-xr-x 0 root root 0 12. Sep 23:30 all/
dr-xr-xr-x 0 root root 0 12. Sep 23:30 default/
dr-xr-xr-x 0 root root 0 12. Sep 23:30 eth0/
dr-xr-xr-x 0 root root 0 12. Sep 23:30 lo/
/proc/sys/net/ipv6/conf/:
insgesamt 0
dr-xr-xr-x 0 root root 0 12. Sep 23:30 all/
dr-xr-xr-x 0 root root 0 12. Sep 23:30 default/
dr-xr-xr-x 0 root root 0 12. Sep 23:30 eth0/
dr-xr-xr-x 0 root root 0 12. Sep 23:30 lo/
Todas las configuraciones respectivas existen en cada tecla por separado. Por ejemplo, si deseo deshabilitar los anuncios de enrutador IPv6 con el accept_ravalor, este valor existe cuatro veces:
iserv ~ # sysctl -a 2>/dev/null | grep "accept_ra "
net.ipv6.conf.all.accept_ra = 1
net.ipv6.conf.default.accept_ra = 1
net.ipv6.conf.lo.accept_ra = 1
net.ipv6.conf.eth0.accept_ra = 1
Mi pregunta ahora es: ¿cuál de estos valores necesito cambiar? Imaginé all(para cambiar todas las interfaces existentes) y default(para cambiar todas las nuevas interfaces que puedan aparecer más adelante), pero al cambiarlas aún queda el valor en 1 para lo y eth0:
iserv ~ # sysctl -w net.ipv6.conf.all.accept_ra=0
net.ipv6.conf.all.accept_ra = 0
iserv ~ # sysctl -w net.ipv6.conf.default.accept_ra=0
net.ipv6.conf.default.accept_ra = 0
iserv ~ # sysctl -a 2>/dev/null | grep "accept_ra "  
net.ipv6.conf.all.accept_ra = 0
net.ipv6.conf.default.accept_ra = 0
net.ipv6.conf.lo.accept_ra = 1
net.ipv6.conf.eth0.accept_ra = 1
¿La máquina ahora aceptará anuncios de enrutador en eth0, o no?

Respuestas:
Encontré la respuesta mientras aún escribía la pregunta. He decidido publicarlo de todos modos porque otros pueden encontrar esto perspicaz y luego responderlo yo mismo; Espero que esto no esté mal visto :)
El usuario Philipp Matthias Hahn en la lista de correo del kernel de Linux lo ha descubierto al menos parcialmente :
Él no cubre,
accept_rapero al menos ahora está claro cómoally cómodefaultfuncionan, o más bien, cómo no funcionan como esperaba.fuente
use_tempaddrparámetro ...El controlador para
accept_raennet/ipv6/addrconf.cesproc_dointvec. Entonces, el código genérico de la interfaz ha generado previamente una matriz deallentradas específicas de la interfaz, y escribir en ellas consysctlo procfs simplemente coloca el valor que especifique en la matriz.Nos preocupa cómo se usan esos valores
Verá por las personas que llaman la
ipv6_accept_ra()funcióninclude/net/ipv6.hque cada persona que llama utiliza una interfaz específica para llamar a esa función.Por lo tanto
net.ipv6.conf.all.accept_ra, hasta donde puedo ver, no hay ningún lugar en el núcleo que se use, excepto para almacenar una entrada procfs.Si desea cambiar
accept_racada interfaz con un comando, puede hacer esto:Llego unos 4 años tarde pero esta es la respuesta correcta: P
fuente