Network manager breaks pi-hole

Was worth a try.
When I can think of something else, I'll post.
For now nn.

:wink: thanks nn

There is no traffic going to the wifi/outside world. However, pihole-FTL can retrieve the DNSs.
The same with chromium. It cannot connect anywhere. So many issues to be fixed... :sweat_smile:

pi@raspberrypi:~ $ dig realvnc.com

; <<>> DiG 9.11.5-P4-5.1+deb10u1-Raspbian <<>> realvnc.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25849
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;realvnc.com.			IN	A

;; ANSWER SECTION:
realvnc.com.		3275	IN	A	146.101.60.69

;; Query time: 0 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Tue Jul 21 08:27:07 CEST 2020
;; MSG SIZE  rcvd: 56

pi@raspberrypi:~ $ ping realvnc.com
ping: realvnc.com: Name or service not known

I believe we missed some steps believing dnsmasq is part of NM.
Can you post output for below:

systemctl status dnsmasq

which dnsmasq

dpkg -S /usr/sbin/dnsmasq

apt policy dnsmasq-base

If dnsmasq-base is installed, you should be able to disable dnsmasq from starting at boot with below:

sudo systemctl disable dnsmasq

Or:

sudo systemctl mask dnsmasq

I wouldnt purge dnsmasq-base so to keep the man pages available:

pi@noads:~ $ dpkg -L dnsmasq-base
[..]
/usr/sbin/dnsmasq
[..]
/usr/share/man
/usr/share/man/es
/usr/share/man/es/man8
/usr/share/man/es/man8/dnsmasq.8.gz
/usr/share/man/fr
/usr/share/man/fr/man8
/usr/share/man/fr/man8/dnsmasq.8.gz
/usr/share/man/man8
/usr/share/man/man8/dnsmasq.8.gz
[..]

They might come in handy if tinkering with pihole-FTL that shares most settings from dnsmasq.

Here they are:

pi@raspberrypi:~ $ systemctl status dnsmasq
Unit dnsmasq.service could not be found.
pi@raspberrypi:~ $ which dnsmasq
/usr/sbin/dnsmasq
pi@raspberrypi:~ $ dpkg -S /usr/sbin/dnsmasq
dnsmasq-base: /usr/sbin/dnsmasq
pi@raspberrypi:~ $ apt policy dnsmasq-base
dnsmasq-base:
  Installed: 2.80-1+rpt1
  Candidate: 2.80-1+rpt1
  Version table:
     2.81-4 -1
         -1 http://raspbian.raspberrypi.org/raspbian bullseye/main armhf Packages
 *** 2.80-1+rpt1 500
        500 http://archive.raspberrypi.org/debian buster/main armhf Packages
        100 /var/lib/dpkg/status
     2.80-1 500
        500 http://raspbian.raspberrypi.org/raspbian buster/main armhf Packages

I rely on sharing my Wi-Fi connection LAN to the router and then the router distributes it to all of the devices (I am connecting through a EAP TTLS wifi network, hence the need for NM). If I disable dnsmasq, will the sharing of the connection still be handled or even work with NM?

By the way, I have masked it:

pi@raspberrypi:/etc/dnsmasq.d $ sudo systemctl mask dnsmasq
Unit dnsmasq.service does not exist, proceeding anyway.
Created symlink /etc/systemd/system/dnsmasq.service → /dev/null.

This is exactly what I've been trying to do here:

Any chance to get a summary from of what to do from first boot (I likely need to start from scratch), cause I was losing my mind with this. Should be so straight forward to do but somehow I mess up somewhere.

@deHakkelaar My main question actually is how do I copy (or keep a backup, since I guess that NM is not handling sharing connections in pihole-FTL) my current dnsmasq settings to Pihole's FTL?

@EnkiABZ I will try to sum it up once finishing up like I have done so far for in post #48.

1 Like

@deHakkelaar I believe forwarding rules are kept from NM but the gateway is missing. this is done from the admin page under Settings I assume :slight_smile:

Ok so what I am doing now:

  • sudo netstat -nltup | grep 'Proto|:53 |:67 |:80 |:547 |:471[1-8] '
  • stop wifi (otherwise I cannot kill dnsmasq, it respawns!)
  • kill (dnsmasq PID)
  • sudo systemctl restart pihole-FTL
  • sudo netstat -nltup | grep 'Proto|:53 |:67 |:80 |:547 |:471[1-8] ' (normally pihole-FTL is up now)

put in the admin -> Setting -> DHCP -> gateway the IP of the gateway of the wifi. Check with VNC that it can be forwarded and it is ok.

I am so close. Upon reboot I have to kill dsnmasq by switching off wifi first and then enabling pihole-FTL.

Should I remove dnsmasq-base altogether? I don't get it, I masked dnsmasq, no other process should be able to call it. Not sure though if this is a good idea, since when I do
sudo mv /usr/sbin/dnsmasq /usr/sbin/~dnsmasq the system hangs after a minute and NM keeps on loading...

The only reason dnsmasq-base is installed (if it was installed with NM) is to cache DNS queries.
And as pihole-FTL has the dnsmasq code embedded into its own code, pihole-FTL can almost be considered as a drop in replacement for dnsmasq.
pihole-FTL even reads the exact same config file /etc/dnsmasq.conf as dnsmasq does (if dnsmasq whas run standalone).
So there is no reason to assume it will break your network setup if substitute dnsmasq with pihole-FTL.

Masking wont do if the dnsmasq binary is called upon directly by NM and not via systemd.

See my first answer above ^

Not for now.

I made wrong assumption with previous posting of mine ... again :wink:
The package dnsmasq-base contains the /usr/sbin/dnsmasq binary:

pi@ph5:~ $ apt-file list dnsmasq-base
dnsmasq-base: /etc/dbus-1/system.d/dnsmasq.conf
dnsmasq-base: /usr/sbin/dnsmasq
dnsmasq-base: /usr/share/dnsmasq-base/trust-anchors.conf
dnsmasq-base: /usr/share/doc/dnsmasq-base/DBus-interface.gz
dnsmasq-base: /usr/share/doc/dnsmasq-base/FAQ.gz
dnsmasq-base: /usr/share/doc/dnsmasq-base/README.Debian
dnsmasq-base: /usr/share/doc/dnsmasq-base/changelog.Debian.gz
dnsmasq-base: /usr/share/doc/dnsmasq-base/changelog.archive.gz
dnsmasq-base: /usr/share/doc/dnsmasq-base/changelog.gz
dnsmasq-base: /usr/share/doc/dnsmasq-base/copyright
dnsmasq-base: /usr/share/doc/dnsmasq-base/doc.html
dnsmasq-base: /usr/share/doc/dnsmasq-base/examples/dnsmasq.conf.example
dnsmasq-base: /usr/share/doc/dnsmasq-base/setup.html
dnsmasq-base: /usr/share/locale/de/LC_MESSAGES/dnsmasq.mo
dnsmasq-base: /usr/share/locale/es/LC_MESSAGES/dnsmasq.mo
dnsmasq-base: /usr/share/locale/fi/LC_MESSAGES/dnsmasq.mo
dnsmasq-base: /usr/share/locale/fr/LC_MESSAGES/dnsmasq.mo
dnsmasq-base: /usr/share/locale/id/LC_MESSAGES/dnsmasq.mo
dnsmasq-base: /usr/share/locale/it/LC_MESSAGES/dnsmasq.mo
dnsmasq-base: /usr/share/locale/no/LC_MESSAGES/dnsmasq.mo
dnsmasq-base: /usr/share/locale/pl/LC_MESSAGES/dnsmasq.mo
dnsmasq-base: /usr/share/locale/pt_BR/LC_MESSAGES/dnsmasq.mo
dnsmasq-base: /usr/share/locale/ro/LC_MESSAGES/dnsmasq.mo
dnsmasq-base: /usr/share/man/es/man8/dnsmasq.8.gz
dnsmasq-base: /usr/share/man/fr/man8/dnsmasq.8.gz
dnsmasq-base: /usr/share/man/man8/dnsmasq.8.gz
[..]

