nixos: Conform with RFC 1123 in networking.hostName

Conform to RFC 1123 [0], specifically to "2.1 Host Names and Numbers",
which allow starting host name with alphanumerical instead of alphabetical characters.
RFC 1123 updates RFC 952 [1], which is referenced in "man 5 hosts".

[0]: https://tools.ietf.org/html/rfc1123
[1]: https://tools.ietf.org/html/rfc952
This commit is contained in:
0x4A6F 2020-09-30 21:21:23 +00:00
parent b3f8d3b80d
commit c232d4b587
No known key found for this signature in database
GPG key ID: 8DEDBA5BE07080E1
2 changed files with 7 additions and 6 deletions

View file

@ -594,8 +594,8 @@ systemd.services.nginx.serviceConfig.ReadWritePaths = [ "/var/www" ];
<listitem> <listitem>
<para> <para>
The hostname (<literal>networking.hostName</literal>) must now be a valid The hostname (<literal>networking.hostName</literal>) must now be a valid
DNS label (see RFC 1035) and as such must not contain the domain part. DNS label (see RFC 1035, RFC 1123) and as such must not contain the domain part.
This means that the hostname must start with a letter, end with a letter This means that the hostname must start with a letter or digit, end with a letter
or digit, and have as interior characters only letters, digits, and or digit, and have as interior characters only letters, digits, and
hyphen. The maximum length is 63 characters. Additionally it is hyphen. The maximum length is 63 characters. Additionally it is
recommended to only use lower-case characters. recommended to only use lower-case characters.

View file

@ -381,13 +381,14 @@ in
# syntax). Note: We also allow underscores for compatibility/legacy # syntax). Note: We also allow underscores for compatibility/legacy
# reasons (as undocumented feature): # reasons (as undocumented feature):
type = types.strMatching type = types.strMatching
"^$|^[[:alpha:]]([[:alnum:]_-]{0,61}[[:alnum:]])?$"; "^$|^[[:alnum:]]([[:alnum:]_-]{0,61}[[:alnum:]])?$";
description = '' description = ''
The name of the machine. Leave it empty if you want to obtain it from a The name of the machine. Leave it empty if you want to obtain it from a
DHCP server (if using DHCP). The hostname must be a valid DNS label (see DHCP server (if using DHCP). The hostname must be a valid DNS label (see
RFC 1035 section 2.3.1: "Preferred name syntax") and as such must not RFC 1035 section 2.3.1: "Preferred name syntax", RFC 1123 section 2.1:
contain the domain part. This means that the hostname must start with a "Host Names and Numbers") and as such must not contain the domain part.
letter, end with a letter or digit, and have as interior characters only This means that the hostname must start with a letter or digit,
end with a letter or digit, and have as interior characters only
letters, digits, and hyphen. The maximum length is 63 characters. letters, digits, and hyphen. The maximum length is 63 characters.
Additionally it is recommended to only use lower-case characters. Additionally it is recommended to only use lower-case characters.
''; '';