IP를 찾으려고 한다고 가정해 보겠습니다 mail.yahoo.com
.gmail.com
mail.google.com
내가 실행하는 경우:
dig @8.8.8.8 +nocomments +noquestion \
+noauthority +noadditional +nostats +nocmd \
gmail.com mail.yahoo.com mail.google.com
나는 얻다:
gmail.com. 299 IN A 173.194.123.21
gmail.com. 299 IN A 173.194.123.22
mail.yahoo.com. 0 IN CNAME login.yahoo.com.
login.yahoo.com. 0 IN CNAME ats.login.lgg1.b.yahoo.com.
ats.login.lgg1.b.yahoo.com. 0 IN CNAME ats.member.g02.yahoodns.net.
ats.member.g02.yahoodns.net. 0 IN CNAME any-ats.member.a02.yahoodns.net.
any-ats.member.a02.yahoodns.net. 17 IN A 98.139.21.169
mail.google.com. 0 IN CNAME googlemail.l.google.com.
googlemail.l.google.com. 243 IN A 173.194.123.21
googlemail.l.google.com. 243 IN A 173.194.123.22
CNAME
레코드가 표시되면 A
이에 해당하는 레코드가 CNAME
다른 시스템에 해당하는 레코드나 A
다른 호스트 이름에 대한 레코드 앞에 나타나지 않도록 할 수 있나요?
예를 들어 다음 사항에 집중하겠습니다 mail.yahoo.com
(해당 IP만 mail.yahoo.com
확인하고 싶습니다).
출력은 다음과 같습니다.
mail.yahoo.com. 0 IN CNAME login.yahoo.com.
login.yahoo.com. 0 IN CNAME ats.login.lgg1.b.yahoo.com.
ats.login.lgg1.b.yahoo.com. 0 IN CNAME ats.member.g02.yahoodns.net.
ats.member.g02.yahoodns.net. 0 IN CNAME any-ats.member.a02.yahoodns.net.
any-ats.member.a02.yahoodns.net. 17 IN A 98.139.21.169
내가 찾고 있는 호스트 이름()은 mail.yahoo.com
첫 번째 항목의 첫 번째 열입니다. 그런 다음에 CNAMES
는 제가 별로 신경 쓰지 않는 것들이 많이 있고 , 그 다음으로는 A
(제가 신경 쓰는) 실제 IP가 포함된 기록들이 있습니다.
CNAMES
녹화가 오작동 할 수 있나요 A
? 그것은 다음과 같습니다:
ats.login.lgg1.b.yahoo.com. 0 IN CNAME ats.member.g02.yahoodns.net. #(!)BAD
ats.member.g02.yahoodns.net. 0 IN CNAME any-ats.member.a02.yahoodns.net. #(!)BAD
mail.yahoo.com. 0 IN CNAME login.yahoo.com.
login.yahoo.com. 0 IN CNAME ats.login.lgg1.b.yahoo.com.
any-ats.member.a02.yahoodns.net. 17 IN A 98.139.21.169
A
또는 더 나쁜 경우(실제 기록은 상단에 있음):
any-ats.member.a02.yahoodns.net. 17 IN A 98.139.21.169
mail.yahoo.com. 0 IN CNAME login.yahoo.com.
login.yahoo.com. 0 IN CNAME ats.login.lgg1.b.yahoo.com.
ats.login.lgg1.b.yahoo.com. 0 IN CNAME ats.member.g02.yahoodns.net.
ats.member.g02.yahoodns.net. 0 IN CNAME any-ats.member.a02.yahoodns.net.
또는 더 나쁠 수도 있습니다( dig
포스트 상단에 표시된 다중 해상도 실행에서).
ats.member.g02.yahoodns.net. 0 IN CNAME any-ats.member.a02.yahoodns.net.
any-ats.member.a02.yahoodns.net. 17 IN A 98.139.21.169
mail.google.com. 0 IN CNAME googlemail.l.google.com. # This one I want
gmail.com. 299 IN A 173.194.123.21 # This one I want
gmail.com. 299 IN A 173.194.123.22 # This one I want
mail.yahoo.com. 0 IN CNAME login.yahoo.com. # This one I want
login.yahoo.com. 0 IN CNAME ats.login.lgg1.b.yahoo.com.
ats.login.lgg1.b.yahoo.com. 0 IN CNAME ats.member.g02.yahoodns.net.
googlemail.l.google.com. 243 IN A 173.194.123.21
googlemail.l.google.com. 243 IN A 173.194.123.22
답변1
dig
결과는 재정렬되지 않으며 이름 서버가 결과를 반환하는 순서대로 표시됩니다. 이름 서버는 일반적으로 특정 레코드가 쿼리될 때마다(간단한 형태의 로드 밸런싱을 달성하기 위해) 결과를 섞습니다(무작위 또는 라운드 로빈). 하지만 이 설정을 재정의하는 서버 구성 옵션이 있을 수 있습니다. BIND의 경우 관련 옵션은 다음과 같습니다.rrset-order
그리고sortlist
.
내가 아는 한, 한 번의 호출로 여러 쿼리를 실행하면 각 이름에 대해 순차적으로 개별적으로 실행하는 dig
것과 같습니다 . dig
코드가 명령줄에 나타나는 순서대로 반복되지 않는 이유를 상상할 수 없습니다.
서버가 CNAME
최종 답변을 얻기 위해 기록을 따라야 하는 경우DNS 사양각 별칭이 처리 순서대로 응답에 추가됨을 나타냅니다. 따라서 입력한 원래 이름이 첫 번째 순위에 오르고 최종 결과는 마지막에 순위가 매겨지는 것을 보장할 수 있습니다.