And the package dnsmasq contains the systemd unit file dnsmasq.service thats needed to start dnsmasq via systemd (systemctl start/stop etc):

pi@ph5:~ $ apt-file list dnsmasq
dnsmasq: /etc/default/dnsmasq
dnsmasq: /etc/dnsmasq.conf
dnsmasq: /etc/dnsmasq.d/README
dnsmasq: /etc/init.d/dnsmasq
dnsmasq: /etc/insserv.conf.d/dnsmasq
dnsmasq: /etc/resolvconf/update.d/dnsmasq
dnsmasq: /lib/systemd/system/dnsmasq.service
dnsmasq: /usr/lib/resolvconf/dpkg-event.d/dnsmasq
dnsmasq: /usr/lib/tmpfiles.d/dnsmasq.conf
dnsmasq: /usr/share/dnsmasq/installed-marker
dnsmasq: /usr/share/doc/dnsmasq

The later seems not installed and isnt needed if NM boots up dnsmasq.
Can you validate NM being the parent of dnsmasq with below before digging any deeper ?
Will need to reboot first to get dnsmasq running again.

pstree -s $(pidof dnsmasq)

Thanks for the long explanation :wink:

You are right in your assumption:

pi@raspberrypi:~ $ pstree -s $(pidof dnsmasq)
systemd───NetworkManager───dnsmasq

For some reason I cannot see the queries. Is that ok?

My laptop is also using NM but default doesnt have that dns= directive:

dehakkelaar@laptop:~$ cat /etc/NetworkManager/NetworkManager.conf
[main]
plugins=ifupdown,keyfile

[ifupdown]
managed=false

dehakkelaar@laptop:~$ sudo grep 'dns=\|dnsmasq' -R /etc/NetworkManager/
dehakkelaar@laptop:~$

dehakkelaar@laptop:~$ sudo netstat -nltup | grep dnsmasq
dehakkelaar@laptop:~$

dehakkelaar@laptop:~$ cat /etc/resolv.conf
# Generated by NetworkManager
search dehakkelaar.nl
nameserver 10.0.0.2

dnsmasq-base was already installed from previous tinkering.
I added that dns=dnsmasq directive and now have below output after reboot:

dehakkelaar@laptop:~$ cat /etc/NetworkManager/NetworkManager.conf
[main]
plugins=ifupdown,keyfile
dns=dnsmasq

[ifupdown]
managed=false

dehakkelaar@laptop:~$ sudo grep 'dns=\|dnsmasq' -R /etc/NetworkManager/
/etc/NetworkManager/NetworkManager.conf:dns=dnsmasq

dehakkelaar@laptop:~$ sudo netstat -nltup | grep dnsmasq
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      1604/dnsmasq
udp        0      0 0.0.0.0:50831           0.0.0.0:*                           1604/dnsmasq
udp        0      0 127.0.0.1:53            0.0.0.0:*                           1604/dnsmasq

dehakkelaar@laptop:~$ cat /etc/resolv.conf
# Generated by NetworkManager
search dehakkelaar.nl
nameserver 127.0.0.1

dehakkelaar@laptop:~$ pstree -s $(pidof dnsmasq)
systemd───NetworkManager───dnsmasq

If I remove that dns=dnsmasq directive again and reboot, everything reverts back to as was before without dnsmasq running.
Are you sure that directive isnt configured somewhere (added sudo below) and did you reboot in between while trying options ?

sudo grep 'dns=\|dnsmasq' -R /etc/NetworkManager/

No its not.
Try clear browser cache first and reload the page.
If that doesn fix, try run below and select repair:

pihole -r

EDIT: ow ps. do you run a desktop ?
Something might be configured in the pi user home folder ~ :

sudo grep 'dns=' -R ~

Clear the cache on that browser and reload the page.

Not only almost :slight_smile:

Pi-hole FTL is everything dnsmasq is (and more!).

1 Like

I said almost as init differs a little.
pihole-FTL relies on /etc/init.d/pihole-FTL.
And dnsmasq on /lib/systemd/system/dnsmasq.service
They start up the binary in slightly a different way.
But nice to know pihole-FTL is optimized for drop-in.

I did reboot indeed. This is how it is with a fresh reboot:

pi@raspberrypi:~ $ sudo netstat -nltup | grep 'Proto\|:53 \|:67 \|:80 \|:547 \|:471[1-8] '
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 192.168.0.39:53         0.0.0.0:*               LISTEN      594/dnsmasq         
udp        0      0 192.168.0.39:53         0.0.0.0:*                           594/dnsmasq         
udp        0      0 0.0.0.0:67              0.0.0.0:*                           594/dnsmasq         

pi@raspberrypi:~ $ sudo grep 'dns=\|dnsmasq' -R /etc/NetworkManager/

pi@raspberrypi:~ $ sudo netstat -nltup | grep dnsmasq
tcp        0      0 192.168.0.39:53         0.0.0.0:*               LISTEN      594/dnsmasq         
udp        0      0 0.0.0.0:44205           0.0.0.0:*                           594/dnsmasq         
udp        0      0 0.0.0.0:10464           0.0.0.0:*                           594/dnsmasq         
udp        0      0 0.0.0.0:10497           0.0.0.0:*                           594/dnsmasq         
udp        0      0 0.0.0.0:49940           0.0.0.0:*                           594/dnsmasq         
udp        0      0 0.0.0.0:25379           0.0.0.0:*                           594/dnsmasq         
udp        0      0 0.0.0.0:9201            0.0.0.0:*                           594/dnsmasq         
udp        0      0 0.0.0.0:52734           0.0.0.0:*                           594/dnsmasq         
udp        0      0 0.0.0.0:15367           0.0.0.0:*                           594/dnsmasq         
udp        0      0 192.168.0.39:53         0.0.0.0:*                           594/dnsmasq         
udp        0      0 0.0.0.0:67              0.0.0.0:*                           594/dnsmasq         
udp        0      0 0.0.0.0:21089           0.0.0.0:*                           594/dnsmasq         
udp        0      0 0.0.0.0:50293           0.0.0.0:*                           594/dnsmasq         

