units: introduce network-pre.target as place to hook in firewalls

network-pre.target is a passive target that should be pulled in by
services that want to be executed before any network is configured (for
example: firewall scrips).

network-pre.target should be ordered before all network managemet
services (but not be pulled in by them).

network-pre.target should be order after all services that want to be
executed before any network is configured (and be pulled in by them).
This commit is contained in:
Lennart Poettering 2014-06-11 11:33:02 +02:00
parent 4196a3ead3
commit a4a878d040
6 changed files with 31 additions and 3 deletions

View file

@ -413,6 +413,7 @@ dist_systemunit_DATA = \
units/remote-fs.target \
units/remote-fs-pre.target \
units/network.target \
units/network-pre.target \
units/network-online.target \
units/nss-lookup.target \
units/nss-user-lookup.target \

View file

@ -72,6 +72,7 @@
<filename>multi-user.target</filename>,
<filename>network.target</filename>,
<filename>network-online.target</filename>,
<filename>network-pre.target</filename>,
<filename>nss-lookup.target</filename>,
<filename>nss-user-lookup.target</filename>,
<filename>paths.target</filename>,
@ -890,6 +891,20 @@
facility.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><filename>network-pre.target</filename></term>
<listitem>
<para>This passive target unit
may be pulled in by services
that want to run before any
network is set up, for example
for the purpose of setting up a
firewall. All network
management software orders
itself after this target, but
does not pull it in.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><filename>nss-lookup.target</filename></term>
<listitem>

View file

@ -9,7 +9,5 @@
Description=Local File Systems
Documentation=man:systemd.special(7)
After=local-fs-pre.target
DefaultDependencies=no
Conflicts=shutdown.target
OnFailure=emergency.target
OnFailureJobMode=replace-irreversibly

12
units/network-pre.target Normal file
View file

@ -0,0 +1,12 @@
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
[Unit]
Description=Network (Pre)
Documentation=man:systemd.special(7)
Documentation=http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget
RefuseManualStart=yes

View file

@ -9,3 +9,5 @@
Description=Network
Documentation=man:systemd.special(7)
Documentation=http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget
After=network-pre.target
RefuseManualStart=yes

View file

@ -9,7 +9,7 @@
Description=Network Service
Documentation=man:systemd-networkd.service(8)
DefaultDependencies=no
After=dbus.service
After=dbus.service network-pre.target
Before=network.target
Wants=network.target
ConditionCapability=CAP_NET_ADMIN