Network availability systemd dependency failure at boot
Sam Varshavchik
mrsam at courier-mta.com
Sun Jul 6 00:32:35 UTC 2014
Ed Greshko writes:
> On 07/06/14 07:28, Sam Varshavchik wrote:
> > Ed Greshko writes:
> >
> >> > The server with dhcp, httpd, named, and privoxy does not have
> NetworkManager installed. Both the WAN and the LAN ports are configured as
> static IPs.
> >>
> >> You may want to try NetworkManager and wait-online. WAN links can take
> time to become active.
> >
> > NetworkManager does nothing for me, except to suck in another 16 packages
> it depends on, that I don't need. The WAN link is a statically-routed IP
> traffic. It's up as soon as the network interface brings up the link.
>
> Now that you re-read what you wrote I think misunderstood WAN to be a
> wireless connection which would require a time to bring up the link with the
> AP. If you mean WAN in the sense of a Wide Area Network, I wonder if there
> is a need for PPP negotiation.
I didn't say PPP either. My WAN is not some screwed up pseudo-Internet
connection that uses ppp over some godforsaken transport.
It is really a connection directly to the intertubes. As in: it swallows IP
packets. The ISP on the other side sends packets to my IP addresses to my
link, and I get them.
/etc/sysconfig/ifcfg-wan0 is simply:
TYPE=Ethernet
BOOTPROTO=none
IPADDR=216.254.115.190
ONBOOT=yes
plus a few miscellaneous settings that are not relevant.
None of this needs NetworkManager. The link comes up immediately, as soon as
the network port powers up.
Similarly, the LAN0 port also has a hardwired IP address on it, and dhcpd is
supposed to sink its claws into it, and manage my LAN.
That's, pretty much, how servers talk to the intertubes from a data center.
And now, any plain, garden-variety server that's hooked up directly to the
intertubes, and does NOT bind to a TCP or a UDP port using a wildcard IP is
now going to roll the dice: heads, and systemd happens to be busy before it
gets around to it, and the network ports manage to finish initializing
before the server gets forked off; tails, and it's hopelessly fracked up,
because systemd is now going to fork it off before the network port has
finished initializing.
I don't see anything in /lib/systemd/system that directly executes
/etc/rc.d/init.d/network. So, it appears that this is systemd internal
magic – it forks off /etc/rc.d/init.d/network, and marks network.target as
being reached without waiting for this initscript to terminate. You know: to
make boot faster. What a great idea.
So, systemd now becomes very busy forking off dhcp, named, httpd, innd, and
whatever else declares after=network.target, before /etc/rc.d/init.d/network
finishes sifting /etc/sysconfig/network-scripts, and finishes bringing up
all the network interfaces.
Hilarity ensues.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.fedoraproject.org/pipermail/users/attachments/20140705/ca745f6f/attachment.sig>
More information about the users
mailing list