의견.png

네임서버

위키원
js001018 (토론 | 기여)님의 2020년 7월 31일 (금) 16:37 판
이동: 둘러보기, 검색

네임서버(Name server)는 도메인 이름과 아이피(IP, Internet Protocol)의 상호변환을 가능하게 해주는 서버이다.

개요

네임서버 역할

컴퓨터는 아이피라고 불리는 일련의 숫자들을 통해 인터넷 주소를 인식하게 된다. 그러므로 사이트에 접속을 하기 위해서는, 해당 사이트에 대한 정보를 갖고 있는 서버의 주소, 즉 아이피를 알아야 한다. 예를 들어, 해시넷 사이트에 접속하기 위해서는 해시넷 사이트 정보를 담고 있는 서버의 아이피를 알아내야 한다. 하지만 사이트가 한 두개가 아닐 뿐더러, 만약 한 두개뿐이더라도 이러한 숫자는 사람이 기억하고 사용하기가 어렵다. 그래서 단어와 숫자의 조합을 사용하여 사용자들이 보다 쉽게 이용할 수 있는 DNS(Domain Name System)서버가 등장하였다. DNS서버는 도메인에 연결된 서버 아이피를 찾아주는 역할을 담당한다. 예를 들어, 해시넷에 접속하기 위해 주소창에 hash.kr 도메인을 입력한다. 그러면 컴퓨터는 hash.kr 도메인에 연결된 네임서버로 접속하여 서버 아이피를 요청한다. 요청 받은 네임서버는 hash.kr의 서버 아이피 주소를 찾은 뒤, 컴퓨터에게 아이피 주소를 알려준다. 그 후 컴퓨터는 전달 받은 서버 아이피로 접속하여 hash.kr의 정보를 사이트에 보여주게 된다. 즉, 해시넷 접속이 완료되는 것이다. 이처럼 도메인에 연결된 서버의 주소를 찾아주는 역할이 네임서버이다.[1]

네임서버는 도메인 이름과 아이피의 상호변환을 가능하게 해준다. 대부분의 도메인 이름은 2개의 네임서버를 갖게 되는데, 이는 두개의 네임서버가 서로 병렬적으로 동작하면서 네임서비스를 보다 안정적으로 연결되도록 한다. 다시 말해, 네임서버는 해당 홈페이지의 고유 주소인 아이피를 도메인으로 변환, 연결하는 기능이 담긴 것이다. 때문에, 아무리 도메인을 등록하였다 하더라도 네임서버에 해당 도메인이 어떤 아이피로 연결되었는가 하는 정보가 없다면 그 도메인은 어떤 주소로도 접속이 되지 않으며, '페이지를 표시할 수 없습니다'라는 메세지를 보여주게 된다.[2]

특징

DNS에서의 활용

구조

일반적으로 서버나 호스팅을 하는 업체라면 네임서버를 구축하고 있다. 그리고 개인적으로 운용하는 서버에도 아이피 주소가 존재한다. 예시로, 가정용 인터넷 회선의 공인 아이피가 있다. 그 네임서버를 통해서 영어 단어로 입력한 그 주소를 아이피 주소로 변환하여 접속하게 해주기 위한 다리 역할을 하고 있다. 모든 도메인에 관해서 각각의 네임서버가 존재한다. 다만, 얼마나 많은 양을 처리하고 분산시켜서 안정화를 하고 있으며 얼마나 빠르냐가 가장 관건이다. 예를 들어서, A라는 업체에서 abc.com이라는 도메인을 구매했다고 하자. A업체는 당연히 네임서버를 가지고 있고, 그 전달 과정은 다음과 같다.

  1. abc.com을 주소창에 입력
  2. abc.com 도메인을 가지고 있는 도메인 업체의 네임서버로 접속
  3. abc.com에서 아이피 주소 확인
  4. 아이피 주소를 다시 전달
  5. 아이피 주소를 가진 서버로 다시 접속
  6. 브라우저에서 연결된 아이피 주소에 관한 내용을 보여줌

하지만 문제가 있다. 국내 DNS서버이면 국내에서 접속하는 환경에서는 준수한 속도를 보여주지만, 도메인을 구입한 업체의 네임서버가 지구 반대편에 서버가 있고, 그 네임서버에 과부하가 걸려있는 상태라면 처음 접속하였을 때 나오는 페이징 속도가 너무 느려지는 것과 같은 접속시에 불편한 상황이 일어난다. 그러면 당연히 외국 업체에서 도메인을 구입 안 하면 되지만, 잘 찾으면 1년에 500원만 내고 사용할 수 있을 정도로 싸기 때문에 선택지로 무시할 수 없다. 해외의 느린 네임서버의 문제를 해결하기 위해서 중간에 네임서버만 바꾸는 작업도 가능하다. 도메인을 구입해 놓고, 다른 도메인 관리 네임서버에 설정해 놓고 관리를 할 수 있다. 즉, 도메인 이름만 빌려주고 다른 네임서버에 연결시켜놓고 빠른 페이징을 기대해볼 수 있다. 결과적으로 저렴한 비용으로 외국업체의 도메인을 구입하고, 정작 연결은 국내 네임 서버로 빠르게 연결할 수 있다.[3]

