Thanks for your updates. It is good news that there is a fix for #1909822.
However this fix won't help with the current issue, because the problem here isn't whether or not BIND uses interfaces that are added after BIND is running, but rather the fact that BIND doesn't have connectivity to the root DNS servers when it starts.
After reading your first update, I do agree that improving systemd-networkd-wait-online "network ready enough" is the preferred way to go, so lets focus on that solution...
In update #1 I mentioned: I experimented with including "--any" in the systemd-networkd-wait-online arguments, but found this wasn't 100% reliable and TBH I'm not entirely sure why.
I don't know why adding "--any" didn't work, because this particular server only has one network interface. I wondered if it was actually picking up the "lo" interface? I only just now noticed there is an option to ignore interfaces, so maybe I should have tried adding "--ignore=lo" above? But TBH if that is the problem it seems like something that should be fixed in systemd-networkd-wait-online?
Regardless of why it didn't work, can I please specify the behaviour that I believe the above command should implement: Where you've specified a state of "routeable" and said "any" interface, IMO the goal should be the existence of a static route in the main routing table?
Hi Paride.
Thanks for your updates. It is good news that there is a fix for #1909822.
However this fix won't help with the current issue, because the problem here isn't whether or not BIND uses interfaces that are added after BIND is running, but rather the fact that BIND doesn't have connectivity to the root DNS servers when it starts.
After reading your first update, I do agree that improving systemd- networkd- wait-online "network ready enough" is the preferred way to go, so lets focus on that solution...
In update #1 I mentioned: I experimented with including "--any" in the systemd- networkd- wait-online arguments, but found this wasn't 100% reliable and TBH I'm not entirely sure why.
The ExecStartPre command I'd tested was:
ExecStartPre= -/lib/systemd/ systemd- networkd- wait-online --operational- state=routable --any --timeout=10 --quiet
I don't know why adding "--any" didn't work, because this particular server only has one network interface. I wondered if it was actually picking up the "lo" interface? I only just now noticed there is an option to ignore interfaces, so maybe I should have tried adding "--ignore=lo" above? But TBH if that is the problem it seems like something that should be fixed in systemd- networkd- wait-online?
Regardless of why it didn't work, can I please specify the behaviour that I believe the above command should implement: Where you've specified a state of "routeable" and said "any" interface, IMO the goal should be the existence of a static route in the main routing table?
What do you think?
Thanks,
Nick.