Active Directory는 공백이있는 DNS 이름을 지원합니까?


8

네트워크에서 일부 정적 DNS-SD 서비스를 설정하는 방법을 살펴보면서 http://www.dns-sd.org/ServerStaticSetup.html 을 보았습니다. Active Directory의 DNS 서버는 공백이있는 DNS 이름을 지원하지 않습니다. 그들 안에.

이것이 여전히 사실인지 아는 사람이 있습니까 (페이지가 다소 오래되었다고 느끼는가)?

업데이트 : 주로 A / CNAME 레코드가 아닌 PTR 및 SRV 레코드를 말합니다.


2
이것은 미친 듯이 들릴 수 있지만, 결코 공간이있는 URI를 본 적이 없더라도 RFC 호환입니까? 왜 이것이 당신과 관련이 있습니까?
— SpacemanSpiff

11
RFC1035, 2.3.1 : "[도메인]은 문자로 시작하고 문자 또는 숫자로 끝나야하며 내부 문자로 문자, 숫자 및 하이픈 만 사용해야합니다."
— Smudge

@SpacemanSpiff 도메인 부분이 호스트 이름 (즉, 대부분)을 나타내는 URL 체계에서 RFC를 준수하지 않습니다 .
— Alnitak

만들려는 특정 종류의 항목에 대한 예를 들어 줄 수 있습니까?
— Alnitak

1
인용 문구 @Sam은 "도메인"이 아닌 호스트 이름 에 관한 것 입니다.
— Alnitak

답변:


30

도메인 이름 (255)의 범위 0 이진 옥텟들을 포함 할 수있다.

그러나 AD 항목이 호스트 이름을 나타내는 경우 공백은 유효한 문자가 아닙니다. 호스트 이름 (즉, A또는 AAAA레코드 를 가리키는 도메인 이름 )은 RFC 1123 의 규칙을 따라야합니다.이 규칙은 기본적으로 유효한 문자를 LDH ( "문자 숫자 하이픈")로 제한합니다.

따라서 다른 항목의 경우 MS가 RFC를 잘못 해석했을 가능성이 있습니다. 그들은 첫 번째가 아니며 확실히 마지막이 아닙니다.

참고 문헌

RFC 1035의 §5.1 :

인용 규칙을 사용하면 임의의 문자를 도메인 이름에 저장할 수 있습니다.

§6.1.3.5. 의 RFC 1123 :

DNS는 도메인 이름 구문 (일반적으로 점으로 구분 된 최대 63 개의 8 비트 옥텟을 포함하는 레이블 문자열)을 정의합니다.

과의 §11 RFC 2181 :

모든 리소스 레코드의 레이블로 사용될 수있는 모든 이진 문자열


네, 그게 제가 두렵습니다 ...
— gmw

9

아-저격해서 미안하지만 개가 여기에 있습니다. AD가 공백이있는 DNS 이름을 지원하지는 않지만 정의당 DNS 이름과 RFC는 공백을 가질 수 없습니다. RFC 952 및 1123은 모두 DNS 이름의 일부로 공백을 허용하지 않습니다.

따라서 AD는 DNS 이름의 공백을 단점으로 지원하지 않지만 다른 모든 것과 동일한 규칙을 따르기 때문입니다.


2
명명법을 수정하십시오. DNS 항목을 엄격하게 말하면 공백 이 포함될 수 있습니다. 그러나 호스트 이름 이 아닐 수도 있습니다.
— Alnitak

3
내가있는 거 잘못 사용하면 두려워 - DNS에 도메인 이름 (명확한 인스턴스가 되지 는 "호스트 이름"에 대한 RFC에게 1123 개 규칙을 따라야 할 필요가 없습니다 "ZONE 이름"). 예를 들어, SRV레코드에 사용되는 밑줄 접두어 이름 입니다. RFC 1123의 6.1.3.5 절 및 내 프로필도 참조하십시오.
— Alnitak

6
srv 레코드는 매우 특별한 경우입니다. 다시, 당신은 게임을한다. 공간이 어디에서 허용됩니까? 어딘가에 공간을 허용하는 RFC 섹션을 인용하십시오. 논쟁을 계속하면 여전히 잘못되었습니다. 누군가가 당신의 허세를 부르는 것을 멈추십시오.
— TomTom

17
RFC 1123의 " 6.1.3.5 "는 "DNS는 도메인 이름 구문을 매우 일반적으로 정의합니다. 각각 도메인은 최대 63 개의 8 비트 옥텟을 포함하는 레이블 문자열로 점으로 구분되어 있습니다. " DNS 표준과 프로토콜은 FWIW의 일상 업무입니다.
— Alnitak

1
@TomTom 내 대답 은 Alnitak이 옳다는 것을 보여주는 RFC의 관련 부분을 인용합니다. 호스트 이름 은 공백을 포함 할 수 없지만 일반적으로 DNS 이름은 공백을 포함 할 수 있습니다.
— aculich

5

특정 질문에 대한 대답은 아니요입니다 . Active Directory는 DNS 호스트 이름에 공백 을 허용 하지 않습니다 . 금지 된 문자는 KB 909264-Active Directory의 컴퓨터, 도메인, 사이트 및 OU 에 대한 명명 규칙에서 읽을 수없는 문자 라는 섹션 에 명확하게 설명되어 있습니다 .

DNS 호스트 이름은 공백 또는 공백 문자를 포함 할 수 없습니다.

