DNS에서 서버의 백업 IP를 설정할 수 있습니까?


10

DNS 프로토콜이 백업 이름 서버 또는 메일 서버 레코드와 같은 백업 A 레코드 서버 주소를 자연스럽게 보유 할 수있는 방법이 있습니까? 이것을 검색 할 때 백업 이름 서버 (NS 레코드)에서만 결과를 보았습니다.

DNS가 백업 A 레코드를 지원할 수있는 방법이 없다면 결과를 시뮬레이션하는 가장 좋은 방법은 무엇입니까?

답변:


12

예 ... 일종의.

여기서 수행 할 수있는 두 가지 작업이 있습니다. 주어진 이름에 대해 여러 개의 A 레코드를 DNS 서버에 저장하면 모두 해당 레코드가 클라이언트에 제공되며 해당 클라이언트는 연결할 세트에서 하나를 선택하여 트래픽이 발생합니다. 모든 사이트에 동시에 "공평하게"균등하게 분배하십시오. 이것은 실제로 당신이 묘사하는 것처럼 보이지는 않지만 일반적인 상황입니다 (다양한 이유로 그것을 믿지는 않지만).

다른 옵션은 DNS 서버에 하나의 A 레코드 만 넣고 DNS 서버 (또는 모니터링 스크립트와 같은 보조 항목)는 사이트의 기본 주소를 주시하고 실패하면 DNS 서버의 A를 감시하는 것입니다 레코드가 다른 사이트로 변경됩니다. 이는 한 번에 하나의 사이트 만 트래픽을 얻는다는 것을 의미합니다.

이 두 번째 전략의 단점은 DNS 캐싱입니다. 이전 사이트 주소를 가진 사람은 이전 주소가 포함 된 DNS 캐시 항목이 제거 될 때까지 SOL이됩니다. 따라서 TTL을 낮게 유지해야하지만 (실제 문제는 아니지만 DNS 인프라의로드를 늘려야하지만) TTL을 준수하지 않는 "악의적 인"DNS 캐시 문제가 여전히 남아 있습니다. 이들은 누구에게나 큰 고통입니다 DNS 항목을 변경해야하는 사람이 있지만 DNS 항목을 "종종"변경해야하는 사람에게는 백만 배나 더 나쁩니다 (귀하의 사이트가 하루에 여러 번 다운되지는 않지만 여전히 ...) 이러한 잘못 작동하는 DNS 캐시 중 하나를 사용하면 사이트가 매우 오랜 기간 동안 "작동 중지 된"것으로 인식되어 결함이있는 DNS 캐시라고 설명합니다 ... Eugh.

요컨대, 사이트에 대해서는 그렇게하지 않을 것입니다. 생각하고있는 모든 위험을 완화 할 수있는 더 좋은 방법이 있기는하지만이를 완화하는 방법에 대한 제안을 원할 경우 해당 위험을 설명해야합니다.


주 서버가 다운되면 (어떤 이유로 든) 사용자가 백업 서버로 전달되기를 원합니다. 지난 1 년 동안 내 서버가 한 번 다운되었습니다 (심각한 급습 실패). 백업이있어서 데이터가 안전했지만 12 시간 동안 웹 사이트가 다운되었습니다. 나는 이것이 "적절한"수정으로 일반적인 문제 일 것입니다. 나는 회사가 백업 계획을 원할 것입니다.
kjones1876

9
DNS 장애 조치를 원하지 않고보다 안정적인 하드웨어와 대기 서버를 원할 것입니다.
womble

"도적 DNS 캐시"는 옛 아내의 이야기입니다. 실제 DNS 서버 소프트웨어는 TTL 무시 동작을 보여주지 않습니다. 예를 들어 Netscape Navigator의 악명 높은 조회 캐싱 문제 와 같은 문제를 일으키는 방식으로 DNS 데이터가 캐시되는 위치는 응용 프로그램 입니다.
JdeBP

