Active Directory có hỗ trợ tên DNS có dấu cách không?


8

Trong khi xem xét cách thiết lập một số dịch vụ DNS-SD tĩnh trong mạng của chúng tôi, tôi đã tìm thấy http://www.dns-sd.org/ServerStaticSetup.html , nói rằng máy chủ DNS của Active Directory không hỗ trợ tên DNS có khoảng trắng trong chúng.

Có ai biết nếu điều này vẫn còn đúng (vì trang cảm thấy khá cũ)?

Cập nhật: Tôi chủ yếu đề cập đến các bản ghi PTR và SRV, không phải bản ghi A / CNAME.


2
Điều này nghe có vẻ điên rồ, nhưng tôi chưa bao giờ, EVER đã thấy một URI có khoảng trắng trong đó, thậm chí có tuân thủ RFC không? Tại sao điều này có liên quan đến bạn?
SpacemanSpiff

11
RFC1035, 2.3.1: "[Tên miền] phải bắt đầu bằng một chữ cái, kết thúc bằng một chữ cái hoặc chữ số và có các ký tự bên trong chỉ có các chữ cái, chữ số và dấu gạch nối."
Smudge

@SpacemanSpiff không tuân thủ RFC trong bất kỳ lược đồ URL nào trong đó phần tên miền đại diện cho tên máy chủ (tức là hầu hết trong số chúng).
Alnitak

Bạn có thể đưa ra một ví dụ về loại mục cụ thể mà bạn muốn tạo không?
Alnitak

1
@Sam cụm từ được trích dẫn là về tên máy chủ , không phải "tên miền".
Alnitak

Câu trả lời:


30

Một tên miền có thể bao gồm bất kỳ octet nhị phân nào trong phạm vi 0 đến 255.

Tuy nhiên, nếu các mục AD của bạn đại diện cho tên máy chủ , thì một khoảng trắng không phải là ký tự hợp lệ. Tên máy chủ (tức là một tên miền trỏ đến một Ahoặc AAAAbản ghi) phải tuân theo các quy tắc từ RFC 1123 , về cơ bản giới hạn các ký tự pháp lý đối với LDH ("gạch nối chữ số").

Do đó, đối với các mục khác, MS hoàn toàn có thể hiểu sai về RFC. Họ sẽ không phải là người đầu tiên, và họ chắc chắn sẽ không phải là người cuối cùng.

Người giới thiệu

§5.1 của RFC 1035 :

Quy ước trích dẫn cho phép các ký tự tùy ý được lưu trữ trong tên miền.

và §6.1.3.5. của RFC 1123 :

DNS định nghĩa cú pháp tên miền rất chung chung - một chuỗi các nhãn có chứa tới 63 octet 8 bit, được phân tách bằng dấu chấm

và §11 của RFC 2181 :

bất kỳ chuỗi nhị phân nào cũng có thể được sử dụng làm nhãn của bất kỳ bản ghi tài nguyên nào


Vâng, đó là những gì tôi sợ ...
gmw

9

Ah - xin lỗi để được snippy, nhưng bạn có một con chó vẫy ở đây. Không phải là AD không hỗ trợ tên DNS có khoảng trắng, nhưng tên DNS theo định nghĩa và RFC không được phép có khoảng trắng để bắt đầu. Cả RFC 952 và 1123 đều không cho phép khoảng trắng như một phần của tên DNS.

Vì vậy, AD không thiếu sự hỗ trợ cho các khoảng trắng trong tên DNS dưới dạng rút gọn mà vì nó tuân theo các quy tắc giống như mọi người khác.


2
Vui lòng sửa danh pháp của bạn. Nói đúng ra một mục DNS có thể chứa dấu cách. Tuy nhiên một tên máy chủ có thể không.
Alnitak

3
Tôi e rằng bạn đã sai - trong DNS có các trường hợp tên miền rõ ràng ( không phải "tên ZONE") không bắt buộc phải tuân theo quy tắc RFC 1123 cho "tên máy chủ". Ví dụ, tên tiền tố gạch dưới được sử dụng bởi SRVcác bản ghi. Xem thêm §6.1.3.5 của RFC 1123 và hồ sơ của tôi.
Alnitak

