라운드 로빈 DNS는 고 가용성을위한 가능한 솔루션입니까?


8

주어진 도메인 (라운드 로빈 DNS)에 대해 2 개의 IP가 있다고 가정 해 봅시다.
IP 중 하나가 응답하지 않으면 클라이언트가 다른 IP에 연결을 시도합니까? 아니면 그들은 도메인과의 통신을 확립하지 못할 것입니까?


여기에 내 대답을 참조하십시오 : serverfault.com/questions/327708/…
Sandman4

답변:


13

DNS 라운드 로빈은로드 밸런서를 대체하지 않습니다. DNS 서버는 다운 된 노드의 IP를 계속 전달하므로 일부 사용자는 서비스를 받고 일부는 그렇지 않습니다.

클라이언트가 DNS 쿼리를 수행하면 DNS 서버는 해당 이름과 관련된 모든 IP 주소를 반환 합니다 . 마술은 모든 쿼리에 대해 해당 목록의 순서를 회전시키는 DNS 서버에 의해 수행됩니다. 그러나 작동하는 IP를 찾을 때까지 목록을 통해 "보행"기능을 구현하는 것은 응용 프로그램의 책임입니다. 그리고 대부분의 응용 프로그램은 그렇게하지 않습니다.

이상하게도 Windows Telnet은 리턴 된 IP의 링크 된 목록을 걸을 수있는 똑똑한 애플리케이션 중 하나입니다. 예를 들어 google.com에 telnet을 시도하면이 동작을 직접 확인할 수 있습니다. 결국 실패 하는 시간 이 오래 걸린다는 것을 알 수 있습니다. google.com에 많은 IP 주소가 있고 텔넷 클라이언트가 모든 주소를 시도했기 때문입니다.


클라이언트는 항상 NS에서 두 IP를 모두 얻는다는 것을 알고 있습니다. 기본적으로 목록에서 첫 번째 항목을 선택하는 것입니다. 그러나 첫 번째 것이 다운되면 어떻게 될까요? 그들은 두 번째 것을 시도 할 것입니까?
GetFree

9
전적으로 응용 프로그램에 따라 다릅니다. 예를 들어 웹 브라우저에 대해 이야기하는 경우, 대부분의 최신 웹 브라우저는 성공할 때까지 목록을 표시하며 일부 브라우저 (일반적으로 오래된 브라우저)는 첫 번째 실패한 IP를 시도한 후에 실패합니다. 더 많은 정보 : nber.org/sys-admin/dns-failover.htmlblog.engelke.com/2011/06/07/web-resilience-with-round-robin-dns
라이언 RIES는

당신이 준 링크에 따르면, 그것은 효과가있는 것 같습니다. 적어도 HTTP 클라이언트 (지금은 내가 염려하는 것)의 경우. 모든 최신 브라우저 및 하위 수준의 HTTP 클라이언트는 목록의 다른 IP로 장애 조치됩니다.
GetFree

네. 응용 프로그램에 따라 다릅니다. YMMV 등
Ryan Ries

@RyanRies, RFC는 고객 행동과 관련하여 권장 사항을 제공합니까? Telnet이 단지 첫 번째 IP를 사용하는 대신 모든 IP를 시도 할 때 호환됩니까?
Pacerier

14

Load Balancer를 사용하면 여전히 단일 실패 지점이 남습니다. 로드 밸런서가 오프라인 상태가되면 웹 사이트가 다운됩니다.

Conterary 위의 대답에, HTTP를 대부분의 클라이언트는 이미 DO 유효한 응답 한 돌아갈 때까지 DNS 쿼리에서 반환 된 각 IP 주소를 시도 지원. 여기를 참조하십시오 :

http://blog.engelke.com/2011/06/07/web-resilience-with-round-robin-dns/

저자는 다음 브라우저를 테스트하여 정상적으로 작동하는 것으로 나타났습니다.

Windows 7의 Chrome 11 Windows 7의
Firefox 4.0 Windows 7의
Internet Explorer 8 Windows 7의
Opera 11 Windows 7의
Safari 5 Windows 7의 Safari 5
Windows XP의 Internet Explorer 7 (지연된 지연 후)
Windows XP의 Firefox 4.0 (지연된 지연 후)
Android 기본 브라우저
iOS 4.3.3의 Android 2.3.3 iPhone 기본 브라우저

라운드 로빈을 사용하면로드 밸런싱 서버의 모든 기능, 즉 두 서버의 응답 시간을 모니터링하고 다른 서버가 응답 속도가 빠르면 더 많은 트래픽을 하나의 서버로 라우팅하는 것과 같은 기능을 수행하지는 않습니다). 복원력을 위해 더 이상 단일 장애 지점이 없기 때문에 Round Robin DNS가 더 나은 솔루션이라고 할 수 있습니다.


허용 된 답변의 두 번째 코멘트보기
GetFree

2

라운드 로빈 DNS에는 일반적으로 주소를 제공하는 서버의 상태에 대한 피드백이 없지만 각 주소에 대해 일종의로드 밸런서 (라우터 기반 트릭 포함)가 있으면 도움이 될 수 있습니다.

문제가 발생하면 DNS를 업데이트하는 트릭이 있습니다. 이 경우 적절한 TTL이있는 라운드 로빈 DNS는 의사로드 밸런서가 될 수 있습니다.

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