DynamicDNS는 어떻게 즉시 작용합니까?


16

DNS의 핵심 기능에 대한 이해는 도메인 이름 blah-whatever.com(예 :) 과 IP 주소 (예 : 100.2.3.4 ) 사이의 이름 지정 / 매핑 서비스를 제공하는 것 입니다.

또한 인터넷 DNS 서버의 작동 방식에 대한 이해는 도메인 / IP 매핑 레코드가 변경 될 때 (예 : blah-whatever.com현재 105.2.3.4 등을 가리 키도록 변경 될 때 )이 변경 사항이 전 세계 모든 DNS 서버에 전파되어야한다는 것입니다. 변경이 "완료"되었다고 말할 수 있습니다. 이 전파 기간은 때때로 최대 24 시간 지속될 수 있습니다.

우선, 지금까지 말한 내용이 잘못 안내되거나 틀린 경우 먼저 수정 해주세요.

다소 정확하다고 가정하면 CloudFlare 또는 DynamicDNS와 같은 회사에서 DNS 레코드를 변경하고 과 같은 변경 사항이 즉시 적용 되는 "인스턴트 롤오버"유형 서비스를 제공 할 수있는 방법을 이해하지 못합니다 .

이 인스턴트 롤오버 기능에서 중요한 역할을하는 "TTL"(살아가는 시간,?!?)이라는 것이 있다는 것을 알고 있습니다. 그러나 이미 시작하는 기능에 대해 애매 모호하므로 무엇을 이해하기 어렵습니다. 이 TTL은 어떤 용도로 사용됩니까?

따라서 동적 DNS와 경쟁 업체는 DNS 매핑을 즉시 변경하고 (다른 사람과 마찬가지로 DNS 변경 사항을 전파하는 데 24 시간이 소요되지 않음) TTL이이 프로세스에 어떻게 적용됩니까? 미리 감사드립니다.

답변:


3

DNS 변경이 전파되는 방법에 대한 몇 가지 오해가 있었기 때문에 이전 답변에 잘못된 정보가 포함되어 있습니다. 여기에 두 번째 시도가 있습니다. 자세한 설명은 Alex answer 를 읽으십시오 .

내 이해에는 DNS 변경이 얼마나 빨리 전파되는지에 관련된 두 가지 요소가 있습니다.

  1. 영역에 권한이있는 DNS 서버간에 영역을 전송합니다.
  2. 해당 영역의 단일 레코드에 설정된 TTL입니다.

영역 전송

영역을 관리하려면 두 개의 고유 한 이름 서버가 필요하므로 이러한 서버에서 해당 영역의 최신 버전을 빠르게 사용할 수 있기를 원합니다.

고정 된 간격으로 최신 버전의 영역을 가져 오거나 권한이 부여 된 이름 서버에서 NOTIFY 를 기다리면됩니다 .

이 메커니즘이 이름 서버를 실행하는 사람을 완전히 제어하고 있으므로이 영역의 지연을 완전히 제어 할 수 있습니다.

TTL

TTL이 영역에있는 모든 단일 리소스 레코드에 대해 지정된 시간 제한입니다. 이 값은 권한이없는 DNS 공급자가 레코드를 캐시해야하는 시간을 정의합니다.

이 값은 기존 레코드가 변경된 경우에만 적용됩니다 . 새 레코드는 아직 캐시 할 수 없습니다.

TTL이 영역을 제어하는 ​​사람을 완전히 제어 할 수 있기 때문에 지연을 완전히 제어 할 수도 있습니다.


감사합니다 @Oliver (+1)- "인스턴트 롤오버"가 도시의 전설 인 것 같습니다! 후속 질문은 다음과 같습니다. 왜 내 DNS 레코드를 직접 편집하지 않습니까? 이 회사들은 특정 이벤트가 트리거 될 때 DNS 변경을 자동화 할 수 있도록 API를 제공하기 때문입니까? 나는 그들이 처음에 어떤 목적을 수행하는지 찾고 있다고 생각합니다!
pnongrata

1
@zharvey : 물론 자신의 DNS 서버를 실행하고 직접 영역을 편집 할 수 있습니다. 그러나 루트 서버에서 영역을 승인 할 수있는 권한이있는 DNS 서버를 2 개 이상 제공해야합니다. 사람들은 대개 그런 종류의 인프라를 사용할 수 없습니다.
Der Hochstapler

