No Internet connection after pihole restart

Hi,

I noticed a strange behaviour that I am not able to fix. Did even another re-install of my complete setup, but it occurs again.

After I restart of my tinkerboard with pihole there is no internet access for my computer neither my cell phone or my tablet. I have to open the pihole admin page from my computer first (not possible from tablet or cellphone) before any of the attached devices can gain internet access again.
If I use my tablet to get to the admin page after a restart it is not possible. I can use the IP and get without issues to the portal page with the hint of the admin page. If I use the link on that page to the admin page, nothing is loading.
If I do that from my computer and trigger the admin page as first, everything is back in order till I do a restart.
Maybe somebody has advice for me. I am lost.
Thanks in advance.

https://tricorder.pi-hole.net/pr5qtmq9pj

Pi-hole v5.1.2 Web Interface v5.1.1 FTL v5.2

I would look at your networking configuration. You have a huge number of IPv6 addresses assigned to the interface and none of them looks like they are able to access external (Internet) IPv6 systems.

*** [ DIAGNOSING ]: Networking
[βœ“] IPv4 address(es) bound to the eth0 interface:
   192.168.184.32/24 matches the IP found in /etc/pihole/setupVars.conf

[βœ“] IPv6 address(es) bound to the eth0 interface:
   fd00::62ae:f544:8ec0:e360 does not match the IP found in /etc/pihole/setupVars.conf (https://discourse.pi-hole.net/t/use-ipv6-ula-addresses-for-pi-hole/2127)
   fd00::7bf9:4682:8ec6:114e does not match the IP found in /etc/pihole/setupVars.conf (https://discourse.pi-hole.net/t/use-ipv6-ula-addresses-for-pi-hole/2127)
   2a02:908:2116:77e0:7795:1f77:b1e4:3f21 does not match the IP found in /etc/pihole/setupVars.conf (https://discourse.pi-hole.net/t/use-ipv6-ula-addresses-for-pi-hole/2127)
   2a02:908:2116:77e0:d504:6faa:4601:b665 does not match the IP found in /etc/pihole/setupVars.conf (https://discourse.pi-hole.net/t/use-ipv6-ula-addresses-for-pi-hole/2127)
   fd00::17be:9e3a:f06e:ae2a does not match the IP found in /etc/pihole/setupVars.conf (https://discourse.pi-hole.net/t/use-ipv6-ula-addresses-for-pi-hole/2127)
   fd00::bf06:f93b:75b3:34af matches the IP found in /etc/pihole/setupVars.conf
   2a02:908:2116:77e0:49c5:8d84:a899:37b8 does not match the IP found in /etc/pihole/setupVars.conf (https://discourse.pi-hole.net/t/use-ipv6-ula-addresses-for-pi-hole/2127)
   2a02:908:2116:77e0:3573:e02d:6adf:be2 does not match the IP found in /etc/pihole/setupVars.conf (https://discourse.pi-hole.net/t/use-ipv6-ula-addresses-for-pi-hole/2127)
   fd00::3744:282e:b696:d3e7 does not match the IP found in /etc/pihole/setupVars.conf (https://discourse.pi-hole.net/t/use-ipv6-ula-addresses-for-pi-hole/2127)
   2a02:908:2116:77e0:189b:3675:bad:2a43 does not match the IP found in /etc/pihole/setupVars.conf (https://discourse.pi-hole.net/t/use-ipv6-ula-addresses-for-pi-hole/2127)
   fe80::48c9:5e6e:44f:1d46 does not match the IP found in /etc/pihole/setupVars.conf (https://discourse.pi-hole.net/t/use-ipv6-ula-addresses-for-pi-hole/2127)

   ^ Please note that you may have more than one IP address listed.
   As long as one of them is green, and it matches what is in /etc/pihole/setupVars.conf, there is no need for concern.

   The link to the FAQ is for an issue that sometimes occurs when the IPv6 address changes, which is why we check for it.

[i] Default IPv4 gateway: 192.168.184.1
   * Pinging 192.168.184.1...
[βœ“] Gateway responded.
[i] Default IPv6 gateway: fe80::464e:6dff:fe03:aed4
fe80::464e:6dff:fe03:aed4
   * Pinging fe80::464e:6dff:fe03:aed4
fe80::464e:6dff:fe03:aed4...
[βœ—] Gateway did not respond. (https://discourse.pi-hole.net/t/why-is-a-default-gateway-important-for-pi-hole/3546)

Thank you for responding.
Actually I can't follow.
I am using a fritz box and assigned a ULA to the pihole. That is the match in the above mentioned list.
And this IP I use in the fritz box as DNS link to the pihole.

Not sure where all the other IPv6 addresses are coming from but they are listed as well in the fritzbox under the device.

Should I use one of the (I guess) provider assigned IPv6 addresses? 2a02:....?

EDIT

I did within the fritzbox a network reset for that specific device.
At the beginning there was just a internal fd00 and a fe80 and one 2a02 (provider I guess) address.
Now after a while there are 2 more 2a02 addresses, not sure why or what for.
A restart showed the same behaviour. No internet at all until I open the admin page first.

You likely have IPv6 privacy extensions enabled.
While a new privacy address will be generated and activated in certain intervals and used for both initiating outgoing connections and listening for incoming traffic, the previous address will remain active for incoming traffic for a while.
On restart, information for previous IPv6 addresses may well be lost, resulting in clients that are yet unaware of the new address talking to a non-existent IPv6 address - which would match your observations.

Since Pi-hole is not meant to be publically available, you could disable IPv6 privacy extensions on your Pi-hole machine.

Normally, you'd do that by editing an existing line (likely ending in =2) from a configuration file under /etc/sysctl.d/ to read as follows:

net.ipv6.conf.all.use_tempaddr=0

You could then run sysctl -p and re-initialise your network interfaces, but it's probably easier to just reboot your machine.

I'm unsure whether to recommend this in your case, as I am unaware how Armbian would handle this. Also, note that additional tools like Network Manager may interfere with IPv6 configuration as well.

Hi,
thank you for your response and taking your time.

That was a good hint and I already tried to implement it.

Seems like that /etc/sysctl.d does not exists on armbian but /etc/sysctl.conf is available. Unfortunately your mentioned line net.ipv6.conf.all.use_tempaddr=0 was not to find within that file.
Instead I adjusted in /etc/dhcpcd.conf the line slaac private to slaac hwaddr because that seemed to be the closed match. It seems to be very similar to the raspberry structure.

Unfortunately nothing has changed. After every reboot I have to visit the admin page to trigger something so that pihole starts completely and can connect to the dns server.
Not sure what happens after the restart. Pihole seems to start to 99% and is not able to connect to the dns server. Just as soon I visit the admin page pihole starts completely and everything is back to normal and as it supposed to be.

No, it isn't.

Those lines have nothing to do with Privacy Extensions (RFC 4941), they control an altogether different feature for stable private IPv6 addresses (RFC 7217) (click for more).
man dhcpcd.conf

slaac [hwaddr | private]
Selects the interface identifier used for SLAAC generated IPv6 addresses. If private is used, a RFC7217 address is generated.


It's sane to keep this as private.

You could still try to add it and see if that works, but since it's missing, I suspect other network management tools to interfere.

You should consult Armbians documentation on disabling IPv6 Privacy Extensions.

No, it isn't.
Those lines have nothing to do with Privacy Extensions (RFC 4941), they control an altogether different feature for stable private IPv6 addresses (RFC 7217) (click for more).

It's sane to keep this as private.

Oh ha. Thanks a million. I changed it back

You could still try to add it and see if that works, but since it's missing, I suspect other network management tools to interfere.

You should consult Armbians documentation on disabling IPv6 Privacy Extensions.

Tried that as well. Did not work either. Will check the documentation as you suggested. Will see if I can figure something out.

[EDIT]
The reason - I believe - I could not find the line, seems to be that IPv6 Privacy Extension is off as a standard. You need to enable it to use the Privacy Extension. I used those two lines in /etc/sysctl.conf test-wise anyway:

net.ipv6.conf.all.use_tempaddr=0
net.ipv6.conf.default.use_tempaddr=0

But same situation as before.
[\EDIT]

Just something that I noticed while I was running pihole -d in the state where pihole does not allow me to get to the internet.

The diagnostic gets stuck for a while at the Gateway check. and later on again at Dashboard and block page. The diagnostics runs way longer then normally, and after the diagnostics was through internet worked again.
Just a question with regard to the Gateway. It has a fe80 IPv6 address. Should it be not the Unique local address of my FRITZ!Box: that starts with fd00???

What's the output of:

ip -6 address show eth0 | grep -A1 "inet6 2"

It is:

    inet6 2a02:908:2116:77e0:d504:6faa:4601:b665/64 scope global dynamic mngtmpaddr noprefixroute
       valid_lft 6967sec preferred_lft 3367sec
--
    inet6 2a02:908:2116:77e0:3573:e02d:6adf:be2/64 scope global dynamic noprefixroute
       valid_lft 6967sec preferred_lft 3367sec

The first is the stable private RFC 7217 address, the latter your current PE.
Over time, as the lease lifetime expires, temporary addresses marked deprecated will be listed additionally, resulting in the multitude of addresses you've observed earlier.

Since your system does not honor your sysctl settings, that makes my earlier suggestion of another network management tool interfering all the more likely.

However, since I do not run Armbian, I can't help you any further.
Note that Armbian also isn't an officially supported OS.

A precursory search for IPv6 privacy extensions on Armbian returned an Armbian forum post as first hit:
https://lite.qwant.com/?l=de&client=brz-vivaldi&q=armbian+IPv6+privacy+extensions+disable

You should consider placing your question at that Armbian forum as well.

Thank you for your effort.

The first hit just discussed the disabling of IPv6 in total. I found another one where I at least could see the network manager and how to find it. After tinkering around with different settings I am back to square one. Nothing seems to work, even if I use just the local fd80 address.

Will ask the armbian guys if they might can guide me in the right direction. Quite frustrating.

Thanks again.

I believe Armbian comes with the network-manager (NM) package to configure IP etc.
If have both dhcpcd5 and NM active, this could leave them fighting over who configures networking etc.
You can see if they are active with below ones:

$ systemctl status dhcpcd
● dhcpcd.service - dhcpcd on all interfaces
   Loaded: loaded (/lib/systemd/system/dhcpcd.service; enabled; vendor preset: enabled)
  Drop-In: /etc/systemd/system/dhcpcd.service.d
           └─wait.conf
   Active: active (running) since Thu 2020-10-15 07:15:32 CEST; 2 weeks 2 days ago
[..]

$ systemctl status NetworkManager
● NetworkManager.service - Network Manager
   Loaded: loaded (/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2020-10-16 00:45:07 CEST; 2 weeks 2 days ago
[..]

You can see what they do with below ones:

$ sudo journalctl -u dhcpcd
[..]
Oct 15 07:15:12 ... dhcpcd[30795]: eth0: using static address 10.0.0.4/24
Oct 15 07:15:12 ... dhcpcd[30795]: eth0: adding route to 10.0.0.0/24
Oct 15 07:15:12 ... dhcpcd[30795]: eth0: adding default route via 10.0.0.1
[..]

$ sudo journalctl -u NetworkManager
[..]
Nov 01 00:14:28 ... dhclient[2887]: DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 8
Nov 01 00:14:31 ... dhclient[2887]: DHCPREQUEST of 10.0.0.220 on wlan0 to 255.255.255.255 port 67
Nov 01 00:14:31 ... dhclient[2887]: DHCPOFFER of 10.0.0.220 from 10.0.0.2
Nov 01 00:14:33 ... dhclient[2887]: DHCPACK of 10.0.0.220 from 10.0.0.2
Nov 01 00:14:33 ... NetworkManager[438]: <info>  [1604186073.2417] dhcp4 (wlan0):   address 10.0.0.220
Nov 01 00:14:33 ... NetworkManager[438]: <info>  [1604186073.2417] dhcp4 (wlan0):   plen 24 (255.255.255.0)
Nov 01 00:14:33 ... NetworkManager[438]: <info>  [1604186073.2417] dhcp4 (wlan0):   gateway 10.0.0.1
Nov 01 00:14:33 ... NetworkManager[438]: <info>  [1604186073.2417] dhcp4 (wlan0):   server identifier 10.0.0.2
Nov 01 00:14:33 ... NetworkManager[438]: <info>  [1604186073.2418] dhcp4 (wlan0):   lease time 86400
Nov 01 00:14:33 ... NetworkManager[438]: <info>  [1604186073.2418] dhcp4 (wlan0):   hostname 'XXX'
Nov 01 00:14:33 ... NetworkManager[438]: <info>  [1604186073.2418] dhcp4 (wlan0):   nameserver '10.0.0.2'
Nov 01 00:14:33 ... NetworkManager[438]: <info>  [1604186073.2418] dhcp4 (wlan0):   domain name 'XXX'
[..]

If have both active, better decide if want to disable one of them with below:

sudo systemctl disable NetworkManager

Or:

sudo systemctl disable dhcpcd

But its harder to disable dhcpcd because I believe the dhcpcd5 package is a Pi-hole dependency.

Thank you.

It seems like they a re both active

systemctl status dhcpcd
● dhcpcd.service - DHCP Client Daemon
     Loaded: loaded (/lib/systemd/system/dhcpcd.service; enabled; vendor preset>
     Active: active (running) since Sun 2020-11-01 07:26:00 CET; 29min ago
       Docs: man:dhcpcd(8)
    Process: 1356 ExecStart=/usr/sbin/dhcpcd (code=exited, status=0/SUCCESS)
   Main PID: 1500 (dhcpcd)
      Tasks: 1 (limit: 4741)
     Memory: 2.1M
     CGroup: /system.slice/dhcpcd.service
             └─1500 /usr/sbin/dhcpcd

Nov 01 07:26:08 tinkerboard dhcpcd[1500]: eth0: DHCPv6 REPLY: in stateless mode
Nov 01 07:26:12 tinkerboard dhcpcd[1500]: eth0: DHCPv6 REPLY: in stateless mode
Nov 01 07:26:12 tinkerboard dhcpcd[1500]: dummy0: no IPv6 Routers available
[..]
NetworkManager.service - Network Manager
     Loaded: loaded (/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2020-11-01 07:26:00 CET; 31min ago
       Docs: man:NetworkManager(8)
   Main PID: 1354 (NetworkManager)
      Tasks: 3 (limit: 4741)
     Memory: 14.0M
     CGroup: /system.slice/NetworkManager.service
             └─1354 /usr/sbin/NetworkManager --no-daemon

Nov 01 07:26:05 tinkerboard NetworkManager[1354]: <info>  [1604211965.2471] device (wg0): state change: disconnected -> prepare (reason 'none', sys-iface-state: 'external')
Nov 01 07:26:05 tinkerboard NetworkManager[1354]: <info>  [1604211965.2496] device (wg0): state change: prepare -> config (reason 'none', sys-iface-state: 'external')
Nov 01 07:26:05 tinkerboard NetworkManager[1354]: <info>  [1604211965.2545] device (wg0): state change: config -> ip-config (reason 'none', sys-iface-state: 'external')
Nov 01 07:26:05 tinkerboard NetworkManager[1354]: <info>  [1604211965.2606] device (wg0): state change: ip-config -> ip-check (reason 'none', sys-iface-state: 'external')
Nov 01 07:26:05 tinkerboard NetworkManager[1354]: <info>  [1604211965.2725] device (wg0): state change: ip-check -> secondaries (reason 'none', sys-iface-state: 'external')
Nov 01 07:26:05 tinkerboard NetworkManager[1354]: <info>  [1604211965.2743] device (wg0): state change: secondaries -> activated (reason 'none', sys-iface-state: 'external')
Nov 01 07:26:05 tinkerboard NetworkManager[1354]: <info>  [1604211965.2835] device (wg0): Activation: successful, device activated.
Nov 01 07:26:05 tinkerboard NetworkManager[1354]: <info>  [1604211965.9082] dhcp6 (eth0): activation: beginning transaction (timeout in 45 seconds)
Nov 01 07:26:05 tinkerboard NetworkManager[1354]: <warn>  [1604211965.9093] device (eth0): failure to start DHCPv6: failed to start client: Address already in use
Nov 01 07:26:05 tinkerboard NetworkManager[1354]: <info>  [1604211965.9144] policy: set 'Wired connection 1' (eth0) as default for IPv6 routing and DNS

sudo journalctl -u dhcpcd
-- Logs begin at Sun 2020-11-01 07:25:58 CET, end at Sun 2020-11-01 08:02:18 CET. --
Nov 01 07:26:00 tinkerboard systemd[1]: Starting DHCP Client Daemon...
Nov 01 07:26:00 tinkerboard dhcpcd[1356]: no interfaces have a carrier
Nov 01 07:26:00 tinkerboard dhcpcd[1356]: no interfaces have a carrier
Nov 01 07:26:00 tinkerboard dhcpcd[1500]: dummy0: waiting for carrier
Nov 01 07:26:00 tinkerboard dhcpcd[1356]: forked to background, child pid 1500
Nov 01 07:26:00 tinkerboard dhcpcd[1356]: forked to background, child pid 1500
Nov 01 07:26:00 tinkerboard dhcpcd[1500]: eth0: waiting for carrier
Nov 01 07:26:00 tinkerboard systemd[1]: Started DHCP Client Daemon.
Nov 01 07:26:01 tinkerboard dhcpcd[1500]: wlan0: waiting for carrier
Nov 01 07:26:01 tinkerboard dhcpcd[1500]: dummy0: carrier acquired
Nov 01 07:26:01 tinkerboard dhcpcd[1500]: DUID 00:01:00:01:27:2e:85:6f:12:84:9b:3a:58:1a
Nov 01 07:26:01 tinkerboard dhcpcd[1500]: dummy0: IAID 8e:db:76:92
Nov 01 07:26:01 tinkerboard dhcpcd[1500]: dummy0: adding address fe80::cbe8:dd3a:71cf:21d0
Nov 01 07:26:01 tinkerboard dhcpcd[1500]: eth0: carrier acquired
Nov 01 07:26:01 tinkerboard dhcpcd[1500]: eth0: IAID f6:c6:e8:3a
Nov 01 07:26:01 tinkerboard dhcpcd[1500]: eth0: adding address fe80::9ab5:1022:e9d1:12f6
Nov 01 07:26:01 tinkerboard dhcpcd[1500]: eth0: probing address 192.168.184.32/24
Nov 01 07:26:01 tinkerboard dhcpcd[1500]: dummy0: soliciting an IPv6 router
Nov 01 07:26:01 tinkerboard dhcpcd[1500]: eth0: carrier lost
Nov 01 07:26:01 tinkerboard dhcpcd[1500]: eth0: deleting address fe80::9ab5:1022:e9d1:12f6
Nov 01 07:26:02 tinkerboard dhcpcd[1500]: dummy0: soliciting a DHCP lease
Nov 01 07:26:04 tinkerboard dhcpcd[1500]: eth0: carrier acquired
Nov 01 07:26:04 tinkerboard dhcpcd[1500]: eth0: IAID f6:c2:e5:6a
Nov 01 07:26:04 tinkerboard dhcpcd[1500]: eth0: adding address fe80::9ab5:1022:e9d1:12f6
Nov 01 07:26:04 tinkerboard dhcpcd[1500]: eth0: probing address 192.168.184.32/24
Nov 01 07:26:05 tinkerboard dhcpcd[1500]: eth0: soliciting an IPv6 router
Nov 01 07:26:05 tinkerboard dhcpcd[1500]: eth0: Router Advertisement from fe80::464e:6dff:fe03:aed4
Nov 01 07:26:05 tinkerboard dhcpcd[1500]: eth0: adding address 2a02:908:2116:77e0:d504:6faa:4601:b665/64
Nov 01 07:26:05 tinkerboard dhcpcd[1500]: eth0: adding address fd00::7bf9:4682:8ec6:114e/64
Nov 01 07:26:05 tinkerboard dhcpcd[1500]: eth0: adding route to 2a02:908:2116:77e0::/64
Nov 01 07:26:05 tinkerboard dhcpcd[1500]: eth0: adding route to fd00::/64
Nov 01 07:26:05 tinkerboard dhcpcd[1500]: eth0: adding default route via fe80::464e:6dff:fe03:aed4
Nov 01 07:26:05 tinkerboard dhcpcd[1500]: eth0: soliciting a DHCPv6 lease
Nov 01 07:26:05 tinkerboard dhcpcd[1500]: eth0: pid 0 deleted address 2a02:908:2116:77e0:d504:6faa:4601:b665/64
Nov 01 07:26:05 tinkerboard dhcpcd[1500]: eth0: pid 0 deleted address fd00::7bf9:4682:8ec6:114e/64
Nov 01 07:26:06 tinkerboard dhcpcd[1500]: eth0: DHCPv6 REPLY: in stateless mode
Nov 01 07:26:07 tinkerboard dhcpcd[1500]: eth0: DHCPv6 REPLY: in stateless mode
Nov 01 07:26:08 tinkerboard dhcpcd[1500]: eth0: using static address 192.168.184.32/24
Nov 01 07:26:08 tinkerboard dhcpcd[1500]: eth0: adding route to 192.168.184.0/24
Nov 01 07:26:08 tinkerboard dhcpcd[1500]: eth0: adding default route via 192.168.184.1
Nov 01 07:26:08 tinkerboard dhcpcd[1500]: eth0: DHCPv6 REPLY: in stateless mode
Nov 01 07:26:12 tinkerboard dhcpcd[1500]: eth0: DHCPv6 REPLY: in stateless mode
Nov 01 07:26:12 tinkerboard dhcpcd[1500]: dummy0: no IPv6 Routers available
Nov 01 07:26:20 tinkerboard dhcpcd[1500]: eth0: DHCPv6 REPLY: in stateless mode
Nov 01 07:26:37 tinkerboard dhcpcd[1500]: eth0: DHCPv6 REPLY: in stateless mode
Nov 01 07:27:10 tinkerboard dhcpcd[1500]: eth0: DHCPv6 REPLY: in stateless mode
Nov 01 07:28:13 tinkerboard dhcpcd[1500]: eth0: DHCPv6 REPLY: in stateless mode
Nov 01 07:30:19 tinkerboard dhcpcd[1500]: eth0: DHCPv6 REPLY: in stateless mode
Nov 01 07:34:29 tinkerboard dhcpcd[1500]: eth0: DHCPv6 REPLY: in stateless mode
Nov 01 07:43:00 tinkerboard dhcpcd[1500]: eth0: DHCPv6 REPLY: in stateless mode
Nov 01 07:59:53 tinkerboard dhcpcd[1500]: eth0: DHCPv6 REPLY: in stateless mode
Nov 01 07:26:04 tinkerboard NetworkManager[1354]: <info>  [1604211964.6808] dhcp4 (eth0): option domain_name          => 'fritz.box'
Nov 01 07:26:04 tinkerboard NetworkManager[1354]: <info>  [1604211964.6809] dhcp4 (eth0): option domain_name_servers  => '192.168.184.32'
Nov 01 07:26:04 tinkerboard NetworkManager[1354]: <info>  [1604211964.6809] dhcp4 (eth0): option expiry               => '1605075964'
Nov 01 07:26:04 tinkerboard NetworkManager[1354]: <info>  [1604211964.6809] dhcp4 (eth0): option ip_address           => '192.168.184.32'
Nov 01 07:26:04 tinkerboard NetworkManager[1354]: <info>  [1604211964.6809] dhcp4 (eth0): option next_server          => '192.168.184.1'
Nov 01 07:26:04 tinkerboard NetworkManager[1354]: <info>  [1604211964.6810] dhcp4 (eth0): option ntp_servers          => '192.168.184.1'
Nov 01 07:26:04 tinkerboard NetworkManager[1354]: <info>  [1604211964.6810] dhcp4 (eth0): option requested_broadcast_address => '1'
[..]
Nov 01 07:26:05 tinkerboard NetworkManager[1354]: <info>  [1604211965.9082] dhcp6 (eth0): activation: beginning transaction (timeout in 45 seconds)
Nov 01 07:26:05 tinkerboard NetworkManager[1354]: <warn>  [1604211965.9093] device (eth0): failure to start DHCPv6: failed to start client: Address already in use
Nov 01 07:26:05 tinkerboard NetworkManager[1354]: <info>  [1604211965.9144] policy: set 'Wired connection 1' (eth0) as default for IPv6 routing and DNS

I see at the end failure to start DHCPv6: failed to start client: Address already in use
but switching off the network manager is not changing anything

Hi guys,

I did start over again with my tinkerboard and analysed it step by step.

First off all @Bucking_Horn I found the privacy extension switch.

/etc/sysctl.d/10-ipv6-privacy.conf

Not sure if it fixed something, but it seems it did not break it either.

I believe I know now when it breaks restarting properly.
Everything works normal as long pihole Listen only on interface eth0 as soon I switch to Listen on all interfaces it breaks. Unfortunately I need pihole Listen on all interfaces for Wireguard otherwise this one does not work???

Not sure that is the right way, but I think it works now.
As mentioned above, I noticed that it works fine as long pihole Listen only on interface eth0 as soon I switch to Listen on all interfaces it breaks after a restart.

If pihole just Listen only on interface eth0 Wireguard does not work.

So I created a file /etc/dnsmasq.d/99-interfaces.conf containing interface=wg0 and left the switch on Listen only on interface eth0. After the first tests, I believe it works. Just not sure whether that was a good way to solve it, there is a better more elegant way or I broke something else with my attempt ????

That will lock you up quite well. If there are more than one interface lines in the /etc/dnsmasq.d/ directory then you're going to inflict some damage on yourself. The Listen only options only read our config file (01-pihole) and has no idea what you set on other configuration files.

Pity.
Is there another way to declare that pihole has to listen just on eth0 and wg0?
Maybe within setupVars.conf like PIHOLE_INTERFACE=eth0,wg0 or a second interface line for wg0?

Yes.
If you select the "Listen only on interface ..." option, Pi-hole will add its own interface= directive to the Pi-hole config file:

pi@ph5:~ $ pihole -a -i all
  [i] Listening on all interfaces, permitting all origins. Please use a firewall!
  [βœ“] Restarting DNS server

pi@ph5:~ $ sudo grep interface= -R /etc/dnsmasq.*
/etc/dnsmasq.d/01-pihole.conf:except-interface=nonexisting

pi@ph5:~ $ pihole -a -i single
  [i] Listening only on interface eth0
  [βœ“] Restarting DNS server

pi@ph5:~ $ sudo grep interface= -R /etc/dnsmasq.*
/etc/dnsmasq.d/01-pihole.conf:interface=eth0

That way it can coexist with any other interface= directives added for Wireguard or OpenVPN in separate config files.
The default for the pihole-FTL binary (with embedded dnsmasq) is to listen and answer on all interface IP's.
The interface= directive restricts this behaviour by only answering on the supplied interface IP.

What do you mean by that ?
Did disabling NetworkManager + reboot not change the systemctl status ?
And when rebooting, didn't the journalctl command output change ?
If still have two network managers active, this could still cause issue's.

EDIT: You might also want to compare below two before and after disabling NM (with reboot) for differences:

ip -br address show

ip route show

EDIT2: seems "reboot" is the magic word

To understand you correctly.
There are 3 settings:
Listening on all interfaces. - That seems to not work for me since I have to open the pihole admin page to allow all attached devices a internet connection after restarting the pihole server.

Listening only on interface eth0. - That does not work since I am using wireguard, so pihole has to listen to eth0 and wg0 and that is not possible to change in the settings. Just eth0 or wg0 not both.

Listening on all interfaces, permitting all origins. - That seems to work for now. I am behind a firewall, so that seems to be alright I guess?

What do you mean by that ?

Sorry. That was not really clear. The Network manager is off, but it did not change the situation of the restart while I had the switch on Listening on all interfaces. Pihole was not functional after a restart.

Network manager is off since the morning again. I flushed the logs and the network table. Yesterday I had for my main PC 6 Client entries on the dash board. 1 IPv4 and 5 IPv6 (all starting fd00).
Today after switching off the network manager and flushing logs and network tables there is for every client just one line in place. All have just an IPv4 entry and the IPv6 entries disappeared completely.

systemctl status NetworkManager
● NetworkManager.service - Network Manager
     Loaded: loaded (/lib/systemd/system/NetworkManager.service; disabled; vendor preset: enabled)
     Active: inactive (dead)
       Docs: man:NetworkManager(8)
sudo journalctl -u NetworkManager
-- Logs begin at Mon 2020-11-02 07:34:58 CET, end at Mon 2020-11-02 13:31:00 CET. --
-- No entries --
ip -br address show
lo               UNKNOWN        127.0.0.1/8 ::1/128
dummy0           UNKNOWN        fe80::a882:3f47:2eb0:18b5/64
sit0@NONE        DOWN
ip6tnl0@NONE     DOWN
eth0             UP             192.168.184.32/24 fd00::f727:e8bf:ffeb:d76f/64 2a02:945:2116:77e3:98a:82e5:8d4f:a687/64 fe80::8a2e:80e6:8d4c:2248/64
wlan0            DOWN
wg0              UNKNOWN        100.10.0.1/24 fd21:21:21::1/64
ip route show
default via 192.168.184.1 dev eth0 src 192.168.184.32 metric 205
100.10.0.0/24 dev wg0 proto kernel scope link src 100.10.0.1
192.168.184.0/24 dev eth0 proto dhcp scope link src 192.168.184.32 metric 205

It all depends if other software, like for example PiVPN, have dropped an interface= line in their config files in the /etc/dnsmasq.d/ folder:

sudo grep interface= -R /etc/dnsmasq.*

Do mind that dhcpcd will default do a DHCP broadcast + IPv6 router discovery to acquire IP details automatically for all detected interfaces ... if not told otherwise.
Like you do have now for the eth0 interface.
If you want dhcpcd to not do anything with particular interfaces, like for example the dummy0 interface, you can use the denyinterfaces directive in the /etc/dhcpcd.conf file:

pi@ph5:~ $ man dhcpcd
[..]
     -Z, --denyinterfaces pattern
             When discovering interfaces, the interface name must not
             match pattern which is a space or comma separated list of
             patterns passed to fnmatch(3).

For example:

denyinterfaces dummy0 sit0@NONE ip6tnl0@NONE wlan0 wg0

And oc check the journals if dhcpcd is complying (after reboot).