일반적인 DNS 문제 및 해결 방법

때로는 웹 사이트나 애플리케이션이 부적절하게 구성된 DNS 레코드, 대기 시간, 악의적인 공격 등의 DNS 문제로 인해 제대로 작동하지 않는 경우가 있습니다.

학습 목표

이 글을 읽은 후에 다음을 할 수 있습니다:

  • DNS가 하는 일 설명
  • 일반적인 DNS 문제 해결 방법 이해
  • 'DNS_PROBE_FINISHED_NXDOMAIN' 오류의 출처 이해

관련 콘텐츠


계속 알아보시겠어요?

인터넷에서 가장 인기 있는 인사이트를 한 달에 한 번 정리하는 Cloudflare의 월간 요약본 theNET를 구독하세요!

Cloudflare가 개인 데이터를 수집하고 처리하는 방법은 Cloudflare의 개인정보 취급방침을 참조하세요.

글 링크 복사

일반적인 DNS 문제 및 해결 방법

도메인 네임 시스템(DNS)은 도메인 이름IP 주소에 매핑하므로 사람들이 정확한 네트워크 주소를 기억하지 않고도 웹 애플리케이션을 사용할 수 있습니다. DNS는 도메인과 관련된 다른 많은 정보(예:이메일을 보낼 위치)를 저장하는 데에도 사용됩니다. DNS가 제대로 설정되지 않거나 공격자가 DNS를 노리거나 다른 기술적 문제가 발생하면 DNS 문제가 발생할 수 있습니다. 다음은 웹 사이트 관리자가 직면할 가능성이 높은 몇 가지 일반적인 DNS 문제에 대한 개요입니다.

잘못된 DNS 레코드

도메인의 DNS 레코드가 잘못 구성되었을 수 있습니다. 레코드에 도메인의 철자가 잘못된 경우, 레코드에 잘못된 IP 주소가 있는 경우, 기타 필수 정보가 누락되었거나 잘못된 경우 DNS가 확인되지 않을 가능성이 높습니다.

이러한 기본 오류 외에도 몇 가지 유형의 DNS 레코드가 도메인과 연결됩니다. 이들 레코드에 문제가 있으면 DNS 오류가 발생할 수 있습니다. 예를 들어 도메인에 A 레코드는 있지만, AAAA 레코드가 부족하면 IPv6를 사용하는 클라이언트의 경우 초기에 DNS 확인에 실패할 수 있습니다. 또는 클라이언트가 다른 도메인(예: "blog.example.com" 대신 "www.example.com")에 접속하려는 경우 도메인의 CNAME 레코드가 올바른 위치를 가리키지 않을 수 있습니다.

이 오류를 해결하려면 사이트 관리자가 호스팅 공급자 또는 DNS 공급자의 대시보드에서 DNS 레코드를 확인하고 오류가 없는지 확인해야 합니다. 그런 다음 DNS 쿼리에 응답하는 서버인 DNS 확인자가 DNS 레코드를 가져와야 시스템에 최신 버전이 유지됩니다. TTL이 너무 높게 설정되지 않은 한(아래 참조) 이는 너무 오래 걸리지는 않습니다.

Time To Live(TTL)가 너무 높게 설정됨

모든 DNS 레코드에는 Time To Live(TTL)*가 포함되어 있는데, 이는 업데이트를 위해 다시 쿼리해야 할 때까지 서버가 레코드가 유효한 것으로 간주할 수 있는 시간(초)을 나타냅니다. 기본적으로, TTL은 포장된 식품의 '유통기한' 날짜와 같습니다. 레코드는 TTL 시간이 끝날 때까지 사용 가능한 것으로 간주됩니다.

TTL 이 너무 높게 설정되면 서버가 DNS 레코드의 업데이트를 확인하기 위해 너무 오래 기다리게 됩니다. 이는 모든 변경 사항이 도메인 네임 시스템 전체에 매우 느리게 확산됨을 의미합니다. 도메인에 대해 DNS 레코드가 업데이트되었지만, 업데이트를 받지 못한 경우 브라우저가 잘못된 IP 주소의 사이트에 연결하려고 시도할 수 있습니다.

이 DNS 문제를 피하려면 TTL이 너무 크지 않도록 해야 합니다. 일반적으로 절대 최댓값은 86,400(초 단위로 계산, 이는 24시간에 해당)이지만, 대부분의 TTL은 훨씬 짧습니다(6시간 이하). 레코드의 정확한 TTL은 향후 해당 레코드가 얼마나 자주, 얼마나 빠르게 업데이트되는지에 따라 달라집니다. (Cloudflare DNS 레코드의 TTL에 대한 정보를 참조하세요.)

또한 일부 DNS 확인자를 통해 도메인 관리자가 도메인에 대한 캐시를 강제로 새로고침할 수 있습니다. Cloudflare의 1.1.1.1에 대해서도 여기에서 새로고침할 수 있습니다. 하지만 이렇게 해도 전 세계 모든 확인자의 캐시가 모두 플러시되지는 않으므로 TTL을 적절하게 설정하는 것을 대체할 수는 없습니다.

*TTL은 라우팅, 캐싱 등 네트워킹의 다른 영역에서도 사용됩니다.

DNS DDoS 공격

분산 서비스 거부(DDoS) 공격은 이름 그대로 서비스 거부를 수행하는 것을 목표로 합니다. DDoS 공격은 대상에 정크 트래픽을 퍼부어 합법적인 사용자가 서비스를 사용할 수 없도록 합니다. 이러한 공격으로 한 번에 몇 분 또는 몇 시간 동안 웹 사이트, 애플리케이션, API, 서버를 사용할 수 없게 될 수 있습니다.

