Tên máy chủ lưu trữ một chữ cái có hợp lệ không?


14

RFC-952 (câu cuối cùng của điểm 1 trong Giả định) cấm tên máy chủ một ký tự và tôi đã có kinh nghiệm ( hơn 7 năm trước vào mùa hè năm 2002) khi một số dịch vụ sẽ từ chối làm việc với tên máy chủ một ký tự (vì tên đó là không tuân thủ tiêu chuẩn), nhưng tôi đã thấy một số tên máy chủ lưu trữ một ký tự được sử dụng trong vài năm qua. Bây giờ tên máy chủ một ký tự có hợp lệ không? (Nếu vậy, tham chiếu xác nhận hợp lệ là gì?)

chỉnh sửa (để hợp nhất một số thông tin từ các câu trả lời): các khía cạnh khác nhau của DNS dường như được xác định trong một số RFC, bao gồm 1035 , 11232181 . Từ RFC-2181 phần 11 :

Note however, that the various applications that make use of DNS data
can have restrictions imposed on what particular values are
acceptable in their environment.  For example, that any binary label
can have an MX record does not imply that any binary name can be used
as the host part of an e-mail address.
[ ... ]
See also [RFC1123] section 6.1.3.5.

Từ RFC-1123 phần 6.1.3.5 :

The DNS defines domain name syntax very generally -- a
string of labels each containing up to 63 8-bit octets,
separated by dots, and with a maximum total of 255
octets.  Particular applications of the DNS are
permitted to further constrain the syntax of the domain
names they use, although the DNS deployment has led to
some applications allowing more general names.  In
particular, Section 2.1 of this document liberalizes
slightly the syntax of a legal Internet host name that
was defined in RFC-952 [DNS:4].

Từ RFC-1123 phần 2.1 :

The syntax of a legal Internet host name was specified in RFC-952
[DNS:4].  One aspect of host name syntax is hereby changed: the
restriction on the first character is relaxed to allow either a
letter or a digit.  Host software MUST support this more liberal
syntax.

Và cuối cùng, như được tham chiếu ban đầu, từ RFC-952 :

1. A "name" (Net, Host, Gateway, or Domain name) is a text string up
to 24 characters drawn from the alphabet (A-Z), digits (0-9), minus
sign (-), and period (.).  Note that periods are only allowed when
they serve to delimit components of "domain style names". (See
RFC-921, "Domain Name System Implementation Schedule", for
background).  No blank or space characters are permitted as part of a
name. No distinction is made between upper and lower case.  The first
character must be an alpha character.  The last character must not be
a minus sign or period.
[ ... ]
Single character names or nicknames are not allowed.

Chính từ việc theo chuỗi này mà ban đầu tôi đã nói rằng RFC-952 cấm các tên máy chủ một ký tự.

Câu trả lời:


2

Có một sự khác biệt giữa 'hợp lệ' và 'nó hoạt động'. Hoàn toàn có thể là tên máy chủ không được coi là hợp lệ nếu chúng là các ký tự đơn (bài viết trước đây của tôi không chịu được). Tuy nhiên, khá nhiều hệ thống cho phép chúng. Một hệ thống chính, hệ thống AD / DNS của Microsoft, có lý do kế thừa cho phép cho phép các tên ký tự đơn.

Tên NetBIOS trường học cũ được phép có độ dài từ 1 đến 15 ký tự. Thông số kỹ thuật này được phát triển độc lập với RFC952, nó dựa trên một tệp khác gọi là lmhosts, vì vậy nó hoạt động. Vấn đề xảy ra khi Microsoft chuyển khỏi NetBEUI (thực ra là NBF, NetBIOS Frame Protocol) và lên TCP / IP (thực ra là NBT) và Microsoft phải cho phép đặt tên độ phân giải trên các mạng TCP / IP. MS đã chọn để duy trì độ phân giải kiểu NetBIOS với các máy chủ WINS, bỏ qua sự cần thiết của các máy chủ tuân thủ RFC952.

Sau đó đến Active Directory và các phụ thuộc DNS của nó. DNS động là quy tắc, vì vậy khách hàng phải đăng ký Tên máy tính của họ (15 ký tự đầu tiên cũng là tên NetBIOS của họ) trong miền DNS. Vì MS cho phép các tên NetBIOS một ký tự đăng ký trong DNS, điều này đã khiến nó bị xung đột với RFC952. Họ quyết định mã hóa hệ thống của mình để cho phép điều này, vì điều này mô phỏng cách nó luôn được sử dụng để hoạt động trong những ngày THẮNG.

BIND DNS cũng cho phép tên máy chủ ký tự đơn. Nhưng RFC2181 khá nhiều tuyên bố rằng các ứng dụng cần phải kiểm tra dữ liệu của chính họ chứ không phải DNS nữa. Điều này khiến chúng tôi có một số lượng lớn thiết bị và phần mềm mà tên máy chủ của một ký tự vẫn ổn, và một số ngoại lệ nghiêm ngặt RFC952 không cho phép điều đó.


