GNU/Linux >> Tutoriales Linux >  >> Linux

Linux:la diferencia entre "all", "default" y "eth*" en /proc/sys/net/ipv[46]/conf/?

En sysctl, /proc/sys/net/ipv[46]/conf/ Las claves tienen las siguientes subclaves:all , default y una clave para cada interfaz de red. Por ejemplo, en una máquina con una sola 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/

Todos los ajustes respectivos existen en cada tecla por separado. Por ejemplo, si quiero deshabilitar los anuncios de enrutador IPv6 con accept_ra valor, 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? Pensé all (para cambiar todas las interfaces existentes) y default (para cambiar todas las interfaces nuevas que pueden aparecer más adelante), pero cambiarlas aún deja 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 aceptará anuncios de enrutador en eth0 o no?

Respuesta aceptada:

Encontré la respuesta mientras seguía escribiendo la pregunta. Decidí 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:

As far as I researched for IPv4 some time ago, the "default" value gets
copied to newly created interfaces only once.
"all" on the other hand allways gets applied in addition to the current
setting, but it depends on the exact setting, if its ORed, ANDed, or
whatevered:
    log_martians         OR
    accept_redirects     AND
    forwarding           ?
    mc_forwarding        AND
    medium_id
    proxy_arp            OR
    shared_media         OR
    secure_redirects     OR
    send_redirects       OR
    bootp_relay          AND
    accept_source_route  AND
    rp_filter            AND
    arp_filter           OR
    arp_announce         MAX
    arp_ignore           MAX
    arp_accept
    app_solicit
    disable_policy
    disable_xfrm
    tag
(see include/linux/inetdevice.h:83 for IN_DEV_{AND,OR,MAX}CONF)

Putting a new value in "all" doesn't change the value you read from
"$interface", but it only gets computed and used internally.

No cubre accept_ra pero al menos ahora está claro cómo all y default funcionan, o mejor dicho, cómo no funcionan como hubiera esperado.

Relacionado:¿Interceptar entrada y salida de un ejecutable específico?
Linux
  1. Linux:¿Diferencia entre /dev/console, /dev/tty y /dev/tty0?

  2. ¿La diferencia entre /opt y /usr/local?

  3. ¿Cuál es la diferencia entre #!/usr/bin/env bash y #!/usr/bin/bash?

  4. ¿Cuándo debo usar /dev/shm/ y cuándo debo usar /tmp/?

  5. Diferencia entre /bin y /usr/bin

Archivos /proc/cpuinfo y /proc/meminfo en Linux

Comprender los archivos /proc/mounts, /etc/mtab y /proc/partitions

/proc/[pid]/pagemaps y /proc/[pid]/maps | linux

Linux:diferencia entre /dev/console, /dev/tty y /dev/tty0

¿Cuál es la diferencia entre all, default y eth* en /proc/sys/net/ipv[46]/conf/?

¿Por qué en algunos sistemas Linux, el sistema de archivos raíz aparece como /dev/root en lugar de /dev/<nodo de dispositivo real> en mtab?