Skip to content

Commit bbe4743

Browse files
authored
Merge pull request systemd#4273 from keszybz/docs
Routing-domains-manpage tweak and NEWS update
2 parents 05ecf46 + 1ef11fb commit bbe4743

File tree

5 files changed

+86
-35
lines changed

5 files changed

+86
-35
lines changed

Makefile.am

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6556,7 +6556,7 @@ print-%:
65566556
@echo $($*)
65576557

65586558
git-contrib:
6559-
@git shortlog -s `git describe --abbrev=0`.. | cut -c8- | awk '{ print $$0 "," }' | sort -u
6559+
@git shortlog -s `git describe --abbrev=0`.. | cut -c8- | sed 's/ / /g' | awk '{ print $$0 "," }' | sort -u
65606560

65616561
EXTRA_DIST += \
65626562
tools/gdb-sd_dump_hashmaps.py

NEWS

Lines changed: 60 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,46 @@ CHANGES WITH 232 in spe
55
* The new RemoveIPC= option can be used to remove IPC objects owned by
66
the user or group of a service when that service exits.
77

8+
* ProtectSystem= option gained a new value "strict", which causes the
9+
whole file system tree with the exception of /dev, /proc, and /sys,
10+
to be remounted read-only for a service.
11+
12+
The new ProtectedKernelTunables= options can be used to disable
13+
modification of configuration files in /sys and /proc by a service.
14+
Various directories and files are remounted read-only, so access is
15+
restricted even if the file permissions would allow it.
16+
17+
The new ProtectControlGroups= option can be used to disable write
18+
access by a service to /sys/fs/cgroup.
19+
20+
* Various systemd services have been hardened with
21+
ProtectKernelTunables=yes, ProtectControlGroups=yes,
22+
RestrictAddressFamilies=.
23+
24+
In particular, systemd-udevd.service is now run in a Seccomp-based
25+
sandbox that prohibits access to AF_INET and AF_INET6 sockets and
26+
thus access to the network. This might break code that runs from udev
27+
rules that tries to talk to the network. Doing that is generally a
28+
bad idea and unsafe due to a variety of reasons. It's also racy as
29+
device management would race against network configuration. It is
30+
recommended to rework such rules to use the SYSTEMD_WANTS property on
31+
the relevant devices to pull in a proper systemd service (which can
32+
be sandboxed differently and ordered correctly after the network
33+
having come up). If that's not possible consider reverting this
34+
sandboxing feature locally by removing the RestrictAddressFamilies=
35+
setting from the systemd-udevd.service unit file, or adding AF_INET
36+
and AF_INET6 to it.
37+
838
* Support for dynamically creating users for the lifetime of a service
939
has been added. If DynamicUser=yes is specified, user and group IDs
1040
will be allocated from the range 61184..65519 for the lifetime of the
1141
service. They can be resolved using the new nss-systemd.so NSS
1242
module. The module must be enabled in /etc/nsswitch.conf. Services
1343
started in this way have PrivateTmp= and RemoveIPC= enabled, so that
1444
any resources allocated by the service will be cleaned up when the
15-
service exits.
45+
service exits. They also have ProtectHome=read-only and
46+
ProtectSystem=strict enabled, so they are not able to make any
47+
permanent modifications to the system.
1648

1749
The nss-systemd module also always resolves root and nobody, making
1850
it possible to have no /etc/passwd or /etc/group files in minimal
@@ -54,7 +86,7 @@ CHANGES WITH 232 in spe
5486
mount the EFI partition on systems where /boot is used for something
5587
else.
5688

57-
* disk/by-id symlinks are now created for NVMe drives.
89+
* disk/by-id and disk/by-path symlinks are now created for NVMe drives.
5890

5991
* Two new user session targets have been added to support running
6092
graphical sessions under the systemd --user instance:
@@ -93,6 +125,9 @@ CHANGES WITH 232 in spe
93125
* systemd-run gained a new --wait option that makes service execution
94126
synchronous.
95127

