DNS 상태 검사
레지스트리의 위임부터 직접 질의한 모든 네임서버, SOA, DNSSEC, 메일 레코드까지 DNS를 확인하는 도메인 검증 도구입니다. 검사 40개마다 해결 방법을 알려 드립니다.
루트 서버에서 .nl 레지스트리까지 따라간 뒤, sidn.nl의 각 네임서버에 직접 묻습니다 · 검사 40개 · 약 3초.nl 레지스트리 → 모든 네임서버 · 검사 40개
sidn.nl 도메인은 실행된 모든 검사를 DNSSEC까지 통과했습니다
등록대행자: SIDN·2.9초
A+: 정보 수준을 넘는 지적 없음. 모든 네임서버가 권한 있게 응답하고 서로 일치하며, 타이머는 Zonemaster의 범위 안에 있고, Google Public DNS가 루트부터 DNSSEC 신뢰 체인을 검증합니다.
DNS 상태 검사로 무엇을 확인하나요?
DNS 상태 검사는 리졸버가 도메인을 찾는 순서대로 따라가며 모든 단계를 테스트합니다: 레지스트리의 위임, 직접 질의한 각 네임서버, 서버들이 서로 일치하는지, SOA 레코드, DNSSEC, 메일 레코드. 이 DNS 확인 도구는 7개 그룹에서 40개 검사를 실행하고, 각 검사를 근거 기준이 정한 수준으로 평가합니다.
대부분의 검사 도구는 리졸버에 묻고 돌아온 결과를 평가합니다. 그러면 그 뒤에 있는 서버가 가려집니다: 리졸버는 작동하는 네임서버 중 하나에서 응답을 받으므로, 고장 난 서버는 다른 서버까지 고장 날 때까지 드러나지 않습니다. 여기서는 모든 네임서버에 재귀 없이 TCP로 질의하고, 레지스트리에 있는 NS 레코드 사본을 존 자체의 것과 비교하며, DNSSEC 체인을 레지스트리의 DS부터 존 안의 서명까지 검증합니다.
변경한 뒤에는 DNS 감사로 활용하세요: 웹사이트가 열리는지뿐 아니라 도메인이 의존하는 DNS 레코드를 확인합니다(사이트 자체는 사이트 접속 확인에서 살펴봅니다). 보고서 복사를 누르면 결과가 티켓에 붙여 넣을 수 있는 일반 텍스트 DNS 보고서가 됩니다.

