DNS 서버의 역할 쉽게 이해하기

작성자

카테고리:

DNS는 인터넷의 전화번호부다

우리가 브라우저에 naver.com을 입력하면 네이버 메인 페이지가 열린다. 하지만 컴퓨터는 naver.com이라는 문자열을 이해하지 못한다. 네트워크 통신에서 실제로 사용되는 것은 IP 주소다. naver.com을 223.130.195.200 같은 IP 주소로 변환해주는 시스템이 바로 DNS(Domain Name System)다. 인간이 읽기 쉬운 도메인 이름과 기계가 필요로 하는 IP 주소 사이를 연결하는 전화번호부 역할을 한다.

DNS 질의 과정

브라우저에 도메인을 입력했을 때 실제로 벌어지는 과정은 생각보다 복잡하다. 먼저 운영체제는 로컬 DNS 캐시를 확인한다. 캐시에 없으면 시스템에 설정된 리졸버(Resolver) DNS 서버에 질의한다. 보통 ISP가 제공하는 DNS 서버이거나 구글의 8.8.8.8, 클라우드플레어의 1.1.1.1 같은 퍼블릭 DNS다. 리졸버도 캐시에 답이 없으면 루트 DNS 서버에 질의한다. 루트 서버는 .com을 관리하는 TLD(Top-Level Domain) 네임서버의 주소를 알려준다. TLD 서버는 naver.com의 권한 있는 네임서버(Authoritative Name Server)의 주소를 알려주고, 최종적으로 권한 있는 네임서버가 해당 도메인의 실제 IP 주소를 반환한다. 이 전체 과정을 재귀적 질의(Recursive Query)라고 한다.

DNS 레코드의 종류

DNS 서버에는 단순히 도메인과 IP의 매핑만 저장되는 것이 아니다. 다양한 유형의 레코드가 존재한다. A 레코드는 도메인을 IPv4 주소에 매핑한다. AAAA 레코드는 IPv6 주소에 대응한다. CNAME 레코드는 도메인의 별칭을 설정한다. www.example.com을 example.com으로 연결할 때 사용한다. MX 레코드는 해당 도메인의 이메일 수신 서버를 지정한다. TXT 레코드는 도메인 소유권 인증, SPF, DKIM, DMARC 같은 이메일 보안 설정에 활용된다. NS 레코드는 해당 도메인의 권한 있는 네임서버를 지정한다.

TTL과 캐싱

각 DNS 레코드에는 TTL(Time To Live) 값이 설정된다. TTL은 해당 레코드가 캐시에 유지되는 시간을 초 단위로 지정한다. TTL이 3600이면 리졸버는 1시간 동안 해당 레코드를 캐시에 보관하고, 같은 도메인에 대한 질의가 들어오면 캐시에서 바로 응답한다. TTL을 짧게 설정하면 DNS 변경이 빠르게 전파되지만 네임서버 부하가 늘어나고, 길게 설정하면 변경 반영이 느려진다. 서버 이전이나 IP 변경을 계획할 때는 사전에 TTL을 짧게

코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다