pi@raspberrypi:~ $ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 192.168.0.39
nameserver 127.0.0.53
search fritz.box

pi@raspberrypi:~ $ pstree -s $(pidof dnsmasq)
systemd───NetworkManager───dnsmasq

pi@raspberrypi:~ $ sudo grep 'dns=\|dnsmasq' -R /etc/NetworkManager/

pi@raspberrypi:~ $ sudo grep 'dns=' -R ~

/home/pi/.bash_history:sudo grep dns= -R /etc/NetworkManager/
/home/pi/.bash_history:sudo grep dns= -R /etc/NetworkManager/
/home/pi/.bash_history:sudo grep 'dns=\|dnsmasq' -R /etc/NetworkManager/
/home/pi/.bash_history:sudo grep 'dns=\|dnsmasq' -R /etc/NetworkManager/

I am guessing that raspberry pi (Buster/10, pi3B+ FYI) is indeed calling dnsmasq from NetworkManager.

FYI, I had put under /etc/NetworkManager/NetworkManager.conf the dns=none, but it was still calling dnsmasq.

dns=none or by omitting that directive should provide the expected behaviour according to the man pages:

dehakkelaar@laptop:~$ man NetworkManager.conf
[..]
       dns
           Set the DNS (resolv.conf) processing mode. If the key is
           unspecified, default is used, unless /etc/resolv.conf is a
           symlink to /run/systemd/resolve/resolv.conf,
           /lib/systemd/resolv.conf or /usr/lib/systemd/resolv.conf.
           In that case, systemd-resolved is chosen automatically.

           default: NetworkManager will update /etc/resolv.conf to
           reflect the nameservers provided by currently active
           connections.

           dnsmasq: NetworkManager will run dnsmasq as a local caching
           nameserver, using a "split DNS" configuration if you are
           connected to a VPN, and then update resolv.conf to point to
           the local nameserver. It is possible to pass custom options
           to the dnsmasq instance by adding them to files in the
           "/etc/NetworkManager/dnsmasq.d/" directory.

           none: NetworkManager will not modify resolv.conf. This
           implies rc-manager unmanaged
[..]

What does below show ?

sudo NetworkManager --print-config

Maybe the logs can give some insight.
Could you add below section at the bottom of the /etc/NetworkManager/NetworkManager.conf file:

[logging]
level=TRACE

Reboot and post results for below one ?

sudo journalctl -u NetworkManager | grep 'dns-mgr\|dnsmasq'

Remove those two lines when finished or the systemd journals will grow large.

I remember putting dns=none and it did not do anything.

I am adding it again

pi@raspberrypi:~ $ sudo NetworkManager --print-config
# NetworkManager configuration: /etc/NetworkManager/NetworkManager.conf (lib: no-mac-addr-change.conf)

[main]
# rc-manager=resolvconf
# auth-polkit=true
# dhcp=dhclient
plugins=ifupdown,keyfile
dns=none

[ifupdown]
managed=false

[logging]
# backend=journal
# audit=true
level=TRACE

[device-mac-addr-change-wifi]
match-device=driver:rtl8723bs,driver:rtl8189es,driver:r8188eu,driver:8188eu,driver:eagle_sdio,driver:wl
wifi.scan-rand-mac-address=no
wifi.cloned-mac-address=preserve
ethernet.cloned-mac-address=preserve
pi@raspberrypi:~ $ sudo cat /etc/NetworkManager/NetworkManager.conf 
[main]
plugins=ifupdown,keyfile
dns=none

[ifupdown]
managed=false

[logging]
level=TRACE

I am now rebooting and

