DNS를 운영하다 보면 SOA(Start of Authority) 레코드에서 Serial Number, 줄여서 SN이라는 값을 보게 된다.
이 값은 해당 도메인의 DNS 존 정보가 몇 번째 버전인지를 나타내는 번호이다.
예를 들어 example.com의 DNS 설정을 수정해 새 레코드를 추가하거나 IP 주소를 변경했다면,
SOA 레코드의 SN도 함께 증가시켜야한다.
example.com. IN SOA ns1.example.com. admin.example.com. (
2026092201 ; Serial Number
3600 ; Refresh
600 ; Retry
1209600 ; Expire
300 ; Minimum TTL
)
위 예시의 2026092201이 SN값이다.
흔히 YYYYMMDDNN 형식으로 관리한다.
즉, 2026년 9월 22일의 첫 번째 변경이라는 의미.
SN의 핵심 역할: DNS 설정 변경을 동기화하는 기준
DNS는 일반적으로 Primary DNS 서버와 Secondary DNS 서버 구조로 운영된다.
- Primary DNS 서버: 원본 DNS 존 정보를 관리하는 서버
- Secondary DNS 서버: Primary 서버의 정보를 복제해 서비스하는 서버
Secondary DNS 서버는 주기적으로 Primary 서버에 “내가 가진 SN보다 더 최신 버전이 있는가?”를 확인한다.
Primary의 SN이 더 크면, 변경된 DNS 정보를 가져와 동기화한다.
즉, SN은 Secondary DNS 서버가 DNS 설정 변경 여부를 판단하는 기준이다.
왜 중요한가?
1. DNS 변경 사항이 보조 서버에 반영된다
A 레코드, MX 레코드, CNAME 레코드 등 DNS 설정을 수정했더라도 SN을 올리지 않으면,
Secondary DNS 서버는 변경 사실을 알지 못할 수 있다.
그 결과 일부 사용자는 변경 전 IP로 접속하고,
일부 사용자는 변경 후 IP로 접속하는 등 일관성 없는 장애가 발생할 수 있다.
2. 장애 상황에서도 정확한 DNS 정보를 제공한다
Secondary DNS 서버는 Primary 서버에 장애가 발생해도 기존에 동기화한 DNS 정보를 계속 제공할 수 있다.
이때 SN이 정상적으로 관리되어야 모든 DNS 서버가 동일하고 최신인 설정을 유지할 수 있다.
3. 변경 이력을 쉽게 파악할 수 있다
날짜 기반 규칙(YYYYMMDDNN)을 사용하면 SN만 보고도 언제,
몇 번째로 DNS 설정이 변경되었는지 대략 확인할 수 있다.
예를 들면 다음과 같습니다.
- 2026092201: 2026-09-22 첫 번째 변경
- 2026092202: 2026-09-22 두 번째 변경
- 2026092301: 다음 날 첫 번째 변경
운영 시 주의할 점
SN은 반드시 이전 값보다 큰 값이어야 한다.
값을 그대로 두거나 더 작은 값으로 변경하면 Secondary DNS 서버가 최신 정보로 인식하지 못할 수 있다.
또한 DNS 서버는 SN을 숫자로 비교하므로, 변경할 때마다 증가하는 규칙을 정해 일관되게 관리하는 것이 좋다.
정리
SN은 단순한 숫자가 아니라, DNS 서버 간 설정을 동기화하고 최신성을 보장하는 중요한 버전 관리 값이다.
DNS 레코드를 변경했는데 특정 환경에서만 반영되지 않는다면,
TTL뿐 아니라 SOA 레코드의 SN이 정상적으로 증가했는지도 확인해 볼 필요가 있다.