DDoS 대상이 DNS 자체인 경우 브라우저는 도메인을 확인할 수 없으며, 이는 사용자의 IP 주소를 찾을 수 없으므로 사용자가 웹 사이트와 애플리케이션을 로드할 수 없음을 의미합니다. 이러한 종류의 대규모 공격은 Dyn에 대한 공격으로 세계 여러 지역의 사용자들이 인터넷을 사용할 수 없게 되었던 2016년에 발생했습니다. DNS에 대한 더 소규모의 DDoS 공격은 정기적으로 발생하며 특정 대상을 더 겨냥할 수 있습니다.

각 도메인의 DNS 공급자가 DDoS 방어를 갖추고 있는지 확인하거나 자체 호스팅 DNS 확인을 위해 DDoS 완화를 구현하면 이 문제를 피할 수 있습니다.

긴 대기 시간

대기 시간은 데이터가 한 지점에서 다른 지점으로 이동하는 데 걸리는 시간입니다. 대기 시간이 길면 응답 속도가 느려지거나 요청 제한 시간 초과가 발생하여 연결이 종료되기도 합니다.

네트워크 정체로 인해 대기 시간이 발생할 수 있지만, 가장 큰 원인은 서버 위치인 경우가 많습니다. DNS 쿼리는 다른 웹 트래픽에 비해 상당히 가볍지만, DNS 확인자가 멀리 떨어져 있으면 요청이 서버로 이동하고 서버에서 응답이 돌아오는 동안 사용자가 몇 초를 기다려야 할 수 있습니다. 이 문제는 사용자가 DNS 공급자의 서버 네트워크에서 멀리 떨어진 예기치 않은 위치 또는 평소와 다른 지역에서 웹 콘텐츠를 로드하려고 할 때 발생할 수 있습니다.

긴 DNS 대기 시간을 해결하려면 전 세계 인터넷 사용자와 가까운 곳에 있는 DNS 공급자를 사용하세요. Cloudflare 전역 네트워크에 대해 알아보세요.

DNS 캐시 포이즈닝

DNS 캐시 포이즈닝 공격에서는 악의적인 당사자가 DNS 확인자를 속여 도메인의 잘못된 IP 주소를 캐싱하도록 합니다. 그 결과, 해당 도메인을 로드하려는 사용자는 공격자가 제공한 IP 주소로 리디렉션됩니다.

DNSSEC를 채택하는 것은 확인되지 않은 데이터가 DNS 확인자 캐시에 들어가는 것을 방지하는 방법입니다. DNSSEC는 DNS 서버 간의 메시지를 인증합니다(DNSSEC가 없으면 DNS가 신뢰 원칙에 따라 작동하므로 공격자가 이를 악용할 수 있음).

도메인 하이재킹

도메인 하이재킹 공격은 공격자가 도메인과 연결된 DNS 레코드를 변경하는 것을 말합니다. 이 공격은 도메인 이름 등록기관에 도메인 이전을 요청하는 방식으로 수행되는 경우가 많습니다. 그 결과 사이트 방문자가 잘못된 웹 페이지(종종 악의적인 웹 페이지)를 로드하거나 도메인을 전혀 확인하지 못할 수 있습니다.

등록 기관 수준과 레지스트리 수준 모두에서 도메인 잠금을 적용하면 공격자의 DNS 하이재킹을 훨씬 더 어렵게 만들 수 있습니다.

페이지 방문자에게 'DNS_PROBE_FINISHED_NXDOMAIN' 오류가 표시되면 무슨 의미일까요?

'NXDOMAIN'은 컴퓨터 용어로 '존재하지 않는 도메인'을 의미합니다. 본질적으로 이 오류는 존재하지 않는 전화번호로 전화를 걸거나 존재하지 않는 도시로 소포를 보내려고 하는 것과 같이 사용자의 장치에서 도메인이 존재하지 않음이 감지될 수 있음을 의미합니다.

이는 위에 나열된 문제 뿐만 아니라 클라이언트 측(사용자가 웹 사이트 로드하려는 장치)의 문제로 인해 발생할 수 있는 광범위한 오류입니다.

  • 클라이언트의 인터넷 연결이 끊겼을 수 있습니다
  • 클라이언트가 연결하려는 URL에 오타가 있을 수 있습니다
  • 브라우저 DNS 캐시를 새로고침해야 합니다
  • 클라이언트의 기본 DNS 확인자가 다운되었을 수 있습니다

사용자는 로컬 네트워크에 다시 연결하거나, 웹 페이지의 하드 새로고침(Ctrl/Command + Shift + R)을 하거나, 다른 브라우저에서 열거나, DNS 설정을 변경하여 다른 확인자(Cloudflare 안정성이 높은 1.1.1.1 DNS 무료 확인자)를 사용할 수 있습니다.

'DNS 서버가 응답하지 않음'은 무엇을 의미할까요?

"NXDOMAIN" 오류로 인해 브라우저에 "이 사이트에 연결할 수 없습니다" 또는 "DNS 서버 응답하지 않습니다" 메시지가 나타날 수 있습니다. 앞서 설명한 것처럼 이 오류 메시지는 여러 가지 문제로 발생할 수 있습니다.

Cloudflare에서는 이러한 DNS 문제를 방지하도록 어떻게 지원할까요?

웹 애플리케이션을 실행하는 사람과 기업의 경우, 이러한 문제의 대부분은 Cloudflare를 채택하여 해결하거나 완화할 수 있습니다. Cloudflare에서는 트래픽을 웹 사이트로 프록시 설정하고 최신 보안 조치를 사용하여 DDoS 공격, DNS 하이재킹, DNS 캐시 포이즈닝, DNS 구성 오류로부터 보호합니다. 시작하려면 Cloudflare 요금제를 참조하세요.