On 09 Apr 2023 14:14, gene heskett wrote:
I'm not sure, and my methods have been heavily denegrated by the dhcp
fans, but in my case with a many machine local net, and no dhcpd running
on the system, and the changes with each new release, I find the one
repeatable method to solve dns problem, is to compose an
/etc/resolv.conf with 2 lines:
mameserver ipv4 address of router
search hosts, nameserver
And sudo chattr +i /etc/resolv.conf
quickly so NM can't change it. It will remove the search line, killing
your local network, in which case you can ping yahoo.com, but not
another machine on your local net. Your ISP's dns has no knowledge of
your local net which is as it should be.
My router runs something like dnsmasq as its running dd-wrt, and
theoretically a dns request then searchs the host file for a matching
name, failing that my whole local system then query's the router, which
if not cached by dnsmasq, sends the query on to my ISP's dns server, and
I get answers in around 30 milliseconds. And it all just works. With the
router NAT-ing, all machines here can browse the whole planet, as
transparently as border facilities allow.
It seems you misconfigured a few things.
- Either you use DHCP, and the DNS will be provided by the DHCP server,
so don't touch resolv.conf (the DHCP server CAN provide 127.0.0.1 as DNS
server)
- or you use static addressing, and you can simply remove the
dhcp-client package, so resolv.conf will be left alone.
Also, the line "search hosts, nameserver" is wrong. The place to put
such settings is "/etc/nsswitch.conf".
"search" is used to resolve hostnames to FQDN.
So if you put "search example.com", and you try to connect to a machine
with for example "ssh hostname", the DNS client will try to append
example.com to hostname, and try to resolve "hostname.example.com".
Finally, if using static addressing, I can't see why NetworkManager is
useful.
So to recap, if your LOCAL domain is example.com, and your DNS server is
192.168.1.1, a resolv.conf would look like:
# /etc/resolv.conf
nameserver 192.168.1.1
search example.com
#
Man pages:
man resolv.conf
man nsswitch.conf