태그 보관물: domain-name-system

domain-name-system

DNS 레코드가 전파되는 데 얼마나 걸립니까? 걸립니까? 일부는 다른 것보다

이것은 DNS 전파에 대한 정식 질문입니다

다양한 유형의 레코드가 전파되는 데 얼마나 걸립니까?
일부는 다른 것보다 빨리 전파됩니까?
DNS 레코드가 전파되는 데 왜 시간이 걸리고 어떻게 작동합니까?



답변

“DNS 전파”는 그 자체가 실제 현상이 아닙니다. 오히려 이는 DNS 프로토콜에 지정된 캐싱 기능의 명백한 효과입니다. DNS 서버 간의 “전파”변경은 DNS 프로토콜의 모든 세부 사항을 설명하는 것보다 기술이 아닌 사용자에게 설명하기 쉬운 편리한 허위 사실입니다. 그러나 실제로 프로토콜이 작동하는 방식은 아닙니다.

재귀 DNS 서버는 클라이언트를 대신하여 쿼리합니다. 일반적으로 ISP 또는 IT 부서에서 운영하는 재귀 DNS 서버는 클라이언트 컴퓨터에서 인터넷 리소스 이름을 확인하는 데 사용됩니다. 재귀 DNS 서버는 효율성을 높이기 위해 수행 한 쿼리 결과를 캐시합니다. 이미 캐시 된 정보에 대한 쿼리는 추가 쿼리 없이도 답변 할 수 있습니다. 지속 시간 (초), 캐시 결과가되는 것을 가정 구성 값을 기반으로하는 (TTL) 살 수있는 시간이라고합니다. 이 값은 쿼리 된 레코드에 대한 권한있는 DNS 서버에 의해 지정됩니다.

DNS는 분산 프로토콜이므로 모든 질문에 대한 답변은 없습니다. DNS의 동작은 주어진 레코드에 대한 권한있는 DNS 서버 구성, 클라이언트 컴퓨터 대신 쿼리를 만드는 재귀 DNS 서버 구성 및 클라이언트 컴퓨터 운영 체제에 내장 된 DNS 캐싱 기능에 따라 다릅니다.

DNS 레코드에 대한 일상적인 변경 사항을 수용 할 수있을 정도로 짧은 TTL 값을 지정하는 것이 좋지만 캐싱에서 “승리”를 만들 정도로 충분히 길어야합니다. 효율성 개선 제공). TTL 값으로 균형 잡힌 전략을 사용하면 모든 사람에게 “승리”가됩니다. 지정된 도메인, 루트 서버 및 TLD 서버에 대한 권한있는 DNS 서버의로드 및 대역폭 사용률을 모두 줄입니다. 재귀 DNS 서버 운영자의 업스트림 대역폭 사용을 줄입니다. 클라이언트 컴퓨터에 대한 쿼리 응답이 더 빠릅니다.

DNS 레코드의 TTL이 설정되면 재귀 DNS 서버가 결과를 오랫동안 캐시 할 수 없기 때문에 권한이있는 DNS 서버의로드 및 대역폭 활용도가 낮아집니다. 레코드의 TTL이 높을수록 클라이언트 컴퓨터는 재귀 적 DNS 서버에 저장된 캐시 된 결과를 계속 수신하기 때문에 레코드에 대한 변경 내용이 “효과”로 나타나지 않습니다. 최적의 TTL을 설정하면 사용률과 레코드를 빠르게 변경하는 기능 간의 균형을 맞추고 이러한 변경 사항이 클라이언트에 반영되는 것을 볼 수 있습니다.

일부 ISP는 모욕적이고 신뢰할 수있는 DNS 서버에 의해 지정된 TTL 값을 무시한다는 점에 주목할 가치가 있습니다 (RFC를 위반하는 자체 관리 재정의로 대체). 기술적 인 관점에서 이것에 대해 할 일은 없습니다. 악의적 인 DNS 서버의 운영자가 시스템에 불만을 제기 할 수있는 경우 관리자는 모범 사례를 구현할 수 있습니다 (아마도 DNS에 익숙한 모든 네트워크 엔지니어에게 상식적인 의미). 이러한 특정 유형의 남용은 기술적 인 문제가 아닙니다.

모든 사람이 “규칙에 따라 연주”하면 DNS 레코드의 변경 사항이 “빠르게 적용” 될 수 있습니다 . 예를 들어 “A”레코드에 할당 된 IP 주소를 변경하는 경우 TTL 값의 지수 백 오프가 수행되어 변경 시간이 발생합니다. 예를 들어, TTL은 하루에 시작하여 24 시간 동안 12 시간으로, 12 시간 동안 6 시간, 6 시간 동안 3 시간 등으로 약간 작은 간격으로 감소 될 수 있습니다. TTL이 백업되면 레코드를 변경하고 TTL을 일상 작업에 필요한 값으로 되돌릴 수 있습니다. (지수 적 백 오프를 사용할 필요는 없지만이 전략은 레코드의 TTL이 낮은 시간을 최소화하고 신뢰할 수있는 DNS 서버의로드를 줄입니다.)

DNS 레코드를 만든 후 이전 DNS 레코드의 결과로 액세스 시도가 이루어 졌는지 변경 로그를 모니터링해야합니다. 새 IP 주소를 참조하기 위해 “A”레코드를 변경하는 예에서 서버는 여전히 기존 “A”레코드를 사용하는 클라이언트 컴퓨터에서 발생하는 액세스 시도를 처리하기 위해 기존 IP 주소에 있어야합니다. 이전 레코드를 기반으로 한 액세스 시도가 허용 가능한 낮은 수준에 도달하면 이전 IP 주소가 사용되지 않을 수 있습니다. 이전 레코드와 관련된 요청이 빠르게 줄어들지 않으면 (위에서 설명한대로) 재귀 DNS 서버가 신뢰할 수있는 TTL을 무시하는 것일 수 있습니다. 그러나 액세스 시도의 소스 IP 주소를 아는 것은 이전 레코드를 제공하는 재귀 DNS 서버에 대한 직접적인 정보를 제공하지 않습니다.

개인적으로, 며칠 후에 변경 사항이 몇 시간 만에, 때로는 뇌 손상을 입은 특정 ISP의 경우 “효과를 취”하는 것을 보았습니다. TTL의 백 오프를 수행하고 프로세스 작동 방식을 염두에두면 성공에 대한 변경이 증가하지만 재귀 적 DNS 서버를 사용하여 어떤 의미있는 바보가 무엇을하는지 확신 할 수는 없습니다.


답변