Di sysctl, /proc/sys/net/ipv[46]/conf/
kunci memiliki subkunci berikut:all
, default
, dan kunci untuk setiap antarmuka jaringan. Misalnya, pada mesin dengan antarmuka jaringan tunggal eth0, akan terlihat seperti ini:
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/
Semua pengaturan masing-masing ada di setiap tombol secara terpisah. Misalnya, jika saya ingin menonaktifkan Iklan Router IPv6 dengan accept_ra
nilai, nilai ini ada empat kali:
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
Pertanyaan saya sekarang adalah:mana dari nilai-nilai ini yang perlu saya ubah? Saya pikir all
(untuk mengubah semua antarmuka yang ada) dan default
(untuk mengubah semua antarmuka baru yang mungkin muncul nanti), tetapi mengubahnya masih menyisakan nilai 1 untuk lo dan 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
Akankah mesin sekarang menerima Iklan Router di eth0, atau tidak?
Jawaban yang Diterima:
Saya telah menemukan jawabannya saat masih menulis pertanyaan. Saya telah memutuskan untuk tetap mempostingnya karena orang lain mungkin menganggap ini berwawasan luas, dan kemudian menjawabnya sendiri; Saya harap ini tidak disukai
Pengguna Philipp Matthias Hahn di milis linux-kernel telah mengetahuinya setidaknya sebagian:
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.
Dia tidak mencakup accept_ra
tapi setidaknya sudah jelas sekarang bagaimana all
dan default
bekerja, atau lebih tepatnya, bagaimana mereka tidak bekerja seperti yang saya harapkan.