/proc/sys/net/ipv[46]/conf/ の「all」、「default」、「eth*」の違いは何ですか?

/proc/sys/net/ipv[46]/conf/ の「all」、「default」、「eth*」の違いは何ですか?

sysctlでは、これらのキーには各ネットワークインタフェースのキーと呼ばれるサブキーがあります/proc/sys/net/ipv[46]/conf/。たとえば、単一のネットワークインターフェイスであるeth0を持つコンピュータでは、次のようになります。alldefault

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/

すべての対応する設定は各キーに別々に存在します。たとえば、このaccept_ra値を使用してIPv6ルーター広告を無効にしたい場合、その値は4回存在します。

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それを変更しても、まだloとeth0の値が1のままです。

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でルーター広告を受け入れますか?

ベストアンサー1

質問を書いて答えを見つけました。とにかく、他の人がこの内容を洞察力を持って見て直接答えることもできるので、投稿することにしました。

この問題は、linux-kernelメーリングリストのPhilipp Matthias Hahnユーザーによって少なくとも部分的に解決されました。:

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.

彼はそれを紹介していませんが、accept_ra少なくとも今は彼らがどのように機能するのかalldefaultそれとも彼らが私が期待したように動作しないのかを明らかにしています。

おすすめ記事