1
DNS 레코드를 직접 편집 할 수 있습니다. 서로 다른 서브넷에서 한 쌍의 이름 서버 만 실행하면됩니다. 그러나 DynDNS는 당신을 위해 작동하고 상대적으로 쉬운 업데이트를 허용합니다. 기본적으로 일부 작업을 아웃소싱하고 있습니다.
Hennes

@zharvey는 물론 "인스턴트 롤오버"를 할 수 있습니다. 말 그대로 두 머신 모두 IP를 전환하도록하세요 (항상 가능한 것은 아님). 그 외에는 항상 일정한 지연이 있습니다. 일반적으로 서비스를 다른 서버로 이동해야하는 경우 관리자는 TTL을 미리 변경 (예 : 1 시간으로 줄임)하여 변경이 발생할 때 지연이 최소화됩니다. 완료되면 TTL이 다시 증가하여 (예 : 24 시간 이상) DNS 쿼리에 대한보다 나은 캐싱 및 빠른 응답이 가능합니다. 그러나 그것은 일반적으로 DynDNS를 포함하지 않습니다;)
Izzy

2
무례한 것이 유감이지만이 답변은 거의 모든 점에서 잘못 되었습니다.
Alex

18

약간의 오해가 있으므로 전체 프로세스를 설명하려고 노력할 것입니다. (공개 동적 DNS 서비스 운영에 관여했기 때문에 세부 사항에 만족합니다).

도메인이 example.com 이고 동적 DNS 회사와 호스팅 된 example.com 도메인을 lightfastdns.net (가상 이름) 이라고하겠습니다 . 도메인에 DNS 레코드 -somehost.example.com 이 있으며 현재 1.1.1.1을 가리 킵니다 .

  1. DNS 레코드를 변경하면이 변경 사항이 먼저 lightfastdns.net에 의해 운영되는 일부 중간 서버 (예 : updates.lightfastdns.net)에 제출됩니다 . 이것은 거의 즉각적으로 발생합니다 (초 단위). 웹 인터페이스 또는 동적 업데이트 클라이언트 또는 일부 API를 통해 업데이트를 제출할 수 있습니다. 아무튼이 업데이트는 DNS 업데이트를 처리하는 일부 서버에 도착합니다.

  2. 이 업데이트 서버는 업데이트 된 레코드 ( 1.2.3.4 )를 도메인의 " 마스터 "DNS 서버로 푸시합니다 . 이 DNS 서버는 lightfastdns.net에 의해 운영됩니다 . 발생 속도 : DNS 공급자가 소프트웨어를 설계 한 방법에 따라 다릅니다. (즉시 가능하며 24 시간마다 가능합니다. 예를 들어 gandi.net은 시간당 한 번 DNS 업데이트를 푸시합니다.) 물론 lightfastdns.net 은 즉시 수행합니다.

  3. 마스터 DNS 서버는 example.com 도메인의 슬레이브 DNS 서버로 업데이트를 푸시 합니다. 이 서버는 같은 lightfastdns.net 회사 에서 운영합니다 . 최신 소프트웨어 마스터를 사용 하면 NOTIFY 메시지를 슬레이브에 즉시 보내고 마스터 에서 업데이트 된 레코드를 즉시받습니다. 구형 소프트웨어에서는 SOA 레코드에 REFRESH 및 RETRY 값이 있었지만 오늘날에는 거의 관련이 없습니다. 물론 lightfastdns.net 은 NOTIFY를 구현하고 업데이트는 즉시 전파됩니다.