128+
systemctl gained a new --wait option that causes the start command to
129+
wait until the units being started have terminated again.
130+
96131
* A new journal output mode "short-full" has been added which uses
97132
timestamps with abbreviated English day names and adds a timezone
98133
suffix. Those timestamps include more information and can be parsed
@@ -106,6 +141,12 @@ CHANGES WITH 232 in spe
106141
from a single IP can be limited with MaxConnectionsPerSource=,
107142
extending the existing setting of MaxConnections.
108143

144+
* systemd-networkd gained support for vcan ("Virtual CAN") interface
145+
configuration.
146+
147+
* .netdev and .network configuration can now be extended through
148+
drop-ins.
149+
109150
* UDP Segmentation Offload, TCP Segmentation Offload, Generic
110151
Segmentation Offload, Generic Receive Offload, Large Receive Offload
111152
can be enabled and disabled using the new UDPSegmentationOffload=,
@@ -118,39 +159,42 @@ CHANGES WITH 232 in spe
118159
new STP=, Priority=, AgeingTimeSec=, and DefaultPVID= settings in the
119160
[Bridge] section of .netdev files.
120161

162+
The route table to which routes received over DHCP or RA should be
163+
added can be configured with the new RouteTable= option in the [DHCP]
164+
and [IPv6AcceptRA] sections of .network files.
165+
121166
Address Resolution Protocol can be disabled on links managed by
122167
systemd-networkd using the ARP=no setting in the [Link] section of
123168
.network files.
124169

125170
* $SERVICE_RESULT, $EXIT_CODE, $EXIT_STATUS are set for ExecStop= and
126171
ExecStopPost= commands.
127172

173+
* systemd-sysctl will now configure kernel parameters in the order
174+
they occur in the configuration files. This mathes what sysctl
175+
has been traditionally doing.
176+
177+
* kernel-install "plugins" that are executed to perform various
178+
tasks after a new kernel is added and before an old one is removed
179+
can now return a special value to terminate the procedure and
180+
prevent any later plugins from running.
181+
128182
* Journald's SplitMode=login setting has been deprecated. It has been
129183
removed from documentation, and it's use is discouraged. In a future
130184
release it will be completely removed, and made equivalent to current
131185
default of SplitMode=uid.
132186

187+
* Storage=both option setting in /etc/systemd/coredump.conf has been
188+
removed. With fast LZ4 compression storing the core dump twice is not
189+
useful.
190+
133191
* The --share-system systemd-nspawn option has been replaced with an
134192
(undocumented) variable $SYSTEMD_NSPAWN_SHARE_SYSTEM, but the use of
135193
this functionality is discouraged. In addition the variables
136194
$SYSTEMD_NSPAWN_SHARE_NS_IPC, $SYSTEMD_NSPAWN_SHARE_NS_PID,
137195
$SYSTEMD_NSPAWN_SHARE_NS_UTS may be used to control the unsharing of
138196
individual namespaces.
139197

140-
* systemd-udevd.service is now run in a Seccomp-based sandbox that
141-
prohibits access to AF_INET and AF_INET6 sockets and thus access to
142-
the network. This might break code that runs from udev rules that
143-
tries to talk to the network. Doing that is generally a bad idea and
144-
unsafe due to a variety of reasons. It's also racy as device
145-
management would race against network configuration. It is
146-
recommended to rework such rules to use the SYSTEMD_WANTS property on
147-
the relevant devices to pull in a proper systemd service (which can
148-
be sandboxed differently and ordered correctly after the network
149-
having come up). If that's not possible consider reverting this
150-
sandboxing feature locally by removing the RestrictAddressFamilies=
151-
setting from the systemd-udevd.service unit file, or adding AF_INET
152-
and AF_INET6 to it.
153-
154198
CHANGES WITH 231:
155199

156200
* In service units the various ExecXYZ= settings have been extended

TODO

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -821,6 +821,7 @@ Features:
821821
or interface down
822822
- some servers don't do rapid commit without a filled in IA_NA, verify
823823
this behavior
824+
- RouteTable= ?
824825

