SOA 레코드 조회

영역의 SOA 레코드 — 주 서버, 시리얼 번호, 타이머 값을 읽습니다.

입력값은 이 조회에만 사용되며, 기록하거나 저장하지 않습니다.

예시:

SOA 레코드란?

모든 DNS 영역에는 SOA 레코드가 정확히 하나 있습니다. 주 서버와 관리자 연락처를 밝히고, 보조 서버가 영역 사본을 최신으로 유지하는 데 쓰는 시리얼 번호와 타이머를 담습니다. "그런 이름은 없다"는 응답이 얼마나 오래 유지되는지 정하는 부정 캐시 TTL도 여기서 나옵니다.

SOA 레코드의 필드

필드의미
MNAME 이 영역의 주(master) 네임서버입니다.
RNAME 관리자 이메일 주소를 도메인 이름 형태로 적은 것입니다. 첫 번째 점이 @를 대신합니다.
Serial 영역의 버전 번호입니다. 변경할 때마다 올라가야 보조 서버가 갱신합니다.
Refresh 보조 서버가 새 시리얼이 있는지 주 서버에 확인하는 주기(초)입니다.
Retry 갱신 확인에 실패한 보조 서버가 다시 시도하기까지 기다리는 시간입니다.
Expire 주 서버에 전혀 닿지 못할 때 보조 서버가 그 영역을 계속 서비스하는 시간입니다.
Minimum 부정 캐시 TTL입니다. 리졸버가 이 영역의 NXDOMAIN 응답을 캐시하는 시간을 정합니다(RFC 2308).

결과 읽는 법

SOA는 위 일곱 필드를 순서대로 담은 한 줄로 돌아옵니다. 변경 중에 눈여겨볼 값은 시리얼입니다. 영역을 고쳤는데 시리얼이 그대로면 보조 서버들은 여전히 옛 데이터를 서비스하고 있습니다. 많은 업체가 YYYYMMDDnn 형식을 쓰지만, 증가하는 숫자면 어떤 값이든 유효합니다.

알아 둘 규칙

  • 영역에는 SOA 레코드가 정확히 하나 있으며, 항상 최상위에 있습니다.
  • 변경할 때마다 시리얼이 커져야 합니다. 보조 서버는 시리얼을 비교하고, 번호가 거꾸로 간 영역은 무시합니다.
  • RNAME은 이메일 주소를 인코딩한 것입니다. hostmaster.example.com[email protected]을 뜻합니다.
  • minimum 필드는 기본 TTL이 아닙니다. RFC 2308 이후로는 부정 캐시만 제어합니다.
  • 서브도메인을 조회하면 그것을 감싸는 영역의 SOA가 돌아옵니다. 서브도메인이 대개 독립된 영역이 아니기 때문입니다.

자주 겪는 문제

보이는 증상흔한 원인
변경이 보조 서버에 전달되지 않음 시리얼이 올라가지 않았습니다. 값을 올리면 전송이 따라옵니다.
지운 이름을 다시 만들었는데 계속 NXDOMAIN 부정 응답은 SOA의 minimum 값만큼 캐시됩니다. 그 시간이 지나기 전까지 리졸버는 계속 없는 이름이라고 답합니다.
조회한 이름과 다른 이름의 SOA가 나옴 정상입니다. 답은 가장 가까운 상위 영역에서 오므로, 서브도메인을 조회하면 부모 영역의 SOA가 돌아옵니다.
expire 값이 지나치게 큼 장애 중에 보조 서버가 오래된 데이터를 아주 오래 서비스하게 됩니다. 보통 일주일 정도로 둡니다.

다른 레코드 종류 조회하기

레코드 종류마다 같은 방식으로 필드를 설명하는 페이지가 따로 있습니다. 흔한 종류를 한 번에 조회하려면 전체 DNS 조회를 쓰세요.

SOA와 함께 자주 조회하는 레코드: NS 레코드 조회 , A 레코드 조회 , CAA 레코드 조회 .

데이터 출처: 공개 DNS-over-HTTPS 리졸버. 질의는 선택한 공개 리졸버로 가며, 결과는 그 리졸버의 캐시 상태를 반영합니다. 데이터 출처 자세히 보기 →

더 읽기

자주 묻는 질문

SOA 레코드는 어디에 쓰나요?
영역의 주 서버와 관리자를 밝히고, 영역 전송과 부정 캐시를 제어하는 시리얼 번호와 타이머를 담습니다.
시리얼 번호는 무슨 뜻인가요?
영역의 버전입니다. 보조 서버는 자기가 가진 것보다 시리얼이 클 때만 새 사본을 받아 가므로, 시리얼이 그대로면 보조 서버 입장에서는 영역이 바뀌지 않은 것입니다.
SOA의 minimum TTL은 무엇인가요?
RFC 2308 이후로는 이 영역의 이름에 대한 부정 응답(NXDOMAIN)을 리졸버가 얼마나 캐시할 수 있는지를 정합니다. 영역 레코드의 기본 TTL이 아닙니다.
관리자 이메일에 @ 대신 점이 있는 이유는요?
DNS 이름에는 @를 저장할 방법이 없어서 첫 라벨을 로컬 파트로 씁니다. hostmaster.example.com[email protected]이라는 뜻입니다.