답변:
DNS는 동일한 유형의 여러 항목을 허용합니다. 이를 위해 여러 서버에서 사이트를 호스팅 할 수 있으므로 모든 것이 다운 될 가능성이 줄어 듭니다.
예를 들어 superuser.com에 대한 A 레코드를 요청할 수 있습니다. 결과는 다음과 같습니다.
cas@PC0075:/home/cas$ dig superuser.com A
; <<>> DiG 9.9.5-3ubuntu0.10-Ubuntu <<>> superuser.com A
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26473
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4000
;; QUESTION SECTION:
;superuser.com. IN A
;; ANSWER SECTION:
superuser.com. 299 IN A 151.101.193.69
superuser.com. 299 IN A 151.101.129.69
superuser.com. 299 IN A 151.101.1.69
superuser.com. 299 IN A 151.101.65.69
;; Query time: 69 msec
;; SERVER: 172.17.1.1#53(172.17.1.1)
;; WHEN: Tue Dec 06 10:01:18 STD 2016
;; MSG SIZE rcvd: 106
이 경우 superuser.com을 탐색하려고하면 컴퓨터가 실제로 151.101.193.69, 151.101.129.69, 151.101.1.69 또는 151.101.65.69에 연결됩니다. 어떤 것을 골라야할지 모르겠지만 무작위 인 것 같습니다.
동일한 유형을 사용하는 여러 레코드가있는 또 다른 경우는 MX 레코드입니다. 이러한 레코드는 전자 메일을 보낼 위치를 정의하며 첫 번째 시도가 실패한 경우 여러 레코드를 사용하면 대체 서버를 사용할 수 있습니다.
cas@PC0075:/home/cas$ dig cloudflare.com MX
; <<>> DiG 9.9.5-3ubuntu0.10-Ubuntu <<>> cloudflare.com MX
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35678
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 11
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4000
;; QUESTION SECTION:
;cloudflare.com. IN MX
;; ANSWER SECTION:
cloudflare.com. 85863 IN MX 20 alt1.aspmx.l.google.com.
cloudflare.com. 85863 IN MX 30 alt2.aspmx.l.google.com.
cloudflare.com. 85863 IN MX 40 aspmx2.googlemail.com.
cloudflare.com. 85863 IN MX 50 aspmx3.googlemail.com.
cloudflare.com. 85863 IN MX 10 aspmx.l.google.com.
;; ADDITIONAL SECTION:
alt1.aspmx.l.google.com. 292 IN A 74.125.68.27
alt1.aspmx.l.google.com. 292 IN AAAA 2404:6800:4003:c02::1a
alt2.aspmx.l.google.com. 292 IN A 108.177.97.27
alt2.aspmx.l.google.com. 292 IN AAAA 2404:6800:4008:c00::1b
aspmx2.googlemail.com. 292 IN A 74.125.68.27
aspmx2.googlemail.com. 292 IN AAAA 2404:6800:4003:c02::1a
aspmx3.googlemail.com. 292 IN A 108.177.97.27
aspmx3.googlemail.com. 292 IN AAAA 2404:6800:4008:c00::1b
aspmx.l.google.com. 292 IN A 173.194.79.27
aspmx.l.google.com. 292 IN AAAA 2a00:1450:4013:c02::1b
;; Query time: 174 msec
;; SERVER: 172.17.1.1#53(172.17.1.1)
;; WHEN: Tue Dec 06 10:03:31 STD 2016
;; MSG SIZE rcvd: 393
보시다시피 Cloudflare는 이메일에 G 제품군을 사용하며 5 개의 서로 다른 MX 레코드를 정의했습니다. 내 메일 클라이언트는 aspmx.l.google.com.
우선 순위 10 부터 시작하여 로 끝나는 오름차순으로이 레코드를 통과합니다 aspmx3.googlemail.com.
. 이 MX 레코드는 다른 도메인을 가리 키므로 내 dig
명령도 해당 도메인 을 찾아 보았습니다. 이러한 메일 서버 중 일부는 실제로 동일한 IP 주소를 공유한다는 것을 알 수 있습니다. 그러면 메일을 시도하고 전달하기 위해 연결할 수있는 3 개의 다른 IP 주소가 남아 있습니다. 나는 구글이 라우팅 마술을하고 실제로 다른 서버라고 생각하지만 솔직히 모른다.
도메인의 DNS 레코드를 수정하지 않고 컴퓨터가 항상 특정 IP 주소에 연결되도록하려면 항상 호스트 파일을 수정하면됩니다.
TL; DR : 동일한 유형의 DNS 레코드 두 개를 갖는 것은 일반적으로 좋은 일입니다. 이는 실패 할 경우 사용 가능한 추가 리소스가 있음을 의미하기 때문입니다. 어떤 컴퓨터에 연결하고 있는지 확실하지 않으면 디버깅이 더 어려워 질 수 있습니다.
이는 해당 주소에 대해 두 개의 서버 (또는 해당 IP를 가진 두 개 이상의 엔드 포인트가 있음)를 의미합니다.
예를 들어 Google을 검색하면 많은 주소 (및 서버)가 있음을 알 수 있습니다
dig google.com A
하나의 IP로만 응답합니다. 내가 묻는 리졸버에 따라 다른 IP로 응답합니다. 외부 게이트웨이 뒤에서 라우팅 마술을하는 것 같습니다.