[Bug 1853669] Re: systemd resolves own hostname to link local ipv6 address
Dan Streetman
ddstreet at canonical.com
Wed Dec 4 13:15:49 UTC 2019
> It was no "assumption", but an "observation".
no, you are assuming that systemd-resolved is the authoritative
nameserver providing the $(hostname) addresses, which is wrong.
systemd-resolved is a stub nameserver that does no authoritative
resolution itself; it gets its answers from other nameservers.
> Name: xxx # my "$(hostname)"
why are you obfuscating your hostname? It could be relevant, for
example if you're choosing to use the 'local' domain.
Let's try this instead; do this:
$ sudo systemctl --runtime edit systemd-resolved
in the editor that opens, put this:
[Service]
Environment=SYSTEMD_LOG_LEVEL=debug
then, save it and exit the editor. Then do:
$ sudo systemctl restart systemd-resolved
and now lookup your name:
$ nslookup $(hostname)
and then do this and paste/attach the results:
$ journalctl -b -u systemd-resolved --no-pager
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to systemd in Ubuntu.
https://bugs.launchpad.net/bugs/1853669
Title:
systemd resolves own hostname to link local ipv6 address
Status in systemd package in Ubuntu:
Incomplete
Bug description:
I've got an ethernet-device that only has a configured ipv4 address,
and some auto-generated link-local (aka "scope link") ipv6 address.
Any tool doing a DNS query (and /lib/systemd/systemd-resolved is the
DNS-server listening on 127.0.0.53) for this host's hostname gets back
two addresses: the correct ipv4 address, and a broken ipv6 address.
Unlike on ipv4, it is possible for the same ipv6-address to be
assigned to multiple devices, and therefore the address is only valid
in the context of the eth-device.
Now, if "ifconfig" shows "inet6 fe80::4687:fcff:fe9e:4ac7 prefixlen 64 scopeid 0x20<link>"
then "fe80::4687:fcff:fe9e:4ac7" is NOT a connectable address, and syscall connect() typically fails with EINVAL.
To make it a valid address, it needs to be suffixed with a "%" and the device name, like:
fe80::4687:fcff:fe9e:4ac7%enp4s0
Either the resolver can return the link name attached to the address
separated with a "%" char, or it needs to ignore link-local inet6
addresses.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1853669/+subscriptions
More information about the foundations-bugs
mailing list