@JdeBP : Kevin Costner의 말에 따르면 : "불량 DNS 캐시는 신화가 아닙니다. 본 적이 있습니다!" 나는 발굴을 마쳤고 미쳤고 정신을 구부리는 결과를 보았습니다. 이러한 종류의 일반적인 상황 (예 : 업스트림 링크가 ISDN 인 전화 접속 ISP)에서 대역폭 제한 및 대기 시간 관련 서비스로 가장 인기가 많았으며 현재는 이들이 좋은 것으로 들었습니다. 오래 전에 아이디어를 얻었고 그 이후로 마음이 바뀌지 않았습니다 (그들이 특히 좋은 아이디어가 아니라는 것이지만 그래).
womble

6

비록 당신이 명시 적으로 썼음에도 불구하고 누구나 WWW 서버에 대해 이야기하고 있다고 생각하는 것

백업 이름 서버 또는 메일 서버와 같은

간과되는 진실은 HTTP 서비스 가 예외 이며 이것이 올 때 표준이 아니라는 것입니다. 일반적인 경우에, 그래, 거기에 있다 그래서 그들은 제대로 대체 주 서버에서 백업 서버에 DNS를 통해 클라이언트에 정보를 게시하는 메커니즘. 이 메커니즘은 SRV서비스 클라이언트 HTTP 이외의 다른 많은 프로토콜에 사용하는 리소스 레코드 입니다. RFC 2782를 참조하십시오.

SRV리소스 레코드를 사용하면 클라이언트에게 우선 순위와 가중치가있는 서버 목록이 제공되며 우선 순위에 따라 서버를 시도하여 가중치에 따라 동일한 우선 순위를 가진 서버 중에서 선택하고 가중치가 낮은 서버보다 가중치가 높은 서버를 더 자주 선택해야합니다 그들. 따라서 SRV리소스 레코드를 사용하여 서버 관리자는 클라이언트에게 대체 서버가 무엇인지, 우선 순위가 같은 서버 집합에로드를 분산시키는 방법을 클라이언트에 알릴 수 있습니다.

이제 콘텐츠 DNS 서버는 NS우선 순위 및 가중치 정보가없는 자체 리소스 레코드의 특수 유형의 리소스 레코드로 위치 합니다. 마찬가지로 SMTP 릴레이 서버 MX는 우선 순위 정보는 있지만 가중치 정보는없는 고유 한 특수 유형의 리소스 레코드로 위치 합니다. 따라서 콘텐츠 DNS 서버의 경우 대체 및로드 배포 정보를 게시 할 준비가 없습니다. MX리소스 레코드를 사용하는 경우 SMTP 릴레이 서버의 경우 부하 분산 정보를 게시 할 준비가 없습니다.

그러나 SRV현재 가능 MTS가 존재합니다. (첫 번째는 2005 년 이래로 가능해 exim졌습니다 SRV.) 그리고 다른 서비스 프로토콜의 경우, 수하물 MXNS자원 기록에 방해받지 않고 SRV채택이 훨씬 더 광범위하고 널리 퍼져 있습니다. 예를 들어 Microsoft Windows 도메인 SRV있는 경우 DNS에서 조회를 통해 전체 서비스 뗏목을 찾습니다 . 이 시점에서 10 년 이상이 그랬습니다.

문제는 모든 사람들이 HTTP에 대해 생각하고 있다는 것입니다. HTTP는 지금 2011 년에는 예외 일뿐입니다.


srv 레코드는 환경이 제어 될 때 내부 네트워크 사용에 적합하지만 이기종 클라이언트가있는 외부 서버와 같은 것으로 잘라내지는 않습니다. 클라이언트가 srv 레코드에 대한 액세스를 지원하는지 알지 못하므로 레코드에 액세스한다는 것을 모릅니다.
Michael Lowman

1
다시 당신은 HTTP가 당신의 생각을 지배하게합니다. 위에서 언급 한 많은 클라이언트의 경우 SRV레코드는 서비스를 찾는 정의 된 방법입니다. 또한 메커니즘이 존재하는지와 그것이 무엇인지에 대한 질문도있었습니다. 메커니즘이 존재하며 이것이 메커니즘입니다. 10 년 동안 널리 사용되었습니다.
JdeBP

