nixos/networking: don't add extra names to ::1

From hosts(5):

> For each host a single line should be present with the following
> information:
>
> IP_address canonical_hostname [aliases...]

With lines like "::1 localhost ahost.adomin ahost", we were saying
that the canonical name for "ahost" was "localhost", the opposite of a
canonical name. This is why a second loopback address (127.0.0.2) is
used for hostnames with IPv4 — if they were put after "localhost" on
the 127.0.0.1 line, the same thing would happen. With IPv6 we can't
do the same thing as there's only a single loopback address, so
instead the right thing to do is to simply not list the hostnames in
/etc/hosts, and rely on the myhostname NSS plugin, which will handle
this correctly.

(Note that the examples in hosts(5) also do not include IPv6 FQDN or
hostname entries.)

+2 -2
-2
nixos/modules/config/networking.nix
··· 163 ++ lib.optional (cfg.hostName != "") cfg.hostName; # Then the hostname (without the domain) 164 in { 165 "127.0.0.2" = hostnames; 166 - } // lib.optionalAttrs cfg.enableIPv6 { 167 - "::1" = hostnames; 168 }; 169 170 networking.hostFiles = let
··· 163 ++ lib.optional (cfg.hostName != "") cfg.hostName; # Then the hostname (without the domain) 164 in { 165 "127.0.0.2" = hostnames; 166 }; 167 168 networking.hostFiles = let
+2
nixos/tests/hostname.nix
··· 62 fqdn_and_host_name 63 == machine.succeed("getent hosts 127.0.0.2 | awk '{print $2,$3}'").strip() 64 ) 65 ''; 66 }; 67
··· 62 fqdn_and_host_name 63 == machine.succeed("getent hosts 127.0.0.2 | awk '{print $2,$3}'").strip() 64 ) 65 + 66 + assert "${fqdn}" == machine.succeed("getent hosts ${hostName} | awk '{print $2}'").strip() 67 ''; 68 }; 69