소규모 사이트에 지역 중복 DNS가 필요한 이유는 무엇입니까?


31

이것은이다 캐 노니 컬 질문 DNS에 대한 지리적 중복.

탄력적 인 웹 서비스를 제공 할 때 별도의 물리적 위치에있는 중복 중복 DNS 서버가 바람직하다는 것은 매우 일반적인 지식입니다. 이 내용은 문서 BCP 16 에서 자세히 다루지 만 가장 자주 언급되는 이유는 다음과 같습니다.

  • 데이터 센터 재해로부터 보호. 지진이 발생합니다. 랙에서 화재가 발생하고 근처 서버 및 네트워크 장비를 꺼냅니다. 데이터 센터의 물리적 문제가 같은 행에 있지 않더라도 두 DNS 서버를 한 번에 두드리면 여러 DNS 서버가 그다지 좋지 않습니다.

  • 업스트림 피어 문제로부터 보호 공유 업스트림 네트워크 피어가 더티 낮잠을자는 경우 여러 DNS 서버가 문제를 예방하지 못합니다. 업스트림 문제로 인해 완전히 오프라인 상태가되거나 모든 DNS 서버를 사용자 기반의 일부와 격리 시키더라도 최종 결과는 서비스 자체가 완전히 다른 데이터 센터에 있어도 사람들이 도메인에 액세스 할 수 없다는 것입니다.

그것은 모두 훌륭하지만, 동일한 IP 주소에서 모든 서비스를 실행하는 경우 중복 DNS 서버가 실제로 필요합니까? 어쨌든 아무도 내 도메인에서 제공하는 것을 얻을 수 없다면 두 번째 DNS 서버가 어떤 이점을 제공하는지 알 수 없습니다.

나는 이것이 최선의 방법으로 간주된다는 것을 이해하지만 이것은 실제로 무의미 해 보입니다!


답변:


33

참고 : 분쟁의 내용은 두 답변 모두에 대한 의견을 참조하십시오. 오류가 발견되었으며이 Q & A에 점검이 필요합니다.

이 정식 Q & A의 상태가 올바르게 해결 될 때까지 당분간이 답변에서 수락을 제거하고 있습니다. (이 답변을 삭제하면 첨부 된 댓글도 삭제되므로 IMO로 갈 수있는 방법이 아닙니다. 광범위한 편집 후 댓글을 커뮤니티 위키 답변으로 전환 할 수 있습니다.)


여기 RFC를 인용하고 기술 용어를 사용할 수 있지만, 이것은 지식 스펙트럼의 양쪽 끝에서 많은 사람들 이 놓친 개념이며 더 많은 사람들을 위해 이것에 대답하려고 노력할 것입니다.

나는 이것이 최선의 방법으로 간주된다는 것을 이해하지만 이것은 실제로 무의미 해 보입니다!

무의미 ​​해 보일 수도 있지만 실제로는 그렇지 않습니다!

재귀 서버는 원격 서버가 쿼리에 응답하지 않을 때, 특히 다시 시도하지만 여전히 응답을 볼 수 없을 때를 기억 하는 데 매우 능숙합니다. 많은 사람들 이 이러한 통신 실패에 대한 부정적인 캐싱을 구현 하고 응답하지 않는 네임 서버를 일시적으로 5 분 이하의 페널티 박스에 넣습니다. 결국이 "벌칙"기간이 만료되고 통신이 재개됩니다. 잘못된 쿼리가 다시 실패하면 즉시 상자로 돌아갑니다. 그렇지 않으면 평상시처럼 비즈니스로 돌아갑니다.

여기에서 단일 네임 서버 문제가 발생합니다.

  • 페널티 기간은 본질적으로 구현의 특성상 항상 네트워크 문제 기간보다 크거나 같습니다. 거의 모든 경우에 최대 5 분까지 더 커집니다.
  • 단일 DNS 서버가 페널티 박스에 들어가면 실패와 관련된 쿼리가 전체 기간 동안 완전히 종료됩니다.
  • 인터넷에서 대부분의 사람들이 알고있는 것보다 짧은 라우팅 중단이 발생합니다. TCP / IP 재전송 및 이와 유사한 응용 프로그램 보호 기능은 사용자에게이를 숨기는 데 효과적이지만 다소 피할 수는 없습니다. 인터넷은 네트워크 스택을 지원하는 다양한 표준에 내장 된 보호 장치로 인해이 손상에 대한 라우팅을 대부분 잘 수행하지만 DNS에 내장 된 서버를 포함하며 지리 중복 DNS 서버가있는 것은 그것의 일부.

간단히 말해, 단일 DNS 서버를 사용하는 경우 ( NS레코드 에서 동일한 IP 주소를 여러 번 사용하는 경우 포함 )이 문제가 발생합니다. 그것은 또한 당신이 알고있는 것보다 훨씬 더 많이 일어날 것이지만, 문제는 너무 산발적이어서 실패의 가능성은 1) 당신에게보고되고, 2) 재생산되고, 3)이 특정한 문제와 밀접하게 연관되어 있습니다. 제로. 그들은 꽤 많이 했다 이 과정이 작동했지만 다행히도 즉 지금의 경우하지 않을 방법이 Q & A가 모르고로 온 경우 제로!

이것이 당신을 귀찮게해야합니까? 말할 곳이 아니에요. 어떤 사람들은이 5 분의 중단 문제에 전혀 신경 쓰지 않을 것입니다. 내가 당신 을 설득하기 위해 여기있는 것은 실제로 단일 DNS 서버와 모든 시나리오 에서 실행함으로써 무언가를 희생한다는 것 입니다.


1
일부 시스템은 dns-lookups가 실패하지 않도록 절망적으로 의존합니다. 중복성이 부족하여 많은 문제가 발생하는 일반적인 장애 지점입니다.
artifex

18
캐시 된 메일은 인프라의 나머지 부분과 동시에 DNS를 다운 상태로 전환 할 수있는 전형적인 예입니다. 중복 DNS를 사용하면 사이트가 다운 될 때 메일이 발신자의 서버에 대기하고 복구 후에 배달됩니다. 단일 DNS를 사용하면 다운 상태에서 보낸 인바운드 메일은 도메인이 존재하지 않거나 유사한 오류 가있는 발신자의 서버에 의해 영구적으로 거부됩니다 . 발신자 도메인이 현재 확인되지 않기 때문에 주변 장치 (정지 된) 시스템에서 보낸 아웃 바운드 메일 실패 할 수 있습니다 .
MadHatter는

5
또한 도메인 이름은 일반적으로 웹뿐만 아니라 이메일이기도합니다. 도메인에 이메일 서비스 제공 업체를 사용하는 경우 웹 서버가 있어도 다운되지 않을 수 있으며 중복 DNS가 있으면 이메일을 계속받을 수 있습니다.
Jenny D는 Monica Reinstate Monica가

5m는 단일 서버의 재시도 기간입니까? 이것은 체인의 많은 서버와 곱하지 않습니까? 클라이언트는 잘못된 쿼리도 캐시합니까?
Nils

@ Nils 당신은 약간 말로 표현할 수 있습니까? 재귀 클러스터의 많은 서버 또는 많은 권위있는 서버를 의미하는지 결정하는 데 문제가 있습니다. 5m 네거티브 캐싱 간격은 서버 당이므로 전체 재귀 클러스터에 단일 레코드 네거티브 캐시를 가져 오려면 많은 요청을 받아야하므로 장애가 더욱 산발적으로 발생합니다.
Andrew B

-1

OP가 묻습니다.

그것은 모두 훌륭하지만, 동일한 IP 주소에서 모든 서비스를 실행하는 경우 중복 DNS 서버가 실제로 필요합니까? 어쨌든 아무도 내 도메인에서 제공하는 것을 얻을 수 없다면 두 번째 DNS 서버가 어떤 이점을 제공하는지 알 수 없습니다.

좋은 질문입니다!

가장 좋은 대답은에 의해 제공됩니다 교수 다니엘 J. 번스타인, 박사 버클리 세계적으로 유명한 연구원, 과학자 및 암호 해뿐만 아니라, 또한으로 알려진 매우 인기 있고 잘받은 DNS 스위트 작성했습니다 DJBDNS을 ( 지난 2001 출시 02-11 , 여전히 오늘날까지 인기가 있습니다).

http://cr.yp.to/djbdns/third-party.html (2003-01-11)

타사 DNS 서비스의 비용 및 이점

이 간결하고 간결한 부분에주의하십시오.

타사 DNS 서비스에 대한 잘못된 주장

두 번째 전술은 광범위한 DNS 클라이언트가 모든 DNS 서버에 도달 할 수 없을 때 특히 악한 일을 할 것이라고 주장하는 것입니다. 이 주장의 문제점은 그 주장이 거짓이라는 것입니다. 그러한 클라이언트는 분명히 버그가 있으며 시장에서 살아남을 수 없습니다. 클라이언트의 라우터가 잠깐 동안 중단되거나 클라이언트의 네트워크가 일시적으로 넘치면 어떻게 될지 고려 하십시오.

따라서이 질문에 대한 원래의 대답은 더 잘못 될 수 없습니다.

그렇습니다. 몇 초간 지속되는 짧은 임시 네트워크 중단은 때때로 발생합니다. 아니요, 이러한 중단 중에 이름을 확인하지 못하면 몇 분 동안 캐시되지 않습니다 (그렇지 않으면 전 세계에서 고 가용성의 신뢰할 수있는 이름 서버를 가장 잘 설정해도 도움이되지 않습니다).

1998-03 RFC 에서 캐시 오류 에 대한 최대 5 분 의 보수적 인 지침을 자유로이 구현하는 소프트웨어 는 설계 상으로는 간단하지 않으며 여분 의 지중 중복 서버가 없어도 문제가되지 않습니다.

실제로 DNS 시간 초과는 얼마나 오래 캐시됩니까? BIND에서 SERVFAIL조건은 일반적 으로 2014 년 이전에 전혀 캐시 되지 않았으며 2015 년 이후 기본적으로 1 초 동안 캐시됩니다 . 평균 사용자가 해결 자 시간 초과 에 도달하고 새로 고침 버튼을 다시 누르는 데 걸리는 시간보다 짧 습니다. .

(또한 해결 시도를 캐시해야하는지 여부에 대한 위의 시점에 도달하기 전에도 첫 번째 SERVFAIL이 처음 발생하기까지 몇 번의 삭제 된 패킷이 필요합니다.)

또한 BIND 개발자는 한도 (예 :이 기능이 허용하는 최대 값)로 이미 5 분 (300 초) 제안보다 10 배 낮은 기능인 한도에 대한 한도 를 구현했습니다. (안구 사용자의) 가장 선의의 관리자조차도 자신의 사용자를 발로 쏠 수 없도록 보장합니다.


또한, 많은 거기에 당신이 할 수 있습니다 이유 없는 타사 DNS 서비스를 실행하려면 - 전체를 읽어 djbdns/third-party.html모든 세부 사항을 위해 , 그냥 스스로 관리하는 DNS에 대한 작은 여분의 서버를 임대를 필요없이 거의 보장되지는 그러한 노력을 위해 BCP 16 이외의 것이 존재한다.

적어도 2002 년부터 도메인 이름을 소유하고 설정 한 개인적인 "비례적인"경험에서, 실제로 전체적으로 전문가 운영으로 인해 여러 도메인상당한 다운 타임이 발생 했음을 확실하고 정직하게 말할 수 있습니다. 내 등록 기관 및 호스팅 제공 업체의 타사 서버 ( 한 번에 한 공급 업체 및 수년 동안 모두 해당 이벤트를 사용할 수 없음), 자신의 IP 주소가있는 정확한 시간에 도메인을 불필요하게 중단 그렇지 않으면 해당 도메인의 HTTP 및 SMTP가 호스트되었습니다). 이러한 중단은 독립적이고 존경받는 전문적으로 운영되는 여러 공급 업체에서 발생했으며 결코 고립 된 사고가 아니며 매년 발생하며 제 3 자 서비스로서전적으로 귀하의 통제 범위를 벗어납니다 . 단지 장기적으로 그것에 대해 이야기하는 사람은 거의 없습니다.


한마디로 :

지역 중복 DNS는 소규모 사이트에 전혀 필요하지 않습니다.

동일한 IP 주소 에서 모든 서비스를 실행 하는 경우 두 번째 DNS를 추가하면 추가 지점이 발생할 가능성이 높으며 도메인의 지속적인 가용성에 해가됩니다. 상상할 수있는 상황에서 항상 그것을해야하는 "지혜" 는 매우 인기있는 신화입니다. 버스트.

물론 웹 (HTTP / HTTPS), 메일 (SMTP / IMAP) 또는 음성 / 텍스트 (SIP / XMPP) 등 도메인의 일부 서비스가 이미 타사에서 서비스를 제공하는 경우에는 조언이 완전히 다릅니다. 이 경우 단일 장애 지점으로 자신의 IP를 제거하는 것이 실제로 현명한 접근 방식이며 지리 중복성이 실제로 매우 유용합니다.

마찬가지로 수백만 명의 방문자가있는 인기있는 사이트가 있고 BCP 16에 따라 지리 중복 DNS의 추가 유연성과 보호가 필요하다면… 웹 / 메일 /에 단일 서버 / 사이트를 사용하지 않을 것입니다 음성 / 텍스트가 이미 있으므로이 질문과 답변은 분명히 적용되지 않습니다. 행운을 빕니다!


기존의 전문가를 초대하여 두 가지 답변을 모두 검토하게되어 기쁘지만이 언어를 통해 연극의 분위기가 조금 더 나아지고 있습니다. 따라서 본인이나 본인의 의견보다 훨씬 더 많은 의견을 신뢰하는 당사자가 제공 한 의견에 대해서는 동의하지만이 의견 스레드에 더 이상 참여하지 않기로 결정했습니다.
Andrew B

귀하의 의견이 무엇을 의미하는지 잘 모르겠습니다. DJB에서 직접 인용 한 제 답변에 표시된 요점에 따라 단순히 유효하지 않은 주장으로 자신의 질문에 대답했습니다. 당신의 대답은 틀 렸습니다. 따라서 당신은 신화를 유지함으로써 지역 사회에 장애를 겪고 있습니다. 답을 철회하고 내 의견을 받아들이려면 건설적인 비판 / 편집 내용을 기꺼이 받아들입니다.
cnst

2
좋은 소프트웨어는 SERVFAIL 응답 (권한있는 서버에 도달 할 수없는 경우 재귀 서버에 의해 생성됨)을 인식하고 적절하게 처리합니다 (예 : SMTP 메일 큐잉). 불행히도 모든 소프트웨어가 좋은 것은 아닙니다. 프로토콜을 구현하기위한 독단적 인 접근 방식이 심각한 상호 운용성 문제를 일으키는 것으로 알려진 특정 교수가 있습니다.
Alnitak

2
산업의 현재 상태와 야생에있는 것은 2001 년은 물론 2003 년보다 훨씬 더 관련이 있습니다. 이런 이유로 관련 제 3 자 의견은 날짜가있는 편집자에 의해 문제를 판단하는 것보다 더 가치있는 이유입니다. 잠재적으로 시간의 시험에서 살아 남았습니다. Alnitak은 BIND가이 사건을 어떻게 처리했는지에 대한 나의 기억이 잘못되었다고 지적했으며, RFC 2308의 언어로 그 기억을 강화하는 것은 참으로 잘못된 것입니다. 시간을 찾으면 철회가 이번 주에 이어집니다.
Andrew B

2
참고 사항 : 나는 실제로 내 실수를 인정하기 위해 당신을 참여시키지 않으려 고했지만, 우리가 경계선 호전의 영역으로 돌아온 것처럼 보입니다. 잘못된 정보가 퍼져서 죄송합니다. 오류를 인정했지만 더 이상 귀하를 참여시키고 싶지 않습니다. (여기서 역사가있는 것처럼
Andrew B
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.