$ time systemd-resolve -p dns not-a-real-hostname
not-a-real-hostname: resolve call failed: No appropriate name servers or networks for name found
real 0m0.003s
user 0m0.000s
sys 0m0.004s
$ time systemd-resolve -p llmnr not-a-real-hostname
not-a-real-hostname: resolve call failed: All attempts to contact name servers or networks failed
real 0m0.850s
user 0m0.000s
sys 0m0.004s
$ time systemd-resolve -p llmnr-ipv4 not-a-real-hostname
not-a-real-hostname: resolve call failed: All attempts to contact name servers or networks failed
real 0m0.820s
user 0m0.000s
sys 0m0.000s
$ time systemd-resolve -p llmnr-ipv6 not-a-real-hostname
not-a-real-hostname: resolve call failed: All attempts to contact name servers or networks failed
real 0m0.750s
user 0m0.000s
sys 0m0.000s
$ time systemd-resolve not-a-real-hostname
not-a-real-hostname: resolve call failed: All attempts to contact name servers or networks failed
real 0m0.712s
user 0m0.004s
sys 0m0.000s
The dns resolution from systemd-resolve is fast; the llmnr one is not. We currently have llmnr resolution enabled by default. ...it's a feature?!
What is the usecase of resolving things that do not exist? Surely we optimise for the fact that most resolutions will succeed, from performance point of view. The first result retrieved, is returned back.
$ time systemd-resolve -p dns not-a-real-hostname hostname: resolve call failed: No appropriate name servers or networks for name found
not-a-real-
real 0m0.003s
user 0m0.000s
sys 0m0.004s
$ time systemd-resolve -p llmnr not-a-real-hostname hostname: resolve call failed: All attempts to contact name servers or networks failed
not-a-real-
real 0m0.850s
user 0m0.000s
sys 0m0.004s
$ time systemd-resolve -p llmnr-ipv4 not-a-real-hostname hostname: resolve call failed: All attempts to contact name servers or networks failed
not-a-real-
real 0m0.820s
user 0m0.000s
sys 0m0.000s
$ time systemd-resolve -p llmnr-ipv6 not-a-real-hostname hostname: resolve call failed: All attempts to contact name servers or networks failed
not-a-real-
real 0m0.750s
user 0m0.000s
sys 0m0.000s
$ time systemd-resolve not-a-real-hostname hostname: resolve call failed: All attempts to contact name servers or networks failed
not-a-real-
real 0m0.712s
user 0m0.004s
sys 0m0.000s
The dns resolution from systemd-resolve is fast; the llmnr one is not. We currently have llmnr resolution enabled by default. ...it's a feature?!
What is the usecase of resolving things that do not exist? Surely we optimise for the fact that most resolutions will succeed, from performance point of view. The first result retrieved, is returned back.