23

My /etc/resolv.conf looks like this:

# 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 127.0.1.1

# OpenDNS Fallback (configured by Linux Mint in /etc/resolvconf/resolv.conf.d/tail).
nameserver 208.67.222.222
nameserver 208.67.220.220   

When I use nslookup, I seem to use 127.0.1.1:

moose@pc08 ~ $ nslookup www.google.com
Server:     127.0.1.1
Address:    127.0.1.1#53

Non-authoritative answer:
Name:   www.google.com
Address: 173.194.44.17
Name:   www.google.com
Address: 173.194.44.16
Name:   www.google.com
Address: 173.194.44.19
Name:   www.google.com
Address: 173.194.44.18
Name:   www.google.com
Address: 173.194.44.20

But when I right-click on network manager and click on "connection information" I get:

connection information

whois 217.0.43.129 reveals that this belongs to Deutsche Telekom AG, my ISP.

Why does network manager show this information? What DNS server am I currently using?

dnsmasq

Yes, I seem to run dnsmasq:

moose@pc08 ~ $ ps aux | grep dnsmasq
nobody    1479  0.0  0.0   5468  1404 ?        S    14:16   0:00 /usr/sbin/dnsmasq --no-resolv --keep-in-foreground --no-hosts --bind-interfaces --pid-file=/var/run/sendsigs.omit.d/network-manager.dnsmasq.pid --listen-address=127.0.1.1 --conf-file=/var/run/nm-dns-dnsmasq.conf --cache-size=0 --proxy-dnssec --enable-dbus=org.freedesktop.NetworkManager.dnsmasq --conf-dir=/etc/NetworkManager/dnsmasq.d
Roy
  • 387
Martin Thoma
  • 19,277

4 Answers4

18

As en expansion of happyskeptic's answer, you don't need to specify an interface. This does it for me:

> nmcli dev show | grep DNS
IP4.DNS[1]:                             172.22.216.251
IP6.DNS[1]:                             2a01:4f0:400c:1::1

For Ubuntu 14.04 and older use nmcli dev list | grep DNS

> nmcli dev list | grep DNS
IP4.DNS[1]:                             172.22.216.251
IP6.DNS[1]:                             2a01:4f0:400c:1::1
Merlijn Sebrechts
  • 7,394
  • 1
  • 42
  • 70
  • 1
    My Ubuntu 16 system wants nmcli dev show – nortally Apr 06 '16 at 23:14
  • That's because nmcli version has been changed in since Ubuntu 15.04 due to transition to different init system, so yes, in newer releases the command is just slightly different – Sergiy Kolodyazhnyy Nov 28 '16 at 19:42
  • When I'm logged in to my work network using NetworkManager and VPNC, I don't see my work's DNS server in this output, even though clearly it is resolving. I don't (yet) know how to see the VPN DNS server. – Peter V. Mørch Jan 26 '17 at 16:56
  • 1
    To make dnsmasq show the DNS that it's using, one can send it the USR1 signal and it'll then dump stats and such to syslog. So, do:

    tail -F /var/log/syslog | grep dnsmasq.\*Server & sudo pkill -USR1 dnsmasq

    – alexs77 Mar 14 '17 at 12:44
17

You are using dnsmasq, a lightweight forwarding DNS server that runs locally under the control of NetworkManager. Dnsmasq forwards DNS queries to the DNS servers whose addresses have been provided by the DHCP server. It is also possible to set these DNS server addresses statically using the Connection Editor.

The dnsmasq executable is provided by the dnsmasq-base package on which the network-manager package depends. There is also a package called simply "dnsmasq" which also depends on dnsmasq-base, but this "dnsmasq" package should only be installed if you want to run dnsmasq independently of NetworkManager in order to take advantage of features other than mere DNS forwarding.

jdthood
  • 12,467
Roy
  • 387
  • @jdthood - your changes are quite extensive and could be construed to go beyond the OP's intent. Please create your own answer if required to support your thoughts. Thanks. – fossfreedom Mar 26 '13 at 13:54
  • @jdthood: I do appreciate your effort to ensure a correct answer. It is however my understanding that the default behavior of dnsmasq, as integrated with NetworkManager, is to cache 150 entries in accordance with their respective TTL settings. – Roy Mar 26 '13 at 13:58
  • By default NM-dnsmasq's cache is disabled. Do ps -ef|grep dnsmasq and look for the option --cache-size=0. – jdthood Mar 26 '13 at 14:17
  • 1
    That's not the case on my 12.04 box, but a google search shows that you are right, that is the default on both 12.04 and 12.10. So, a caching DNS server with caching disabled then :) – Roy Mar 26 '13 at 15:49
  • dnsmasq appears to be using the closest dns server(i.e., the one it can reach fastest), if you specify two or more in your settings. Which makes sense from (providing faster) user experience point of view. Plus, the resolv.conf file mentioned the other, OpenDNS as fallback, not primary, right ? – Sergiy Kolodyazhnyy Jan 06 '15 at 11:37
  • @serg: that is a very bad behavior then. I have a Virtualboxed Linux, and I am using company VPN in the Host. As the VBox VM is in NAT mode, I can reach the VPN tunnel from inside the VM, so I have two DNS servers configured, one internal, one external (all DHCP configured, one windows, one VBox DHCP). Sometimes my queries won't find the internal DNS (that is what I'm investigating now) and it seems that the internal DNS is slower, so the second - the external - is chosen. But of course that cannot reach intranet addresses. – karatedog Sep 04 '15 at 10:17
  • @karatedog You can easily configure dnsmasq to only ask specific DNS servers for hosts under a given domain or subdomain. Internal hosts are a very typical use case. – Roy Sep 10 '15 at 05:26
7

I've found that on Kubuntu 14.04 the NetworkManager applet (or Plasma thing, whatever it's called) in KDE doesn't show the DNS server info under the connection details.

In this case the way to find it is to run the following at the command line and look for the lines 'IP4.DNS':

nmcli dev list iface wlan0

(replace wlan0 with the interface you use to connect to the Net)

happyskeptic
  • 1,006
1

You're using the 217.0.43.129. if both your primary and secondary DNS are not found, it'll go to your router and use the DNS server configured in the router. If that DNS fails as well, it'll probabely try to connect to the openDNS server. as configured in /etc/resolv.conf.

https://lists.isc.org/pipermail/bind-users/2006-October/064570.html