본문 바로가기
카테고리 없음

도메인 강좌 3강 : 네임서버 (DNS)

by 나무바다 2021. 7. 11.
반응형

Domain Name System : DNS 라 이야기 합니다

DNS에 대한 이야기를 하기 전

안녕하세요. 나무바다입니다.

 

2강까지 도메인에 대해서 알아보았는데요.

도메인은 다들 구입하셨을까요?

 

도메인 구매까지는 어렵지 않으셨죠?

이제 기술적인 이야기에 들어가 봅니다.

 

어려울 것이라고 생각하지 마시고 접근해보세요.

기술은 늘 어찌 보면 당연한 이야기를 합니다.

 

2강에서 IP를 매번 외우기 어렵고, 변경에 대응하기 위해 도메인을 사용한다고 배웠습니다.

그럼 누군가는 도메인을 IP로 변경해 주어야 할 텐데요.

 

그 교환원 역할을 해주는 것이 바로 이 네임서버. 즉, DNS 서버입니다.

DNS 서버, 네임서버 모두 같은 것을 뜻합니다.

 

네임서버(DNS) 서버 기초

DNS 서버는 위에서 이야기했듯이 도메인을 IP로 변경해 주는 역할을 합니다.

 

그럼 생각해봅시다.

DNS 서버가 어딘가에 있을 텐데, 거기에 내 도메인에 대한 설정을 넣으면 되겠네.

 

맞습니다. 내 도메인에 대한 정보를 특정 네임서버에 저장합니다.

그럼 그 정보를 찾아가기 위해서는 어떻게 하여야 할까요.

 

도메인 정보를 어느 네임서버에 저장하였는지를 기록하여야 하겠죠.

그래서 도메인에 NS 레코드라는 것으로 해당 도메인 정보를 설정한 네임서버를 저장하고 있습니다.

 

이것은 도메인 구매하신 곳의 도메인 설정에 가시면 네임서버를 지정하실 수 있는데요.

이것이 바로 NS레코드를 설정해주는 부분입니다.

 

NS 레코드 등 각 레코드 타입에 대해서는 다음 장에서 설명하도록 하겠습니다.

지금은 NS 레코드가 이 도메인에 대한 정보를 가지고 있는 네임서버 주소라고 생각해주시면 됩니다.

 

네이버의 네임서버 주소를 조회해 봅니다

위 그림과 같이 우리는 도메인의 네임서버 정보를 조회해 볼 수 있습니다.

naver.com이라는 도메인의 네임서버는 그림에서 보는 것과 같이 아래와 같습니다.

  • ns1.naver.com
  • ns2.naver.com
  • e-ns.naver.com

 

자체적으로 구축한 네임서버인 것 같습니다.

이렇게 기관 또는 업체, 혹은 개인이 네임서버를 만들 수도 있습니다.

 

지금까지는 설정하는 사람의 입장에서 네임서버를 바라보았습니다.

그럼 접근하는 사람은 어떤 방식으로 접근할 수 있을까요?

 

접근하는 자가 바라보는 네임서버

나는 네임서버에 내 도메인을 조회하려고 합니다.

naver.com을 조회했습니다.

 

그럼 내 시스템에서 바라보고 있는 네임서버가 있습니다.

내가 설정한 네임서버를 찾는 방법은 아래를 참고해주세요.

더보기

내가 바라보고 있는 네임서버 조회

1) 명령 프롬프트 실행

시작 메뉴에서 "명령 프롬프트" 또는 "cmd"를 검색하셔서 실행해주세요.

시작 메뉴에서 cmd 혹은 명령 프롬프트를 검색하여 실행

2) ipconfig /all 입력

DNS 서버가 보인다.

 

하지만 위와 같은 방법으로 찾을 수 없는 경우도 있는데요.

 

이런 경우, 공유기 등에 설정되고 그 설정을 받아서 쓰는 경우가 있겠습니다.

공유기 설정에서 인터넷 연결 설정에 접속해 보시면 아래와 같이 설정된 것을 찾으실 수 있을 겁니다.

공유기 설정에서 정보를 찾을 수 있습니다.

 

네임서버 질의 순서

 

일단 브라우저에 여러분이 접근하고자 하는 도메인을 입력합니다.

그럼 브라우저는 네임서버에 질의합니다.

 

네임서버는 아래와 같이 대응합니다.

 

1) 나한테 그 정보가 있던가?

네임서버는 일단 내가 가지고 있는 정보인지를 확인합니다.

도메인이 직접 내 네임서버를 바라보고 있지 않다면 정보는 없을 것입니다.

 

답이 있다면 브라우저에게 바로 그 정보를 줍니다.

그렇지 않다면 2)로 갑니다.

 

2) 나한테 정보가 없네

나에게 정보가 없는 경우, 나보다 더 상급자에게 물어봐야겠지요?

그럼 네임서버는 ROOT 네임서버로 질의합니다.

 

나 이런 도메인을 찾고 있어, 너 혹시 이 도메인에 대해 알고 있니?

.com 인 경우 .com의 네임서버 리스트를, .net인 경우 .net의 네임서버 리스트를 돌려줍니다.

 

여기서 중요한 점은 루트 네임서버는 도메인 하나하나의 정보를 가지고 있지 않다는 점입니다.

루트 네임서버는 오로지 최상위 도메인의 네임서버 리스트를 가지고 있습니다.

 

