1. Aklatan
  2. DNS
  3. DNS 기초

Na-update 1 buwan ang nakalipas

DNS는 단순한 한계에서 시작되었습니다. 인간은 숫자를 기억하는 데 형편없다는 것입니다.

인터넷에 연결된 모든 컴퓨터는 주소를 가지고 있습니다. 142.250.191.46처럼 숫자로 이루어진 문자열입니다. 어떤 웹사이트에 접속하려면 컴퓨터가 그 숫자를 알아야 합니다. 그런데 잠깐, 여러분 은행의 IP 주소가 무엇인가요? 이메일 서비스는요? 매일 아침 들어가는 사이트는요?

모르실 겁니다. 저도 모릅니다. 하지만 google.com이나 amazon.com은 아무 생각 없이도 기억하죠.

도메인 네임 시스템, DNS는 인터넷의 전화번호부입니다. 사람이 기억하기 좋은 이름을 컴퓨터가 이해하는 숫자로, 보이지 않게, 끊임없이, 밀리초 단위로 변환합니다. DNS가 없다면 방문하는 모든 사이트의 숫자 주소를 외워야 할 것입니다. 인터넷은 기술적으로 작동하겠지만, 아무도 쓰지 않을 겁니다.

DNS 조회가 이루어지는 방법

브라우저에 도메인 이름을 입력하면:

컴퓨터가 먼저 기억을 확인합니다. 최근에 방문한 사이트라면 이미 IP 주소를 알고 있습니다. 조회가 필요 없이 바로 연결됩니다.

캐시에 없으면, 컴퓨터가 DNS 리졸버에 물어봅니다. 보통 인터넷 서비스 제공업체가 제공하거나, Cloudflare(1.1.1.1)나 Google(8.8.8.8) 같은 서드파티 서비스를 이용합니다. 리졸버가 답을 찾는 실제 작업을 수행합니다.

리졸버가 DNS 계층 구조에 질의합니다. 여기서 DNS의 우아한 점이 드러납니다. 인터넷의 모든 도메인 정보를 혼자 가진 서버는 없습니다. 대신 DNS는 지식을 분산시킵니다. 루트 서버는 .com을 누가 관리하는지 알고 있습니다. .com 서버는 google.com을 누가 관리하는지 알고 있습니다. google.com의 권한 서버는 실제 IP 주소를 알고 있습니다. 각 서버는 다음 단계만 알면 됩니다.

답이 되돌아옵니다. IP 주소가 단계를 역으로 거쳐 컴퓨터로 돌아오고, 컴퓨터는 다음번을 위해 그것을 캐시에 저장합니다.

컴퓨터가 연결합니다. IP 주소를 확보한 브라우저가 연결을 맺고 페이지를 불러옵니다.

이 모든 과정이 밀리초 단위로 일어납니다. 입력하고 엔터를 누르면 페이지가 나타납니다. 인터넷 전반의 여러 서버가 협력해서 이 일을 해냈지만, 여러분은 알아채지 못했을 겁니다.

DNS가 모든 것을 움직인다

DNS는 웹사이트만을 위한 것이 아닙니다. 거의 모든 인터넷 활동은 DNS 조회로 시작됩니다.

이메일. someone@example.com으로 메시지를 보낼 때, DNS가 이메일 클라이언트에게 example.com의 메일 서버가 어디 있는지 알려줍니다.

모바일 앱. 모든 알림, 모든 동기화, 모든 API 요청은 DNS로 시작됩니다. DNS가 없다면 앱은 쓸모없어집니다.

콘텐츠 전송. 동영상을 스트리밍하거나 파일을 다운로드할 때, DNS가 가장 빠른 경로를 찾아 가장 가까운 서버로 연결합니다.

보안. 방화벽과 보안 서비스는 DNS 요청을 필터링하여 악성 도메인을 차단합니다. 연결이 이루어지기 전에 위협을 막아냅니다.

DNS 없이는 이 중 어느 것도 작동하지 않습니다.

DNS가 실패할 때

DNS가 이토록 근본적이기 때문에, 단일 장애 지점이 될 수도 있습니다.

2016년 10월, DNS 제공업체 Dyn을 향한 대규모 공격으로 Twitter, Netflix, Reddit, PayPal, Amazon, Spotify를 비롯한 50개 이상의 주요 플랫폼이 수 시간 동안 접속 불가 상태가 되었습니다. 서버는 정상 작동 중이었습니다. 웹사이트도 존재했습니다. 하지만 DNS가 응답을 멈추자 사용자들이 그것들을 찾을 수 없었습니다.

