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.