i@raspberrypi:~ $ sudo journalctl -u NetworkManager | grep 'dns-mgr\|dnsmasq'
Jul 24 08:26:50 raspberrypi NetworkManager[412]: <trace> [1595572010.7839] dns-mgr[0xae6000]: creating...
Jul 24 08:26:50 raspberrypi NetworkManager[412]: <info>  [1595572010.7840] dns-mgr[0xae6000]: init: dns=none, rc-manager=unmanaged
Jul 24 08:26:50 raspberrypi NetworkManager[412]: <trace> [1595572010.7894] dns-mgr: current configuration: @aa{sv} []
Jul 24 08:26:51 raspberrypi NetworkManager[412]: <debug> [1595572011.6910] dns-mgr: (device_ip_config_changed): queueing DNS updates (1)
Jul 24 08:26:51 raspberrypi NetworkManager[412]: <debug> [1595572011.6911] dns-mgr: (device_ip_config_changed): DNS configuration did not change
Jul 24 08:26:51 raspberrypi NetworkManager[412]: <debug> [1595572011.6912] dns-mgr: (device_ip_config_changed): no DNS changes to commit (0)
Jul 24 08:26:51 raspberrypi NetworkManager[412]: <debug> [1595572011.7007] dns-mgr: (device_ip_config_changed): queueing DNS updates (1)
Jul 24 08:26:51 raspberrypi NetworkManager[412]: <debug> [1595572011.7008] dns-mgr: (device_ip_config_changed): DNS configuration did not change
Jul 24 08:26:51 raspberrypi NetworkManager[412]: <debug> [1595572011.7009] dns-mgr: (device_ip_config_changed): no DNS changes to commit (0)
Jul 24 08:26:51 raspberrypi NetworkManager[412]: <debug> [1595572011.7267] dns-mgr: (device_ip_config_changed): queueing DNS updates (1)
Jul 24 08:26:51 raspberrypi NetworkManager[412]: <debug> [1595572011.7269] dns-mgr: (device_ip_config_changed): DNS configuration did not change
Jul 24 08:26:51 raspberrypi NetworkManager[412]: <debug> [1595572011.7271] dns-mgr: (device_ip_config_changed): no DNS changes to commit (0)
Jul 24 08:26:51 raspberrypi NetworkManager[412]: <debug> [1595572011.7291] dns-mgr: (device_ip_config_changed): queueing DNS updates (1)
Jul 24 08:26:51 raspberrypi NetworkManager[412]: <debug> [1595572011.7293] dns-mgr: (device_ip_config_changed): DNS configuration did not change
Jul 24 08:26:51 raspberrypi NetworkManager[412]: <debug> [1595572011.7295] dns-mgr: (device_ip_config_changed): no DNS changes to commit (0)
Jul 24 08:26:51 raspberrypi NetworkManager[412]: <debug> [1595572011.7962] dns-mgr: (device_ip_config_changed): queueing DNS updates (1)
Jul 24 08:26:51 raspberrypi NetworkManager[412]: <debug> [1595572011.7964] dns-mgr: (device_ip_config_changed): DNS configuration did not change
Jul 24 08:26:51 raspberrypi NetworkManager[412]: <debug> [1595572011.7965] dns-mgr: (device_ip_config_changed): no DNS changes to commit (0)
Jul 24 08:26:51 raspberrypi NetworkManager[412]: <debug> [1595572011.8075] dns-mgr: (device_ip_config_changed): queueing DNS updates (1)
Jul 24 08:26:51 raspberrypi NetworkManager[412]: <debug> [1595572011.8077] dns-mgr: (device_ip_config_changed): DNS configuration did not change
Jul 24 08:26:51 raspberrypi NetworkManager[412]: <debug> [1595572011.8077] dns-mgr: (device_ip_config_changed): no DNS changes to commit (0)
Jul 24 08:26:52 raspberrypi NetworkManager[412]: <debug> [1595572012.4074] dns-mgr: (device_ip_config_changed): queueing DNS updates (1)
Jul 24 08:26:52 raspberrypi NetworkManager[412]: <debug> [1595572012.4083] dns-mgr: (device_ip_config_changed): DNS configuration did not change
Jul 24 08:26:52 raspberrypi NetworkManager[412]: <debug> [1595572012.4084] dns-mgr: (device_ip_config_changed): no DNS changes to commit (0)
Jul 24 08:26:52 raspberrypi NetworkManager[412]: <debug> [1595572012.4091] dns-mgr: (device_ip_config_changed): queueing DNS updates (1)
Jul 24 08:26:52 raspberrypi NetworkManager[412]: <debug> [1595572012.4092] dns-mgr: (device_ip_config_changed): DNS configuration did not change
Jul 24 08:26:52 raspberrypi NetworkManager[412]: <debug> [1595572012.4093] dns-mgr: (device_ip_config_changed): no DNS changes to commit (0)
Jul 24 08:26:52 raspberrypi NetworkManager[412]: <debug> [1595572012.4688] dns-mgr: (device_ip_config_changed): queueing DNS updates (1)
Jul 24 08:26:52 raspberrypi NetworkManager[412]: <debug> [1595572012.4689] dns-mgr: (device_ip_config_changed): DNS configuration did not change
Jul 24 08:26:52 raspberrypi NetworkManager[412]: <debug> [1595572012.4689] dns-mgr: (device_ip_config_changed): no DNS changes to commit (0)
Jul 24 08:26:52 raspberrypi NetworkManager[412]: <debug> [1595572012.4704] dns-mgr: (device_ip_config_changed): queueing DNS updates (1)
Jul 24 08:26:52 raspberrypi NetworkManager[412]: <debug> [1595572012.4705] dns-mgr: (device_ip_config_changed): DNS configuration did not change
Jul 24 08:26:52 raspberrypi NetworkManager[412]: <debug> [1595572012.4705] dns-mgr: (device_ip_config_changed): no DNS changes to commit (0)
Jul 24 08:26:52 raspberrypi NetworkManager[412]: <debug> [1595572012.4852] dns-mgr: (device_ip_config_changed): queueing DNS updates (1)
Jul 24 08:26:52 raspberrypi NetworkManager[412]: <debug> [1595572012.4853] dns-mgr: (device_ip_config_changed): DNS configuration did not change
Jul 24 08:26:52 raspberrypi NetworkManager[412]: <debug> [1595572012.4853] dns-mgr: (device_ip_config_changed): no DNS changes to commit (0)
Jul 24 08:26:52 raspberrypi NetworkManager[412]: <debug> [1595572012.5887] dns-mgr: (device_ip_config_changed): queueing DNS updates (1)
Jul 24 08:26:52 raspberrypi NetworkManager[412]: <debug> [1595572012.5888] dns-mgr: (device_ip_config_changed): DNS configuration did not change
Jul 24 08:26:52 raspberrypi NetworkManager[412]: <debug> [1595572012.5889] dns-mgr: (device_ip_config_changed): no DNS changes to commit (0)
Jul 24 08:26:52 raspberrypi NetworkManager[412]: <debug> [1595572012.5968] dns-mgr: (device_ip_config_changed): queueing DNS updates (1)
Jul 24 08:26:52 raspberrypi NetworkManager[412]: <debug> [1595572012.5969] dns-mgr: (device_ip_config_changed): DNS configuration did not change
Jul 24 08:26:52 raspberrypi NetworkManager[412]: <debug> [1595572012.5970] dns-mgr: (device_ip_config_changed): no DNS changes to commit (0)
Jul 24 08:26:53 raspberrypi NetworkManager[412]: <info>  [1595572013.1040] dnsmasq-manager: starting dnsmasq...
Jul 24 08:26:53 raspberrypi NetworkManager[412]: <debug> [1595572013.1041] dnsmasq-manager: command line: /usr/sbin/dnsmasq --log-dhcp --log-queries --conf-file=/dev/null --no-hosts --keep-in-foreground --bind-interfaces --except-interface=lo --clear-on-reload --strict-order --listen-address=192.168.0.39 --dhcp-range=192.168.0.48,192.168.0.254,60m --dhcp-lease-max=50 --dhcp-leasefile=/var/lib/NetworkManager/dnsmasq-eth0.leases --pid-file=/run/nm-dnsmasq-eth0.pid --conf-dir=/etc/NetworkManager/dnsmasq-shared.d
Jul 24 08:26:53 raspberrypi NetworkManager[412]: <debug> [1595572013.1302] dnsmasq-manager: dnsmasq started with pid 597
Jul 24 08:26:53 raspberrypi NetworkManager[412]: <debug> [1595572013.1456] dns-mgr: (device_ip_config_changed): queueing DNS updates (1)
Jul 24 08:26:53 raspberrypi NetworkManager[412]: <debug> [1595572013.1457] dns-mgr: (device_ip_config_changed): DNS configuration did not change
Jul 24 08:26:53 raspberrypi NetworkManager[412]: <debug> [1595572013.1457] dns-mgr: (device_ip_config_changed): no DNS changes to commit (0)
Jul 24 08:26:53 raspberrypi dnsmasq[597]: started, version 2.80 cachesize 150
Jul 24 08:26:53 raspberrypi dnsmasq[597]: compile time options: IPv6 GNU-getopt DBus i18n IDN DHCP DHCPv6 no-Lua TFTP conntrack ipset auth DNSSEC loop-detect inotify dumpfile
Jul 24 08:26:53 raspberrypi dnsmasq[597]: chown of PID file /run/nm-dnsmasq-eth0.pid failed: Operation not permitted
Jul 24 08:26:53 raspberrypi dnsmasq-dhcp[597]: DHCP, IP range 192.168.0.48 -- 192.168.0.254, lease time 1h
Jul 24 08:26:53 raspberrypi dnsmasq[597]: reading /etc/resolv.conf
Jul 24 08:26:53 raspberrypi dnsmasq[597]: using nameserver 127.0.0.53#53
Jul 24 08:26:53 raspberrypi dnsmasq[597]: cleared cache
Jul 24 08:26:53 raspberrypi NetworkManager[412]: <debug> [1595572013.2285] dns-mgr: (device_state_changed): queueing DNS updates (1)
Jul 24 08:26:53 raspberrypi NetworkManager[412]: <debug> [1595572013.2286] dns-mgr: (update_routing_and_dns): queueing DNS updates (2)
Jul 24 08:26:53 raspberrypi NetworkManager[412]: <debug> [1595572013.2289] dns-mgr: (update_routing_and_dns): DNS configuration did not change
Jul 24 08:26:53 raspberrypi NetworkManager[412]: <debug> [1595572013.2289] dns-mgr: (update_routing_and_dns): no DNS changes to commit (1)
Jul 24 08:26:53 raspberrypi NetworkManager[412]: <debug> [1595572013.2290] dns-mgr: (device_state_changed): DNS configuration did not change
Jul 24 08:26:53 raspberrypi NetworkManager[412]: <debug> [1595572013.2290] dns-mgr: (device_state_changed): no DNS changes to commit (0)
Jul 24 08:26:54 raspberrypi NetworkManager[412]: <debug> [1595572014.3314] dns-mgr: (device_ip_config_changed): queueing DNS updates (1)
Jul 24 08:26:54 raspberrypi NetworkManager[412]: <debug> [1595572014.3316] dns-mgr: (device_ip_config_changed): DNS configuration did not change
Jul 24 08:26:54 raspberrypi NetworkManager[412]: <debug> [1595572014.3317] dns-mgr: (device_ip_config_changed): no DNS changes to commit (0)
Jul 24 08:26:54 raspberrypi NetworkManager[412]: <debug> [1595572014.3373] dns-mgr: (device_ip_config_changed): queueing DNS updates (1)
Jul 24 08:26:54 raspberrypi NetworkManager[412]: <debug> [1595572014.3382] dns-mgr: (device_ip_config_changed): DNS configuration did not change
Jul 24 08:26:54 raspberrypi NetworkManager[412]: <debug> [1595572014.3383] dns-mgr: (device_ip_config_changed): no DNS changes to commit (0)
Jul 24 08:26:55 raspberrypi dnsmasq[597]: query[A] fritz.box from 192.168.0.63
Jul 24 08:26:55 raspberrypi dnsmasq[597]: forwarded fritz.box to 127.0.0.53
Jul 24 08:26:55 raspberrypi dnsmasq[597]: query[A] wpad.fritz.box from 192.168.0.63
Jul 24 08:26:55 raspberrypi dnsmasq[597]: forwarded wpad.fritz.box to 127.0.0.53
Jul 24 08:26:55 raspberrypi dnsmasq[597]: query[A] fritz.box from 192.168.0.63
Jul 24 08:26:55 raspberrypi dnsmasq[597]: forwarded fritz.box to 127.0.0.53
Jul 24 08:26:56 raspberrypi dnsmasq[597]: query[A] wpad.fritz.box from 192.168.0.63
Jul 24 08:26:56 raspberrypi dnsmasq[597]: forwarded wpad.fritz.box to 127.0.0.53
Jul 24 08:26:56 raspberrypi dnsmasq[597]: query[A] fritz.box from 192.168.0.63
Jul 24 08:26:56 raspberrypi dnsmasq[597]: forwarded fritz.box to 127.0.0.53
Jul 24 08:26:58 raspberrypi dnsmasq[597]: query[A] wpad.fritz.box from 192.168.0.63
Jul 24 08:26:58 raspberrypi dnsmasq[597]: forwarded wpad.fritz.box to 127.0.0.53
Jul 24 08:26:58 raspberrypi dnsmasq[597]: query[A] fritz.box from 192.168.0.63
Jul 24 08:26:58 raspberrypi dnsmasq[597]: forwarded fritz.box to 127.0.0.53
Jul 24 08:27:02 raspberrypi dnsmasq[597]: query[A] fritz.box from 192.168.0.63
Jul 24 08:27:02 raspberrypi dnsmasq[597]: forwarded fritz.box to 127.0.0.53
Jul 24 08:27:02 raspberrypi NetworkManager[412]: <debug> [1595572022.7998] dns-mgr: (device_ip_config_changed): queueing DNS updates (1)
Jul 24 08:27:02 raspberrypi NetworkManager[412]: <debug> [1595572022.8000] dns-mgr: (device_ip_config_changed): DNS configuration did not change
Jul 24 08:27:02 raspberrypi NetworkManager[412]: <debug> [1595572022.8001] dns-mgr: (device_ip_config_changed): no DNS changes to commit (0)
Jul 24 08:27:02 raspberrypi NetworkManager[412]: <debug> [1595572022.8860] dns-mgr: (device_ip_config_changed): queueing DNS updates (1)
Jul 24 08:27:02 raspberrypi NetworkManager[412]: <debug> [1595572022.8862] dns-mgr: (device_ip_config_changed): DNS configuration did not change
Jul 24 08:27:02 raspberrypi NetworkManager[412]: <debug> [1595572022.8863] dns-mgr: (device_ip_config_changed): no DNS changes to commit (0)
Jul 24 08:27:02 raspberrypi NetworkManager[412]: <debug> [1595572022.8906] dns-mgr: (device_ip_config_changed): queueing DNS updates (1)
Jul 24 08:27:02 raspberrypi NetworkManager[412]: <debug> [1595572022.8907] dns-mgr: (device_ip_config_changed): DNS configuration did not change
Jul 24 08:27:02 raspberrypi NetworkManager[412]: <debug> [1595572022.8908] dns-mgr: (device_ip_config_changed): no DNS changes to commit (0)
Jul 24 08:27:03 raspberrypi dnsmasq-dhcp[597]: 3092705378 available DHCP range: 192.168.0.48 -- 192.168.0.254
Jul 24 08:27:03 raspberrypi dnsmasq-dhcp[597]: 3092705378 client provides name: raspberrypi
Jul 24 08:27:03 raspberrypi NetworkManager[412]: <debug> [1595572023.0772] dns-mgr: (device_ip_config_changed): queueing DNS updates (1)
Jul 24 08:27:03 raspberrypi NetworkManager[412]: <debug> [1595572023.0773] dns-mgr: (device_ip_config_changed): DNS configuration did not change
Jul 24 08:27:03 raspberrypi NetworkManager[412]: <debug> [1595572023.0773] dns-mgr: (device_ip_config_changed): no DNS changes to commit (0)
Jul 24 08:27:03 raspberrypi NetworkManager[412]: <debug> [1595572023.1228] dns-mgr: (device_state_changed): queueing DNS updates (1)
Jul 24 08:27:03 raspberrypi NetworkManager[412]: <debug> [1595572023.1229] dns-mgr: (update_routing_and_dns): queueing DNS updates (2)
Jul 24 08:27:03 raspberrypi NetworkManager[412]: <debug> [1595572023.1253] dns-mgr: (update_routing_and_dns): DNS configuration changed
Jul 24 08:27:03 raspberrypi NetworkManager[412]: <debug> [1595572023.1253] dns-mgr: (update_routing_and_dns): no DNS changes to commit (1)
Jul 24 08:27:03 raspberrypi NetworkManager[412]: <debug> [1595572023.1253] dns-mgr: (device_state_changed): DNS configuration changed
Jul 24 08:27:03 raspberrypi NetworkManager[412]: <debug> [1595572023.1254] dns-mgr: (device_state_changed): committing DNS changes (0)
Jul 24 08:27:03 raspberrypi NetworkManager[412]: <debug> [1595572023.1255] dns-mgr: update-dns: not updating resolv.conf
Jul 24 08:27:03 raspberrypi NetworkManager[412]: <trace> [1595572023.1255] dns-mgr: config:      100 best    v4 3     : 192.168.0.39
Jul 24 08:27:03 raspberrypi NetworkManager[412]: <trace> [1595572023.1258] dns-mgr: update-resolv-conf: write internal file /run/NetworkManager/resolv.conf succeeded
Jul 24 08:27:03 raspberrypi NetworkManager[412]: <trace> [1595572023.1261] dns-mgr: current configuration: [{'nameservers': <['192.168.0.39']>, 'domains': <['fritz.box']>, 'interface': <'wlan0'>, 'priority': <100>, 'vpn': <false>}]
Jul 24 08:27:03 raspberrypi NetworkManager[412]: <debug> [1595572023.5741] dns-mgr: (device_ip_config_changed): queueing DNS updates (1)
Jul 24 08:27:03 raspberrypi NetworkManager[412]: <debug> [1595572023.5742] dns-mgr: (device_ip_config_changed): DNS configuration did not change
Jul 24 08:27:03 raspberrypi NetworkManager[412]: <debug> [1595572023.5742] dns-mgr: (device_ip_config_changed): no DNS changes to commit (0)
Jul 24 08:27:03 raspberrypi NetworkManager[412]: <debug> [1595572023.5869] dns-mgr: (device_ip_config_changed): queueing DNS updates (1)
Jul 24 08:27:03 raspberrypi NetworkManager[412]: <debug> [1595572023.5870] dns-mgr: (device_ip_config_changed): DNS configuration did not change
Jul 24 08:27:03 raspberrypi NetworkManager[412]: <debug> [1595572023.5871] dns-mgr: (device_ip_config_changed): no DNS changes to commit (0)
Jul 24 08:27:03 raspberrypi NetworkManager[412]: <debug> [1595572023.6296] dns-mgr: (device_ip_config_changed): queueing DNS updates (1)
Jul 24 08:27:03 raspberrypi NetworkManager[412]: <debug> [1595572023.6298] dns-mgr: (device_ip_config_changed): DNS configuration did not change
Jul 24 08:27:03 raspberrypi NetworkManager[412]: <debug> [1595572023.6298] dns-mgr: (device_ip_config_changed): no DNS changes to commit (0)
Jul 24 08:27:03 raspberrypi NetworkManager[412]: <debug> [1595572023.6332] dns-mgr: (device_ip_config_changed): queueing DNS updates (1)
Jul 24 08:27:03 raspberrypi NetworkManager[412]: <debug> [1595572023.6333] dns-mgr: (device_ip_config_changed): DNS configuration did not change
Jul 24 08:27:03 raspberrypi NetworkManager[412]: <debug> [1595572023.6333] dns-mgr: (device_ip_config_changed): no DNS changes to commit (0)
Jul 24 08:27:04 raspberrypi NetworkManager[412]: <debug> [1595572024.4117] dns-mgr: (device_ip_config_changed): queueing DNS updates (1)
Jul 24 08:27:04 raspberrypi NetworkManager[412]: <debug> [1595572024.4119] dns-mgr: (device_ip_config_changed): DNS configuration did not change
Jul 24 08:27:04 raspberrypi NetworkManager[412]: <debug> [1595572024.4119] dns-mgr: (device_ip_config_changed): no DNS changes to commit (0)
Jul 24 08:27:04 raspberrypi NetworkManager[412]: <debug> [1595572024.4169] dns-mgr: (device_ip_config_changed): queueing DNS updates (1)
Jul 24 08:27:04 raspberrypi NetworkManager[412]: <debug> [1595572024.4180] dns-mgr: (device_ip_config_changed): DNS configuration did not change
Jul 24 08:27:04 raspberrypi NetworkManager[412]: <debug> [1595572024.4181] dns-mgr: (device_ip_config_changed): no DNS changes to commit (0)
Jul 24 08:27:05 raspberrypi dnsmasq[597]: query[A] g.live.com from 192.168.0.63
Jul 24 08:27:05 raspberrypi dnsmasq[597]: forwarded g.live.com to 127.0.0.53
Jul 24 08:27:05 raspberrypi dnsmasq[597]: query[A] g.live.com from 192.168.0.63
Jul 24 08:27:05 raspberrypi dnsmasq[597]: forwarded g.live.com to 127.0.0.53
Jul 24 08:27:06 raspberrypi dnsmasq[597]: query[A] g.live.com from 192.168.0.63
Jul 24 08:27:06 raspberrypi dnsmasq[597]: forwarded g.live.com to 127.0.0.53
Jul 24 08:27:08 raspberrypi dnsmasq[597]: query[A] g.live.com from 192.168.0.63
Jul 24 08:27:08 raspberrypi dnsmasq[597]: forwarded g.live.com to 127.0.0.53
Jul 24 08:27:12 raspberrypi dnsmasq[597]: query[A] g.live.com from 192.168.0.63
Jul 24 08:27:12 raspberrypi dnsmasq[597]: forwarded g.live.com to 127.0.0.53
pi@raspberrypi:~ $ 