등급수준만으로 정해집니다: 심각 없음, 오류 없음, 경고 2건이면 A입니다. 링은 점수(100점 중 90점)를 보여 줍니다.검사 40개, 칸 하나씩페이지에 나열된 그룹 순서입니다. 주황색과 파란색 칸은 경고와 알림이고, 빗금 친 칸은 실행할 수 없었던 검사입니다.문제 먼저고칠 것이 있는 그룹이 위에 펼쳐지며, 각 행에 근거 기준과 해결 방법이 있습니다.경로루트 서버, Verisign이 운영하는 .com 레지스트리, 그리고 직접 질의한 모든 네임서버: 각 서버의 응답, 시리얼, EDNS.신뢰 체인경로 옆의 DNSSEC 레일입니다: 유지되는 곳은 녹색, 멈춘 곳은 점선, 끊어진 곳은 빨간색입니다.DNS 확인 결과의 등급은 어떻게 정해지나요?
등급은 실패한 항목의 수준으로만 정해지며 점수표는 쓰지 않습니다: 심각한 문제가 하나라도 있으면 F, 오류 2건 이상은 D, 오류 1건 또는 경고 5건 이상은 C, 경고 3~4건은 B, 경고 1~2건(또는 알림만)은 A, 정보 수준을 넘는 것이 없으면 A+입니다.
수준은 인용한 기준 자체의 것입니다: 테스트를 정의한 경우에는 Zonemaster의 기본 프로필, 그렇지 않으면 RFC의 MUST 또는 SHOULD입니다. 100점 만점의 점수는 같은 등급 안에서 도메인의 순위를 매길 뿐입니다(100에서 심각 1건마다 30, 오류마다 12, 경고마다 4, 알림마다 1을 뺍니다). 저희 서버에서 실행할 수 없는 검사는 도메인에 불리하게 작용하지 않습니다. 4분의 1 이상을 실행할 수 없으면 등급에 일부라고 표시됩니다.
- A+100정보 수준을 넘는 지적 없음INFO “결코 문제를 나타내지 않는다”sidn.nl100
- A90~99경고 1~2건 또는 알림만NOTICE “존 관리자가 알아 두어야 하지만 꼭 문제일 필요는 전혀 없다”github.com90example.com95bücher.de90
- B75~89경고 3~4건WARNING “어떤 상황에서는 문제가 되지만 일반 사용자가 알아차릴 가능성은 낮다”cloudflare.com87google.com83
- C60~74오류 1건 또는 경고 5건 이상ERROR “존의 기능에 부정적인 영향을 줄 가능성이 매우 높다(또는 확실하다)”표본에 없음
- D45~59오류 2건 이상dnssec-failed.org55
- F0~44심각한 문제가 하나라도 있음CRITICAL “존재하지 않는다고 봐도 무방하다”.com 도메인44
점수 = 100 − 30 × 심각 − 12 × 오류 − 4 × 경고 − 1 × 알림, 해당 등급의 범위 안으로 제한
일부검사의 4분의 1 이상을 저희 서버에서 실행할 수 없었으므로 등급에 그 사실을 표시합니다
상위와 하위의 NS 레코드가 일치하나요?
일치해야 합니다: 레지스트리(상위)와 존(하위)은 각각 NS 집합을 게시하며, RFC 1912 §2.8은 둘을 같게 유지하라고 합니다. 레지스트리가 존에 응답하지 않는 서버를 가리키면 lame 위임입니다: 그 서버는 REFUSED로 응답하거나 권한(AA) 플래그 없이 응답합니다.
리졸버는 다음 서버로 넘어가므로 lame 서버 하나는 시간만 잡아먹지만, 나열된 모든 서버가 lame이면 도메인이 해석되지 않습니다. Zonemaster는 레지스트리에만 있는 이름을 오류(EXTRA_NAME_PARENT), 존에만 있는 이름을 알림, 작동하는 서버가 하나도 없는 상태를 심각으로 평가합니다.
github.com일치
- ns-520.awsdns-01.net
- ns-421.awsdns-52.com
- ns-1707.awsdns-21.co.uk
- ns-1283.awsdns-32.org
- dns1–4.p08.nsone.net
- 같은 8대
8대 중 8대가 AA로 응답
.net 도메인불일치
- ns1.domaindirect.com
- ns2.domaindirect.comREFUSED
- ns3.domaindirect.com
- ns1.hover.com
- ns2.hover.com
공통 이름 없음 · ns2.domaindirect.com: REFUSED · 오류 2건
.com 도메인lame 위임
- ns63.domaincontrol.comREFUSED
- ns64.domaincontrol.comREFUSED
- 아무도 응답 안 함SERVFAIL
모든 서버가 REFUSED · 리졸버는 SERVFAIL로 응답 · CRITICAL
도메인에 네임서버는 몇 대 필요한가요?
최소 2대, 권장은 3대입니다. RFC 1034 §4.1은 모든 존을 적어도 서버 2대에서 제공하도록 요구하고, RFC 2182 §5는 대부분의 조직 수준 존에 3대를 권장합니다. Zonemaster에서 네임서버 1대는 오류이고, 2대는 정보 메모와 함께 통과합니다.
대수보다 위치가 더 중요하므로, 이 네임서버 확인에서는 네트워크도 살펴봅니다. 한 네트워크에 있는 서버는 함께 멈춥니다: Zonemaster는 모든 주소가 하나의 자율 시스템(AS)에 있으면 경고합니다(IPV4_ONE_ASN). 주소마다 여러 지점에서 응답하는 Google, Cloudflare, Akamai 같은 애니캐스트 호스트도 마찬가지입니다. 애니캐스트는 부하를 분산하지만, 운영 주체는 여전히 하나입니다.
- google.comNS 4개 · 네트워크 1개네트워크 하나
- github.comNS 8개 · 네트워크 2개분산
- sidn.nlNS 3개 · 네트워크 2개분산
- cloudflare.comNS 5개 · 네트워크 1개네트워크 하나
- nasa.govNS 6개 · 네트워크 1개네트워크 하나
- example.comNS 2개 · 네트워크 1개네트워크 하나
AS1921 ipcomAS13335 CloudflareAS15169 GoogleAS16509 AmazonAS21342 AkamaiAS48283 SIDNAS62597 NS1
“대부분의 조직 수준 존에는 서버 세 대를 제공하는 것이 권장되며, 그중 적어도 하나는 다른 서버들과 멀리 떨어져 있어야 합니다.” RFC 2182 §5
SOA 레코드 값은 올바른가요?
대형 DNS 호스트가 정한 값이라면, 검사 도구가 지적하더라도 거의 확실히 괜찮습니다. 갱신(refresh), 재시도(retry), 만료(expire)는 존 전송으로 존을 복사하는 보조 서버만 조정합니다. 네거티브 TTL(minimum)은 부정 응답 캐싱의 TTL(RFC 2308), 즉 리졸버가 어떤 이름이 존재하지 않는다는 사실을 기억하는 시간입니다.
RIPE-203(1999년)은 갱신 86400, 재시도 7200, 만료 3600000, 네거티브 TTL 172800을 권장하며, 마지막 값은 RFC 2308 이전의 것입니다. Zonemaster의 하한은 더 낮습니다: 갱신 14400과 재시도 3600(알림), 만료 604800(유일한 경고), 네거티브 TTL은 300에서 86400 사이(알림). Cloudflare, Route 53, Azure의 기본값은 갱신과 재시도의 하한보다 낮고, Google Cloud DNS의 3일 만료는 대형 호스트 중 유일한 경고입니다.
| 갱신Zonemaster 기준 ≥ 4시간 · ◆ 1일 | 재시도Zonemaster 기준 ≥ 1시간 · ◆ 2시간 | 만료Zonemaster 기준 ≥ 7일 · ◆ 41.7일 | 네거티브 TTLZonemaster 기준 5분~1일 · ◆ 2일 | ||
|---|---|---|---|---|---|
| Cloudflare | 2.8시간 | 40분 | 7일 | 30분 | 알림 2건 |
| Amazon Route 53 | 2시간 | 15분 | 14일 | 1일 | 알림 2건 |
| Google Cloud DNS | 6시간 | 1시간 | 3일 | 5분 | 경고 1건 |
| Azure DNS | 1시간 | 5분 | 28일 | 5분 | 알림 2건 |
| GoDaddy | 8시간 | 2시간 | 7일 | 1시간 | 통과 |
| Namecheap BasicDNS | 12시간 | 1시간 | 7일 | 1시간 | 통과 |
| google.com(자체 설정) | 15분 | 15분 | 30분 | 1분 | 경고 1건 · 알림 3건 |
Zonemaster 하한 미만통과알림경고RIPE-203(1999년)
DNSSEC 확인: DS, DNSKEY, 서명
DNSSEC 확인은 신뢰 체인을 따라갑니다: 레지스트리의 DS 레코드는 존에 있는 키(DNSKEY)의 다이제스트여야 하고, 그 키가 존의 키 집합에 서명해야 하며, 모든 서명(RRSIG)이 검증되고 유효 기간 안에 있어야 합니다. 이 검사는 다이제스트를 직접 계산하고 각 서명을 검증한 다음, Google Public DNS에도 검증되는지 묻습니다.
어느 고리든 끊어지면 검증 리졸버가 SERVFAIL로 응답합니다: 그 리졸버를 쓰는 모든 사람에게 도메인이 사라집니다. 일부러 손상된 상태로 유지하는 테스트 존 dnssec-failed.org에서는 두 군데가 동시에 끊어진 모습을 볼 수 있습니다. 알고리즘은 IANA 레지스트리(RFC 9904)로 판단합니다: 8, 13, 15가 권장되며, SHA-1로 서명하는 5와 7은 더 이상 사용해서는 안 되고(RFC 9905) Zonemaster는 오류로 평가합니다.
cloudflare.com검증됨
- .com의 DS 2371알고리즘 13 · SHA-256 · 329968…26F2B9
- 다이제스트 일치: 키 2371
- DNSKEY 2371 · KSK플래그 257 · ECDSA P-256 (13)
- 키 집합에 서명 · 61일 중 50.8일 남음
- DNSKEY 34505 · ZSK플래그 256 · ECDSA P-256 (13)
- 레코드에 서명 · SOA: 2일 중 1일 남음
- Google Public DNSAD 플래그 설정: 검증됨
dnssec-failed.org검증 실패
- .org의 DS 42069알고리즘 13 · SHA-256
- 존에 키 42069 없음
- DNSKEY 50719 · KSK존의 실제 키 서명 키
- 키 집합 서명이 112일 전에 만료
- DNSKEY 32784 · ZSKSOA에 서명: 유효, 7일 중 5.7일 남음
- 신뢰할 수 있는 것이 닿지 않음
- Google Public DNSSERVFAIL, CD를 설정하면 응답: 검증 실패(bogus)
서명 알고리즘(IANA 레지스트리, RFC 9904)
- RECOMMENDED8 RSASHA256 · 13 ECDSAP256SHA256 · 15 ED25519이것을 사용
- MAY14 ECDSAP384SHA384 · 16 ED448허용
- NOT RECOMMENDED10 RSASHA512Zonemaster에서는 WARNING
- MUST NOT5 RSASHA1 · 7 RSASHA1-NSEC3-SHA1 · 1 · 3 · 6 · 12RFC 9905 · Zonemaster에서는 ERROR
위의 두 체인은 모두 13으로 서명
메일 DNS: MX, SPF, DMARC
메일 검사는 받는 서버가 읽는 것을 읽습니다: MX 레코드(또는 도메인이 메일을 받지 않는다고 밝히는 null MX, RFC 7505), RFC 7208의 한도인 DNS 조회 10회 안에 드는 SPF 레코드 하나, 그리고 DMARC 정책(2026년 5월에 RFC 7489를 대체한 RFC 9989).
SPF는 찾기만 하는 것이 아니라 평가합니다: 모든 include를 따라가며 셉니다. github.com의 레코드는 정확히 10회의 조회와 1회의 void 조회가 필요합니다: 유효하지만 여유가 없습니다. 메일을 전혀 보내지 않는 도메인은 그렇게 밝혀야 합니다: example.com은 파킹용 세트인 null MX, v=spf1 -all, p=reject를 게시합니다. 자세한 내용은 SPF 레코드 확인과 DMARC 확인에서 더 살펴볼 수 있습니다.
github.com메일 송수신
example.com파킹용 세트
명령줄에서 DNS와 네임서버 확인하기(dig)
dig와 delv를 사용하는 네 단계로 이 검사의 핵심을 재현할 수 있습니다: 루트부터 위임을 따라가기, 재귀 없이 네임서버 하나에 직접 묻기, 레지스트리의 DS와 존의 키 비교하기, 검증 리졸버가 체인을 판단하게 하기.
저희 서버가 보는 것을 보려면 +tcp를 붙이세요. 붙이지 않으면 UDP를 테스트할 수 있는데, 이는 Cloudflare 네트워크의 웹 도구로는 할 수 없는 일입니다. 응답 헤더에서 aa는 권한 있는 응답을 뜻합니다. 레지스트리가 나열한 서버가 REFUSED로 응답하거나 aa 플래그 없이 응답하면 lame 위임입니다.
터미널 · dig 9.20
$ dig +trace +tcp github.com NS ;; (생략) com. 172800 IN NS a.gtld-servers.net. ;; h.root-servers.net에서 1 github.com. 172800 IN NS ns-520.awsdns-01.net. ;; h.gtld-servers.net에서: NS 8개 2 $ dig @ns-421.awsdns-52.com github.com SOA +norec +tcp ;; flags: qr aa; QUERY: 1, ANSWER: 1 3 github.com. 900 IN SOA ns-1707.awsdns-21.co.uk. awsdns-hostmaster.amazon.com. 1 7200 900 1209600 86400 4 $ dig @a.gtld-servers.net github.com DS +norec ;; status: NOERROR, ANSWER: 0 ;; DS 없음: 미서명 5 $ delv @8.8.8.8 cloudflare.com SOA ; fully validated 6 cloudflare.com. 300 IN SOA ns3.cloudflare.com. dns.cloudflare.com. 2417999975 10000 2400 604800 300
- 루트가 .com을 13대의 서버로 위임합니다
- github.com에 대한 레지스트리의 NS 집합, 2일 동안 보관
- aa: 캐시가 아닌 권한 있는 응답
- SOA: 시리얼 1, 이어서 갱신, 재시도, 만료, 네거티브 TTL
- .com에 DS 없음: DNSSEC가 검증할 것이 없음
- delv가 루트부터 신뢰 체인을 검증했습니다
DNS 확인 도구마다 결과가 다른 이유는?
기준으로 삼는 수치가 다르기 때문입니다. 전통적인 검사 도구는 제공업체의 기본값을 지적합니다: intoDNS는 google.com의 만료 1800초를 “NOT OK”라고 하고 github.com의 시리얼 두 개를 오류로 보는데, 이는 DNS 호스트 두 곳을 쓰면 정상입니다. Zonemaster는 시리얼을 경고로 평가하고 null MX를 인식합니다. 저희의 첫 번째 버전은 둘 다 제대로 하지 못했습니다.
또한 네트워크를 보는 위치도 다릅니다. Zonemaster(AFNIC과 스웨덴 인터넷 재단)는 UDP와 TCP, IPv4와 IPv6로 질의합니다. 이 검사는 Cloudflare 엣지에서 실행되어 TCP로만 질의하고, IPv6로 연결하지 않으며, Cloudflare 자체 주소에는 연결할 수 없으므로, 그 서버들은 1.1.1.1을 통해 읽고 해당 검사는 실패가 아니라 테스트 안 함으로 표시합니다. intoDNS 대안으로서, 단순한 OK나 NOT OK 대신 모든 수준의 근거 기준을 보여 줍니다.
| 사례 | intoDNS | Zonemaster | DNS Robot v1 | 이 검사 |
|---|---|---|---|---|
| github.comSOA 시리얼 2개(DNS 호스트 2곳) | 오류“Looks like your nameservers do not agree on the SOA serial.” | 경고MULTIPLE_ | 실패“Serial mismatch detected: 1656468023 vs 1.” | 경고설명함: DNS 호스트마다 시리얼 하나 |
| google.comSOA 만료 1,800초 | 부적합“Your SOA EXPIRE number is: 1800. That is NOT OK” | 경고EXPIRE_ | 실패“too low (min recommended: 14 days)” | 경고만료가 영향을 주는 범위와 함께 |
| example.comnull MX(0 .) | 오류“0 No A Record (no glue either)” | 정보Z09_ | 통과“Found 1 MX record(s)” | 통과null MX 인식 |
| cloudflare.comSOA 재시도 2,400초 | —인용 없음 | 알림RETRY_ | 실패“too high (max recommended: 15min)” | 알림Cloudflare의 기본값 |
| cloudflare.comDNSSEC로 서명됨 | 확인 안 함DNSSEC 테스트 없음 | 통과DNSSEC02 · 05 · 08: 체인 검증됨 | 주의“DNSSEC does not appear to be enabled for this domain.” | 통과DS → KSK → RRSIG 검증, Google도 검증 |
DNS 상태 검사: 자주 묻는 질문
DNS 상태 검사란 무엇인가요?
도메인 검증과 DNS 상태 검사는 같은 것인가요?
lame 위임이란 무엇이며 어떻게 해결하나요?
DNS 호스트가 애니캐스트인데 왜 네트워크 하나에 대한 경고가 뜨나요?
SOA 타이머가 지적되었습니다. 바꿔야 하나요?
일부 검사가 ‘테스트 안 함’으로 표시되는 이유는?
네임서버마다 SOA 시리얼이 다른 이유는?
DNSSEC 확인 도구인가요? DNSSEC가 없으면 등급이 낮아지나요?
DNS 상태 검사는 얼마나 자주 해야 하나요?
확인한 도메인을 저장하나요?
부족한 점이 있습니까?기능 또는 새 도구 제안하기
관련 도구
NS 조회
프로바이더 감지 기능으로 도메인의 네임서버를 조회
DNS 조회
도메인 자체 네임서버의 모든 DNS 레코드를 Google·Cloudflare 캐시와 나란히 확인
MX 조회
메일 교환 레코드 및 메일 서버 세부 정보 확인
WHOIS 조회
RDAP로 도메인 등록 정보, 등록기관, 소유자 세부 정보 조회
SPF 레코드 확인
SPF 레코드 검증 및 RFC 7208에 따른 DNS 조회 수 확인
DMARC 레코드 확인
도메인의 DMARC 정책 및 정렬 설정 확인
역방향 DNS 조회
PTR 레코드로 IP 주소에 연결된 호스트 이름 검색
도메인 검색
도메인 등록 가능 여부와 3년간의 실제 가격 확인


