W sysctl, że /proc/sys/net/ipv[46]/conf/
klawisze mają następujące podklucze: all
, default
, a kluczowy dla każdego interfejsu sieciowego. Na przykład na komputerze z jednym interfejsem sieciowym eth0 będzie wyglądać następująco:
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/
Wszystkie odpowiednie ustawienia istnieją w każdym kluczu osobno. Na przykład, jeśli chcę wyłączyć reklamy routera IPv6 z tą accept_ra
wartością, ta wartość istnieje cztery razy:
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
Moje pytanie brzmi: które z tych wartości muszę zmienić? Pomyślałem all
(aby zmienić wszystkie istniejące interfejsy) i default
(aby zmienić wszystkie nowe interfejsy, które mogą pojawić się później), ale ich zmiana nadal pozostawia wartość 1 dla lo i 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
Czy urządzenie będzie teraz akceptować Reklamy routera na eth0, czy nie?