| <?xml version='1.0'?> <!--*- Mode: nxml; nxml-child-indent: 2; indent-tabs-mode: nil -*--> |
| <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" |
| "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"> |
| |
| <!-- |
| This file is part of systemd. |
| |
| Copyright 2014 Tom Gundersen |
| |
| systemd is free software; you can redistribute it and/or modify it |
| under the terms of the GNU Lesser General Public License as published by |
| the Free Software Foundation; either version 2.1 of the License, or |
| (at your option) any later version. |
| |
| systemd is distributed in the hope that it will be useful, but |
| WITHOUT ANY WARRANTY; without even the implied warranty of |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| Lesser General Public License for more details. |
| |
| You should have received a copy of the GNU Lesser General Public License |
| along with systemd; If not, see <http://www.gnu.org/licenses/>. |
| --> |
| |
| <refentry id="systemd-resolved.service" conditional='ENABLE_RESOLVED'> |
| |
| <refentryinfo> |
| <title>systemd-resolved.service</title> |
| <productname>systemd</productname> |
| |
| <authorgroup> |
| <author> |
| <contrib>Developer</contrib> |
| <firstname>Tom</firstname> |
| <surname>Gundersen</surname> |
| <email>teg@jklm.no</email> |
| </author> |
| </authorgroup> |
| </refentryinfo> |
| |
| <refmeta> |
| <refentrytitle>systemd-resolved.service</refentrytitle> |
| <manvolnum>8</manvolnum> |
| </refmeta> |
| |
| <refnamediv> |
| <refname>systemd-resolved.service</refname> |
| <refname>systemd-resolved</refname> |
| <refpurpose>Network Name Resolution manager</refpurpose> |
| </refnamediv> |
| |
| <refsynopsisdiv> |
| <para><filename>systemd-resolved.service</filename></para> |
| <para><filename>/usr/lib/systemd/systemd-resolved</filename></para> |
| </refsynopsisdiv> |
| |
| <refsect1> |
| <title>Description</title> |
| |
| <para><command>systemd-resolved</command> is a system service that provides network name resolution to local |
| applications. It implements a caching and validating DNS/DNSSEC stub resolver, as well as an LLMNR resolver and |
| responder. In addition it maintains the <filename>/run/systemd/resolve/resolv.conf</filename> file for |
| compatibility with traditional Linux programs. This file may be symlinked from |
| <filename>/etc/resolv.conf</filename>.</para> |
| |
| <para>The glibc NSS module |
| <citerefentry><refentrytitle>nss-resolve</refentrytitle><manvolnum>8</manvolnum></citerefentry> is required to |
| permit glibc's NSS resolver functions to resolve host names via <command>systemd-resolved</command>.</para> |
| |
| <para>The DNS servers contacted are determined from the global |
| settings in <filename>/etc/systemd/resolved.conf</filename>, the |
| per-link static settings in <filename>/etc/systemd/network/*.network</filename> files, |
| and the per-link dynamic settings received over DHCP. See |
| <citerefentry><refentrytitle>resolved.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry> |
| and |
| <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry> |
| for details. To improve compatibility, |
| <filename>/etc/resolv.conf</filename> is read in order to discover |
| configured system DNS servers, but only if it is not a symlink |
| to <filename>/run/systemd/resolve/resolv.conf</filename> (see above).</para> |
| |
| <para><command>systemd-resolved</command> synthesizes DNS RRs for the following cases:</para> |
| |
| <itemizedlist> |
| <listitem><para>The local, configured hostname is resolved to |
| all locally configured IP addresses ordered by their scope, or |
| — if none are configured — the IPv4 address 127.0.0.2 (which |
| is on the local loopback) and the IPv6 address ::1 (which is the |
| local host).</para></listitem> |
| |
| <listitem><para>The hostnames <literal>localhost</literal> and |
| <literal>localhost.localdomain</literal> (as well as any hostname |
| ending in <literal>.localhost</literal> or <literal>.localhost.localdomain</literal>) |
| are resolved to the IP addresses 127.0.0.1 and ::1.</para></listitem> |
| |
| <listitem><para>The hostname <literal>gateway</literal> is |
| resolved to all current default routing gateway addresses, |
| ordered by their metric. This assigns a stable hostname to the |
| current gateway, useful for referencing it independently of the |
| current network configuration state.</para></listitem> |
| |
| <listitem><para>The mappings defined in <filename>/etc/hosts</filename> are resolved to their configured |
| addresses and back.</para></listitem> |
| </itemizedlist> |
| |
| <para>Lookup requests are routed to the available DNS servers |
| and LLMNR interfaces according to the following rules:</para> |
| |
| <itemizedlist> |
| <listitem><para>Lookups for the special hostname |
| <literal>localhost</literal> are never routed to the |
| network. (A few other, special domains are handled the same way.)</para></listitem> |
| |
| <listitem><para>Single-label names are routed to all local |
| interfaces capable of IP multicasting, using the LLMNR |
| protocol. Lookups for IPv4 addresses are only sent via LLMNR on |
| IPv4, and lookups for IPv6 addresses are only sent via LLMNR on |
| IPv6. Lookups for the locally configured host name and the |
| <literal>gateway</literal> host name are never routed to |
| LLMNR.</para></listitem> |
| |
| <listitem><para>Multi-label names are routed to all local |
| interfaces that have a DNS sever configured, plus the globally |
| configured DNS server if there is one. Address lookups from the |
| link-local address range are never routed to |
| DNS.</para></listitem> |
| </itemizedlist> |
| |
| <para>If lookups are routed to multiple interfaces, the first |
| successful response is returned (thus effectively merging the |
| lookup zones on all matching interfaces). If the lookup failed on |
| all interfaces, the last failing response is returned.</para> |
| |
| <para>Routing of lookups may be influenced by configuring |
| per-interface domain names. See |
| <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry> |
| for details. Lookups for a hostname ending in one of the |
| per-interface domains are exclusively routed to the matching |
| interfaces.</para> |
| |
| <para>Note that <filename>/run/systemd/resolve/resolv.conf</filename> should not be used directly by applications, |
| but only through a symlink from <filename>/etc/resolv.conf</filename>.</para> |
| |
| <para>See the <ulink url="http://www.freedesktop.org/wiki/Software/systemd/resolved"> resolved D-Bus API |
| Documentation</ulink> for information about the APIs <filename>systemd-resolved</filename> provides.</para> |
| |
| </refsect1> |
| |
| <refsect1> |
| <title>See Also</title> |
| <para> |
| <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>, |
| <citerefentry><refentrytitle>resolved.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>, |
| <citerefentry><refentrytitle>dnssec-trust-anchors.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>, |
| <citerefentry><refentrytitle>nss-resolve</refentrytitle><manvolnum>8</manvolnum></citerefentry>, |
| <citerefentry><refentrytitle>systemd-resolve</refentrytitle><manvolnum>1</manvolnum></citerefentry>, |
| <citerefentry project='man-pages'><refentrytitle>resolv.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>, |
| <citerefentry project='man-pages'><refentrytitle>hosts</refentrytitle><manvolnum>5</manvolnum></citerefentry>, |
| <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry>, |
| <citerefentry><refentrytitle>systemd-networkd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> |
| </para> |
| </refsect1> |
| |
| </refentry> |