mirror of
https://github.com/systemd/systemd.git
synced 2024-11-28 04:33:36 +08:00
395 lines
17 KiB
XML
395 lines
17 KiB
XML
<?xml version='1.0'?>
|
|
<!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 2016 Lennart Poettering
|
|
|
|
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-resolve"
|
|
xmlns:xi="http://www.w3.org/2001/XInclude">
|
|
|
|
<refentryinfo>
|
|
<title>systemd-resolve</title>
|
|
<productname>systemd</productname>
|
|
|
|
<authorgroup>
|
|
<author>
|
|
<contrib>Developer</contrib>
|
|
<firstname>Lennart</firstname>
|
|
<surname>Poettering</surname>
|
|
<email>lennart@poettering.net</email>
|
|
</author>
|
|
</authorgroup>
|
|
</refentryinfo>
|
|
|
|
<refmeta>
|
|
<refentrytitle>systemd-resolve</refentrytitle>
|
|
<manvolnum>1</manvolnum>
|
|
</refmeta>
|
|
|
|
<refnamediv>
|
|
<refname>systemd-resolve</refname>
|
|
<refpurpose>Resolve domain names, IPV4 and IPv6 addresses, DNS resource records, and services</refpurpose>
|
|
</refnamediv>
|
|
|
|
<refsynopsisdiv>
|
|
<cmdsynopsis>
|
|
<command>systemd-resolve</command>
|
|
<arg choice="opt" rep="repeat">OPTIONS</arg>
|
|
<arg choice="plain" rep="repeat"><replaceable>HOSTNAME</replaceable></arg>
|
|
</cmdsynopsis>
|
|
|
|
<cmdsynopsis>
|
|
<command>systemd-resolve</command>
|
|
<arg choice="opt" rep="repeat">OPTIONS</arg>
|
|
<arg choice="plain" rep="repeat"><replaceable>ADDRESS</replaceable></arg>
|
|
</cmdsynopsis>
|
|
|
|
<cmdsynopsis>
|
|
<command>systemd-resolve</command>
|
|
<arg choice="opt" rep="repeat">OPTIONS</arg>
|
|
<command> --type=<replaceable>TYPE</replaceable></command>
|
|
<arg choice="plain" rep="repeat"><replaceable>DOMAIN</replaceable></arg>
|
|
</cmdsynopsis>
|
|
|
|
<cmdsynopsis>
|
|
<command>systemd-resolve</command>
|
|
<arg choice="opt" rep="repeat">OPTIONS</arg>
|
|
<command> --service</command>
|
|
<arg choice="plain"><arg choice="opt"><arg choice="opt"><replaceable>NAME</replaceable></arg>
|
|
<replaceable>TYPE</replaceable></arg> <replaceable>DOMAIN</replaceable></arg>
|
|
</cmdsynopsis>
|
|
|
|
<cmdsynopsis>
|
|
<command>systemd-resolve</command>
|
|
<arg choice="opt" rep="repeat">OPTIONS</arg>
|
|
<command> --openpgp</command>
|
|
<arg choice="plain"><replaceable>USER@DOMAIN</replaceable></arg>
|
|
</cmdsynopsis>
|
|
|
|
<cmdsynopsis>
|
|
<command>systemd-resolve</command>
|
|
<arg choice="opt" rep="repeat">OPTIONS</arg>
|
|
<command> --tlsa</command>
|
|
<arg choice="plain"><replaceable>DOMAIN<optional>:PORT</optional></replaceable></arg>
|
|
</cmdsynopsis>
|
|
|
|
<cmdsynopsis>
|
|
<command>systemd-resolve</command>
|
|
<arg choice="opt" rep="repeat">OPTIONS</arg>
|
|
<command> --statistics</command>
|
|
</cmdsynopsis>
|
|
|
|
<cmdsynopsis>
|
|
<command>systemd-resolve</command>
|
|
<arg choice="opt" rep="repeat">OPTIONS</arg>
|
|
<command> --reset-statistics</command>
|
|
</cmdsynopsis>
|
|
|
|
</refsynopsisdiv>
|
|
|
|
<refsect1>
|
|
<title>Description</title>
|
|
|
|
<para><command>systemd-resolve</command> may be used to resolve domain names, IPv4 and IPv6 addresses, DNS resource
|
|
records and services with the
|
|
<citerefentry><refentrytitle>systemd-resolved.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
|
|
resolver service. By default, the specified list of parameters will be resolved as hostnames, retrieving their IPv4
|
|
and IPv6 addresses. If the parameters specified are formatted as IPv4 or IPv6 operation the reverse operation is
|
|
done, and a hostname is retrieved for the specified addresses.</para>
|
|
|
|
<para>The program's output contains information about the protocol used for the look-up and on which network
|
|
interface the data was discovered. It also contains information on whether the information could be
|
|
authenticated. All data for which local DNSSEC validation succeeds is considered authenticated. Moreover all data
|
|
originating from local, trusted sources is also reported authenticated, including resolution of the local host
|
|
name, the <literal>localhost</literal> host name or all data from <filename>/etc/hosts</filename>.</para>
|
|
|
|
<para>The <option>--type=</option> switch may be used to specify a DNS resource record type (A, AAAA, SOA, MX, ...) in
|
|
order to request a specific DNS resource record, instead of the address or reverse address lookups.
|
|
The special value <literal>help</literal> may be used to list known values.</para>
|
|
|
|
<para>The <option>--service</option> switch may be used to resolve <ulink
|
|
url="https://tools.ietf.org/html/rfc2782">SRV</ulink> and <ulink
|
|
url="https://tools.ietf.org/html/rfc6763">DNS-SD</ulink> services (see below). In this mode, between one and three
|
|
arguments are required. If three parameters are passed the first is assumed to be the DNS-SD service name, the
|
|
second the SRV service type, and the third the domain to search in. In this case a full DNS-SD style SRV and TXT
|
|
lookup is executed. If only two parameters are specified, the first is assumed to be the SRV service type, and the
|
|
second the domain to look in. In this case no TXT RR is requested. Finally, if only one parameter is specified, it
|
|
is assumed to be a domain name, that is already prefixed with an SRV type, and an SRV lookup is done (no
|
|
TXT).</para>
|
|
|
|
<para>The <option>--openpgp</option> switch may be used to query PGP keys stored as
|
|
<ulink url="https://tools.ietf.org/html/rfc7929">OPENPGPKEY</ulink> resource records.
|
|
When this option is specified one or more e-mail address must be specified.</para>
|
|
|
|
<para>The <option>--tlsa</option> switch maybe be used to query TLS public
|
|
keys stored as
|
|
<ulink url="https://tools.ietf.org/html/rfc6698">TLSA</ulink> resource records.
|
|
When this option is specified one or more domain names must be specified.</para>
|
|
|
|
<para>The <option>--statistics</option> switch may be used to show resolver statistics, including information about
|
|
the number of successful and failed DNSSEC validations.</para>
|
|
|
|
<para>The <option>--reset-statistics</option> may be used to reset various statistics counters maintained the
|
|
resolver, including those shown in the <option>--statistics</option> output. This operation requires root
|
|
privileges.</para>
|
|
</refsect1>
|
|
|
|
<refsect1>
|
|
<title>Options</title>
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term><option>-4</option></term>
|
|
<term><option>-6</option></term>
|
|
|
|
<listitem><para>By default, when resolving a hostname, both IPv4 and IPv6
|
|
addresses are acquired. By specifying <option>-4</option> only IPv4 addresses are requested, by specifying
|
|
<option>-6</option> only IPv6 addresses are requested.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><option>-i</option> <replaceable>INTERFACE</replaceable></term>
|
|
<term><option>--interface=</option><replaceable>INTERFACE</replaceable></term>
|
|
|
|
<listitem><para>Specifies the network interface to execute the query on. This may either be specified as numeric
|
|
interface index or as network interface string (e.g. <literal>en0</literal>). Note that this option has no
|
|
effect if system-wide DNS configuration (as configured in <filename>/etc/resolv.conf</filename> or
|
|
<filename>/etc/systemd/resolve.conf</filename>) in place of per-link configuration is used.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><option>-p</option> <replaceable>PROTOCOL</replaceable></term>
|
|
<term><option>--protocol=</option><replaceable>PROTOCOL</replaceable></term>
|
|
|
|
<listitem><para>Specifies the network protocol for the query. May be one of <literal>dns</literal>
|
|
(i.e. classic unicast DNS), <literal>llmnr</literal> (<ulink
|
|
url="https://tools.ietf.org/html/rfc4795">Link-Local Multicast Name Resolution</ulink>),
|
|
<literal>llmnr-ipv4</literal>, <literal>llmnr-ipv6</literal> (LLMNR via the indicated underlying IP
|
|
protocols). By default the lookup is done via all protocols suitable for the lookup. If used, limits the set of
|
|
protocols that may be used. Use this option multiple times to enable resolving via multiple protocols at the
|
|
same time. The setting <literal>llmnr</literal> is identical to specifying this switch once with
|
|
<literal>llmnr-ipv4</literal> and once via <literal>llmnr-ipv6</literal>. Note that this option does not force
|
|
the service to resolve the operation with the specified protocol, as that might require a suitable network
|
|
interface and configuration.
|
|
The special value <literal>help</literal> may be used to list known values.
|
|
</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><option>-t</option> <replaceable>TYPE</replaceable></term>
|
|
<term><option>--type=</option><replaceable>TYPE</replaceable></term>
|
|
<term><option>-c</option> <replaceable>CLASS</replaceable></term>
|
|
<term><option>--class=</option><replaceable>CLASS</replaceable></term>
|
|
|
|
<listitem><para>Specifies the DNS resource record type (e.g. A, AAAA, MX, …) and class (e.g. IN, ANY, …) to
|
|
look up. If these options are used a DNS resource record set matching the specified class and type is
|
|
requested. The class defaults to IN if only a type is specified.
|
|
The special value <literal>help</literal> may be used to list known values.
|
|
</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><option>--service</option></term>
|
|
|
|
<listitem><para>Enables service resolution. This enables DNS-SD and simple SRV service resolution, depending
|
|
on the specified list of parameters (see above).</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><option>--service-address=</option><replaceable>BOOL</replaceable></term>
|
|
|
|
<listitem><para>Takes a boolean parameter. If true (the default), when doing a service lookup with
|
|
<option>--service</option> the hostnames contained in the SRV resource records are resolved as well.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><option>--service-txt=</option><replaceable>BOOL</replaceable></term>
|
|
|
|
<listitem><para>Takes a boolean parameter. If true (the default), when doing a DNS-SD service lookup with
|
|
<option>--service</option> the TXT service metadata record is resolved as well.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><option>--openpgp</option></term>
|
|
|
|
<listitem><para>Enables OPENPGPKEY resource record resolution (see above). Specified e-mail
|
|
addresses are converted to the corresponding DNS domain name, and any OPENPGPKEY keys are
|
|
printed.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><option>--tlsa</option></term>
|
|
|
|
<listitem><para>Enables TLSA resource record resolution (see above).
|
|
A query will be performed for each of the specified names prefixed with
|
|
the port and family
|
|
(<literal>_<replaceable>port</replaceable>._<replaceable>family</replaceable>.<replaceable>domain</replaceable></literal>).
|
|
The port number may be specified after a colon
|
|
(<literal>:</literal>), otherwise <constant>443</constant> will be used
|
|
by default. The family may be specified as an argument after
|
|
<option>--tlsa</option>, otherwise <constant>tcp</constant> will be
|
|
used.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><option>--cname=</option><replaceable>BOOL</replaceable></term>
|
|
|
|
<listitem><para>Takes a boolean parameter. If true (the default), DNS CNAME or DNAME redirections are
|
|
followed. Otherwise, if a CNAME or DNAME record is encountered while resolving, an error is
|
|
returned.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><option>--search=</option><replaceable>BOOL</replaceable></term>
|
|
|
|
<listitem><para>Takes a boolean parameter. If true (the default), any specified single-label hostnames will be
|
|
searched in the domains configured in the search domain list, if it is non-empty. Otherwise, the search domain
|
|
logic is disabled.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><option>--raw</option><optional>=payload|packet</optional></term>
|
|
|
|
<listitem><para>Dump the answer as binary data. If there is no argument or if the argument is
|
|
<literal>payload</literal>, the payload of the packet is exported. If the argument is
|
|
<literal>packet</literal>, the whole packet is dumped in wire format, prefixed by
|
|
length specified as a little-endian 64-bit number. This format allows multiple packets
|
|
to be dumped and unambigously parsed.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><option>--legend=</option><replaceable>BOOL</replaceable></term>
|
|
|
|
<listitem><para>Takes a boolean parameter. If true (the default), column headers and meta information about the
|
|
query response are shown. Otherwise, this output is suppressed.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><option>--statistics</option></term>
|
|
|
|
<listitem><para>If specified general resolver statistics are shown, including information whether DNSSEC is
|
|
enabled and available, as well as resolution and validation statistics.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><option>--reset-statistics</option></term>
|
|
|
|
<listitem><para>Resets the statistics counters shown in <option>--statistics</option> to zero.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><option>--flush-caches</option></term>
|
|
|
|
<listitem><para>Flushes all DNS resource record caches the service maintains locally.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><option>--status</option></term>
|
|
|
|
<listitem><para>Shows the global and per-link DNS settings in currently in effect.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<xi:include href="standard-options.xml" xpointer="help" />
|
|
<xi:include href="standard-options.xml" xpointer="version" />
|
|
<xi:include href="standard-options.xml" xpointer="no-pager" />
|
|
</variablelist>
|
|
</refsect1>
|
|
|
|
<refsect1>
|
|
<title>Examples</title>
|
|
|
|
<example>
|
|
<title>Retrieve the addresses of the <literal>www.0pointer.net</literal> domain</title>
|
|
|
|
<programlisting>$ systemd-resolve www.0pointer.net
|
|
www.0pointer.net: 2a01:238:43ed:c300:10c3:bcf3:3266:da74
|
|
85.214.157.71
|
|
|
|
-- Information acquired via protocol DNS in 611.6ms.
|
|
-- Data is authenticated: no
|
|
</programlisting>
|
|
</example>
|
|
|
|
<example>
|
|
<title>Retrieve the domain of the <literal>85.214.157.71</literal> IP address</title>
|
|
|
|
<programlisting>$ systemd-resolve 85.214.157.71
|
|
85.214.157.71: gardel.0pointer.net
|
|
|
|
-- Information acquired via protocol DNS in 1.2997s.
|
|
-- Data is authenticated: no
|
|
</programlisting>
|
|
</example>
|
|
|
|
<example>
|
|
<title>Retrieve the MX record of the <literal>yahoo.com</literal> domain</title>
|
|
|
|
<programlisting>$ systemd-resolve -t MX yahoo.com --legend=no
|
|
yahoo.com. IN MX 1 mta7.am0.yahoodns.net
|
|
yahoo.com. IN MX 1 mta6.am0.yahoodns.net
|
|
yahoo.com. IN MX 1 mta5.am0.yahoodns.net
|
|
</programlisting>
|
|
</example>
|
|
|
|
<example>
|
|
<title>Resolve an SRV service</title>
|
|
|
|
<programlisting>$ systemd-resolve --service _xmpp-server._tcp gmail.com
|
|
_xmpp-server._tcp/gmail.com: alt1.xmpp-server.l.google.com:5269 [priority=20, weight=0]
|
|
173.194.210.125
|
|
alt4.xmpp-server.l.google.com:5269 [priority=20, weight=0]
|
|
173.194.65.125
|
|
...
|
|
</programlisting>
|
|
</example>
|
|
|
|
<example>
|
|
<title>Retrieve a PGP key</title>
|
|
|
|
<programlisting>$ systemd-resolve --openpgp zbyszek@fedoraproject.org
|
|
d08ee310438ca124a6149ea5cc21b6313b390dce485576eff96f8722._openpgpkey.fedoraproject.org. IN OPENPGPKEY
|
|
mQINBFBHPMsBEACeInGYJCb+7TurKfb6wGyTottCDtiSJB310i37/6ZYoeIay/5soJjlMyf
|
|
MFQ9T2XNT/0LM6gTa0MpC1st9LnzYTMsT6tzRly1D1UbVI6xw0g0vE5y2Cjk3xUwAynCsSs
|
|
...
|
|
</programlisting>
|
|
</example>
|
|
|
|
<example>
|
|
<title>Retrieve a TLS key (<literal>=tcp</literal> and
|
|
<literal>:443</literal> could be skipped)</title>
|
|
|
|
<programlisting>$ systemd-resolve --tlsa=tcp fedoraproject.org:443
|
|
_443._tcp.fedoraproject.org IN TLSA 0 0 1 19400be5b7a31fb733917700789d2f0a2471c0c9d506c0e504c06c16d7cb17c0
|
|
-- Cert. usage: CA constraint
|
|
-- Selector: Full Certificate
|
|
-- Matching type: SHA-256
|
|
</programlisting>
|
|
</example>
|
|
</refsect1>
|
|
|
|
<refsect1>
|
|
<title>See Also</title>
|
|
<para>
|
|
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
|
|
<citerefentry><refentrytitle>systemd-resolved.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
|
|
</para>
|
|
</refsect1>
|
|
</refentry>
|