6
hồ sơ srv là trường hợp rất đặc biệt. Một lần nữa, bạn chơi game. Nó cho phép một không gian ở đâu? Trích dẫn phần của RFC cho phép một không gian ở đâu đó, và bạn đã đúng. Tiếp tục tranh luận và bạn vẫn sai. Ngừng than vãn ai đó gọi vô tội vạ của bạn.
TomTom

17
Tôi đã thực hiện - §6.1.3.5 của RFC 1123 "DNS thường định nghĩa cú pháp tên miền rất chung - một chuỗi các nhãn có chứa tới 63 octet 8 bit, được phân tách bằng dấu chấm" . Các tiêu chuẩn DNS và giao thức là công việc hàng ngày của tôi, FWIW.
Alnitak

1
@TomTom câu trả lời của tôi trích dẫn phần có liên quan của RFC cho thấy Alnitak là chính xác; tên máy chủ CÓ THỂ KHÔNG chứa khoảng trắng, tuy nhiên tên DNS nói chung CÓ THỂ chứa khoảng trắng.
aculich

5

Câu trả lời cho câu hỏi cụ thể của bạn là KHÔNG , Active Directory KHÔNG cho phép khoảng trắng trong tên máy chủ DNS . Các ký tự bị cấm được phác thảo rõ ràng trong KB 909264 - Quy ước đặt tên trong Active Directory cho máy tính, tên miền, trang web và OU trong phần có nhãn Các ký tự không được phép đọc:

Tên máy chủ DNS không thể chứa các ký tự trống hoặc dấu cách.

Để mở rộng câu trả lời ngoài Active Directory cho hệ thống tên miền DNS nói chung, tình huống phức tạp hơn một chút vì trong khi về mặt kỹ thuật, các khoảng trống được cho phép trong thực tế, có thể bạn sẽ không bao giờ gặp phải trường hợp như vậy.

Câu trả lời ngắn gọn: KHÔNG SỬ DỤNG SPACES TRONG DNS HOSTNAMES!

Câu trả lời dài theo §2 của RFC 3696, Hạn chế về tên miền (DNS) là:

Bất kỳ ký tự hoặc tổ hợp bit nào (dưới dạng octet), đều được phép trong tên DNS.

Nó tiếp tục nêu rõ (nhấn mạnh của tôi):

Tuy nhiên, có một hình thức ưa thích được yêu cầu bởi hầu hết các ứng dụng. Biểu mẫu ưa thích này là hình thức duy nhất được phép trong tên của các tên miền cấp cao nhất hoặc TLD. Nói chung, đây cũng là hình thức duy nhất được phép trong hầu hết các tên cấp hai được đăng ký trong TLD, mặc dù một số tên thường không được người dùng nhìn thấy tuân theo các quy tắc khác. Nó xuất phát từ các quy tắc ARPANET ban đầu để đặt tên máy chủ (nghĩa là quy tắc "tên máy chủ") và có lẽ được mô tả tốt hơn là "quy tắc LDH", sau các ký tự mà nó cho phép. Quy tắc LDH, như được cập nhật, cung cấp rằngcác nhãn (từ hoặc chuỗi được phân tách bằng dấu chấm) tạo nên một tên miền phải chỉ bao gồm các ký tự chữ và số ASCII [ASCII], cộng với dấu gạch nối. Không cho phép các ký hiệu hoặc ký tự dấu chấm câu khác, cũng như không gian trống. Nếu dấu gạch nối được sử dụng, nó không được phép xuất hiện ở đầu hoặc cuối nhãn. Có một quy tắc bổ sung về cơ bản yêu cầu các tên miền cấp cao nhất không phải là số.

Trong thực tế, điều này có nghĩa là bạn KHÔNG nên sử dụng khoảng trắng , mặc dù trong đặc điểm kỹ thuật chung nhất của tên miền như được định nghĩa trong các đoạn trích từ §5.1 của RFC 1035 , có thể cho phép khoảng trắng trong tên miền:

<domain-name> s chiếm một phần lớn dữ liệu trong tệp chính. Các nhãn trong tên miền được thể hiện dưới dạng các chuỗi ký tự và được phân tách bằng dấu chấm. Quy ước trích dẫn cho phép các ký tự tùy ý được lưu trữ trong tên miền.

<chuỗi ký tự> được thể hiện theo một hoặc hai cách: dưới dạng một tập hợp các ký tự không có khoảng trắng bên trong hoặc dưới dạng một chuỗi bắt đầu bằng "và kết thúc bằng". Bên trong một "chuỗi phân cách, bất kỳ ký tự nào cũng có thể xảy ra, ngoại trừ chính", phải được trích dẫn bằng cách sử dụng \ (dấu gạch chéo ngược).

Hãy nhớ rằng những nơi khác trong RFC 1035, cụ thể là §2.3 , nó cảnh báo:

2.3. Công ước

Hệ thống miền có một số quy ước xử lý các vấn đề cấp thấp, nhưng cơ bản. Mặc dù người triển khai có thể tự do vi phạm các quy ước này TRONG HỆ THỐNG CỦA RIÊNG, anh ta phải tuân thủ các quy ước này trong TẤT CẢ hành vi được quan sát từ các máy chủ khác.

2.3.1. Cú pháp tên ưa thích

Các thông số kỹ thuật DNS cố gắng chung chung nhất có thể trong các quy tắc để xây dựng tên miền. Ý tưởng là tên của bất kỳ đối tượng hiện có có thể được thể hiện dưới dạng một tên miền với những thay đổi tối thiểu.

Tuy nhiên, khi gán tên miền cho một đối tượng, người dùng thận trọng sẽ chọn một tên thỏa mãn cả quy tắc của hệ thống miền và bất kỳ quy tắc hiện có nào cho đối tượng, cho dù các quy tắc này được xuất bản hay ngụ ý bởi các chương trình hiện có.

Ví dụ: khi đặt tên miền thư, người dùng phải đáp ứng cả quy tắc của bản ghi nhớ này và các quy tắc trong RFC-822. Khi tạo tên máy chủ mới, cần tuân thủ các quy tắc cũ cho HOSTS.TXT. Điều này tránh các vấn đề khi phần mềm cũ được chuyển đổi để sử dụng tên miền.

Tôi chắc chắn sẽ hoan nghênh làm rõ thêm hoặc sửa chữa cách giải thích của tôi, nhưng xin vui lòng không làm như vậy trừ khi bạn có thể trích dẫn các phần RFC cụ thể để xác nhận hoặc từ chối giải thích này.


Vì vậy, bạn sẽ loại bỏ downvote của bạn bây giờ? ;)
Alnitak

+1 cho tham chiếu bổ sung (RFC 3696)
Alnitak

@Alnitak, vâng, ban đầu tôi đọc nhầm bài viết của bạn ... hiện đã xóa downvote và bình luận của tôi (vì vậy nó không thêm vào sự nhầm lẫn nữa). Cách các RFC được viết thật đáng ngạc nhiên khi toàn bộ công việc trên internet này hoạt động! :)
aculich

Tôi đã thêm trình độ "nhị phân" sau khi bạn nhận xét để làm rõ rằng tôi sẽ không nói về octet địa chỉ IP. Các RFC DNS có thể đặc biệt khó hiểu bởi vì trước đó họ không nhận được đánh giá nghiêm ngặt như hiện tại và sự không nhất quán là khá phổ biến.
Alnitak

Vâng, tôi thấy rằng bây giờ bạn đã nói "nhị phân".
aculich

0

Theo mặc định, máy chủ DNS của Windows không hỗ trợ khoảng trắng trong tên DNS, tuy nhiên bằng cách thay đổi cài đặt 'Thuộc tính máy chủ -> tab Nâng cao -> Kiểm tra tên' thành 'Tất cả tên', máy chủ sẽ vui vẻ chấp nhận và phục vụ các mục có khoảng trắng.

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.