3) 내가 요청한 TLD의 네임서버로 다시 질의

이제 나는 내가 요청한 최상위 도메인의 네임서버를 알았습니다.

그럼 그곳에 다시 질의합니다.

 

나는 이 도메인을 찾는데 어디로 가면 되니?

최상위 도메인의 네임서버.

즉 .kr의 네임서버(.com의 네임서버, .net의 네임서버 등등등)는 해답을 알고 있을 수도 있습니다.

 

알고 있다면 바로 해답을 내려줍니다.

 

그러나 최상위 도메인의 네임서버도 이를 모를 경우,

해당 도메인이 실질적으로 설정된 네임서버로 가보라고 알려줍니다.

 

우리가 아까 제일 먼저 naver.com의 NS레코드에 대해 조회했었지요.

바로 그곳입니다.

 

네이버의 경우 아래 네임서버를 바라보고 있었습니다.

  • ns1.naver.com
  • ns2.naver.com
  • e-ns.naver.com

 

4) 결국 해당 도메인 네임서버까지 가야 해요

우리는 ns1.naver.com으로 접근합니다. 

네이버의 경우 3개의 네임서버를 설정해 놓았는데요.

혹시라도 ns1 서버가 응답을 줄 수 없는 경우를 대비해 여러 개의 네임서버를 등록해 둡니다.

 

ns1.naver.com에서는 보통 이 도메인에 대한 정보를 가지고 있을 거예요.

혹시나 정보가 없다면 더 이상 찾을 곳이 없기 때문에 결과적으로 찾아갈 수 없겠습니다.

 

위의 과정을 통해 사용자는 어디로 가야 하는지 찾을 수 있습니다.

 

 

번외 : TTL (Time To Live)

위의 과정에서 네임서버는 찾은 정보를 응답 전 캐싱(Cache)해 둡니다.

캐싱이란, 다시 쓸 것 같은 정보를 잠시 저장해두는 것을 이야기하는데요.

 

naver.com에 대한 응답을 주었던 적이 있는 네임서버라면,

이후 naver.com을 조회했을 때 ns1.naver.com에 질의해서 가지고 온 데이터를 임시로 저장하고 있다가

다시 같은 요청이 들어올 경우 이 캐싱 데이터를 사용하게 됩니다.

 

매번 같은 조회를 해야한다면 빠른 응답을 줄 수 없을 뿐더러 불필요한 트래픽이 서로간에 발생하게 됩니다.

이를 방지하기 위해 이런 기술을 사용합니다.

 

이렇게 캐싱하는 경우, 캐싱의 시간. 즉 얼마간 이 데이터를 유지할 것인지에 대한 설정을 하는 부분입니다.

즉, "이 시간동안은 이 데이터가 유효하다고 판단해도 좋아" 라고 설정한 시간입니다.

 

도메인 TTL의 단위는 "초" 입니다.

 

네임서버들 간의 구조

위에서 등록하는 입장과 찾아가는 입장에서 간접적으로 네임서버들 간의 관계를 살펴보았습니다.

그럼 한번 정리해보겠습니다.

 

DNS 트리구조

 

네임서버는 위와 같은 트리구조를 갖습니다.

나무를 생각하면 뿌리에서 시작해서 각 줄기줄기로 흩어져 결국엔 잎에서 연결되어 있습니다.

 

위에서 이야기한 것과 같이 루트 네임서버에는 각 TLD별 네임서버의 목록만을 가지고 있습니다.

각 TLD의 네임서버들은 각 관리 기관에서 관리를 합니다. (com, net 등은 verisign, kr은 kisa 등)

 

그럼 ns1.naver.com과 같이 네임서버를 만드는 경우 어떻게 저 트리구조에 포함될 수 있을까요?

네, 네임서버를 구성할 때 ROOT네임서버를 바라보도록 설정하면 됩니다.

 

그럼 내 네임서버에 설정된 내용이 없을 경우 ROOT 네임서버를 통해 각 TLD 별 네임서버로 접근하여,

각 도메인이 설정된 네임서버로 접근할 수 있기 때문입니다.

 

 

정리

네임서버에 대해 조금은 이해가 되셨나요?

이렇게 네임서버의 구조와 질의 과정을 알아보았습니다.

 

다음 시간에는 실제 네임서버에 대한 실습을 해보도록 하겠습니다.

네임서버에 설정할 수 있는 레코드 및 특징, 네임서버에 도메인 질의하기 등을 설명합니다.

 

감사합니다.

 

 

 

 

2021.07.08 - [기술이야기] - 도메인 강좌 1강 : 기본은 IP

 

도메인 강좌 1강 : 기본은 IP

필자 소개 및 강의 요점 필자는 첫 커리어를 도메인 회사에서 쌓았습니다. 현재는 대기업에서 백엔드 개발자로 일하고 있습니다. 요즘과 같은 개발 환경에서 도메인의 역할은 더 커졌다고 볼 수

treebada.kr

2021.07.09 - [기술이야기] - 도메인 강좌 2강 : 도메인 기초

 

도메인 강좌 2강 : 도메인 기초

도메인은 무엇인가? 필요한 이유는? 드디어 도메인에 대해 이야기합니다. 사전적 정의에 대해서는 어디서나 많이 설명하고 있기 때문에 적지 않겠습니다. 우리는 도메인을 왜 사용하나요? 맞습

treebada.kr

 

 

반응형

댓글