removing the two lines

pi@raspberrypi:~ $ sudo cat /etc/NetworkManager/NetworkManager.conf 
[main]
plugins=ifupdown,keyfile
dns=none

[ifupdown]
managed=false

pi@raspberrypi:~ $ sudo netstat -nltup | grep 'Proto\|:53 \|:67 \|:80 \|:547 \|:471[1-8] '
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1120/lighttpd       
tcp        0      0 192.168.0.39:53         0.0.0.0:*               LISTEN      597/dnsmasq         
tcp6       0      0 :::80                   :::*                    LISTEN      1120/lighttpd       
udp        0      0 192.168.0.39:53         0.0.0.0:*                           597/dnsmasq         
udp        0      0 0.0.0.0:67              0.0.0.0:*                           597/dnsmasq

The only behavior I see is that when I put dns=none, NM cannot share my connections, but this may be fixed later on, idk

I believe RPi to be ignoring the dns=none (you can see it in the log, it starts with a parameter/argument dns=none and then later on it launches dnsmasq...). Not sure if this info will help, but dnsmasq is there even before lighttpd is launched (I see this when quickly launching upon reboot sudo netstat -nltup | grep 'Proto|:53 |:67 |:80 |:547 |:471[1-8] ')

Assumption being the mother of all f-ups ... thinking dnsmasq gets started for its DNS caching capabilities.
Totally forgetting it can also do DHCP.

