ORG.FREEDESKTOP.RESOLVE1(5) org.freedesktop.resolve1 (NAME) org.freedesktop.resolve1 - D-Bus systemd-resolved (DESCRIPTION) systemd-resolved.service(8) DNS LLMNR mDNS . DNSSEC . D-Bus . API . API (Writing Network Configuration Managers)[1] (Writing Resolver Clients)[2] . (THE MANAGER OBJECT) Manager : node /org/freedesktop/resolve1 { interface org.freedesktop.resolve1.Manager { methods: ResolveHostname(in i ifindex, in s name, in i family, in t flags, out a(iiay) addresses, out s canonical, out t flags); ResolveAddress(in i ifindex, in i family, in ay address, in t flags, out a(is) names, out t flags); ResolveRecord(in i ifindex, in s name, in q class, in q type, in t flags, out a(iqqay) records, out t flags); ResolveService(in i ifindex, in s name, in s type, in s domain, in i family, in t flags, out a(qqqsa(iiay)s) srv_data, out aay txt_data, out s canonical_name, out s canonical_type, out s canonical_domain, out t flags); GetLink(in i ifindex, out o path); SetLinkDNS(in i ifindex, in a(iay) addresses); SetLinkDNSEx(in i ifindex, in a(iayqs) addresses); SetLinkDomains(in i ifindex, in a(sb) domains); SetLinkDefaultRoute(in i ifindex, in b enable); SetLinkLLMNR(in i ifindex, in s mode); SetLinkMulticastDNS(in i ifindex, in s mode); SetLinkDNSOverTLS(in i ifindex, in s mode); SetLinkDNSSEC(in i ifindex, in s mode); SetLinkDNSSECNegativeTrustAnchors(in i ifindex, in as names); RevertLink(in i ifindex); RegisterService(in s id, in s name_template, in s type, in q service_port, in q service_priority, in q service_weight, in aa{say} txt_datas, out o service_path); UnregisterService(in o service_path); ResetStatistics(); FlushCaches(); ResetServerFeatures(); properties: readonly s LLMNRHostname = '...'; @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 = '...'; readonly a(iiay) DNS = [...]; readonly a(iiayqs) DNSEx = [...]; @org.freedesktop.DBus.Property.EmitsChangedSignal("const") readonly a(iiay) FallbackDNS = [...]; @org.freedesktop.DBus.Property.EmitsChangedSignal("const") readonly a(iiayqs) FallbackDNSEx = [...]; readonly (iiay) CurrentDNSServer = ...; readonly (iiayqs) CurrentDNSServerEx = ...; @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly a(isb) Domains = [...]; @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly (tt) TransactionStatistics = ...; @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly (ttt) CacheStatistics = ...; @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly s DNSSEC = '...'; @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly (tttt) DNSSECStatistics = ...; @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly b DNSSECSupported = ...; @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly as DNSSECNegativeTrustAnchors = ['...', ...]; @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly s DNSStubListener = '...'; @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly s ResolvConfMode = '...'; }; interface org.freedesktop.DBus.Peer { ... }; interface org.freedesktop.DBus.Introspectable { ... }; interface org.freedesktop.DBus.Properties { ... }; }; (Methods) ResolveHostname() IP . (interface index) 0 . name . IDNA LLMNR MulticastDNS . family . AF_INET AF_INET6 AF_UNSPEC . AF_UNSPEC () ( IPv6 IPv6 IPv4). flags ( ). . IP ( ). AF_INET AF_INET6 . IPv6 .sin6_scope_id struct sockaddr_in6 IP - (link-local) . (canonical name) . flags flags ( ). IPv4 IPv6 . . ResolveAddress() : IP . 0 . family IP . AF_INET AF_INET6 . address IP ( ) . flags ( ). . flags ( ). ResolveRecord() DNS ( RR) (RRset) RDATA . 0 . name RR ( IDNA ) ( ANY ). flags ( ). RR . RR RR RR . RR RR TTL RDATA RFC 1035[3] . ( MX PTR) (expand) . IN ANY . . (AXFR OPT ). systemd-resolved API RR . ResolveService() DNS SRV DNS-SD TXT . ResolveRecord() SRV SRV TXT SRV . . : 1. DNS-SD ( "Lennart's Files") ( "_webdav._tcp") ( "local") . UTF-8 IDNA ( DNS-SD ). IDNA . 2. SRV . ( IDNA .) 3. SRV ( ) . ( IDNA .) family ResolveService() ( AF_INET AF_INET6 AF_UNSPEC ). ( NO_ADDRESS ). flags . ResolveService() SRV . SRV . . . SRV RR TXT DNS-SD . . . flags . ResetStatistics() systemd-resolved . ( .) GetLink() org.freedesktop.resolve1.Link . SetLinkDNS() DNS . ( ) DNS . IP DNS . ( AF_INET AF_INET6) . Link GetLink() ( ) SetDNS() ( ) . SetLinkDNSEx() SetLinkDNS() IP ( ) DNS DNS . (SNI) DNS-over-TLS . DNS= resolved.conf(5). SetLinkDefaultRoute() . systemd-resolved.service(8) . SetLinkDomains() DNS . (false) (true). FQDN . . . SetLinkLLMNR() LLMNR . "yes" "no" "resolve" . systemd LLMNR . "yes" LLMNR LAN LLMNR . "no" LLMNR . "resolve" LLMNR . SetLinkMulticastDNS() MulticastDNS . SetLinkLLMNR() . SetLinkDNSSEC() DNSSEC . "yes" "no" "allow-downgrade" . DNSSEC . "yes" DNSSEC . DNS DNSSEC . "no" DNSSEC . "allow-downgrade" DNSSEC ( downgrade ). DNSSEC DNS LLMNR MulticastDNS. SetLinkDNSSECNegativeTrustAnchors() DNSSEC ( NTAs) . . SetLinkDNSOverTLS() DNS-over-TLS . DNSOverTLS= systemd-resolved.service(8). systemd-resolved SetLinkDNS() SetLinkDNSEx() SetLinkDefaultRoute() SetLinkDomains() ( ) ( IFF_UP) (up) . . RevertLink() ( ) . RevertLink() . FlushCaches() . ResetServerFeatures() DNS . DNS ( ) . RegisterService() DNS-SD . systemd.dnssd(5) . ( *.dnssd IPC ). DNS-SD . (specifier expansion) Name= *.dnssd . DNS-SD IP / DNS-SD SRV . TXT . . UnregisterService() RegisterService() DNS-SD IPC . (The Flags Parameter) . 0 . : /* +: / */ #define SD_RESOLVED_DNS (UINT64_C(1) << 0) #define SD_RESOLVED_LLMNR_IPV4 (UINT64_C(1) << 1) #define SD_RESOLVED_LLMNR_IPV6 (UINT64_C(1) << 2) #define SD_RESOLVED_MDNS_IPV4 (UINT64_C(1) << 3) #define SD_RESOLVED_MDNS_IPV6 (UINT64_C(1) << 4) /* : */ #define SD_RESOLVED_NO_CNAME (UINT64_C(1) << 5) #define SD_RESOLVED_NO_TXT (UINT64_C(1) << 6) #define SD_RESOLVED_NO_ADDRESS (UINT64_C(1) << 7) #define SD_RESOLVED_NO_SEARCH (UINT64_C(1) << 8) #define SD_RESOLVED_NO_VALIDATE (UINT64_C(1) << 10) #define SD_RESOLVED_NO_SYNTHESIZE (UINT64_C(1) << 11) #define SD_RESOLVED_NO_CACHE (UINT64_C(1) << 12) #define SD_RESOLVED_NO_ZONE (UINT64_C(1) << 13) #define SD_RESOLVED_NO_TRUST_ANCHOR (UINT64_C(1) << 14) #define SD_RESOLVED_NO_NETWORK (UINT64_C(1) << 15) #define SD_RESOLVED_NO_STALE (UINT64_C(1) << 24) #define SD_RESOLVED_RELAX_SINGLE_LABEL (UINT64_C(1) << 25) /* : */ #define SD_RESOLVED_AUTHENTICATED (UINT64_C(1) << 9) #define SD_RESOLVED_CONFIDENTIAL (UINT64_C(1) << 18) /* : */ #define SD_RESOLVED_SYNTHETIC (UINT64_C(1) << 19) #define SD_RESOLVED_FROM_CACHE (UINT64_C(1) << 20) #define SD_RESOLVED_FROM_ZONE (UINT64_C(1) << 21) #define SD_RESOLVED_FROM_TRUST_ANCHOR (UINT64_C(1) << 22) #define SD_RESOLVED_FROM_NETWORK (UINT64_C(1) << 23) . DNS (unicast) LLMNR IPv4/UDP IPv6/UDP MulticastDNS IPv4/UDP IPv6/UDP . (off) ( ) . . systemd-resolved (TLD) .local MulticastDNS ( ) LLMNR ( ) . DNS . LLMNR Multicast DNS (multicast) . . DNS . DNS . NO_CNAME CNAME/DNAME . . CNAME/DNAME . CNAME/DNAME . NO_TXT NO_ADDRESS ResolveService() . . NO_TXT DNS-SD TXT RR . NO_ADDRESS . NO_SEARCH (search domain) . ResolveHostname() . ( ) . ResolveRecord() . . NO_VALIDATE DNSSEC . . NO_SYNTHESIZE ( ) SYNTHETIC RECORDS systemd-resolved.service(8) . NO_CACHE . NO_ZONE LLMNR/mDNS . NO_TRUST_ANCHOR . NO_NETWORK . NO_STALE . AUTHENTICATED . . DNSSEC . "localhost" /etc/hosts . LLMNR mDNS . RR . systemd-resolved <<>> ( ) . CONFIDENTIAL . . FROM_SYNTHETIC ( ) . FROM_CACHE ( ) . FROM_ZONE ( ) . FROM_TRUST_ANCHOR ( ) . FROM_NETWORK ( ) . (Properties) LLMNR MulticastDNS LLMNR MulticastDNS ( ) . "yes" "no" "resolve" . SetLinkLLMNR() SetLinkMulticastDNS() . LLMNRHostname LLMNR . gethostname(3) . DNS DNSEx DNS systemd-resolved . DNS DNS /run/systemd/resolve/resolv.conf . DNS ( IPv4 IPv6). DNSEx IP ( SNI) . DNS /etc/resolv.conf DNS= /etc/systemd/resolved.conf DNS systemd- networkd(8) SetLinkDNS() SetLinkDNSEx() ( ) . 0 . FallbackDNS FallbackDNSEx DNS DNS DNSEx . FallbackDNS= resolved.conf(5) . CurrentDNSServer CurrentDNSServerEx DNS DNSEx . Domains systemd-resolved . ( 0 ) (true) (false) . TransactionStatistics systemd-resolved . systemd-resolved . ResetStatistics() . . CNAME DNSSEC . CacheStatistics . : ( ) (cache hits) (cache misses). ResetStatistics() ( ) . DNSSEC DNSSEC . "yes" ( ) "no" ( ) "allow-downgrade" ( DNS ) . DNSSEC= resolved.conf(5) . DNSSECStatistics DNSSEC . : (secure) (insecure) (bogus) (indeterminate) DNSSEC . RRset . secure insecure bogus . indeterminate . DNSSECSupported DNSSEC DNS . DNS ( ) true DNSSEC DNS ( ) . systemd-resolved DNSSEC DNS . true . DNSOverTLS DNS-over-TLS . ResolvConfMode /etc/resolv.conf . "uplink" "stub" "static" ( systemd-resolved.service ) "foreign" ( systemd-resolved.service ) "missing" ( /etc/resolv.conf ). DNSStubListener (stub listener) . "yes" () "no" () "udp" ( UDP ) "tcp" ( TCP ). DNSSECNegativeTrustAnchors DNSSEC . (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 { ... }; }; <> DNS . GetLink() Manager ( ) . (Methods) Link Manager SetDNS() Link SetLinkDNS() Manager . Manager (roundtrips) Link GetLink() . SetDNSEx() SetDomains() SetDefaultRoute() SetLLMNR() SetMulticastDNS() SetDNSOverTLS() SetDNSSEC() SetDNSSECNegativeTrustAnchors() Revert() . Manager . (Properties) ScopesMask . flags . DNS LLMNR MDNS ( IPv4 IPv6) . . (multicast) "UP" IP LLMNR MulticastDNS UP IP DNS . LLMNR MulticastDNS Link ** . DNSSECSupported DNSSEC . DNSSEC . DNSSEC . DefaultRoute . SetLinkDefaultRoute() . SetDNS() SetLLMNR() . (COMMON ERRORS) systemd-resolved ( ResolveHostname() Manager) : org.freedesktop.resolve1.NoNameServers DNS . 246. org.freedesktop.resolve1.InvalidReply DNS . 246. org.freedesktop.resolve1.NoSuchRR . ( NODATA DNS ). 246. org.freedesktop.resolve1.CNameLoop CNAME DNAME . 246. org.freedesktop.resolve1.Aborted . 246. org.freedesktop.resolve1.NoSuchService SRV . 246. org.freedesktop.resolve1.DnssecFailed DNSSEC . 246. org.freedesktop.resolve1.NoTrustAnchor DNSSEC . 246. org.freedesktop.resolve1.ResourceRecordTypeUnsupported DNS . RRSIG DNS DNSSEC . 246. org.freedesktop.resolve1.NoSuchLink . 246. org.freedesktop.resolve1.LinkBusy systemd-networkd(8) . 246. org.freedesktop.resolve1.NetworkDown . 246. org.freedesktop.resolve1.DnsError.NXDOMAIN org.freedesktop.resolve1.DnsError.REFUSED ... DNS . IANA DNS (DNS RCODEs)[4] . 246. (EXAMPLES) . org.freedesktop.resolve1.Manager $ gdbus introspect --system \ --dest org.freedesktop.resolve1 \ --object-path /org/freedesktop/resolve1 . org.freedesktop.resolve1.Link $ gdbus introspect --system \ --dest org.freedesktop.resolve1 \ --object-path /org/freedesktop/resolve1/link/_11 (VERSIONING) D-Bus [5] . (SEE ALSO) systemd(1), systemd-resolved.service(8), resolvectl(1) (NOTES) 1. (Writing Network Configuration Managers) https://wiki.freedesktop.org/www/Software/systemd/writing-network- configuration-managers 2. (Writing Resolver Clients) https://wiki.freedesktop.org/www/Software/systemd/writing-resolver- clients 3. RFC 1035 https://www.ietf.org/rfc/rfc1035.txt 4. DNS (DNS RCODEs) https://www.iana.org/assignments/dns-parameters/dns- parameters.xhtml#dns-parameters-6 5. https://0pointer.de/blog/projects/versioning-dbus.html systemd 257.13 ORG.FREEDESKTOP.RESOLVE1(5)