GNU/Linux >> Belajar Linux >  >> Linux

Linux – Perbedaan Antara “all”, “default” dan “eth*” Di /proc/sys/net/ipv[46]/conf/?

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.

Terkait:Mencegat input dan output dari executable tertentu?
Linux
  1. Linux:Perbedaan Antara /dev/console , /dev/tty Dan /dev/tty0?

  2. Apa Perbedaan Antara /sbin/nologin Dan /bin/false?

  3. Perbedaan Antara /opt Dan /usr/local?

  1. Linux – Menautkan /proc/mnt Ke /proc/mounts?

  2. Apa perbedaan antara #!/usr/bin/env bash dan #!/usr/bin/bash?

  3. Kapan saya harus menggunakan /dev/shm/ dan kapan saya harus menggunakan /tmp/?

  1. Linux:Perbedaan antara /dev/console , /dev/tty dan /dev/tty0

  2. Apa perbedaan antara semua, default dan eth* di /proc/sys/net/ipv[46]/conf/?

  3. Mengapa pada beberapa sistem Linux, sistem file root muncul sebagai /dev/root bukan /dev/<real device node>di mtab?