интерфейс D-Bus системы с разрешением systemd (The D-Bus interface of systemd-resolved)
LINK OBJECT
node /org/freedesktop/resolve1/link/_1 {
interface org.freedesktop.resolve1.Link {
methods:
SetDNS(in a(iay) addresses);
SetDNSEx(in a(iayqs) addresses);
SetDomains(in a(sb) domains);
SetDefaultRoute(in b enable);
SetLLMNR(in s mode);
SetMulticastDNS(in s mode);
SetDNSOverTLS(in s mode);
SetDNSSEC(in s mode);
SetDNSSECNegativeTrustAnchors(in as names);
Revert();
properties:
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t ScopesMask = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly a(iay) DNS = [...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly a(iayqs) DNSEx = [...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly (iay) CurrentDNSServer = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly (iayqs) CurrentDNSServerEx = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly a(sb) Domains = [...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly b DefaultRoute = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly s LLMNR = '...';
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly s MulticastDNS = '...';
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly s DNSOverTLS = '...';
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly s DNSSEC = '...';
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly as DNSSECNegativeTrustAnchors = ['...', ...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly b DNSSECSupported = ...;
};
interface org.freedesktop.DBus.Peer { ... };
interface org.freedesktop.DBus.Introspectable { ... };
interface org.freedesktop.DBus.Properties { ... };
};
For each Linux network interface a "Link" object is created which
exposes per-link DNS configuration and state. Use GetLink()
on
the Manager interface to retrieve the object path for a link
object given the network interface index (see above).
Methods
The various methods exposed by the Link interface are equivalent
to their similarly named counterparts on the Manager interface.
e.g. SetDNS()
on the Link object maps to SetLinkDNS()
on the
Manager object, the main difference being that the later expects
an interface index to be specified. Invoking the methods on the
Manager interface has the benefit of reducing roundtrips, as it
is not necessary to first request the Link object path via
GetLink()
before invoking the methods. The same relationship
holds for SetDNSEx()
, SetDomains()
, SetDefaultRoute()
,
SetLLMNR()
, SetMulticastDNS()
, SetDNSOverTLS()
, SetDNSSEC()
,
SetDNSSECNegativeTrustAnchors()
, and Revert()
. For further
details on these methods see the Manager documentation above.
Properties
ScopesMask defines which resolver scopes are currently active on
this interface. This 64-bit unsigned integer field is a bit mask
consisting of a subset of the bits of the flags parameter
describe above. Specifically, it may have the DNS, LLMNR and MDNS
bits (the latter in IPv4 and IPv6 flavours) set. Each individual
bit is set when the protocol applies to a specific interface and
is enabled for it. It is unset otherwise. Specifically, a
multicast-capable interface in the "UP" state with an IP address
is suitable for LLMNR or MulticastDNS, and any interface that is
UP and has an IP address is suitable for DNS. Note the
relationship of the bits exposed here with the LLMNR and
MulticastDNS properties also exposed on the Link interface. The
latter expose what is *configured* to be used on the interface,
the former expose what is actually used on the interface, taking
into account the abilities of the interface.
DNSSECSupported exposes a boolean field that indicates whether
DNSSEC is currently configured and in use on the interface. Note
that if DNSSEC is enabled on an interface, it is assumed
available until it is detected that the configured server does
not actually support it. Thus, this property may initially report
that DNSSEC is supported on an interface.
DefaultRoute exposes a boolean field that indicates whether the
interface will be used as default route for name queries. See
SetLinkDefaultRoute()
above.
The other properties reflect the state of the various
configuration settings for the link which may be set with the
various methods calls such as SetDNS()
or SetLLMNR()
.