도메인 연결 방법

자주 사용하는 도메인 관리 시스템은 각각의 레코드(Record)를 기준으로 한다. 여러 레코드가 있지만 실질적으로 많이 사용하는 레코드는 5가지가 있다.

  • A 레코드
일반적으로 많이 사용하는 IPv4방식, 예를 들면 123.123.456.456의 아이피 주소로 연결해준다. 현재 가장 많이 쓰이는 방법이다.
  • AAAA 레코드
IPv6방식, 예를 들면 1234:2345:3456:4567:5678의 아이피 주소로 연결해준다. IPv6의 주소를 사용하고 있는 경우에만 관련된다.
  • CNAME 레코드
별칭이라는 이야기를 하는데, 쉽게 말하면 다른 도메인 주소를 지정한 주소로 연결할 수 있게끔 해준다.
  • DDNS 레코드
개인 서버를 운영하거나 공인 아이피가 유동적인 경우에는 변경된 아이피 주소를 주기적으로 갱신해준다. A 레코드 방식과 연결방식에는 차이가 없지만 자동으로 변경된 아이피를 갱신하느냐, 아니면 직접 입력을 하느냐의 차이가 있다.
  • 웹 포워딩
아이피 주소가 아닌 웹 주소로 직접 연결을 한다. 웹 포워딩의 장점은 복잡한 주소를 한번에 연결할 때 편하다. 원래 주소를 감춰서 보여주면 멀쩡한 웹페이지 해상도가 꼬이는 것과 같은 오류가 발생하기에 원래 주소를 감춰서 보여주지는 못한다. 웹 포워딩 제외 다른 방식들은 원래의 아이피 주소를 감춰서 보여주기 때문에 원래의 주소가 노출될 일은 없지만 웹 포워딩은 원래 주소가 노출된다는 불편한 점을 가지고 있다. 무료 도메인의 경우 이 방식으로 많이 사용한다.[3]

네임서버와 DNS의 차이점

네임서버

도메인을 구입하게 되면 이 도메인을 특정 서버에 연결해야 한다. 서버는 아이피 주소를 가지고 있어야 식별이 된다. 이 서버단위를 호스트(host)라고 부른다. 도메인을 어떤 아이피를 가진 서버와 연결하는 담당을 하는 것이 네임서버가 하는 일이다. 즉,

abc.com >> 111.222.333.444

이런 식으로 매핑을 하는 서버이다. 쉽게 말해, 특정 도메인이 어떤 아이피와 연결되었다는 것을 기록하고 그것을 전파하는 역할을 한다.[4]

DNS

DNS는 네임서버와 비슷한 작업을 하는 것 같지만 상당히 다른 작업을 수행한다. DNS는 실시간으로 각 네임서버로부터 전파된 모든 도메인의 아이피 정보를 갱신하며, 누군가에게 특정 도메인에 대한 요청이 들어오면 아이피 주소를 알려주는 담당을 한다. 여기서 들어오는 요청은 최종 이용자인 호스트로부터 들어오는 것이다. 예를 들어, 해시넷에 접속을 하기 위한 절차는 다음과 같다.

내 컴퓨터 또는 휴대폰 등 >> 브라우저 주소창에 hash.kr 주소 입력 >> DNS에 도메인에 대한 아이피 요청 >> DNS에서 아이피를 회신 >> 내 컴퓨터 또는 휴대폰 등에서 회신 받은 아이피로 접속

웹서버의 경우도 이 DNS를 입력하게 된다. 다른 사이트와 서버가 접속할 일이 가끔 생기기 때문에 다른 웹사이트 도메인을 아이피로 반환받아야 다른 사이트 접속을 할 수 있기 때문이다.[4]

구분

루트 네임서버

루트 네임서버 목록

루트 네임서버(Root Name Server)는 최상위 레벨 도메인(TLD, Top Level Domain)을 알고있는 네임서버이다.[5] 루트 네임서버에 대해 얘기하기 전에 먼저 도메인 체계에 대한 설명을 하겠다. 인터넷 도메인의 체계에서 최상위는 루트로, 인터넷 도메인의 시작점이다. 그리고 이 루트 도메인 바로 아래 단계에 있는 것을 1단계 도메인이라고 하며, 다른 말로 최상위 도메인이라고 한다. 최상위 도메인은 국가명을 나타내는 국가최상위도메인(ccTLD, country code Top Level Domain)과 일반적으로 사용되는 일반최상위도메인(gTLD, general Top Level Domain)으로 구분된다. 국가최상위도메인의 예시로 kr, jp, us와 같이 국가명이 붙으며, 일반최상위도메인의 예시로는 com, net, org 등이 있다.[6]