825826
External:
826827

man/systemd.netdev.xml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -173,8 +173,7 @@
173173
<entry>A Virtual Routing and Forwarding (<ulink url="https://www.kernel.org/doc/Documentation/networking/vrf.txt">VRF</ulink>) interface to create separate routing and forwarding domains.</entry></row>
174174

175175
<row><entry><varname>vcan</varname></entry>
176-
<entry>The virtual CAN driver (vcan). Similar to the network loopback devices,
177-
vcan offers a virtual local CAN interface.</entry></row>
176+
<entry>The virtual CAN driver (vcan). Similar to the network loopback devices, vcan offers a virtual local CAN interface.</entry></row>
178177

179178
</tbody>
180179
</tgroup>

man/systemd.network.xml

Lines changed: 23 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -467,24 +467,31 @@
467467
<varlistentry>
468468
<term><varname>Domains=</varname></term>
469469
<listitem>
470-
<para>The domains used for DNS host name resolution on this link. Takes a list of DNS domain names which
471-
are used as search suffixes for extending single-label host names (host names containing no dots) to become
472-
fully qualified domain names (FQDNs). If a single-label host name is resolved on this interface, each of
473-
the specified search domains are appended to it in turn, converting it into a fully qualified domain name,
474-
until one of them may be successfully resolved.</para>
475-
476-
<para>The specified domains are also used for routing of DNS queries: look-ups for host names ending in the
477-
domains specified here are preferably routed to the DNS servers configured for this interface. If a domain
478-
name is prefixed with <literal>~</literal>, the domain name becomes a pure "routing" domain, the DNS server
479-
is used for the given domain names only and is not used in the described domain search logic. By specifying a
480-
routing domain of <literal>~.</literal> (the tilde indicating definition of a routing domain, the dot
481-
referring to the DNS root domain which is the implied suffix of all valid DNS names) it is possible to
482-
route all DNS traffic preferably to the DNS server specified for this interface. The route domain logic is
483-
particularly useful on multi-homed hosts with DNS servers serving particular private DNS zones on each
484-
interface.</para>
470+
<para>A list of domains which should be resolved using the DNS servers on this link. Each item in the list
471+
should be a domain name, optionally prefixed with a tilde (<literal>~</literal>). The domains with the
472+
prefix are called "routing-only domains". The domains without the prefix are called "search domains" and
473+
are first used as search suffixes for extending single-label host names (host names containing no dots) to
474+
become fully qualified domain names (FQDNs). If a single-label host name is resolved on this interface,
475+
each of the specified search domains are appended to it in turn, converting it into a fully qualified
476+
domain name, until one of them may be successfully resolved.</para>
477+
478+
<para>Both "search" and "routing-only" domains are used for routing of DNS queries: look-ups for host names
479+
ending in those domains (hence also single label names, if any "search domains" are listed), are routed to
480+
the DNS servers configured for this interface. The domain routing logic is particularly useful on
481+
multi-homed hosts with DNS servers serving particular private DNS zones on each interface.</para>
482+
483+
<para>The "routing-only" domain <literal>~.</literal> (the tilde indicating definition of a routing domain,
484+
the dot referring to the DNS root domain which is the implied suffix of all valid DNS names) has special
485+
effect. It causes all DNS traffic which does not match another configured domain routing entry to be routed
486+
to DNS servers specified for this interface. This setting is useful to prefer a certain set of DNS servers
487+
if a link on which they are connected is available.</para>
485488

486489
<para>This setting is read by
487-
<citerefentry><refentrytitle>systemd-resolved.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
490+
<citerefentry><refentrytitle>systemd-resolved.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
491+
"Search domains" correspond to the <varname>domain</varname> and <varname>search</varname> entries in
492+
<citerefentry><refentrytitle>resolv.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
493+
Domain name routing has no equivalent in the traditional glibc API, which has no concept of domain
494+
name servers limited to a specific link.</para>
488495
</listitem>
489496
</varlistentry>
490497
<varlistentry>

0 commit comments

Comments
 (0)