DNS란 무엇이고 어떤 역할을 하나요?
DNS(Domain Name System)는 사람이 기억하기 쉬운 도메인 이름을 컴퓨터가 실제로 통신에 쓰는 IP 주소로 바꿔 주는 인터넷의 전화번호부 같은 시스템입니다. 브라우저에 주소를 입력할 때마다 DNS 조회가 먼저 일어난 뒤에야 서버에 연결됩니다.
최종 수정일
DNS는 정확히 무슨 일을 하나요?
브라우저에 ipnow.kr 같은 도메인을 입력하면, 기기는 먼저 DNS 서버에 이 이름에 해당하는 IP 주소를 물어봅니다. DNS 서버가 IP 주소를 알려 주면 그제서야 그 IP로 실제 접속이 이루어집니다.
도메인 이름이 없다면 사람들은 웹사이트마다 203.0.113.10 같은 숫자 주소를 외워야 했을 것입니다. DNS 덕분에 이름만 기억하면 됩니다.
DNS 조회는 어떤 순서로 이루어지나요?
기기는 먼저 자신의 캐시(임시 저장)에 답이 있는지 확인하고, 없으면 설정된 DNS 서버(주로 통신사가 자동으로 준 서버)에 물어봅니다. 그 DNS 서버도 답을 모르면 다른 DNS 서버에 연쇄적으로 물어보는 재귀적 조회 과정을 거칩니다.
한 번 조회한 결과는 일정 시간 동안 캐시에 저장돼, 같은 사이트에 다시 접속할 때는 조회 과정 없이 곧바로 연결할 수 있습니다.
내가 지금 쓰는 DNS 서버는 어떻게 확인하나요?
대부분은 별도로 설정하지 않아도 통신사가 공유기나 기기에 자동으로 DNS 서버를 나눠 줍니다. Windows에서는 ipconfig /all, Mac·Linux에서는 네트워크 설정 화면이나 scutil --dns, resolvectl status 같은 명령으로 확인할 수 있습니다.
직접 원하는 DNS 서버로 바꾸는 방법은 DNS 서버 변경 방법에서 기기별로 설명합니다.
공용 DNS와 통신사 DNS는 무엇이 다른가요?
Cloudflare(1.1.1.1)나 Google(8.8.8.8) 같은 공용 DNS는 특정 통신사에 속하지 않고 누구나 쓸 수 있는 DNS 서버입니다. 통신사 DNS는 가입한 회선의 통신사가 자동으로 지정해 주는 서버입니다.
속도나 안정성, 접속 차단 정책은 어떤 DNS를 쓰느냐에 따라 통신사마다, 서비스마다 다를 수 있어 한쪽이 항상 더 낫다고 단정하기는 어렵습니다. CDN 중에는 질의를 보낸 DNS 서버의 위치를 보고 가까운 서버를 골라 주는 곳도 있어, 어떤 DNS를 쓰느냐에 따라 같은 사이트라도 연결되는 서버가 달라질 수 있습니다.
IP 주소 말고 DNS에 저장되는 정보
DNS에는 IP 주소 외에도 여러 종류의 정보가 레코드라는 단위로 저장됩니다. 웹사이트 접속에는 주로 A와 AAAA 레코드가 쓰이고, 메일 전달이나 도메인 소유 인증에는 MX와 TXT 레코드가 쓰입니다.
도메인에 A와 AAAA 레코드가 모두 있으면 IPv6를 쓸 수 있는 기기는 보통 IPv6 연결을 먼저 시도합니다. 반대로 AAAA 레코드가 없는 사이트는 IPv6 환경에서도 IPv4로만 접속됩니다. ipnow.kr 도 현재 IPv4로만 응답하기 때문에 듀얼스택 네트워크에서도 IPv4 주소가 표시됩니다.
| 레코드 | 담는 정보 | 예시 |
|---|---|---|
| A | 도메인의 IPv4 주소 | example.com → 203.0.113.10 |
| AAAA | 도메인의 IPv6 주소 | example.com → 2001:db8::10 |
| CNAME | 다른 도메인 이름을 가리키는 별칭 | www.example.com → example.com |
| MX | 그 도메인의 메일을 받을 서버 | mail.example.com |
| TXT | 자유 형식 텍스트(소유 인증, 메일 발송 정책 등) | v=spf1 로 시작하는 SPF 문자열 |
| NS | 그 도메인을 관리하는 네임서버 | ns1.example.com |
명령어로 DNS 조회를 직접 해 보는 방법
nslookup 은 Windows와 Mac에 기본으로 들어 있는 조회 도구입니다. nslookup ipnow.kr 을 입력하면 위쪽에는 질의를 받은 DNS 서버의 주소가, 아래쪽에는 도메인의 IP 주소가 표시됩니다. Linux는 배포판에 따라 관련 패키지를 따로 설치해야 할 수 있습니다.
Windows 한국어판에서는 결과에 권한 없는 응답이라는 문구가 함께 나옵니다. 오류가 아니라, 도메인을 직접 관리하는 네임서버가 아닌 중간 DNS 서버(캐시를 가진 리졸버)가 대신 답했다는 뜻입니다.
특정 DNS 서버에 직접 물어보려면 nslookup ipnow.kr 1.1.1.1 처럼 뒤에 서버 주소를 붙입니다. Mac과 Linux에서는 dig ipnow.kr A 는 응답에 붙은 TTL 값까지 자세히, dig +short ipnow.kr 은 주소만 간단히 보여 줍니다.
TTL과 캐시 때문에 변경이 늦게 반영되는 이유
DNS 응답에는 TTL(Time To Live)이라는 유효 시간이 초 단위로 붙어 있습니다. 리졸버와 기기는 이 시간 동안 답을 캐시에 보관하고 다시 묻지 않기 때문에, 사이트 운영자가 서버 IP를 바꿔도 TTL이 끝나기 전까지는 예전 IP로 접속하는 사용자가 남습니다. 흔히 DNS 전파라고 부르는 현상의 실체가 바로 이 캐시 만료입니다.
내 기기의 캐시를 비우려면 Windows는 명령 프롬프트에서 ipconfig /flushdns 를 실행합니다. Mac은 터미널에서 sudo dscacheutil -flushcache 와 sudo killall -HUP mDNSResponder 를 차례로 실행하는 방법이 널리 쓰이며, macOS 버전에 따라 필요한 명령이 조금 다를 수 있습니다. 자체 DNS 캐시를 가진 브라우저는 다시 시작해야 반영되기도 합니다.
암호화 DNS(DoT·DoH)가 필요한 이유
전통적인 DNS 질의는 암호화되지 않은 채 주로 UDP 53번 포트로 오갑니다. 그래서 같은 네트워크의 관리자나 경로상의 사업자는 어떤 도메인을 조회했는지 들여다볼 수 있습니다.
이를 보완하려고 DNS를 TLS로 감싸 853번 포트로 보내는 DNS over TLS(DoT, RFC 7858)와, 일반 HTTPS 연결 안에 DNS를 실어 보내는 DNS over HTTPS(DoH, RFC 8484)가 표준으로 만들어졌습니다. 안드로이드의 개인 DNS는 주로 DoT를(일부 버전·서비스는 DoH), 크롬·엣지·파이어폭스의 보안 DNS 기능은 DoH를 씁니다.
암호화 DNS는 어떤 도메인을 조회했는지를 숨겨 주지만, 실제로 접속하는 서버의 IP 주소까지 숨기지는 못합니다. 또 보안 DNS를 켠 브라우저는 운영체제와 다른 DNS 서버를 쓸 수 있어, 기기 DNS를 바꿨는데 브라우저에서만 결과가 다르다면 브라우저 설정도 함께 확인해야 합니다.
증상으로 알아보는 DNS 문제
인터넷이 안 될 때 DNS 문제인지 회선 문제인지를 먼저 가르면 해결이 훨씬 빨라집니다.
- 숫자 주소는 되는데 도메인만 안 될 때:
ping 1.1.1.1은 응답하는데ping ipnow.kr이 호스트를 찾을 수 없다는 오류를 낸다면 회선이 아니라 DNS 문제입니다. DNS 서버를 공용 DNS로 바꿔 확인해 봅니다. - 크롬에 DNS_PROBE_FINISHED_NXDOMAIN 오류가 뜰 때: 그런 도메인이 없다는 응답을 받았다는 뜻입니다. 주소 오타부터 확인하고, 다른 사이트는 되는데 한 곳만 이렇다면 그 사이트의 도메인이나 DNS 설정 문제일 수 있습니다.
- 특정 사이트만 예전 화면이 뜰 때: 사이트가 서버를 옮겼는데 내 기기나 리졸버 캐시에 예전 IP가 남아 있는 경우입니다. 캐시를 비우고 잠시 뒤 다시 접속합니다.
자주 묻는 질문
DNS를 바꾸면 인터넷 속도가 빨라지나요?
경우에 따라 응답 속도가 빨라질 수 있지만, 실제 체감 속도는 통신사 회선 상태나 접속하는 사이트에 따라 다르므로 항상 빨라진다고 보장할 수는 없습니다.
DNS 캐시란 무엇인가요?
한 번 조회한 도메인-IP 정보를 기기나 브라우저가 잠시 저장해 두는 것입니다. 같은 사이트를 다시 열 때 DNS 조회를 건너뛸 수 있어 연결이 더 빠릅니다.
hosts 파일은 DNS와 어떤 관계인가요?
hosts 파일은 도메인과 IP의 짝을 기기 안에 직접 적어 두는 파일로, 대부분의 운영체제는 DNS 서버에 묻기 전에 이 파일을 먼저 확인합니다. Windows는 C:\Windows\System32\drivers\etc\hosts, Mac과 Linux는 /etc/hosts 에 있습니다. 악성 프로그램이 이 파일을 고쳐 가짜 사이트로 유도하는 경우도 있으니, 직접 넣은 적 없는 항목이 있다면 확인이 필요합니다.
DNS와 IP 주소는 같은 건가요?
다릅니다. IP 주소는 실제 통신에 쓰이는 숫자 주소이고, DNS는 그 숫자 주소를 사람이 기억하기 쉬운 도메인 이름과 연결해 주는 시스템입니다. IP 주소 자체는 내 IP 주소란에서 설명합니다.
DNS 서버가 응답하지 않으면 인터넷이 아예 안 되나요?
IP 연결 자체는 살아 있어도 도메인 이름을 IP로 바꾸지 못해 사이트 주소를 입력해도 열리지 않을 수 있습니다. 이런 경우 다른 DNS 서버로 바꾸면 해결되는 경우가 많습니다.