summaryrefslogtreecommitdiff
path: root/src/resolve/resolv.conf
Commit message (Collapse)AuthorAgeFilesLines
* resolved: turn off that a search domain is derived from the host's fqdnLennart Poettering2020-09-301-0/+1
| | | | | | | | | | | | | | | | | | | | If the hostname of a system is set to an fqdn, glibc traditionally derives a search domain from it if none is explicitly configured. This is a bit weird, and we currently don't do that in our own search path logic. Following #17193 let's turn this behaviour off for now. Yes, this has a slight chance of pissing people off who think this behaviour is good. If this is indeed an issue, we can revisit the issue but in that case if we readd the concept we should do it properly: derive the search domain from the fqdn in our codebase too and report it in resolvectl, and in our generated stub files. But I have the suspicion most people who set the hostname to an fqdn aren#t even aware of this behaviour nor want it, so let's wait until people complain. Fixes: #17193
* resolve: enable RES_TRUSTAD towards the 127.0.0.53 stub resolverYmrDtnJu2020-06-061-1/+1
| | | | | | | glibc 2.31 strips the AD flag, unless either the application specifies RES_TRUSTAD or the options in resolv.conf contain trust-ad. See https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=NEWS;hb=HEAD
* resolve: enable EDNS0 towards the 127.0.0.53 stub resolverTore Anderson2018-12-171-0/+1
| | | | | | | | | | | | | This appears to be necessary for client software to ensure the reponse data is validated with DNSSEC. For example, `ssh -v -o VerifyHostKeyDNS=yes -o StrictHostKeyChecking=yes redpilllinpro01.ring.nlnog.net` fails if EDNS0 is not enabled. The debugging output reveals that the `SSHFP` records were found in DNS, but were considered insecure. Note that the patch intentionally does *not* enable EDNS0 in the `/run/systemd/resolve/resolv.conf` file (the one that contains `nameserver` entries for the upstream DNS servers), as it is impossible to know for certain that all the upstream DNS servers handles EDNS0 correctly.
* resolve: update comments to mention resolvectlYu Watanabe2018-05-031-1/+1
|
* resolved: synchronize introduction blurbs in all three resolv.conf files we ↵Lennart Poettering2017-12-081-4/+10
| | | | | | provide Let's use the same wording and same contents in all three versions.
* resolved: respond to local resolver requests on 127.0.0.53:53Lennart Poettering2016-06-211-0/+11
In order to improve compatibility with local clients that speak DNS directly (and do not use NSS or our bus API) listen locally on 127.0.0.53:53 and process any queries made that way. Note that resolved does not implement a full DNS server on this port, but simply enough to allow normal, local clients to resolve RRs through resolved. Specifically it does not implement queries without the RD bit set (these are requests where recursive lookups are explicitly disabled), and neither queries with DNSSEC DO set in combination with DNSSEC CD (i.e. DNSSEC lookups with validation turned off). It also refuses zone transfers and obsolete RR types. All lookups done this way will be rejected with a clean error code, so that the client side can repeat the query with a reduced feature set. The code will set the DNSSEC AD flag however, depending on whether the data resolved has been validated (or comes from a local, trusted source). Lookups made via this mechanisms are propagated to LLMNR and mDNS as necessary, but this is only partially useful as DNS packets cannot carry IP scope data (i.e. the ifindex), and hence link-local addresses returned cannot be used properly (and given that LLMNR/mDNS are mostly about link-local communication this is quite a limitation). Also, given that DNS tends to use IDNA for non-ASCII names, while LLMNR/mDNS uses UTF-8 lookups cannot be mapped 1:1. In general this should improve compatibility with clients bypassing NSS but it is highly recommended for clients to instead use NSS or our native bus API. This patch also beefs up the DnsStream logic, as it reuses the code for local TCP listening. DnsStream now provides proper reference counting for its objects. In order to avoid feedback loops resolved will no silently ignore 127.0.0.53 specified as DNS server when reading configuration. resolved listens on 127.0.0.53:53 instead of 127.0.0.1:53 in order to leave the latter free for local, external DNS servers or forwarders. This also changes the "etc.conf" tmpfiles snippet to create a symlink from /etc/resolv.conf to /usr/lib/systemd/resolv.conf by default, thus making this stub the default mode of operation if /etc is not populated.