From 7284335adbb8cb2bc9c11f9e102906da1bf71145 Mon Sep 17 00:00:00 2001 From: Zbigniew Jędrzejewski-Szmek Date: Thu, 19 Jun 2014 20:43:56 -0400 Subject: man: document statically loading modules for sysctl settings https://bugzilla.redhat.com/show_bug.cgi?id=1022977 https://bugzilla.novell.com/show_bug.cgi?id=725412 --- man/sysctl.d.xml | 79 +++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 56 insertions(+), 23 deletions(-) diff --git a/man/sysctl.d.xml b/man/sysctl.d.xml index db53b49599..78c4e80b8c 100644 --- a/man/sysctl.d.xml +++ b/man/sysctl.d.xml @@ -71,24 +71,6 @@ is # or ; are ignored. - Note that either / or - . may be used as separators within - sysctl variable names. If the first separator is a - slash, remaining slashes and dots are left intact. If - the first separator is a dot, dots and slashes are - interchanged. kernel.domainname=foo - and kernel/domainname=foo are - equivalent and will cause foo to - be written to - /proc/sys/kernel/domainname. - Either - net.ipv4.conf.enp3s0/200.forwarding - or - net/ipv4/conf/enp3s0.200/forwarding - may be used to refer to - /proc/sys/net/ipv4/conf/enp3s0.200/forwarding. - - Each configuration file shall be named in the style of program.conf. Files in /etc/ override files @@ -110,6 +92,24 @@ number and a dash, to simplify the ordering of the files. + Note that either / or + . may be used as separators within + sysctl variable names. If the first separator is a + slash, remaining slashes and dots are left intact. If + the first separator is a dot, dots and slashes are + interchanged. kernel.domainname=foo + and kernel/domainname=foo are + equivalent and will cause foo to + be written to + /proc/sys/kernel/domainname. + Either + net.ipv4.conf.enp3s0/200.forwarding + or + net/ipv4/conf/enp3s0.200/forwarding + may be used to refer to + /proc/sys/net/ipv4/conf/enp3s0.200/forwarding. + + If the administrator wants to disable a configuration file supplied by the vendor, the recommended way is to place a symlink to @@ -125,16 +125,48 @@ specifically, net.ipv4.conf.*, net.ipv6.conf.*, - net.ipv4.neigh.* and net.ipv6.neigh.*) + net.ipv4.neigh.* and net.ipv6.neigh.*). + + Many sysctl parameters only become available + when certain kernel modules are loaded. Modules are + usually loaded on demand, e.g. when certain hardware + is plugged in or network brought up. This means that + systemd-sysctl.service8 which runs + during early boot will not configure such parameters + if they become available after it has run. To + set such parameters, it is recommended to add + an udev7 rule to set those parameters when they become + available. Alternatively, a slightly simpler and + less efficient option is to add the module to + modules-load.d5, causing it to be loaded statically + before sysctl settings are applied (see + example below). - Example + Examples + + Set kernel YP domain name + /etc/sysctl.d/domain-name.conf: + + + kernel.domainname=example.com + + - /etc/sysctl.d/domain-name.conf example: + Disable packet filter on the bridge + /etc/modules-load.d/bridge.conf: + + + bridge + + /etc/sysctl.d/bridge.conf: + - # Set kernel YP domain name -kernel.domainname=example.com + net.bridge.bridge-nf-call-ip6tables = 0 +net.bridge.bridge-nf-call-iptables = 0 +net.bridge.bridge-nf-call-arptables = 0 + @@ -146,6 +178,7 @@ kernel.domainname=example.com systemd-delta1, sysctl8, sysctl.conf5 + modprobe8 -- cgit v1.2.3-54-g00ecf