Notice the --dhcp-range= argument above.
Am pretty sure some NM setting you configured triggers dnsmasq getting started for its DHCP server capabilities (pihole-FTL can also take over this part).
Can you post output for below ?

sudo grep -v '^\s*#\|^\s*$' -R /etc/NetworkManager/ --include=*.conf | sort | sed 's\:\ \' | column -t

Dit you create some sort of NM profile for connection sharing or similar that depends on running your own DHCP ?

EDIT:

nmcli connection show --active

Replace <UUID> below with the one found from above:

nmcli connection show <UUID>

EDIT2: might want to redact some of the output for that last one !

pi@raspberrypi:~ $ sudo grep -v '^\s*#\|^\s*$' -R /etc/NetworkManager/ --include=*.conf | sort | sed 's\:\ \' | column -t
/etc/NetworkManager/NetworkManager.conf  [ifupdown]
/etc/NetworkManager/NetworkManager.conf  [main]
/etc/NetworkManager/NetworkManager.conf  managed=false
/etc/NetworkManager/NetworkManager.conf  plugins=ifupdown,keyfile


pi@raspberrypi:~ $ nmcli connection show --active
NAME                UUID                                  TYPE      DEVICE 
Nick.AP.5           56266699-a057-4a91-94bb-9515df8acbfd  wifi      wlan0  
Wired connection 1  e7f72c54-a50c-36b7-bb49-2c6d1896a36d  ethernet  eth0   


