В SYSCTL, что /proc/sys/net/ipv[46]/conf/
клавиши имеют следующие подразделы: all
, default
, и ключ для каждого сетевого интерфейса. Например, на машине с одним сетевым интерфейсом eth0 это будет выглядеть так:
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/
Все соответствующие настройки существуют в каждой клавише отдельно. Например, если я хочу отключить объявления маршрутизатора IPv6 со accept_ra
значением, это значение существует четыре раза:
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
Теперь у меня вопрос: какое из этих значений мне нужно изменить? Я решил all
(чтобы изменить все существующие интерфейсы) и default
(чтобы изменить все новые интерфейсы, которые могут появиться позже), но изменение их все равно оставляет значение 1 для lo и 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
Будет ли машина теперь принимать Router Advertisements на eth0 или нет?