이것이 DNS 장애의 기묘한 현실입니다. 목적지는 존재하는데, 찾아갈 수가 없습니다.

이것이 DNS 모니터링이 중요한 이유입니다. Connected에서는 응답 시간을 추적하고, 장애를 감지하며, 문제가 발생하면 알림을 보냅니다. DNS 문제는 빠르게 연쇄 반응을 일으키며 그 아래 모든 서비스에 영향을 미치기 때문입니다.

DNS와 지연 시간

DNS 조회에는 시간이 걸립니다. 쿼리에 200밀리초가 걸린다면, 브라우저가 페이지를 불러오기 시작하기도 전에 이미 200밀리초가 소요된 것입니다.

캐싱이 중요한 이유가 여기 있습니다. 도메인을 한 번 조회하면, 도메인의 DNS 레코드에 정해진 기간 동안 답이 기억됩니다. 이후 방문 시에는 조회 과정을 건너뜁니다.

DNS 리졸버 선택이 중요한 이유도 여기 있습니다. 어떤 리졸버는 다른 것보다 훨씬 빠릅니다. 하루에 수백 번의 조회가 이루어지다 보면 그 밀리초들이 쌓입니다.

핵심 요약

DNS는 이름을 숫자로 번역합니다. 인간이 기억하는 것과 컴퓨터가 필요로 하는 것 사이를 연결하는 전화번호부입니다.

계층 구조가 지식을 분산시킵니다. 모든 것을 혼자 아는 서버는 없습니다. 각 단계는 다음 단계만 알면 되고, 그것으로 충분합니다.

DNS는 온라인상의 거의 모든 것을 작동시킵니다. 웹사이트, 이메일, 모바일 앱, 콘텐츠 전송, 보안 모두 DNS에 의존합니다.

DNS가 실패하면 인터넷이 마비됩니다. 서버가 완벽하게 작동하고 있어도요. 목적지는 존재하는데, 찾아갈 수가 없습니다.

속도가 중요합니다. DNS 조회는 모든 새 연결에 지연을 더합니다. 캐싱과 빠른 리졸버가 이 비용을 최소화합니다.

DNS는 당연하게 여기기 쉽습니다. 너무 잘 작동하기 때문에 존재한다는 것을 잊어버립니다. 하지만 DNS를 이해하면 인터넷의 핵심에 있는 설계 철학이 보입니다. 인간이 바뀌어야 하는 게 아니라 기계가 우리에게 적응해야 한다고 누군가 결정했기 때문에, 이 모든 시스템이 작동합니다.

DNS에 대해 자주 묻는 질문

DNS가 다운되면 어떻게 되나요?

서버가 완벽하게 작동하고 있어도 이름으로는 웹사이트에 접속할 수 없습니다. 정확한 IP 주소를 알아야 하는데, 거의 아무도 그걸 모릅니다. 대규모 DNS 장애는 수 시간 동안 인터넷의 상당 부분을 마비시킨 적도 있습니다.

DNS 리졸버를 바꿀 수 있나요?

예. 대부분의 기기에서 사용자 지정 DNS 서버를 지정할 수 있습니다. 인기 있는 옵션으로는 Cloudflare(1.1.1.1), Google(8.8.8.8), Quad9(9.9.9.9)가 있습니다. 어떤 것은 더 빠르고, 어떤 것은 악성 코드 차단 같은 추가 보안 기능을 제공합니다.

DNS 조회가 느리게 느껴질 때가 있는 이유는 무엇인가요?

보통 캐싱 덕분에 조회가 즉각적으로 이루어집니다. 하지만 처음 방문하는 사이트이거나, 느린 리졸버를 사용 중이거나, 네트워크 문제가 있다면 초기 조회가 눈에 띄는 지연을 일으킬 수 있습니다. 더 빠른 DNS 리졸버로 전환하면 도움이 되는 경우가 많습니다.

DNS는 안전한가요?

전통적인 DNS 쿼리는 암호화되지 않습니다. 네트워크상의 누구든 여러분이 어떤 도메인을 조회하는지 볼 수 있습니다. DNS over HTTPS(DoH)와 DNS over TLS(DoT)는 개인 정보 보호를 위해 이 쿼리를 암호화합니다. 대부분의 최신 브라우저가 이제 이 프로토콜을 지원하며, 2020년 이후 도입이 크게 늘었습니다.

Nakatulong ba ang pahinang ito?

😔
🤨
😃
DNS란 무엇인가? • Aklatan • Connected