On Mon, Sep 14, 2020 at 12:31 PM Dominick C. Pastore
<dominickpast...@dcpx.org> wrote:
>
> On Sun, Sep 13, 2020, at 10:44 PM, Hongyi Zhao wrote:
> > On Mon, Sep 14, 2020 at 9:02 AM Neal P. Murphy
> > <neal.p.mur...@alum.wpi.edu> wrote:
> > >
> > > On Mon, 14 Sep 2020 06:52:49 +0800
> > > Hongyi Zhao <hongyi.z...@gmail.com> wrote:
> > >
> > > > On Mon, Sep 14, 2020 at 4:26 AM Geert Stappers <stapp...@stappers.nl> 
> > > > wrote:
> > > > >
> > > > > On Sun, Sep 13, 2020 at 03:36:42PM +0800, Hongyi Zhao wrote:
> > > > > > So I want to know how to solve the confliction problem between 
> > > > > > dnsmasq
> > > > > > and systemd-resolved.
> > > > >
> > > > > The trick is deciding which DNS is "upstream"
> > > >
> > > > Still, I'm no so clear on the solution. How to solve it? Any more
> > > > hints/instructions?
> > > >
> > > > Regards,
> > > > HY
> > >
> > > You should be able to disable that systemd stub resolver service so that 
> > > it is not started.
> >
> > I really like to use the systemd-resolvd relevant command for check
> > the DNS status, say, the following:
> >
> > $ systemd-resolve --status
> > $ resolvectl status
> >
> > If I disabled the systemd-resolvd service, then the above commands
> > should be unavailable.
> >
> > > Or configure your resolvers so that the systemd stub is not referenced.
> >
> > Do you mean operations similar to the following:
> >
> > $ sudo rm /etc/resolv.conf
> > $ echo nameserver 127.0.0.1 | sudo tee /etc/resolv.conf
> >
> > But I also set the DNS sever as 127.0.0.1 with the following netplan
> > config file:
> >
> > $ cat /etc/netplan/99-networkd-local-dns.yaml
> > network:
> >  version: 2
> >  renderer: networkd
> >  ethernets:
> >    enp:
> >      match:
> >        name: enp*
> >      dhcp4: true
> >      dhcp4-overrides:
> >        use-dns: false
> >      nameservers:
> >       addresses:
> >        - 127.0.0.1
> >    docker:
> >      match:
> >        name: docker*
> >      dhcp4: true
> >      dhcp4-overrides:
> >        use-dns: false
> >      nameservers:
> >       addresses:
> >        - 127.0.0.1
> >
> >
> > So, I still can't figure out the differences between the DNS set by
> > netplan and /etc/resolv.conf. Any more hints on this question?
>
> Personally, I am not a fan of Netplan for reasons like this. It's supposed to 
> abstract away the details of NetworkManager or systemd-networkd, but it 
> doesn't do a great job of it. You end up having to refer to the 
> NetworkManager or systemd-networkd documentation anyway, and having Netplan 
> on top muddies the water.
>
> Anyway: Those address lines in the Netplan yaml are used to tell 
> systemd-resolved which upstream DNS server to use, so it is using your 
> Dnsmasq server. Then, /etc/resolv.conf specifies what DNS server other 
> programs on the system will use (not all programs use that mechanism, but 
> many do), and by default, it points to 127.0.0.53 so everything else will go 
> through systemd-resolved. This includes Dnsmasq unless you configure it to do 
> otherwise!
>
> The net result is most likely that Dnsmasq and systemd-resolved are each 
> trying to use the other as their upstream server, so neither can resolve 
> anything.
>
> If you really want to keep using both systemd-resolved and Dnsmasq, you need 
> to pick one to be "upstream" from the other, as Geert and Neal said.
>
> If you want Dnsmasq to query the upstream servers, systemd-resolved to query 
> Dnsmasq, and everything else on the host to query systemd-resolved:
> Then you need to edit the Dnsmasq configuration to quit using 
> /etc/resolv.conf. This probably means you want to manually specify DNS 
> servers in /etc/dnsmasq.conf with the "server=W.X.Y.Z" and "no-resolv" 
> options. That does assume you know what DNS server you want to use.

Very strange, for my case, I've already set the following options in
my dnsmasq.conf:

no-resolv
no-poll

and keep /etc/resolv.conf as the symlink to
/run/systemd/resolve/stub-resolv.conf

>
> Alternatively, if you want systemd-resolved to query the upstream servers and 
> Dnsmasq to query systemd-resolved:
> Then you need to remove the "use-dns: false" and "nameservers" directives 
> from Netplan so systemd-resolved stops trying to query Dnsmasq and uses the 
> proper upstream servers instead. Dnsmasq will continue to use 
> systemd-resolved, since /etc/resolv.conf will point it there. Note that 
> programs on the same host will still use systemd-resolved and not Dnsmasq at 
> all.

Why?

> Only other hosts on the same network will be able to use Dnsmasq.

Seems this is not my purpose.

>
> Regards,
> Dominick
>
> _______________________________________________
> Dnsmasq-discuss mailing list
> Dnsmasq-discuss@lists.thekelleys.org.uk
> http://lists.thekelleys.org.uk/mailman/listinfo/dnsmasq-discuss



-- 
Hongyi Zhao <hongyi.z...@gmail.com>

_______________________________________________
Dnsmasq-discuss mailing list
Dnsmasq-discuss@lists.thekelleys.org.uk
http://lists.thekelleys.org.uk/mailman/listinfo/dnsmasq-discuss

Reply via email to