우리가 지금 가지고있는 것은 도메인에 대한 모든 "권한있는"서버가 업데이트 된 레코드 ( 1.2.3.4 )를 받았다는 것 입니다. 들어 lightfastdns.net 이 2 초 걸렸다.

  1. 이제 러시아에있는 Ivan의 집으로 옮길 것입니다. Ivan은 브라우저에서 " somehost.example.com " 을 열려고 합니다. 그가 이전에 열어 본 적이 없다면, 브라우저는 주소를 알지 못하므로 브라우저는 운영 체제를 묻습니다 . 그러나 최근에 사이트를 방문한 경우 주소는 여전히 브라우저 내부에 저장 될 수 있으며 이전 (사용되지 않는) 주소를 사용합니다! 얼마나 오래? -브라우저에 따라 Chrome은 예를 들어 DNS 레코드를 최대 60 초 동안 만 저장합니다. 지연 시간은 최대 60 초 입니다. 사실 DNS 변경 이이 브라우저로 전파 되지 않았다고 말하고 싶습니다 .

  2. 어쨌든 60 초 후 또는 즉시 브라우저는 운영 체제에 주소를 요청합니다. 운영 체제는 이미 (오래되고 쓸모없는) 대답을 알고 답을 반환 할 수 있습니다.이 경우 새 레코드가 아직 Ivan의 OS로 전파 되지 않았다고 말하고 싶습니다 . OS가 이전 값을 저장하는 기간-최신 운영 체제는 TTL 매개 변수로 제어됩니다 . DNS의 TTL 은 레코드가 캐시에 저장 될 수있는 기간을 정의합니다. 우리의 lightfastdns.net 은 30 초의 매우 낮은 TTL을 사용할 수있었습니다. 그래서 우리는 지금까지 총 90 초 , 최대 30 초의 새로운 지연을 얻었습니다 .

  3. OS가 답을 알지 못하거나 알고있는 답이 이제 TTL에 의해 구식 인 경우, OS는 DNS 확인자 (Ivan의 ISP가 DNS 확인자 dns.moscow-telecom.ru로 지정 )를 요청합니다. 여기에 이전 레코드는 최대 TTL 초까지 캐시되거나 dns.moscow-telecom.ru 가 주소를 알지 못할 수 있습니다. dns.moscow-telecom.ru 는 TTL 값을 초과하여 DNS를 캐시하기 때문에 30 초가 더 걸립니다. 지연 시간 은 120 초 입니다. 이것이 새로운 DNS 레코드가 아직 Moscow-Telecom의 DNS 서버로 전파되지 않았다는 것 입니다.

  4. ISP의 DNS 서버는 답을 알고하지 않습니다, 또는 알고 대답은 그것의 TTL이 만료되어 이미 사용되지 않는 경우 경우 - dns.moscow-telecom.ru는 하나 요청합니다 AUTHORITATIVE 에 대한 DNS 서버 example.net를 (? 당신이 그들을 기억하지). 약 118 초 전에 변경 사항이 있었고 새로운 답변을 반환 할 것입니다.이 답변은 체인을 통해 DNS 확인자, OS 및 Ivan의 브라우저로 즉시 전송됩니다.

따라서 다양한 캐시의 상태에 따라 레코드를 전파하는 데 2 ​​초에서 120 초가 걸렸습니다. 더 긴 TTL-더 긴 지연이 발생할 수 있습니다.

완료하기 위해 일부 ISP는 표준 및 캐시 레코드를 오랫동안 위반합니다. 일부 구형 OS는 오래된 레코드와 오래된 브라우저를 오랫동안 유지했습니다. 그러나 대부분의 사용자에게는 예상대로 작동합니다.


장황한 내용으로 인해 유감입니다 . 누군가가 더 짧은 변형을 만들고 싶을 수도 있습니다 (별도의 답변으로). 환영합니다.
Alex

@zharvey 실제로 당신은 다이나믹이 아닌 다이나믹의 차이가 무엇인지 물었습니다. 1. 단계 (2)와 (3)을 얼마나 빨리 처리하는지와 2. TTL이 얼마나 낮게 설정하도록 허용합니까?
Alex

3

변경 사항이 전세계 모든 DNS 서버 로 전파 될 필요 는 없습니다 .

무언가를 변경하고 누군가가 DNS 서버에서 변경된 레코드를 쿼리하면 결과는 즉각적입니다.

문제는 이전에이 이름을 쿼리하여 캐시 한 경우입니다. 그런 다음 캐시가 만료 될 때까지 이전 IP를 얻습니다. DNS에서 이전 쿼리의 유효 기간을 설정할 수 있으며이 기간은 종종 며칠로 설정됩니다. DynDNS의 경우 일반적으로 낮게 설정되지만 모든 DNS 확인자가이를 준수하는 것은 아닙니다.


감사합니다 @Hennes (+1)-Oliver의 답변 아래에서 내 질문을 참조하십시오-나는 당신에게 같은 질문이 있습니다!
pnongrata
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.