У 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
Чи тепер машина прийме рекламу маршрутизаторів на eth0, чи ні?