당신의 확실히 맞습니다, srv는 확실히 올바른 메커니즘이며 실제로 DNS는 할 수는 없지만 바라는 다른 일을 실제로합니다. 슬프게도 브라우저의 지원 srv는 없습니다. 또한 "백업 이름 서버 또는 메일 서버와 같은"이라고 말했기 때문에 질문은 HTTP에만 해당되지만 백업 솔루션은 이미 존재합니다.
kjones1876

1

동적 콘텐츠를 제공하고 있고 동시에 콘텐츠를 제공하는 두 대의 서버를 보유하는 것이 실용적이지 않은 경우 다른 옵션은 DNS에 여러 레코드를 보유하고 백업 서버를 구성하여 연결하려는 클라이언트가 ICMP 포트에 연결할 수 없도록하는 것입니다 ; 어느 시점에서든 주 서버가 다운되면 백업에서 포트 80 블록을 제거하기 만하면 트래픽이 유입되기 시작합니다.

당신이 그것을 할 수있는 유일한 다른 (예산) 방법은 요청에 대해 NAT를 수행하기 위해 별도의 기계 (또는 두 대)를 설정하는 것입니다. 따라서 웹 서버가 죽으면 간단히 NAT 규칙을 제거 할 수 있습니다.


나는 처음에 당신의 첫 번째 아이디어를 지쳤습니다. 방금 주 서버에서 아파치를 끄지 만 브라우저는 계속 연결하려고했습니다. 그러나 아파치 코스를 ICMP 오류로 돌리는 것은 어떻습니까? 그렇지 않으면 어떻게 ICMP 오류를 통해 서버를 만들 수 있습니까?
kjones1876

아니요, 연결 시간이 초과 될 것이므로 iptables가 다음과 같이 올바르게 거부해야합니다.
Olipro

iptables -I INPUT -p tcp --dport 80 -j 거부 -icic-port에 도달 할 수 없음
Olipro

피곤해서 사람들이 접속할 수 없었습니다. 테스트 할 서버의 플러그도 뽑았습니다.
kjones1876

질문자는 WWW 서버에 대해서만 구체적으로 이야기하지 않았습니다. 실제로 xe는 메일 및 이름 서버를 명시 적으로 언급했습니다.
JdeBP

0

백업 A 레코드는 없지만 임의의 순서로 제공되는 여러 A 레코드가있을 수 있습니다.

대부분의 브라우저는 실패하면 다른 서버를 시도 할 수 있습니다. ( 라운드 로빈 DNS를 통한 웹 복원력 참조 )

VRRP 또는 CARP 가있는 여러 서버가 지원하는 하나의 클러스터 IP 주소를 가질 수 있습니다 . 기본 서버가 실패하면 백업 서버가 주소를 인계합니다.


질문자는 WWW 서버에 대해서만 구체적으로 이야기하지 않았습니다. 실제로 xe는 메일 및 이름 서버를 명시 적으로 언급했습니다.
JdeBP

@JdeBP : 아. 나는 장님 인 것 같습니다. 미안 : P
jkj

0

예,하지만 직접해야합니다 ;-)

"백업 A 레코드"를 원하는 이유와 백업으로 이동하려는 방법 및 상황에 대한 자세한 정보를 제공 할 수 있습니까?

또한 기본 호스트와 백업 호스트 간의 네트워크 관점에서 관계를 아는 것이 도움이됩니다.


0

이것은 상당히 오래된 질문이지만 동적 DNS 및 CDN이라는 두 가지 중요한 기술이 답에 나오지 않았습니다.

DNS 레코드를 거의 실시간으로 수정할 수 있도록 동적 DNS가 설정되므로 서비스 가용성에 따라 모니터링 클라이언트가 퍼블릭 DNS A 레코드에 대한 변경을 트리거 할 수 있습니다. 물론 DNS 호스팅 서비스는 동적 DNS를 지원해야합니다.

CDN은 또한 Cloudflare와 같이 DNS를 전달하는 데 사용될 수 있습니다 (2010 년에 출시 된 것으로 생각합니다).

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