DNS 루트 서버를 “미국과 유럽 등에 놓인 물리 서버 13대”로 외우면 현재 구조를 제대로 설명할 수 없다. 정확히는 루트 존에 등록된 **13개 루트 서버 식별자(root server identifier)**가 있고, 각 식별자는 Anycast를 이용해 여러 지역의 서버 인스턴스에서 같은 서비스를 제공한다.
IANA의 루트 서버 목록은 A부터 M까지 13개 이름과 IPv4·IPv6 주소, 운영기관을 보여 준다. 물리적인 운영 지점은 이 목록보다 훨씬 많고 계속 바뀔 수 있다.
13이라는 숫자는 이름과 주소의 수다
루트 존에는 다음과 같은 NS 레코드가 등록돼 있다.
a.root-servers.net.
b.root-servers.net.
...
m.root-servers.net.
이 13개 이름을 12개 독립 운영기관이 나누어 운영한다. Verisign이 A와 J 두 식별자를 맡기 때문에 식별자 수와 운영기관 수가 다르다.
13이라는 숫자는 역사적으로 DNS의 초기 UDP 응답 크기 제한 안에 루트 서버 이름과 주소를 담아야 했던 제약에서 굳어졌다. 이후 EDNS와 IPv6, Anycast가 도입되면서 당시의 제약은 덜 중요해졌지만 A부터 M까지의 식별자는 호환성을 위해 유지되고 있다.
따라서 다음 세 숫자를 분리해서 봐야 한다.
| 구분 | 의미 | 변동성 |
|---|---|---|
| 13개 식별자 | 루트 존에 등록된 A~M 이름 | 비교적 고정 |
| 12개 운영기관 | 식별자를 맡아 운영하는 독립 조직 | 드물게 변경 가능 |
| 물리 인스턴스 | 여러 국가와 네트워크에 배치된 실제 서버 | 수시로 증감 |
Anycast가 하나의 주소를 여러 위치로 확장한다
Anycast에서는 서로 다른 지역의 여러 서버가 같은 IP 주소를 네트워크에 광고한다. 라우터는 BGP 경로 정책에 따라 그중 도달 가능한 경로를 선택한다.
그래서 서울에서 a.root-servers.net으로 보낸 질의와 런던에서 같은 주소로 보낸 질의가 서로 다른 물리 서버에 도착할 수 있다. “A 루트 서버의 위치는 어느 도시인가?”라는 질문에 도시 하나로 답할 수 없는 이유다.
Anycast가 항상 지리적으로 가장 가까운 서버를 고른다는 뜻도 아니다. 인터넷 라우팅은 직선거리보다 사업자 간 연결과 경로 정책의 영향을 받는다. 장애나 경로 변경이 생기면 같은 클라이언트가 다른 인스턴스로 연결될 수도 있다.
현재 운영 지점은 Root Server Technical Operations Association의 지도에서 확인할 수 있다. 이 페이지의 인스턴스 수와 위치는 운영 상태에 따라 바뀌므로 블로그에 도시 목록을 고정해 두기보다 공식 현황을 연결하는 편이 정확하다.
직접 확인할 때는 이름·주소·응답 인스턴스를 나눈다
루트 존의 NS 레코드는 다음처럼 확인할 수 있다.
dig . NS
특정 식별자의 주소는 A와 AAAA를 나눠 본다.
dig a.root-servers.net A
dig a.root-servers.net AAAA
일부 루트 서버는 EDNS NSID를 통해 응답한 인스턴스 식별 정보를 제공한다.
dig +nsid @a.root-servers.net . SOA
NSID 문자열의 형식은 운영기관마다 다르고, 반드시 정확한 물리 위치를 공개하는 것도 아니다. 응답 시간 역시 해당 서버의 절대적인 성능 점수가 아니라 현재 경로와 네트워크 상태가 함께 반영된 값이다.
루트에서 권한 서버까지 질의가 이어지는 과정은 DNS 조회 과정, A·AAAA·NS 같은 레코드의 역할은 DNS 레코드 종류와 읽는 법에서 이어서 볼 수 있다.
위치 목록보다 구조를 기억한다
DNS 루트 시스템을 이해할 때 기억할 핵심은 “13대가 어디에 있다”가 아니다.
- 루트 존에는 13개 루트 서버 식별자가 있다.
- 12개 독립 기관이 이를 운영한다.
- 각 식별자는 Anycast로 여러 물리 인스턴스에 배치될 수 있다.
- 실제 질의가 도착하는 곳은 인터넷 라우팅 상태에 따라 달라진다.
기존 글의 도시별 13대 목록은 이 구조와 맞지 않아 제거했다. 이 글의 명령은 확인 방법을 설명한 것이며, 특정 시점의 국내 경로나 지연 시간을 직접 측정한 결과는 아니다.
참고 자료
'배움과 성장 > 네트워크·보안' 카테고리의 다른 글
| DNS Record 종류와 조회법: A·AAAA·CNAME·MX·NS·TXT·PTR (0) | 2023.03.31 |
|---|---|
| DNS 루트 서버 운영 비용은 누가 내나: 독립 운영기관의 재원 구조 (0) | 2023.03.31 |
| DNS CNAME 레코드란: alias와 canonical name, 설정 제약 (0) | 2023.03.31 |
| DNS 레코드 종류와 읽는 법: A·AAAA·CNAME·MX·NS·TXT·SOA (0) | 2023.03.30 |
| OSI 7계층 읽는 법: 캡슐화와 네트워크 장애 구간 찾기 (0) | 2023.03.28 |
댓글