Skip to content
Advertisement

How does the host name resolution of anyname.localhost resolves to IPv6 ::1 address?

In an Ubuntu 20 or 22 LTS, if I attempt to use a hostname like anyname.localhost it always seems to resolve to IPv6 ::1 address.

In an old RHEL 6, if I attempt to use a hostname like anyname.localhost it always seems to resolve to IPv4 127.0.0.1 address.

In a MS-Windows or MacOS 12.6 machine, this does not seem to happen. (It only happens if I manually edit /etc/hosts and manually add an host alias to 127.0.0.1

127.0.0.1 localhost localhost.localdomain somename.localhost

)

Is this any.sequence.of.names.localhost resolution to ::1 (localhost) always garanteed to happen ? By what reason ? In what Linux distros ?

I have a few projects where it seems useful to have many localhost aliases without having to edit /etc/hosts, but I searched about TCP and DNS quirks, and found nothing about this behaviour. (Not very sure what I should search for). Not sure if I can depend on this behaviour.

Advertisement

Answer

Well, thanks to the link posted in the comments above by Patrick Mevzek, I could reach a documented explanation.

For the Ubuntu 20/22 LTS, it seems to use systemd-resolved for DNS resolution. And, as it says on https://www.freedesktop.org/software/systemd/man/systemd-resolved.service.html

Synthetic Records

The hostnames “localhost” and “localhost.localdomain” as well as any hostname ending in “.localhost” or “.localhost.localdomain” are resolved to the IP addresses 127.0.0.1 and ::1.

So, this seems to explain that Linux OSes that have DNS resolution based on systemd will have this behaviour, and others (like Windows and MacOS) do not.

(So, this seemed a systemd question after all 🙂

(This question is in fact a duplicate of https://serverfault.com/questions/1065513/how-does-linux-resolve-wildcard-locahost-subdomains-e-g-ping-test-localhost/1065514#1065514 – just using systemd-resolved instead of nss-myhostname , and if anyone knows how to link them both ways, could help others searching by other words).

User contributions licensed under: CC BY-SA
7 People found this is helpful
Advertisement