pi@raspberrypi:~ $ nmcli connection show 56266699-a057-4a91-94bb-9515df8acbfd
connection.id:                          Nick.AP.5
connection.uuid:                        56266699-a057-4a91-94bb-9515df8acbfd
connection.stable-id:                   --
connection.type:                        802-11-wireless
connection.interface-name:              --
connection.autoconnect:                 yes
connection.autoconnect-priority:        5
connection.autoconnect-retries:         -1 (default)
connection.multi-connect:               0 (default)
connection.auth-retries:                -1
connection.timestamp:                   1595580561
connection.read-only:                   no
connection.permissions:                 --
connection.zone:                        --
connection.master:                      --
connection.slave-type:                  --
connection.autoconnect-slaves:          -1 (default)
connection.secondaries:                 --
connection.gateway-ping-timeout:        0
connection.metered:                     unknown
connection.lldp:                        default
connection.mdns:                        -1 (default)
connection.llmnr:                       -1 (default)
802-11-wireless.ssid:                   Nick.AP.5
802-11-wireless.mode:                   infrastructure
802-11-wireless.band:                   --
802-11-wireless.channel:                0
802-11-wireless.bssid:                  --
802-11-wireless.rate:                   0
802-11-wireless.tx-power:               0
802-11-wireless.mac-address:            <redacted>
802-11-wireless.cloned-mac-address:     --
802-11-wireless.generate-mac-address-mask:--
802-11-wireless.mac-address-blacklist:  --
802-11-wireless.mac-address-randomization:default
802-11-wireless.mtu:                    auto
802-11-wireless.seen-bssids:            <redacted>
802-11-wireless.hidden:                 no
802-11-wireless.powersave:              0 (default)
802-11-wireless.wake-on-wlan:           0x1 (default)
802-11-wireless-security.key-mgmt:      wpa-psk
802-11-wireless-security.wep-tx-keyidx: 0
802-11-wireless-security.auth-alg:      --
802-11-wireless-security.proto:         --
802-11-wireless-security.pairwise:      --
802-11-wireless-security.group:         --
802-11-wireless-security.pmf:           0 (default)
802-11-wireless-security.leap-username: --
802-11-wireless-security.wep-key0:      <hidden>
802-11-wireless-security.wep-key1:      <hidden>
802-11-wireless-security.wep-key2:      <hidden>
802-11-wireless-security.wep-key3:      <hidden>
802-11-wireless-security.wep-key-flags: 0 (none)
802-11-wireless-security.wep-key-type:  unknown
802-11-wireless-security.psk:           <hidden>
802-11-wireless-security.psk-flags:     0 (none)
802-11-wireless-security.leap-password: <hidden>
802-11-wireless-security.leap-password-flags:0 (none)
802-11-wireless-security.wps-method:    0 (default)
802-11-wireless-security.fils:          0 (default)
ipv4.method:                            auto
ipv4.dns:                               --
ipv4.dns-search:                        --
ipv4.dns-options:                       ""
ipv4.dns-priority:                      0
ipv4.addresses:                         --
ipv4.gateway:                           --
ipv4.routes:                            --
ipv4.route-metric:                      -1
ipv4.route-table:                       0 (unspec)
ipv4.ignore-auto-routes:                no
ipv4.ignore-auto-dns:                   no
ipv4.dhcp-client-id:                    --
ipv4.dhcp-timeout:                      0 (default)
ipv4.dhcp-send-hostname:                yes
ipv4.dhcp-hostname:                     --
ipv4.dhcp-fqdn:                         --
ipv4.never-default:                     no
ipv4.may-fail:                          yes
ipv4.dad-timeout:                       -1 (default)
ipv6.method:                            auto
ipv6.dns:                               --
ipv6.dns-search:                        --
ipv6.dns-options:                       ""
ipv6.dns-priority:                      0
ipv6.addresses:                         --
ipv6.gateway:                           --
ipv6.routes:                            --
ipv6.route-metric:                      -1
ipv6.route-table:                       0 (unspec)
ipv6.ignore-auto-routes:                no
ipv6.ignore-auto-dns:                   no
ipv6.never-default:                     no
ipv6.may-fail:                          yes
ipv6.ip6-privacy:                       0 (disabled)
ipv6.addr-gen-mode:                     stable-privacy
ipv6.dhcp-duid:                         --
ipv6.dhcp-send-hostname:                yes
ipv6.dhcp-hostname:                     --
ipv6.token:                             --
proxy.method:                           none
proxy.browser-only:                     no
proxy.pac-url:                          --
proxy.pac-script:                       --
GENERAL.NAME:                           Nick.AP.5
GENERAL.UUID:                           56266699-a057-4a91-94bb-9515df8acbfd
GENERAL.DEVICES:                        wlan0
GENERAL.STATE:                          activated
GENERAL.DEFAULT:                        yes
GENERAL.DEFAULT6:                       no
GENERAL.SPEC-OBJECT:                    /org/freedesktop/NetworkManager/AccessPoint/22
GENERAL.VPN:                            no
GENERAL.DBUS-PATH:                      /org/freedesktop/NetworkManager/ActiveConnection/2
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/Settings/1
GENERAL.ZONE:                           --
GENERAL.MASTER-PATH:                    --
IP4.ADDRESS[1]:                         192.168.0.51/24
IP4.GATEWAY:                            192.168.0.1
IP4.ROUTE[1]:                           dst = 192.168.0.0/24, nh = 0.0.0.0, mt = 600
IP4.ROUTE[2]:                           dst = 0.0.0.0/0, nh = 192.168.0.1, mt = 600
IP4.DNS[1]:                             192.168.0.39
IP4.DOMAIN[1]:                          fritz.box
DHCP4.OPTION[1]:                        broadcast_address = 192.168.0.255
DHCP4.OPTION[2]:                        dad_wait_time = 0
DHCP4.OPTION[3]:                        dhcp_lease_time = 86400
DHCP4.OPTION[4]:                        dhcp_message_type = 5
DHCP4.OPTION[5]:                        dhcp_rebinding_time = 75600
DHCP4.OPTION[6]:                        dhcp_renewal_time = 43200
DHCP4.OPTION[7]:                        dhcp_server_identifier = 192.168.0.1
DHCP4.OPTION[8]:                        domain_name = fritz.box
DHCP4.OPTION[9]:                        domain_name_servers = 192.168.0.39
DHCP4.OPTION[10]:                       expiry = 1595666961
DHCP4.OPTION[11]:                       ip_address = 192.168.0.51
DHCP4.OPTION[12]:                       network_number = 192.168.0.0
DHCP4.OPTION[13]:                       next_server = 192.168.0.1
DHCP4.OPTION[14]:                       ntp_servers = 192.168.0.1
DHCP4.OPTION[15]:                       requested_broadcast_address = 1
DHCP4.OPTION[16]:                       requested_domain_name = 1
DHCP4.OPTION[17]:                       requested_domain_name_servers = 1
DHCP4.OPTION[18]:                       requested_domain_search = 1
DHCP4.OPTION[19]:                       requested_host_name = 1
DHCP4.OPTION[20]:                       requested_interface_mtu = 1
DHCP4.OPTION[21]:                       requested_ms_classless_static_routes = 1
DHCP4.OPTION[22]:                       requested_netbios_name_servers = 1
DHCP4.OPTION[23]:                       requested_netbios_scope = 1
DHCP4.OPTION[24]:                       requested_ntp_servers = 1
DHCP4.OPTION[25]:                       requested_rfc3442_classless_static_routes = 1
DHCP4.OPTION[26]:                       requested_root_path = 1
DHCP4.OPTION[27]:                       requested_routers = 1
DHCP4.OPTION[28]:                       requested_static_routes = 1
DHCP4.OPTION[29]:                       requested_subnet_mask = 1
DHCP4.OPTION[30]:                       requested_time_offset = 1
DHCP4.OPTION[31]:                       requested_wpad = 1
DHCP4.OPTION[32]:                       routers = 192.168.0.1
DHCP4.OPTION[33]:                       subnet_mask = 255.255.255.0
IP6.ADDRESS[1]:                         <redacted>
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 600
IP6.ROUTE[2]:                           dst = ff00::/8, nh = ::, mt = 256, table=255