There is a difference between 'valid' and 'it works'. Cuối cùng, tôi nghĩ đó là câu trả lời hợp lý nhất, mặc dù tôi rất đánh giá cao tất cả các cuộc thảo luận được tạo ra. Kết luận tôi rút ra là tên máy chủ lưu trữ một ký tự vẫn không hợp lệ về mặt kỹ thuật, nhưng hoạt động khá phổ biến ở thời điểm này. (Tương tự, phần dưới bị cấm, nhưng phần lớn hoạt động.)
Isaac

11

Bạn sẽ nghĩ rằng chúng hợp lệ vì các máy chủ tên gốc là tất cả các máy chủ một chữ cái (a.root-servers.net) và thông số DNS không tạo ra một ngoại lệ cụ thể cho chúng. RFC trong câu hỏi là dành riêng cho định dạng tệp máy chủ, không phải DNS. DNS được xác định trong RFC sau này ( RFC 1035 khởi động nó). RFC 1123 (1989) nói rõ.

 The syntax of a legal Internet host name was specified in RFC-952
 [DNS:4].  One aspect of host name syntax is hereby changed: the
 restriction on the first character is relaxed to allow either a
 letter or a digit.  Host software MUST support this more liberal
 syntax.

Vì vậy, tên máy chủ một chữ cái là hợp lệ trong các hệ thống dựa trên DNS và đã có từ trước khi spam được phát minh. Các hệ thống không tuân thủ RFC và có thể bị chế giễu. Trừ khi họ hoàn toàn không sử dụng DNS và chỉ sử dụng các tệp lưu trữ, tại thời điểm đó, sự thương hại là lựa chọn tốt hơn.


Được rồi, tôi đã đọc nó trong RFC-1123, nhưng tôi đã giải thích nó có nghĩa là thông số kỹ thuật tôi đọc trong RFC-952 được áp dụng, ngoại trừ một chữ số cũng được cho phép là ký tự đầu tiên (như bạn đã trích dẫn, nó không làm thay đổi cấm tên nhân vật đơn). Đối với các máy chủ gốc, đôi khi tôi được cho biết rằng chúng là một loại ngoại lệ đặc biệt đối với quy tắc.
Isaac

2

Vì tên máy chủ đã xuất hiện trước khi bất kỳ ai nghĩ đến việc viết RFC về chúng, tôi không thể thấy bất kỳ lý do nào khiến tên máy chủ của một nhân vật đột nhiên trở thành "bất hợp pháp". RFC đặc biệt đó đã mất tôi khi tuyên bố

RFC này là đặc điểm kỹ thuật chính thức

bởi vì RFC KHÔNG phải là tiêu chuẩn. Thậm chí không gần gũi.

Mặc dù đã nói ở trên, phải lưu ý rằng RFC trong câu hỏi đã được tạo ra để áp dụng cho một nhóm tương đối nhỏ, cụ thể là Bộ Quốc phòng (có lẽ là của Hoa Kỳ).


RFC theo định nghĩa rất không phải là một tiêu chuẩn. "Yêu cầu Nhận xét" không chính xác hét "tiêu chuẩn" với bất kỳ ai. Điều thú vị là họ đã bỏ đi với nó trong các tài liệu của riêng họ.
Mark Henderson

1
vi.wikipedia.org/wiki/Domain_name_system#INET_stiterias liệt kê nhiều RFC "định nghĩa" giao thức DNS. RFC-1123 (như được đề cập bởi sysadmin1138) nằm trong số những người được liệt kê và nó tham chiếu RFC-952. Theo kinh nghiệm của tôi, trong khi RFC là yêu cầu, chúng trở thành định nghĩa khi chúng được chấp nhận.
Isaac

@Fudeeker, tôi không nói đó là trường hợp ở đây nhưng tôi luôn ngạc nhiên với mọi người, hầu hết những người nên biết rõ hơn, họ trích dẫn RFC như thể họ là người có thẩm quyền tối cao đối với bất kỳ chủ đề cụ thể nào. Tôi khá chắc chắn rằng có một RFC về nó ở đâu đó. ;)
John Gardeniers

1
Một số RFC thực sự là các tiêu chuẩn - RFC 1034 và 1035 cùng nhau, ví dụ, bao gồm STD0013. Lý do họ gọi là "Yêu cầu Nhận xét" là lịch sử, và thực chất phải làm với một loạt các nâng cấp cấp thấp vào cuối thập niên 60 không muốn đánh bại cấp trên của họ (Tôi nghe nói rằng trực tiếp từ tác giả của RFC 1).
Alnitak

2
@ John Tôi đề nghị bạn đọc RFC 2026. "Một thông số kỹ thuật đạt trạng thái Tiêu chuẩn được gán một số trong chuỗi STD trong khi vẫn giữ số RFC của nó". Tôi viết tài liệu IETF cho công việc hàng ngày của tôi.
Alnitak

