RFC 2782를 위반하여 CNAME 별칭을 가리키는 SRV 레코드가 게시 되었습니까? 있습니다. 즉, 다음과 같은 것입니다. > dig

몇 가지 업무를 수행하면서 SRV 레코드를 정리해야하며, Wikipedia 선언을 DNS 발굴에서보고있는 내용과 조정하려고합니다.

에 따르면 위키 백과의 SRV 레코드 항목 ,

SRV 레코드의 대상은 주소 레코드 (A 또는 AAAA 레코드)가있는 호스트 이름을 가리켜 야합니다. CNAME 레코드가있는 호스트 이름을 가리키는 것은 올바른 구성이 아닙니다.

그러나 digCNAME 레코드의 별칭 인 이름을 가리키는 SRV 레코드를 반환하는 레코드가 있습니다.

즉, 다음과 같은 것입니다.

> dig _https._tcp.alpha.domain.com SRV

;; QUESTION SECTION:
;_https._tcp.alpha.domain.com.    IN    SRV

;; ANSWER SECTION:
_https._tcp.alpha.domain.com 59 IN SRV 30 30 4443 alias.domain.com


> dig alias.domain.com

;; QUESTION SECTION:
;alias.domain.com.    IN    A

;; ANSWER SECTION:
alias.domain.com.  35  IN  CNAME canonical.name.amazonaws.com.
canonical.name.amazonaws.com. 35 IN A 52.78.234.189
canonical.name.amazonaws.com. 35 IN A 107.21.179.88
canonical.name.amazonaws.com. 35 IN A 52.12.126.92

SRV 레코드는 Wikipedia 항목이 허용되지 않는 방식과 정확히 일치하는 것으로 보입니다. 내가 무엇을 오해하고 있습니까? SRV 레코드가 주소 레코드가 아닌 CNAME 레코드가있는 alias.domain.com을 가리키는 것으로 표시되지 않습니까?



답변

인용 한 Wikipedia 기사는 SRV 레코드에 대한 관련 RFC 2782의 상태를보고합니다.

표적

대상 호스트의 도메인 이름 이 이름에는 하나 이상의 주소 레코드가 있어야하며, 이름은 별칭이 아니어야합니다 (RFC 1034 또는 RFC 2181의 의미).

당신이보고있는 것은 규칙을 분명히 위반하는 것입니다. 그러나, 그것은 수있는 일을 (그리고 일반적으로 어떤 클라이언트 응용하면 해당 SRV 레코드를 찾고 있습니다 경우에만 응답 A 레코드를 기대한다하더라도, 제대로 CNAME 레코드를 처리 할 수있는 스마트 충분히이며, 않습니다).

그러나 전혀 작동 하지 않을 수도 있습니다 . 지원되지 않으며 클라이언트 응용 프로그램에 전적으로 의존합니다. 따라서 적절한 규칙을 따르지 않고 잘못되거나 예측할 수없는 결과를 초래할 수 있으므로 피해야합니다.

이것은 MX 레코드를 CNAME으로 지정하는 것과 유사합니다. CNAME은 하나 뿐 아니라 두 개의 RFC 에서 잘못 정의 되었지만 여전히 일반적인 관행입니다 (메일 서버에는 문제가없는 것 같습니다).


답변

이것이 제한된 행동의 예입니다. 제한 자체는 “target”의 정의 에서 RFC 2781 에서 비롯됩니다 .

   Target
        The domain name of the target host.  There MUST be one or more
        address records for this name, the name MUST NOT be an alias (in
        the sense of RFC 1034 or RFC 2181).  Implementors are urged, but
        not required, to return the address record(s) in the Additional
        Data section.  Unless and until permitted by future standards
        action, name compression is not to be used for this field.

        A Target of "." means that the service is decidedly not
        available at this domain.

금지 된 구성을 허용하는 DNS 서버 소프트웨어는 불행히도 새로운 것이 아닙니다. 별명을 가진 대상이 금지 된 다른 레코드 유형 (예 : NS및) 과 마찬가지로 발생할 수 있습니다 MX. (위에 언급했듯이)

그것이 야생에서 발견된다고해서 그것이 “괜찮다”는 것을 의미하지는 않으며, 표준이 무시 될 때 발생하는 일은 제품마다 다릅니다. SRV레코드 와의 상호 작용을 테스트 하지는 않았지만 NS별칭을 가리키는 레코드 와 관련하여 ISC BIND의 매우 잘 알려진 디자인 결정 은 재귀 중에 발견되면 레코드를 완전히 삭제하는 것 입니다. 모든 NS레코드가이 방식으로 삭제 되면 모든 쿼리 결과는 SERVFAIL해당 하위 도메인에 대한 결과입니다 .

요컨대, 표준을 고수하십시오. 유일하게 안전한 일입니다.


답변