일반적으로 Active Directory를 넘어 DNS 도메인 이름 시스템으로 답변을 확장하려면 상황이 약간 까다로워집니다. 특정 경우 공간이 기술적으로 허용되지만 실제로는 그러한 경우가 발생하지 않을 것입니다.

짧은 대답 : DNS 호스트 이름에 공백을 사용하지 마십시오!

RFC 3696, 도메인 제한 (DNS) 이름의 §2에 따른 긴 대답 은 다음과 같습니다.

DNS 이름에는 모든 문자 또는 비트 조합 (옥텟)이 DNS 이름에 허용됩니다.

계속해서 말합니다 (강조 광산) :

그러나 대부분의 응용 프로그램에 필요한 기본 양식이 있습니다. 이 기본 양식은 최상위 도메인 또는 TLD의 이름으로 허용되는 유일한 양식입니다. 일반적으로 사용자가 볼 수없는 일부 이름은 다른 규칙을 준수하지만 TLD에 등록 된 대부분의 2 차 이름에서 허용되는 유일한 형식이기도합니다 . 호스트 이름 지정에 대한 원래 ARPANET 규칙 (예 : "호스트 이름"규칙)에서 파생되며 허용되는 문자 다음에 "LDH 규칙"으로 더 잘 설명 될 수 있습니다. LDH 규칙은 다음과 같이 업데이트됩니다.도메인 이름을 구성하는 레이블 (마침표로 구분 된 단어 또는 문자열)은 ASCII [ASCII] 알파벳 및 숫자와 하이픈으로 구성되어야합니다. 다른 기호 나 문장 부호는 허용되지 않으며 공백도 허용되지 않습니다. 하이픈을 사용하는 경우 레이블의 시작 또는 끝에 표시 할 수 없습니다. 최상위 도메인 이름이 모두 숫자가 아니어야하는 추가 규칙이 있습니다.

이 수단 실제로 당신이해야 공간을 사용하지 , 비록에서이 발췌에 정의 된 도메인 이름의 가장 일반적인 사양 RFC 1035의 §5.1 가 도메인 이름에 공백을 허용 할 수 있습니다 :

<도메인 이름>은 마스터 파일에서 데이터의 많은 부분을 구성합니다. 도메인 이름의 레이블은 문자열로 표시되며 점으로 구분됩니다. 인용 규칙을 사용하면 임의의 문자를 도메인 이름에 저장할 수 있습니다.

과

<문자열>은 하나 또는 두 가지 방식으로 표시됩니다. 내부 공간이없는 연속 된 문자 세트 또는 "로 시작하고"로 끝나는 문자열로 표시됩니다. "구분 된 문자열 내에서 \ (백 슬래시)를 사용하여 인용해야하는"자체를 제외한 모든 문자가 발생할 수 있습니다.

RFC 1035의 다른 부분 , 특히 §2.3 에서는 다음과 같이 경고합니다.

2.3. 컨벤션

도메인 시스템에는 저수준이지만 근본적인 문제를 다루는 몇 가지 규칙이 있습니다. 구현자는 자신의 시스템 내에서 이러한 규칙을 자유롭게 위반할 수 있지만 다른 호스트에서 관찰 된 모든 동작에서 이러한 규칙을 준수해야합니다.

2.3.1. 선호하는 이름 구문

DNS 사양은 도메인 이름 구성 규칙에서 최대한 일반적으로 시도합니다. 아이디어는 기존 객체의 이름을 최소한의 변경으로 도메인 이름으로 표현할 수 있다는 것입니다.

그러나 개체에 도메인 이름을 할당 할 때 신중한 사용자는 이러한 규칙이 기존 프로그램에 의해 게시되거나 암시되는지 여부에 관계없이 도메인 시스템의 규칙과 개체의 기존 규칙을 모두 만족하는 이름을 선택합니다.

예를 들어, 메일 도메인 이름을 지정할 때 사용자는이 메모의 규칙과 RFC-822의 규칙을 모두 만족시켜야합니다. 새 호스트 이름을 만들 때는 HOSTS.TXT의 이전 규칙을 따라야합니다. 이렇게하면 이전 소프트웨어를 도메인 이름을 사용하도록 변환 할 때 문제가 발생하지 않습니다.

본인의 해석에 대한 추가 설명이나 수정을 분명히 환영하지만 RFC의 특정 섹션을 인용하여이 해석을 확인하거나 거부하지 않는 한 그렇게하지 마십시오.


이제 downvote를 제거 하시겠습니까? ;)
— Alnitak

추가 참조를 위해 +1 (RFC 3696)
— Alnitak

@Alnitak, 예. 처음에 게시물을 잘못 읽었습니다 ... 이제 downvote와 내 의견을 제거했습니다 (그래서 더 혼란스럽지 않습니다). RFC가 작성되는 방식은이 인터넷 전체가 전혀 작동하지 않는 것이 놀랍습니다! :)
— aculich

IP 주소 옥텟에 대해 말하고 싶지 않다는 것을 분명히하기 위해 "이진"자격을 추가했습니다. DNS RFC는 당시와 같이 엄격한 검토를받지 않았기 때문에 특히 이해하기 어려울 수 있으며 불일치는 매우 일반적입니다.
— Alnitak

네, 이제 "이진"이라고 말한 것을 알 수 있습니다.
— aculich

0

기본적으로 Windows DNS 서버는 DNS 이름에서 공백을 지원하지 않지만 '서버 속성-> 고급 탭-> 이름 확인'을 '모든 이름'으로 변경하면 서버는 공백이있는 항목을 행복하게 받아들이고 제공합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.