[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: bind9 wird zu frueh gestartet



On Sat, 17 Jun 2017 13:04:13 +0200, Michael Biebl <biebl@debian.org>
wrote:
>Am 17.06.2017 um 12:29 schrieb Michael Biebl:
>> Am 17.06.2017 um 12:10 schrieb Sven Hartge:
>> 
>>> Wenn "ifupdown", dann sollte es reichen, ein Override für bind9.serice
>>> zu machen und dort 
>>>
>>> ,----
>>> | [Unit]
>>> | After=network-online.target
>>> `----
>> 
>> After=network.target (was momentan in bind9.service verwendet wird), ist
>> eigentlich nur für den shutdown relevant.
>> Siehe auch
>> https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/
>
>Um nochmal das wiki zu bemühen, was du möchtest ist
>Wants=network-online.target
>After=network-online.target

Das ist also ein Bug im bind9-Paket?

>Falls systemd-netword-wait-online.service,
>NetworkManager-wait-online.service oder ifup -a (networking.service)
>nicht ausreichend sind, kann man im Prinzip beliebige Skripte/Dienste in
>network-online.target einhängen, die den Start des targets so lange
>verzögern bis gewisse festgelegte Bedinungen erfüllt sind:
>
>[Unit]
>Description=Wait until network is online
>Before=network-online.target
>
>[Service]
>ExecStart=/usr/local/bin/wait-for-network
>
>[Install]
>WantedBy=network-online.target

Zusätzlich braucht es wohl noch ein "After=systemd-networkd.service",
sonst ist der Zauber schon gelaufen bevor der systemd-networkd
überhaupt gestartet wurde und man müsste im Script noch andere Dinge
(Link, Defaultroute, Gateway erreichbar?) prüfen.

Das habe ich mal probiert:
|[17/472]mh@alemana:~ $ sudo systemctl cat wait-network-ready.service
|# /etc/systemd/system/wait-network-ready.service
|[Unit]
|Description=Wait until network is really ready
|Before=network-online.target
|After=systemd-networkd.service
|
|[Service]
|ExecStart=/usr/local/bin/wait-network-ready
|
|[Install]
|WantedBy=network-online.target
|
|[18/473]mh@alemana:~ $ cat /usr/local/bin/wait-network-ready
|#!/bin/sh
|
|ME="wait-network-ready"
|
|ip --oneline addr | logger -t $ME
|ip --oneline route | logger -t $ME
|while ip --oneline addr | grep -q tentative; do sleep 1; done
|ip --oneline addr | logger -t $ME
|
|
|[20/475]mh@alemana:~ $ sudo systemctl cat network-online.target
|# /lib/systemd/system/network-online.target
|#  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 is Online
|Documentation=man:systemd.special(7)
|Documentation=http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget
|After=network.target
|[19/474]mh@alemana:~ $ sudo systemctl cat bind9
|# /lib/systemd/system/bind9.service
|[Unit]
|Description=BIND Domain Name Server
|Documentation=man:named(8)
|After=network.target
|Wants=nss-lookup.target
|Before=nss-lookup.target
|
|[Service]
|ExecStart=/usr/sbin/named -f -u bind
|ExecReload=/usr/sbin/rndc reload
|ExecStop=/usr/sbin/rndc stop
|
|[Install]
|WantedBy=multi-user.target
|
|# /run/systemd/generator/bind9.service.d/50-insserv.conf-$named.conf
|# Automatically generated by systemd-insserv-generator
|
|[Unit]
|Wants=nss-lookup.target
|Before=nss-lookup.target
|
|# /etc/systemd/system/bind9.service.d/override.conf
|[Unit]
|After=network-online.target
|Wants=network-online.target
|
|[Service]
|EnvironmentFile=-/etc/default/bind9
|ExecStart=
|ExecStart=/usr/sbin/named $OPTIONS

Dennoch wird der bind9 direkt gestartet, während mein Skript noch
wartet - syslog-Auszug:
|Jun 17 15:14:46 alemana kernel: TCP bind hash table entries: 4096 (order: 4, 65536 bytes)
|Jun 17 15:14:46 alemana kernel: TCP: Hash tables configured (established 4096 bind 4096)
|Jun 17 15:14:46 alemana net.agent[720]: net.agent add event for eth0 not handled.
|Jun 17 15:14:46 alemana systemd-networkd[752]: lo              : gained carrier
|Jun 17 15:14:46 alemana systemd-networkd[752]: rtnl: received address message without valid ifindex, ignoring
|Jun 17 15:14:46 alemana systemd-networkd[752]: rtnl: received address message without valid ifindex, ignoring
|Jun 17 15:14:46 alemana systemd-networkd[752]: rtnl: received address message without valid ifindex, ignoring
|Jun 17 15:14:46 alemana systemd-networkd[752]: rtnl: received address message without valid ifindex, ignoring
|Jun 17 15:14:46 alemana systemd-networkd[752]: eth0            : link configured
|Jun 17 15:14:46 alemana wait-network-ready: 1: lo    inet 127.0.0.1/8 scope host lo\       valid_lft forever preferred_lft forever
|Jun 17 15:14:46 alemana wait-network-ready: 1: lo    inet6 ::1/128 scope host \       valid_lft forever preferred_lft forever
|Jun 17 15:14:46 alemana wait-network-ready: 2: eth0    inet 192.0.2.141/32 brd 192.0.2.141 scope global eth0\       valid_lft forever preferred_lft forever
|Jun 17 15:14:46 alemana wait-network-ready: 2: eth0    inet 192.0.2.140/32 brd 192.0.2.140 scope global eth0\       valid_lft forever preferred_lft forever
|Jun 17 15:14:46 alemana wait-network-ready: 2: eth0    inet 192.0.2.139/32 brd 192.0.2.139 scope global eth0\       valid_lft forever preferred_lft forever
|Jun 17 15:14:46 alemana wait-network-ready: 2: eth0    inet 192.0.2.132/28 brd 192.0.2.143 scope global eth0\       valid_lft forever preferred_lft forever
|Jun 17 15:14:46 alemana wait-network-ready: 2: eth0    inet6 2001:db8::45:100/64 scope global tentative \       valid_lft forever preferred_lft forever
|Jun 17 15:14:46 alemana wait-network-ready: 2: eth0    inet6 2001:db8::45:153/64 scope global tentative \       valid_lft forever preferred_lft forever
|Jun 17 15:14:46 alemana wait-network-ready: 2: eth0    inet6 2001:db8::45:253/64 scope global tentative \       valid_lft forever preferred_lft forever
|Jun 17 15:14:46 alemana wait-network-ready: 2: eth0    inet6 2001:db8::45:353/64 scope global tentative \       valid_lft forever preferred_lft forever
|Jun 17 15:14:46 alemana wait-network-ready: 2: eth0    inet6 fe80::5054:ff:fe91:b168/64 scope link tentative \       valid_lft forever preferred_lft forever
|Jun 17 15:14:46 alemana wait-network-ready: default via 192.0.2.129 dev eth0
|Jun 17 15:14:46 alemana wait-network-ready: 192.0.2.128/28 dev eth0  proto kernel  scope link  src 192.0.2.132
|Jun 17 15:14:46 alemana systemd-networkd[752]: eth0            : gained carrier
|Jun 17 15:14:46 alemana ntpd[814]: Listen normally on 3 eth0 192.0.2.141 UDP 123
|Jun 17 15:14:46 alemana ntpd[814]: Listen normally on 4 eth0 192.0.2.140 UDP 123
|Jun 17 15:14:46 alemana ntpd[814]: Listen normally on 5 eth0 192.0.2.139 UDP 123
|Jun 17 15:14:46 alemana ntpd[814]: Listen normally on 6 eth0 192.0.2.132 UDP 123
|Jun 17 15:14:46 alemana named[790]: starting BIND 9.10.3-P4-Debian <id:ebd72b3> -f -u bind -t /var/local/chroot/bind
|Jun 17 15:14:46 alemana named[790]: built with <snip>
|Jun 17 15:14:46 alemana named[790]: ----------------------------------------------------
|Jun 17 15:14:46 alemana named[790]: BIND 9 is maintained by Internet Systems Consortium,
|Jun 17 15:14:46 alemana named[790]: Inc. (ISC), a non-profit 501(c)(3) public-benefit
|Jun 17 15:14:46 alemana named[790]: listening on IPv6 interface eth0, 2001:db8::45:153#53
|Jun 17 15:14:46 alemana named[790]: could not listen on UDP socket: address not available
|Jun 17 15:14:46 alemana named[790]: creating IPv6 interface eth0 failed; interface ignored
|Jun 17 15:14:46 alemana named[790]: exiting (due to fatal error)
|Jun 17 15:14:46 alemana systemd[1]: bind9.service: main process exited, code=exited, status=1/FAILURE
|Jun 17 15:14:46 alemana systemd[1]: bind9.service: control process exited, code=exited status=1
|Jun 17 15:14:46 alemana systemd[1]: Unit bind9.service entered failed state.
|Jun 17 15:14:50 alemana wait-network-ready: 1: lo    inet 127.0.0.1/8 scope host lo\       valid_lft forever preferred_lft forever
|Jun 17 15:14:50 alemana wait-network-ready: 1: lo    inet6 ::1/128 scope host \       valid_lft forever preferred_lft forever
|Jun 17 15:14:50 alemana wait-network-ready: 2: eth0    inet 192.0.2.141/32 brd 192.0.2.141 scope global eth0\       valid_lft forever preferred_lft forever
|Jun 17 15:14:50 alemana wait-network-ready: 2: eth0    inet 192.0.2.140/32 brd 192.0.2.140 scope global eth0\       valid_lft forever preferred_lft forever
|Jun 17 15:14:50 alemana wait-network-ready: 2: eth0    inet 192.0.2.139/32 brd 192.0.2.139 scope global eth0\       valid_lft forever preferred_lft forever
|Jun 17 15:14:50 alemana wait-network-ready: 2: eth0    inet 192.0.2.132/28 brd 192.0.2.143 scope global eth0\       valid_lft forever preferred_lft forever
|Jun 17 15:14:50 alemana wait-network-ready: 2: eth0    inet6 2001:db8:5054:ff:fe91:b168/64 scope global mngtmpaddr dynamic \       valid_lft 2591998sec preferred_lft 604798sec
|Jun 17 15:14:50 alemana wait-network-ready: 2: eth0    inet6 2001:db8::45:100/64 scope global \       valid_lft forever preferred_lft forever
|Jun 17 15:14:50 alemana wait-network-ready: 2: eth0    inet6 2001:db8::45:153/64 scope global \       valid_lft forever preferred_lft forever
|Jun 17 15:14:50 alemana wait-network-ready: 2: eth0    inet6 2001:db8::45:253/64 scope global \       valid_lft forever preferred_lft forever
|Jun 17 15:14:50 alemana wait-network-ready: 2: eth0    inet6 2001:db8::45:353/64 scope global \       valid_lft forever preferred_lft forever
|Jun 17 15:14:50 alemana wait-network-ready: 2: eth0    inet6 fe80::5054:ff:fe91:b168/64 scope link \       valid_lft forever preferred_lft forever

Hab ich da noch was falsch gemacht?

Grüße
Marc
-- 
-------------------------------------- !! No courtesy copies, please !! -----
Marc Haber         |   " Questions are the         | Mailadresse im Header
Mannheim, Germany  |     Beginning of Wisdom "     | http://www.zugschlus.de/
Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 621 72739834


Reply to: