중복성 및 지연 시간 단축을 위해 DNS 기본 / 보조 /…를 설정하는 올바른 방법은 무엇입니까?


12

중복을위한 DNS 기본 / 보조는 간단하다고 생각했습니다. 내 이해는 기본 및 최소 하나의 보조를 가져야하며 지리적으로 다른 위치에 있지만 다른 라우터 뒤에 보조를 설정해야한다는 것입니다 (예 : /server/48087 / why-are-the-several-nameservers-for-my-domain )

현재 주 데이터 센터에는 두 개의 네임 서버가 있습니다. 최근에 우리는 여러 가지 이유로 이름 서버를 모두 사용하지 못하게되었으며 몇 시간 동안 DNS를 사용하지 않고 우리와 고객을 떠났습니다. sysadmin 팀에 다른 데이터 센터에서 DNS 서버 설정을 마치고 보조 이름 서버로 구성하도록 요청했습니다.

그러나 sysadmins는 다른 데이터 센터가 최소한 기본 데이터 센터만큼 신뢰할 수없는 경우에는 큰 도움이되지 않는다고 주장합니다. 그들은 기본 데이터 센터가 다운되었을 때 대부분의 클라이언트가 여전히 제대로 조회하지 못하거나 시간이 너무 오래 걸리지 않을 것이라고 주장합니다.

개인적으로, 나는 우리가 이런 종류의 문제를 가진 유일한 회사는 아니며 이미 해결 된 문제 일 것이라고 확신합니다. 모든 인터넷 회사가 우리의 문제에 영향을받는 것을 상상할 수 없습니다. 그러나 실패 사례 (예 : 클라이언트 시간 초과)에서 발생하는 문제와 해결 방법을 설명하는 훌륭한 온라인 문서를 찾을 수 없습니다.

sysadmins의 추론에 구멍을 뚫기 위해 어떤 인수를 사용할 수 있습니까? 그들이 주장하는 문제를 더 잘 이해하기 위해 상담 할 수있는 온라인 자료는 무엇입니까?

답글을 읽은 후 추가 메모 :

  • 우리는 리눅스에있다
  • 추가적인 복잡한 DNS 요구가 있습니다. 우리의 DNS 항목은 일부 사용자 지정 소프트웨어에 의해 관리되며, BIND는 현재 Twisted DNS 구현에서 종속되어 있으며 일부 뷰는 혼합되어 있습니다. 그러나 다른 데이터 센터에서 자체 DNS 서버를 완전히 설정할 수 있습니다.
  • 로컬 클라이언트의 재귀 DNS 서버가 아닌 외부인이 서버를 찾을 수있는 권한있는 DNS에 대해 이야기하고 있습니다.

답변:


4

시스템 관리자와 싸울 때 유용한 기술적 인 "모범 사례"문서는 있지만 실제로는 훌륭합니다. http://www.cisco.com/web/about/security/intelligence/dns-bcp.html

Cisco가 작성한 기사의 유효성을 인식하지 못하면 sysadmin과의 논쟁을 중단 할 수 있습니다. 관리 수준을 높이십시오.

다른 많은 "우수 사례"문서에서는 기본 및 보조 이름 서버를 IP 블록뿐만 아니라 물리적 위치로 분리 할 것을 권장합니다. 실제로 RFC 2182는 보조 DNS 서비스를 지리적으로 분리 할 것을 권장합니다. 많은 회사에서 이는 다른 데이터 센터에서 서버를 임대하거나 ZoneEdit 또는 UltraDNS 와 같은 호스팅 된 DNS 공급자에 가입하는 것을 의미합니다 .


3

그러나 sysadmins는 다른 데이터 센터가 최소한 기본 데이터 센터 만큼 신뢰할 수 없는 경우에는 큰 도움이되지 않는다고 주장합니다 . 그들은 기본 데이터 센터가 다운되었을 때 대부분의 클라이언트가 여전히 제대로 조회하지 못하거나 시간이 너무 오래 걸리지 않을 것이라고 주장합니다.

아, 초점은 신뢰할 수 있습니다. 보조 DNS를 설정하지 않고 외부 링크에서 ja을 취하는 것처럼 들립니다. 모두 동일하게 보조 DNS를 설정하고 계속 진행하십시오. 그것은 부하에 도움이되고 물건을 꼬집어 올릴 것입니다. 그러나 왜 그들이 다른 위치가 신뢰할 수 없다고 생각하는지 문의하십시오 .

개인적으로, 나는 우리가 이런 종류의 문제를 가진 유일한 회사는 아니며 이미 해결 된 문제 일 것이라고 확신합니다. 모든 인터넷 회사가 우리의 문제에 영향을받는 것을 상상할 수 없습니다.

당신은 유일한 회사가 아니며, 이것은 아마도 전 세계 회사에서 백만 번 다시 해쉬되었을 것입니다.

그러나 실패 사례 (예 : 클라이언트 시간 초과)에서 발생하는 문제와 해결 방법을 설명하는 훌륭한 온라인 문서를 찾을 수 없습니다.

sysadmins의 추론에 구멍을 뚫기 위해 어떤 인수를 사용할 수 있습니까? 그들이 주장하는 문제를 더 잘 이해하기 위해 상담 할 수있는 온라인 자료는 무엇입니까?

  • 로컬 클라이언트의 재귀 DNS 서버가 아닌 외부인이 서버를 찾을 수있는 권한있는 DNS에 대해 이야기하고 있습니다.

영역의 권한으로 등록 된 외부 DNS 서비스 설정을 포함하여 (외부) 권한 서버를 자신의 내부 (내부) DNS 서버로 비밀리에 만드는 등 모든 종류의 작업을 수행 할 수 있습니다. 이 구성은 끔찍하고 잘못이며, 내가 정말 사악한 SysAdmin임을 보여 주며, 내가 추천 할 때마다 새끼 고양이가 죽습니다. 그러나 두 가지 작업을 수행합니다.

  • DNS 서비스를 통해 부하를 처리하고 자체 (내부) DNS의 용량에 대한 질문을 제시합니다.
  • 사내 DNS 서버가 다운 된 상태에서도 DNS 서비스를 유지할 수 있으므로 링크의 신뢰도는 중요하지 않습니다 . DNS 서비스 제공 업체의 신뢰도는 중요합니다 .

이것이 잘못된 일인 이유 :

  • "스텔스 네임 서버"는 존 레코드에 표시되지만 서버 이름에 대해 IP를 쿼리 할 수 ​​있기 때문에 외부 이름은 절대로 손대지 않기 때문에 "스텔스 네임 서버"를 설정하게됩니다. 클라이언트 쿼리는 도달하지 않습니다.
  • DNS가 계속 제대로 작동하지만 (호스트 된 서비스가 문제를 해결하기 때문에) 인터넷 연결이 끊어졌을 때 작동하는 웹 사이트 즉, 문제의 절반 만 해결 한다는 의미는 아닙니다 . 관리자가 우려하는 다른 문제가있는 것처럼 들립니다.

2
어쩌면 내 정의가 다르지만 "숨겨진 마스터"설정을 사용하고 마스터가 영역 파일에서 절대 참조되지 않기 때문에 조금 더 안전한 설정이라고 생각합니다. 서버는 여전히 정식으로 응답하고 단일 업데이트 지점을 제공하며 외부 요청에 액세스 할 수 없습니다.
Greeblesnort

내가 이런 식으로하는 이유는 +1입니다. :) 작은 iptables 마술을 사용하여 포트 53이 2 차의 외부 요청에만 응답하도록하여 실제로 매우 안전하게 만들 수 있음을 언급하지 않았습니다. 여전히 "코셔"가 아니며 문제를 일으킬 수 있습니다. intodns.com을 통해 도메인을 실행하고보고 내용을 확인하십시오 ...
Avery Payne

3

불행히도 Linux DNS 리졸버는 DNS 서버에 대한 장애 조치를 감지하고 수행하기위한 직접적인 지원을하지 않는 것 같습니다. 요청을 기본 해결 네임 서버에 계속 공급하고 구성된 시간 초과를 기다린 후 다시 시도합니다.

이것은 종종 모든 요청에 ​​대해 최대 30 초 지연을 의미합니다. 기본이 다운되어있는 동안 먼저 보조를 시도하지 않고.

많은 직원들이 Amazon EC2 확인 네임 서버에 접근 할 수 없으므로이 문제를 해결하고 싶었습니다. 이는 해결에 의존하기 때문에 프로세스가 크게 지연되고 경우에 따라 다운 타임이 발생하기도합니다. 아마존이 다시 다운 될 경우를 대비하여 Google / Level3 네임 서버에 대한 장애 조치를 원했습니다. Amazon은 가능한 경우 호스트 이름을 로컬 주소로 확인하여 인스턴스 간 통신에 대한 대기 시간을 줄입니다.

그러나 사용 사례에 관계없이 더 나은 장애 조치가 필요합니다. 나는 이것을 해결하고 싶었다. 프록시 데몬, 서비스 등을 피하고 싶었습니다. 더 많은 단일 지점 오류가 발생하기 때문입니다. 나는 가능한 한 고풍스럽고 강력한 기술로 사용하고 싶었다.

나는 crontab & bash를 사용하기로 결정하고 nsfailover.sh를 작성 했습니다 . 도움이 되었기를 바랍니다.


ddg를 통해 발견linux first dns server is down second works but is slow
bgStack15

1

문제는 어느 곳에서나 클라이언트 가 될 수있는 클라이언트 가 두 개의 DNS 서버를보고 하나의 장애가 발생하면 보조 서버로 장애 조치되지 않거나 시간이 오래 걸리는 것 같습니다.

주 DNS 서버와 보조 DNS 서버가 모범 사례로 다른 시설에 위치해야한다는 데 동의하지만이 특정 문제를 어떻게 해결할 수 있는지 모르겠습니다.

클라이언트가 특정 IP 주소를 쿼리하고 보조 IP 주소를 무시하거나 시간 초과하는 것을 고집하려는 경우 IP 주소가 계속 작동하더라도 해당 IP 주소를 유지하는 솔루션을 제공해야합니다. 기본 서버가 다운되었습니다.

탐색해야 할 방향은 단일 IP 주소의 트래픽을 다른 데이터 센터의 여러 서버로 리디렉션 할 수있는로드 밸런서입니다. 또는 아마도 애니 캐스트 라우팅.


1
대부분의 리눅스 클라이언트는 기본적으로 5 초의 타임 아웃을 설정합니다. 두 번째 DNS 서버 여부에 상관없이 기본 서버가 다운되면 속도가 느려지고 다운됩니다.
Ryaner

1

각 데이터 센터가 서로 다른 회로에있는 한 (이상적으로 다른 업스트림 공급자가 클라우드로 연결되는 경우) 두 데이터 센터만으로도 안정적인 DNS를 설정할 수 있습니다. 선택한 등록 기관이 적절한 접착제 레코드를 하늘의 큰 서버에 채우도록해야합니다.

우리의 설정은 다음과 같습니다

  • 2 개의 물리적 데이터 센터 (별도의 회로, ISP 및 업스트림 공급자)
  • 각 시설에서 SLB 뒤의 클러스터에 2 개의 실제 쿼리 서버
  • 두 데이터 센터 간의 균형을 관리하려는 특정 레코드를 제공하는 2 개의로드 밸런싱 장치
  • 두 서버 클러스터 모두에서 내부적으로 액세스 할 수있는 숨겨진 마스터 (보안을 위해 숨겨진 마스터 설정이 매우 중요 함)

이 설정은 때때로 업데이트 등을 위해 가끔 서버 다운 타임이 발생하더라도 지난 6 년 또는 7 년 동안 약 5 9 초의 가동 시간을 제공 할 수있을 정도로 효과적이었습니다. ultradns 같은 누군가와 영역 호스팅 ...

KPWINC이 언급 한로드 대화는 100 % 정확합니다. 가장 작은 데이터 센터가로드의 100 %를 처리 할 수없는 경우, 원하는 경우 중단이 발생하기 때문에 어쨌든 뼈가 likely 수 있습니다. =)

모든 에지 라우터에서 최대로드를 가져 와서 모두 합한 다음 0.65로 나눕니다. 즉, 각 데이터 센터에 필요한 최소 대역폭입니다. 나는 5 년 전에 CCO와 인터넷에 대해 수집 한 타당성을 증명하는 문서와 함께 그 규칙을 제정했으며, 결코 실패하지 않았습니다. 그러나 적어도 분기별로 해당 통계 확인해야합니다 . 우리는 작년 11 월과 2 월 사이에 트래픽이 거의 3 배 증가했으며 그에 대한 준비가되어 있지 않았습니다. 그 밝은 측면은 상황이 WAN 회로의 72 % 부하에서 매우 명확한 하드 데이터를 생성 할 수있게 해 주었고, 우리는 패킷 삭제를 시작한다는 것입니다. 더 많은 대역폭을 요구하는 추가 근거는 없습니다.


0

외부인이 귀하의 서버를 찾도록 권한을 부여하는 DNS인지 또는 로컬 클라이언트를위한 재귀 적 DNS 서버를 의미하는지 명확하지 않다는 설명을 읽음으로써 깨달았습니다. 이 두 가지의 동작은 매우 다릅니다.

신뢰할 수있는 DNS 서버의 경우 "클라이언트"는 캐싱과 많은 인텔리전스를 가진 다른 DNS 서버입니다. 첫 번째 서버가 느리면 한 번에 여러 서버를 시도하는 경향이 있으며 더 빠른 응답을 제공하는 서버를 선호하는 경향이 있습니다. 이 경우 하나의 데이터 센터에 대한 다운 타임은 성능에 약간의 영향을 미칩니다.

재귀 DNS 서버의 경우 클라이언트는 아마도 DNS 서버가 DHCP에 나열되어있는 로컬 클라이언트입니다. 그들은 첫 번째 서버에서 두 번째 서버로 이동하기 전에 고통스럽게 긴 (몇 초) 시간 초과로 매번 나열된 순서대로 서버를 시도합니다.

기본 데이터 센터가 다운되면 아무도 해당 서버에 도달 할 수 없지만 도달 할 수없는 DNS 서버의 오류보다 그 오류가 더 명확합니다. "서버를 찾을 수 없습니다"또는 "해당 서버가 없습니다"대신 "서버에 연결할 수 없습니다"또는 "연결 시간이 초과되었습니다". 예를 들어, 대부분의 SMTP 서버는 DNS에 서버가 있지만 도달 할 수없는 경우 일주일 동안 메일을 대기시킵니다. DNS에서 찾을 수없는 경우 즉시 도메인으로 전달을 거부 할 수도 있습니다.

지리적으로 네트워크 분리 된 보조 DNS는 좋은 것입니다. 친숙한 회사와 보조 DNS를 교환 할 수 있으며,이를 위해 지불 할 수있는 많은 DNS 제공 업체가 있습니다. 일부 등록 기관은 보조 DNS를 서비스로 가지고 있습니다.


0

도마,

업데이트를 읽은 후 게시물을 수정했습니다 (이전 게시물은 Windows 소프트웨어를 참조 함).

시스템 관리자가 보조 위치에 전체로드를 처리하는 데 필요한 하드웨어가 없다고 알려주는 것처럼 들립니다.

"이봐 친구, 우리의 기본 위치 (기본 DNS 포함)가 다운되면 DNS는 걱정할 것입니다. COLO1이 다운되면 COLO2가로드를 처리 할 수 ​​없기 때문입니다."

이 경우 인프라를 살펴보고 더 나은 디자인을 시도해 보시기 바랍니다. 이것은 특히 프로덕션 환경에 살고 있기 때문에 말보다 쉽습니다.

완벽한 세상에서 COLO1과 COLO2는 혼자 서서 짐을 다룰 수 있습니다.

일단 설치되면 ... DNS는 실제로 충분히 빠른 새로 고침으로 충분한 DNS 서버를 보유하는 것 이상이 아니며 한쪽이 실패하면 DNS를 다시 작성하여 UP 서버를 가리킬 수 있습니다.

저는이 방법을 작고 합리적인 규모의 환경에서 사용했으며 훌륭하게 작동합니다. 장애 조치는 일반적으로 10 분 미만이 소요됩니다.

DNS 서버가 짧은 TTL (사용 시간)의 추가로드를 처리 할 수 ​​있는지 확인하면됩니다.

도움이 되었기를 바랍니다.


이것은 내 생각의 일종이지만, 그들이 어떻게하는지 알고 싶습니다 :-)
Kyle Brandt

0

시스템 관리자는 (대부분) 잘못되었습니다.

신뢰할 수있는 서버를 쿼리하는 재귀 서버는 두 사이트 중 하나가 응답하지 않으면 매우 빠르게 알 수 있습니다.

예. 정전이 발생했을 때 클라이언트가 DNS 확인 지연이 매우 적을 수 있지만 1 ~ 2 초 밖에 걸리지 않으며 일단 클라이언트의 자체 DNS 서버가 서버 중 하나가 다운되었다는 사실을 알게되면 나머지 서버는 실패한 서버보다 우선합니다.

필요한 경우 (sysadmin을 완화하기 위해) 기본 데이터 센터에서 두 대의 서버를 계속 실행하지만 외부에 하나 이상의 서버를 두십시오.


이에 대한 참조가 있습니까?
Teddy

기본 리눅스 설정은 다운 된 네임 서버를 캐시하지 않습니다. 이는 일부 Linux 기반 어플라이언스 (예 : IP 전화)에도 적용됩니다. 즉, 기본 쿼리가 다운되면 모든 쿼리가 기본 쿼리를 시도하고 5 초 동안 기다린 다음 보조를 시도하기 때문에 dns 쿼리에 시간이 오래 걸립니다. 기본적으로로드 상태에서 작업을 중지합니다.
Ryaner

0

보조 DNS 서버는 호스팅되는 위치에 따라 어느 정도의 기능을 제공하지 않습니다.

기본 호스트에 장애가 발생하면 보조 호스트가 옆에 있거나 원격 위치에 있더라도 상관없이 인계받을 수 있습니다. 그러나 데이터 센터 업 링크에 장애가 발생하더라도 다른 데이터 센터의 서버에서 DNS 응답을받을 수는 있지만 서버에 도달 할 수는 없습니다. 따라서 최종 사용자는 원격 위치의 보조 DNS로부터 직접 혜택을받지 않습니다.

다른 클라이언트는 DNS 서버를 사용할 수없는 다른 방식으로 반응하므로 클라이언트가 시간 초과 될 수는 있지만 전부는 아닙니다.

그러나 원격 데이터 센터의 보조 DNS는 여전히 도달하려는 서버의 IP 주소를 확인할 수 있으므로 라우팅을 디버그하고 다시 올 때 확인할 수 있습니다. 보조 MX 서버를 올바르게 설정하면 메일도 손실되지 않습니다.

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