DNS, A 레코드 와일드 카드가보다 구체적인 CNAME보다 우선합니까?


18

"example.com"에 대한 모든 하위 도메인을 처리하도록 와일드 카드를 설정했습니다

레코드 : * .example.com은 10.10.10.10을 가리 킵니다.

우리는 특별한 하위 도메인을 처리하기 위해보다 구체적인 A 레코드를 가지고 있습니다 (이것은 잘 작동합니다).

레코드 : staging.example.com points 10.10.10.9

우리가 겪고있는 문제는 새로운 호스팅 환경으로 스테이징을 마이그레이션하고 있으며 CNAME을 사용하라는 지시를 받았습니다.

CNAME : new-staging.example.com이 proxy.heroku.com을 가리킴

우리는 이것이 효과가 있다고 생각했습니다. 그러나 new-staging.example.com은 최상위 와일드 카드 10.10.10.10으로 해석되며 proxy.heroku.com을 가리 키지 않습니다.

내가 무엇을 놓치고 있습니까? 이것이 불가능합니까? 아니면 이것이 나쁜 습관입니까? 감사,


1
ISP의 웹 인터페이스를 통해 실시간으로 설정하거나 BIND 또는 djbdns를 실행 중입니까?
Jonathan Ross

"최상위 와일드 카드로 해결된다"고 말하면이 해결 방법은 어떻습니까? dig -t ANY new-staging.example.com?
nickgrim

@Jonathan, 우리는 현재 Slicehost를 사용하여 DNS를 관리하고 있으므로 웹 인터페이스를 통해 이루어집니다.
zdennis

dig -t ANY new-staging.example.com을 실행할 때 @nickgrim : new-staging.example.com을 얻습니다. 82880 CNAME proxy.heroku.com.example.com. proxy.heroku.com.example.com. 86400 IN A 10.10.10.10
zdennis

답변:


15

대답은 일반적으로 "아니오"입니다.보다 구체적인 기록이 이길 수 있으므로 설명 / 예상대로 작동합니다. 내 생각 엔 와일드 카드 A 레코드가 어딘가에 캐시되어 있고 해당 캐시가 만료 될 때까지 기다려야합니다.

BIND 9.6.2-P2 / FreeBSD 8.1을 사용한 빠른 테스트 :
레코드를 포함하는 영역 :

example.net.                IN      A      127.0.0.2
*.test.example.net.         IN      A      127.0.0.1
specific.test.example.net.  IN      CNAME  example.net.

다음과 같이 해결됩니다.

% dig specific.test.example.net

; <<>> DiG 9.6.2-P2 <<>> specific.test.example.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17222
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;specific.test.example.net. IN  A

;; ANSWER SECTION:
specific.test.example.net. 3600 IN  CNAME   example.net.
example.net.               3600 IN  A   127.0.0.2

;; AUTHORITY SECTION:
example.net.        3600    IN  NS  ns1.example.net.

;; ADDITIONAL SECTION:
ns1.example.net.    3600    IN  A   127.0.0.1

(반환 CNAME)

% dig nonspecific.test.example.net

; <<>> DiG 9.6.2-P2 <<>> nonspecific.test.example.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26980
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;nonspecific.test.example.net.  IN  A

;; ANSWER SECTION:
nonspecific.test.example.net. 3600 IN   A   127.0.0.1

;; AUTHORITY SECTION:
example.net.        3600    IN  NS  ns1.example.net.


;; ADDITIONAL SECTION:
ns1.example.net.    3600    IN  A   127.0.0.1

(와일드 카드 A 레코드를 반환)


이것이 DNS 표준에 있습니까, 아니면 구현에 특정한 것입니까?
Bigbio2002

@ Bigbio2002 나는 그것이 표준의 일부 라고 생각 합니다 -RFC 4592 는 볼만한 관련 장소입니다-뇌는 하루 종일 문서를 작성하는 것부터 RFC를 읽는 것에 이르기까지 약간 수프입니다. :-)
voretaq7

7

질문에 대한 귀하의 의견에 따르면 :

dig -t ANY new-staging.example.com을 실행하면 new-staging.example.com이 나타납니다. 82880 CNAME proxy.heroku.com.example.com. proxy.heroku.com.example.com. 10.10.10.10에서 86400

... DNS를 잘못 구성했습니다. CNAME의 목표를로 설정해야 proxy.heroku.com.합니다. 마지막 기간이 중요합니다! 이것이 없으면 DNS 서버는 사용자가 example.com영역 내의 호스트를 참조하고 있다고 가정 proxy.heroku.com.example.com하고 와일드 카드 레코드에 의해 잡히고 있다고 가정합니다 .


CNAME 레코드가 "proxy.heroku.com"으로 설정되었습니다. 슬라이스 호스트 이름 서버를 직접 파헤 치면 (dig @ ns1.slicehost.com) 제공된 유일한 대답은 proxy.heroku.com에 대한 CNAME을 가리 킵니다. 우리가 그것을 지정하지 않고 발굴하면 두 가지 답변 (여기에 내가 게시 한 답변이 반영됩니다)이 제공됩니다. 이것은 아마도 @ voretaq7이 캐시 문제가 있다고 생각할 수 있다고 생각합니까? 파고봤을 때 보이는 것과 일치합니까?
zdennis

예, 이는 귀하의 DNS 캐시 업스트림이 잘못된 (기간이 아닌) 버전을 캐시했음을 의미합니다. TTL이 만료 될 때까지 기다리거나 그 동안 다른 이름 ( new-new-staging?)을 설정해야합니다 .
nickgrim

누락 된 점은 저를 트립 한 것입니다.
loevborg

0

이 게시물이 공유 Plesk Linux 서버에서 어떻게 수행되는지 조사했습니다. 이 예에서는 vhost.conf에 모두 추가하고 DNS를 업데이트해야하는 DNS / vhost.conf 솔루션 조합을 나타냅니다.

견적 : "알파벳순으로 정렬 된 하위 도메인 목록에서 마지막이어야하므로"zz "로 이름을 시작하십시오. http://kb.parallels.com/2239

내 생각에 이것은 더 구체적인 기록이 반환되는 '정상적인'DNS 이론과 다릅니다.

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