pi@raspberrypi:~ $ nmcli connection show e7f72c54-a50c-36b7-bb49-2c6d1896a36d
connection.id:                          Wired connection 1
connection.uuid:                        e7f72c54-a50c-36b7-bb49-2c6d1896a36d
connection.stable-id:                   --
connection.type:                        802-3-ethernet
connection.interface-name:              --
connection.autoconnect:                 yes
connection.autoconnect-priority:        0
connection.autoconnect-retries:         -1 (default)
connection.multi-connect:               0 (default)
connection.auth-retries:                -1
connection.timestamp:                   1595580551
connection.read-only:                   no
connection.permissions:                 --
connection.zone:                        --
connection.master:                      --
connection.slave-type:                  --
connection.autoconnect-slaves:          -1 (default)
connection.secondaries:                 --
connection.gateway-ping-timeout:        0
connection.metered:                     unknown
connection.lldp:                        default
connection.mdns:                        -1 (default)
connection.llmnr:                       -1 (default)
802-3-ethernet.port:                    --
802-3-ethernet.speed:                   0
802-3-ethernet.duplex:                  --
802-3-ethernet.auto-negotiate:          no
802-3-ethernet.mac-address:             <redacted>
802-3-ethernet.cloned-mac-address:      --
802-3-ethernet.generate-mac-address-mask:--
802-3-ethernet.mac-address-blacklist:   --
802-3-ethernet.mtu:                     auto
802-3-ethernet.s390-subchannels:        --
802-3-ethernet.s390-nettype:            --
802-3-ethernet.s390-options:            --
802-3-ethernet.wake-on-lan:             default
802-3-ethernet.wake-on-lan-password:    --
ipv4.method:                            shared
ipv4.dns:                               --
ipv4.dns-search:                        --
ipv4.dns-options:                       ""
ipv4.dns-priority:                      0
ipv4.addresses:                         192.168.0.39/24
ipv4.gateway:                           --
ipv4.routes:                            --
ipv4.route-metric:                      -1
ipv4.route-table:                       0 (unspec)
ipv4.ignore-auto-routes:                no
ipv4.ignore-auto-dns:                   no
ipv4.dhcp-client-id:                    --
ipv4.dhcp-timeout:                      0 (default)
ipv4.dhcp-send-hostname:                yes
ipv4.dhcp-hostname:                     --
ipv4.dhcp-fqdn:                         --
ipv4.never-default:                     no
ipv4.may-fail:                          yes
ipv4.dad-timeout:                       -1 (default)
ipv6.method:                            auto
ipv6.dns:                               --
ipv6.dns-search:                        --
ipv6.dns-options:                       ""
ipv6.dns-priority:                      0
ipv6.addresses:                         --
ipv6.gateway:                           --
ipv6.routes:                            --
ipv6.route-metric:                      -1
ipv6.route-table:                       0 (unspec)
ipv6.ignore-auto-routes:                no
ipv6.ignore-auto-dns:                   no
ipv6.never-default:                     no
ipv6.may-fail:                          yes
ipv6.ip6-privacy:                       0 (disabled)
ipv6.addr-gen-mode:                     stable-privacy
ipv6.dhcp-duid:                         --
ipv6.dhcp-send-hostname:                yes
ipv6.dhcp-hostname:                     --
ipv6.token:                             --
proxy.method:                           none
proxy.browser-only:                     no
proxy.pac-url:                          --
proxy.pac-script:                       --
GENERAL.NAME:                           Wired connection 1
GENERAL.UUID:                           e7f72c54-a50c-36b7-bb49-2c6d1896a36d
GENERAL.DEVICES:                        eth0
GENERAL.STATE:                          activated
GENERAL.DEFAULT:                        no
GENERAL.DEFAULT6:                       no
GENERAL.SPEC-OBJECT:                    --
GENERAL.VPN:                            no
GENERAL.DBUS-PATH:                      /org/freedesktop/NetworkManager/ActiveConnection/1
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/Settings/3
GENERAL.ZONE:                           --
GENERAL.MASTER-PATH:                    --
IP4.ADDRESS[1]:                         192.168.0.39/24
IP4.GATEWAY:                            --
IP4.ROUTE[1]:                           dst = 192.168.0.0/24, nh = 0.0.0.0, mt = 100
IP6.ADDRESS[1]:                         fe80::cd1a:c32f:149e:5bab/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 100
IP6.ROUTE[2]:                           dst = ff00::/8, nh = ::, mt = 256, table=255

I hope I have redacted enough and not too much either.

I think NM has done this. Automatically, I shared my wifi connection to the ethernet link.

That Nick.AP.5 profile triggers dnsmasq getting started.
See all the DHCP4.OPTION 's being displayed for that profile.
Seems you cant use this type of profile as it starts dnsmasq that conflicts with pihole-FTL over ports 53 DNS and 67 DHCP.
You should try alter that profile (or create new one) so it doesnt boot up dnsmasq for DHCP.
And when have Pi-hole up and running, configure Pi-hole to do DHCP instead.