1

Tôi nghĩ rằng tên máy chủ hiện tại phụ thuộc nhiều hơn vào thông số kỹ thuật DNS vì DNS là thứ mà hầu hết mọi người sẽ sử dụng trong mạng hoặc trên internet. Nói rằng, ba RFC xuất hiện trong tâm trí (1034 - khái niệm, 1035 - thực hiện và 2181 - làm rõ về DNS).

Phần 3 của RFC 1034 nói:

Không gian tên miền là một cấu trúc cây. Mỗi nút và lá trên cây tương ứng với một bộ tài nguyên (có thể trống). Hệ thống miền không phân biệt giữa việc sử dụng các nút bên trong và các lá, và bản ghi nhớ này sử dụng thuật ngữ "nút" để chỉ cả hai.

Mỗi nút có một nhãn, có độ dài từ 0 đến 63 octet. Các nút Brother có thể không có cùng nhãn, mặc dù cùng một nhãn có thể được sử dụng cho các nút không phải là anh em. Một nhãn được dành riêng và đó là nhãn null (nghĩa là độ dài bằng không) được sử dụng cho thư mục gốc.

Và trong Phần 11 của RFC 2181, chúng tôi đã làm rõ về cách đặt tên cho mỗi nút của địa chỉ:

Bản thân DNS chỉ đặt một hạn chế trên các nhãn cụ
thể có thể được sử dụng để xác định các bản ghi tài nguyên. Đó là một hạn chế
liên quan đến chiều dài của nhãn và tên đầy đủ. Độ dài của bất kỳ một nhãn nào được giới hạn trong khoảng từ 1 đến 63 octet. Một tên miền đầy đủ được giới hạn ở 255 octet (bao gồm cả các dấu phân cách)

Vì vậy, bằng ánh sáng của thông số kỹ thuật DNS, bạn có thể có a.domain.tld


Từ đoạn tiếp theo trong Phần 11 của RFC-2181: Note however, that the various applications that make use of DNS data can have restrictions imposed on what particular values are acceptable in their environment. For example, that any binary label can have an MX record does not imply that any binary name can be used as the host part of an e-mail address. Về cơ bản, vì a.domain.tld hợp lệ trong DNS không biến nó thành tên máy chủ hợp lệ. Phần cuối của phần 11 tham khảo Mục 6.1.3.5 của RFC-1123, trích dẫn Phần 2.1 của chính nó và RFC-952, như được thảo luận trong câu trả lời của sysadmin1138.
Isaac

Trích dẫn ở cuối phần 6.1.3.5 nói về ít ràng buộc hơn đối với quy ước đặt tên được xác định trên 952. Ngoài ra, 952 định nghĩa bảng máy chủ DOD và tôi không hoàn toàn tin rằng nó phù hợp hơn thông số kỹ thuật DNS.
coredump

Tôi nghĩ rằng việc tự do hóa các ràng buộc được đề cập ở cuối 6.1.3.5 chỉ đề cập đến việc cho phép ký tự đầu tiên là số - đây là sửa đổi duy nhất được đề cập trong phần 2.1 của RFC tương tự (đó là phần 6.1. 3,5 đề cập). Trong phần 2.1, định nghĩa từ RFC-952 được tham chiếu là định nghĩa của tên máy chủ hợp pháp.
Isaac

Đồng thời kiểm tra RFC 920 và 921 để xử lý việc di chuyển từ DARPA cũ sang tên miền.
coredump

1

Như bạn đã xác định, RFC 1123 không hoàn toàn rõ ràng về vấn đề độ dài này.

Mục 2.1 nói:

Phần mềm máy chủ PHẢI xử lý tên máy chủ tối đa 63 ký tự và NÊN xử lý tên máy chủ tối đa 255 ký tự

Vì văn bản này hoàn toàn ghi đè văn bản từ RFC 952, nên nó cũng được dùng để ngụ ý rằng bất kỳ độ dài nào lên tới 255 ký tự là hợp pháp.

Thật không may trở lại vào năm 1989 Bản nháp Internet đã không nhận được đánh giá cực kỳ nghiêm ngặt mà họ nhận được bây giờ, vì vậy sự mơ hồ có lẽ chỉ đơn giản là không được phát hiện.


1
Nhưng 2.1 cũng nói The syntax of a legal Internet host name was specified in RFC-952 [DNS:4]. One aspect of host name syntax is hereby changed: the restriction on the first character is relaxed to allow either a letter or a digit. Không hợp lý khi diễn giải điều này có nghĩa là trích dẫn của bạn không hoàn toàn ghi đè văn bản từ RFC-952?
Isaac

Nó nói vậy, nhưng rõ ràng là nó sai. RFC 1123 cũng thay đổi rõ ràng độ dài cho phép của tên máy chủ.
Alnitak
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.