루트 네임서버는 도메인 질의과정에서 가장 먼저 거치게 되는 네임서버로, 전세계에 오직 13대만 존재한다. DDOS공격 예방을 위해 전 세계에 root dns의 미러서버를 설치하여 관리되고 있다. 예를 들어 www.netpia.com의 주소를 찾아가기 위해서 클라이언트의 리졸버는 로컬에 설정된 네임서버를 통하여 루트 네임서버를 가장 먼저 참조하게 된다. 루트 네임서버의 주소는 bind내에 흔히 알고 있는 named.ca(root hint)파일에 명시되어 있으며 현재는 ICANN이 관리하고 있는 IANA기관에서 배포한다. 루트 네임서버는 최상위네임서버들의 네임서버명(NS레코드)과 IP주소(A레코드)를 가지고 있는데 이를 글루레코드(glue record)라고 한다. 최상위 네임서버를 통하여 .com네임서버를 거쳐 www.netpia.com 도메인의 정보를 가진 netpia.com 네임서버까지 찾아가게 된다.[6]

책임 네임서버

책임 네임서버는 관리하는 곳에서 DNS 요청에 응답을 하는 네임서버를 의미한다. 책임 본연의 기능만 가지고 있는(Authoritative-only name server) 관리자가 설정한 정보만을 반환한다. 예를 들어, 리졸버가 관리하는 캐시의 도메인 데이터 등을 사용하지 않는다. 리커시브(Recursive) 네임서버와 캐시(Cache) 네임서버와 구분되기도 하지만, 결론적으로 하나의 네임서버가 이들 기능을 함께 처리하기 때문에 굳이 구분할 필요는 없다. 책임 네임서버는 일차(Primary) 서버와 이차(Second) 서버로 구성된다. 일차서버는 관리하는 모든 레코드의 최종 버전 정보를 저장한다. 이차서버는 일차서버를 백업하는 역할을 한다. 평소에 자동으로 일차서버의 데이터베이스를 업데이트 해서, 데이터베이스를 서로 동기화한다. 데이터베이스 동기화를 위해서 DNS zone transfers 프로토콜을 사용한다.[7]

중간 네임서버

중간 네임서버란 어떤 호스트 이름을 알고 있는 책임 네임서버의 아이피 주소를 알고있는 서버이다.[5]

지역 네임서버

지역 네임서버(Local Name Server)는 지역 도메인에서 DNS 질의응답을 전담하는 서버이다. 클라이언트 시스템은 지역 네임서버로 요청을 전송하고, 루트가 데이터베이스에서 주소를 찾지 못하면 루트 네임서버로 요청을 전송하며, 그러면 쿼리가 중간 네임서버 또는 권한 있는 네임서버로 라우팅된다. 루트 네임서버에는 일부 호스트네임 to 아이피 주소 매핑도 포함될 수 있다. 중간 네임서버는 항상 권한 있는 네임서버가 누구인지 알고 있다. 따라서 마지막으로 아이피 주소는 지역 네임서버로 반환되고, 아이피 주소는 호스트에 반환된다.[8]

각주

  1. hostinggodo, 〈네임서버(DNS)란?〉, 《네이버 블로그》, 2016-01-11
  2. 도메인클럽 - https://mypage.domainclub.kr/faq_view.htm?category2=FAQ&no=95
  3. 3.0 3.1 clamp2x, 〈네임서버와 DNS에 대해 알아가기 (도메인 연결방법)〉, 《티스토리》, 2014-07-18
  4. 4.0 4.1 웹지기, 〈많이 혼돈하시는 네임서버와 DNS〉, 《XETOWN》, 2018-12-09
  5. 5.0 5.1 차재복, 〈NS Name Server 네임 서버, DNS 서버〉, 《정보통신기술용어해설》, 2019-06-11
  6. 6.0 6.1 관리자, 〈root dns가 뭔가요?〉, 《넷피아》, 2017-05-08
  7. Joinc - https://www.joinc.co.kr/w/man/12/DNS/AuthoritativeNameServer
  8. RonitRay&alokesh985, 〈Domain Name System (DNS) in Application Layer〉, 《긱스포긱스》

[1]

참고 자료

같이 보기


  의견.png 이 네임서버 문서는 인터넷에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.  

  1. Rob Enderle, 〈글로벌 칼럼 | AI 가상비서가 필요한 결정적인 이유〉, 《아이티월드》, 2020-06-09