검수요청.png검수요청.png

"네임서버"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
잔글
 
(사용자 2명의 중간 판 35개는 보이지 않습니다)
1번째 줄: 1번째 줄:
'''네임서버'''(Name Server)는 네임 서버는 디렉터리 서비스에 대한 쿼리에 대한 응답을 제공하는 네트워크 서비스를 구현하는 컴퓨터 응용 프로그램이다. <ref name="네임 서버">, [https://en.wikipedia.org/wiki/Name_server Name server]〉, 《위키피디아》</ref>
+
'''네임서버'''(Name server)는 [[도메인]] 이름과 [[아이피]](IP, Internet Protocol)의 상호변환을 가능하게 해주는 [[서버]]이다. 쉽게 말해, 영문 도메인을 네 자리의 아이피 주소로 매핑시켜주는 서버를 말한다. 호스팅을 받게 되면 호스팅 업체의 네임서버가 사용자의 [[FTP]] 계정이 있는 웹서버로 아이피 주소를 연결해준다. 그러므로, 호스팅 업체가 정해지면 도메인의 네임서버 정보를 호스팅 업체의 [[네임서버]]로 변경해야만 사이트 연결이 된다. '''[[DNS]]'''라고도 한다.
 +
 
 +
{{:인터넷 배너|호스팅}}
  
 
== 개요 ==
 
== 개요 ==
네임 서버는 디렉터리 서비스에 대한 쿼리에 대한 응답을 제공하는 네트워크 서비스를 구현하는 컴퓨터 응용 프로그램이다. 그것은 종종 인간적으로 의미 있는 텍스트 기반 식별자를 시스템 내부, 종종 숫자 식별 또는 주소 지정 구성요소로 변환한다. 이 서비스는 서버가 서비스 프로토콜 요청에 응답하여 수행한다. 네임 서버의 예로는 인터넷의 두 가지 주요 네임스페이스 중 하나인 DNS(Domain Name System)서버 구성요소를 들 수 있다. DNS 서버의 가장 중요한 기능은 인터넷에서 컴퓨터 시스템과 자원을 식별하고 찾는 데 사용되는 인터넷의 두 번째 주 이름 공간인 인간-메모리 도메인 이름과 호스트 이름을 해당하는 숫자 인터넷 프로토콜(IP) 주소로 변환(해결)하는 것이다.<ref name="네임 서버">, 〈[https://en.wikipedia.org/wiki/Name_server Name server]〉, 《위키피디아》</ref>
+
[[파일:네임서버구조2.jpg|썸네일|500픽셀|'''네임서버''' 역할]]
== 도메인 이름 서버 ==
+
컴퓨터는 아이피라고 불리는 일련의 숫자들을 통해 인터넷 주소를 인식하게 된다. 그러므로 사이트에 접속하기 위해서는, 해당 사이트에 대한 정보를 가진 서버의 주소, 즉 아이피를 알아야 한다. 예를 들어, 해시넷 사이트에 접속하기 위해서는 해시넷 사이트 정보를 담고 있는 서버의 아이피를 알아내야 한다. 하지만 사이트가 한두 개가 아닐뿐더러, 만약 한두 개뿐이더라도 이러한 숫자는 사람이 기억하고 사용하기가 어렵다. 그래서 단어와 숫자의 조합을 사용하여 사용자들이 더 쉽게 이용할 수 있는 [[DNS]](Domain Name System) 서버가 등장하였다. DNS 서버는 도메인에 연결된 서버 아이피를 찾아주는 역할을 담당한다. 예를 들어, 해시넷에 접속하기 위해 주소창에 hash.kr 도메인을 입력한다. 그러면 컴퓨터는 hash.kr 도메인에 연결된 네임서버로 접속하여 서버 아이피를 요청한다. 요청받은 네임서버는 hash.kr의 서버 아이피 주소를 찾은 뒤, 컴퓨터에 아이피 주소를 알려준다. 그 후 컴퓨터는 전달받은 서버 아이피로 접속하여 hash.kr의 정보를 사이트에 보여주게 된다. 즉, 해시넷 접속이 완료되는 것이다. 이처럼 도메인에 연결된 서버의 주소를 찾아주는 역할이 네임서버다.<ref>hostinggodo, 〈[https://m.blog.naver.com/PostView.nhn?blogId=hostinggodo&logNo=220593959842&proxyReferer=https:%2F%2Fwww.google.com%2F 네임서버(DNS)란?]〉, 《네이버 블로그》, 2016-01-11</ref>
인터넷은 도메인 이름 계층과 IP 주소 시스템이라는 두 개의 주요 네임스페이스를 유지한다. 도메인 이름 시스템은 도메인 네임스페이스를 유지하고 이 두 네임스페이스 간에 변환 서비스를 제공한다. 인터넷 이름 서버는 도메인 이름 시스템을 구현한다. 도메인 이름 시스템의 최상위 계층은 ICANN(Internet Corporation for Assigned Name and Numbers)에 의해 위임이 관리하는 루트 이름 서버에 의해 서비스된다. 루트 아래에서 인터넷 자원은 각 등록자와 도메인 이름 소유자에 의해 관리되는 도메인의 계층으로 구성된다. DNS 이름 서버는 도메인 이름에 대한 주소(A, AAAA) 레코드, 이름 서버(NS) 레코드, 메일 교환기(MX) 레코드 등의 DNS 레코드를 저장하고(DNS 레코드 유형 목록 참조) 데이터베이스에 대한 쿼리에 대한 응답으로 응답하는 서버다.<ref name="네임 서버">, 〈[https://en.wikipedia.org/wiki/Name_server Name server]〉, 《위키피디아》</ref>
+
 
== 권한 있는 이름 서버 ==
+
네임서버는 도메인 이름과 아이피의 상호변환을 가능하게 해준다. 대부분의 도메인 이름은 두 개의 네임서버를 갖게 되는데, 이는 두 개의 네임서버가 서로 병렬적으로 동작하면서 네임서비스를 보다 안정적으로 연결되도록 한다. 다시 말해, 네임서버는 해당 홈페이지의 고유 주소인 아이피를 도메인으로 변환, 연결하는 기능이 담긴 것이다. 때문에, 아무리 도메인을 등록하였다 하더라도 네임서버에 해당 도메인이 어떤 아이피로 연결되었는가 하는 정보가 없다면 그 도메인은 어떤 주소로도 접속이 되지 않으며, '페이지를 표시할 수 없습니다'라는 메시지를 보여주게 된다.<ref>도메인클럽 - https://mypage.domainclub.kr/faq_view.htm?category2=FAQ&no=95</ref>
권한 있는 이름 서버는 영역에 있는 이름에 대한 질문에 대한 답변을 제공하는 이름 서버이다. 권한 있는 전용 이름 서버는 관리자가 특별히 구성한 도메인 이름에 대한 질의에만 응답을 반환한다. 이름 서버는 또한 다른 모든 영역에 대해 캐싱 이름 서버 역할을 하면서 일부 영역의 쿼리에 대한 권한 있는 답변을 제공하도록 구성할 수 있다. 권한 있는 이름 서버는 주 서버(마스터) 또는 보조 서버(슬레이브)가 될 수 있다. 영역의 기본 서버는 해당 영역에 있는 모든 레코드의 최종 버전을 저장하는 서버다. SOA(Start-of-Authority) 리소스 레코드로 식별된다. 구역용 보조 서버는 구역에 대한 주 서버 데이터베이스의 동일한 사본을 유지하기 위해 자동 업데이트 메커니즘을 사용한다. 그러한 메커니즘의 예로는 DNS 영역 전송과 파일 전송 프로토콜이 있다. DNS는 구역의 내용이 변경되었을 구역의 기본이 해당 구역에 대해 알려진 모든 보조 사항을 통지할 수 있는 메커니즘을 제공한다. 구역의 내용은 관리자가 수동으로 구성하거나 동적 DNS를 사용하여 관리한다. 모든 도메인 이름은 하나 이상의 권한 있는 이름 서버에 의해 서비스되는 영역에 나타난다. 영역의 권한 있는 이름 서버의 정규화된 도메인 이름은 해당 영역의 NS 레코드에 나열되어 있다. 영역에 대한 서버도 상위 영역에 대해 권한이 없는 경우 상위 영역에 대한 서버를 해당 영역에 대한 위임을 사용하여 구성해야 한다. 도메인 이름 등록자에 도메인을 등록하면, 영역 관리자는 도메인을 포함하는 영역에 대해 권한이 있는 이름 서버 목록(일반적으로 적어도 2개)을 제공한다. 등록자는 이 서버들의 이름을 영역을 포함하는 최상위 도메인의 도메인 레지스트리에 제공한다. 도메인 레지스트리는 차례로 해당 최상위 도메인에 대한 권한 있는 이름 서버를 해당 영역에 대한 각 서버에 대한 위임으로 구성한다. 영역에 대한 이름 서버의 전체 도메인 이름이 해당 영역 내에 나타나면, 영역 관리자는 해당 이름 서버의 IP 주소를 제공하고, 이 서버는 상위 영역에 글루 레코드로 설치되며, 그렇지 않으면 위임을 해당 영역에 대한 NS 레코드 목록으로 구성한다.<ref name="네임 서버">, 〈[https://en.wikipedia.org/wiki/Name_server Name server]〉, 《위키피디아》</ref>
+
 
== 권한 있는 답변 ==
+
== 특징 ==
이름 서버는 권한 있는 이름의 쿼리에 대한 응답에서 권한 있는 응답(AA) 비트를 설정하여 해당 응답에 권한을 부여함을 나타낸다. 권한이 없는 답변을 제공하는 이름 서버(예: 상위 영역의 이름 서버)는 AA 비트를 설정하지 않는다.<ref name="네임 서버">, 〈[https://en.wikipedia.org/wiki/Name_server Name server]〉, 《위키피디아》</ref>
+
=== DNS에서의 활용 ===
== 재귀조회 ==
+
;구조
이름 서버가 DNS 캐시에 호스트에 대한 항목이 포함되어 있지 않아 쿼리에 응답할 수 없는 경우, 계층의 위쪽에 있는 이름 서버를 재귀적으로 쿼리할 수 있다.[9] 이를 재귀 쿼리 또는 재귀 조회라고 한다. 재귀 쿼리를 제공하는 서버는 재귀명 서버 또는 재귀 DNS로 알려져 있으며, 때로는 재귀명 서버라고도 한다. 원칙적으로 인터넷 운영에 필요한 권한 있는 이름 서버로는 충분하다. 그러나 권한 있는 이름 서버만 작동하므로 모든 DNS 쿼리는 도메인 이름 시스템의 루트 영역에서 재귀 쿼리로 시작해야 하며 각 사용자 시스템은 재귀 작업을 수행할 수 있는 해결자 소프트웨어를 구현해야 한다.<ref name="네임 서버">, 〈[https://en.wikipedia.org/wiki/Name_server Name server]〉, 《위키피디아》</ref>
+
일반적으로 서버나 [[호스팅]]을 하는 업체라면 네임서버를 구축하고 있다. 그리고 개인적으로 운용하는 서버에도 아이피 주소가 존재한다. 예시로, 가정용 인터넷 회선의 공인 아이피가 있다. 그 네임서버를 통해서 영어 단어로 입력한 그 주소를 아이피 주소로 변환하여 접속하게 해주기 위한 다리 역할을 하고 있다. 모든 도메인에 관해서 각각의 네임서버가 존재한다. 다만, 얼마나 많은 양을 처리하고 분산시켜서 안정화를 하고 있으며 얼마나 빠르냐가 가장 관건이다. 예를 들어서, A라는 업체에서 abc.com이라는 도메인을 구매했다고 하자. A 업체는 당연히 네임서버를 가지고 있고, 그 전달 과정은 다음과 같다.
== 캐싱 네임 서버 ==
+
#abc.com을 주소창에 입력
캐싱 이름 서버(DNS 캐시)는 각 도메인 이름 레코드의 구성(실시간)에서 결정된 기간 동안 DNS 쿼리 결과를 저장한다. DNS 캐시는 인터넷 전체에서 DNS 트래픽을 줄이고, 권한 있는 이름 서버, 특히 루트 이름 서버에 대한 로드를 줄임으로써 DNS의 효율성을 향상시킨다. 그들은 질문에 더 빨리 대답할 수 있기 때문에 DNS를 사용하는 최종 사용자 애플리케이션의 성능도 향상시킨다. 재귀적인 이름 서버는 질문에 대한 권한이 있는 서버나 서버를 상담함으로써 그들이 받는 모든 쿼리를 해결한다. 캐싱 네임 서버는 종종 재귀적인 네임 서버이기도 하다. 그들은 그들이 수신하는 DNS 쿼리에 응답하는 데 필요한 모든 단계를 수행한다. 이를 위해 이름 서버는 DNS 루트 영역에서 시작하여 각 권한 있는 이름-서버를 차례로 쿼리한다. 쿼리된 도메인 이름을 포함하는 영역의 권한 있는 서버에 도달할 때까지 계속된다. 그 서버는 질문에 대한 답을 제공하거나, 또는 확실하게 대답할 수 없다고 말하는데, 캐싱 해결사는 이 응답을 질문을 한 클라이언트에 반환한다. 권한, 해결 및 캐싱 기능은 모두 DNS 서버 구현에 존재할 수 있지만, 이것은 필요하지 않다. DNS 서버는 다른 기능을 구현하지 않고도 이러한 기능을 단독으로 구현할 수 있다. 인터넷 서비스 제공업체들은 일반적으로 고객들을 위해 캐싱 해결사를 제공한다. 또한, 많은 홈 네트워크 라우터는 캐싱 해결사를 구현하여 로컬 네트워크의 효율성을 향상시킨다. 일부 시스템은 nscd를 활용한다<ref name="네임 서버">, 〈[https://en.wikipedia.org/wiki/Name_server Name server]〉, 《위키피디아》</ref>
+
#abc.com 도메인을 가지고 있는 도메인 업체의 네임서버로 접속
 +
#abc.com에서 아이피 주소 확인
 +
#아이피 주소를 다시 전달
 +
#아이피 주소를 가진 서버로 다시 접속
 +
#브라우저에서 연결된 아이피 주소에 관한 내용을 보여줌
 +
하지만 문제가 있다. 국내 DNS 서버이면 국내에서 접속하는 환경에서는 준수한 속도를 보여주지만, 도메인을 구매한 업체의 네임서버가 지구 반대편에 서버가 있고, 그 네임서버에 과부하가 걸려있는 상태라면 처음 접속하였을 때 나오는 페이징 속도가 너무 느려지는 것과 같은 접속 시에 불편한 상황이 일어난다. 그러면 당연히 외국 업체에서 도메인을 구매 안 하면 되지만, 잘 찾으면 1년에 500원만 내고 사용할 수 있을 정도로 싸기 때문에 선택지로 무시할 수 없다. 해외의 느린 네임서버의 문제를 해결하기 위해서 중간에 네임서버만 바꾸는 작업도 가능하다. 도메인을 구매해 놓고, 다른 도메인 관리 네임서버에 설정해 놓고 관리를 할 수 있다. 즉, 도메인 이름만 빌려주고 다른 네임서버에 연결해놓고 빠른 페이징을 기대해볼 수 있다. 결과적으로 저렴한 비용으로 외국업체의 도메인을 구매하고, 정작 연결은 국내 네임 서버로 빠르게 연결할 수 있다.<ref name="도메인티">clamp2x, 〈[https://studyforus.tistory.com/52 네임서버와 DNS에 대해 알아가기 (도메인 연결방법)]〉, 《티스토리》, 2014-07-18</ref>
 +
 
 +
;도메인 연결 방법
 +
자주 사용하는 도메인 관리 시스템은 각각의 레코드(Record)를 기준으로 한다. 여러 레코드가 있지만, 실질적으로 많이 사용하는 레코드는 5가지가 있다.
 +
* '''A 레코드'''
 +
: 일반적으로 많이 사용하는 [[IPv4]]방식, 예를 들면 123.123.456.456의 아이피 주소로 연결해준다. 현재 가장 많이 쓰이는 방법이다.
 +
* '''AAAA 레코드'''
 +
: [[IPv6]]방식, 예를 들면 1234:2345:3456:4567:5678의 아이피 주소로 연결해준다. IPv6의 주소를 사용하고 있는 경우에만 관련된다.
 +
* '''CNAME 레코드'''
 +
: 별칭이라는 이야기를 하는데, 쉽게 말하면 다른 도메인 주소를 지정한 주소로 연결할 수 있게끔 해준다.
 +
* '''DDNS 레코드'''
 +
: 개인 서버를 운영하거나 공인 아이피가 유동적인 경우에는 변경된 아이피 주소를 주기적으로 갱신해준다. A 레코드 방식과 연결방식에는 차이가 없지만, 자동으로 변경된 아이피를 갱신하느냐, 아니면 직접 입력을 하느냐의 차이가 있다.
 +
* '''웹 포워딩'''
 +
: 아이피 주소가 아닌 웹 주소로 직접 연결을 한다. 웹 포워딩의 장점은 복잡한 주소를 한 번에 연결할 편하다. 원래 주소를 감춰서 보여주면 멀쩡한 웹페이지 해상도가 꼬이는 것과 같은 오류가 발생하기에 원래 주소를 감춰서 보여주지는 못한다. 웹 포워딩 제외 다른 방식들은 원래의 아이피 주소를 감춰서 보여주기 때문에 원래의 주소가 노출될 일은 없지만, 웹 포워딩은 원래 주소가 노출된다는 불편한 점을 가지고 있다. 무료 도메인의 경우 이 방식으로 많이 사용한다.<ref name="도메인티"></ref>
 +
 
 +
=== 네임서버와 DNS의 차이점 ===
 +
;네임서버
 +
도메인을 구매하게 되면 이 도메인을 특정 서버에 연결해야 한다. 서버는 아이피 주소를 가지고 있어야 식별이 된다. 이 서버 단위를 호스트(host)라고 부른다. 도메인을 어떤 아이피를 가진 서버와 연결하는 담당을 하는 것이 네임서버가 하는 일이다. 즉
 +
abc.com >> 111.222.333.444
 +
이런 식으로 [[매핑]]을 하는 서버이다. 쉽게 말해, 특정 도메인이 어떤 아이피와 연결되었다는 것을 기록하고 그것을 전파하는 역할을 한다.<ref name="네임서버DNS차이">웹지기, 〈[https://xetown.com/topics/1125037 많이 혼돈하시는 네임서버와 DNS]〉, 《XETOWN》, 2018-12-09</ref>
 +
 
 +
;DNS
 +
DNS는 네임서버와 비슷한 작업을 하는 것 같지만 상당히 다른 작업을 수행한다. DNS는 실시간으로 각 네임서버로부터 전파된 모든 도메인의 아이피 정보를 갱신하며, 누군가에게 특정 도메인에 대한 요청이 들어오면 아이피 주소를 알려주는 담당을 한다. 여기서 들어오는 요청은 최종 이용자인 호스트에게서 들어오는 것이다. 예를 들어, 해시넷에 접속을 하기 위한 절차는 다음과 같다.
 +
#내 컴퓨터 또는 휴대폰 등
 +
#브라우저 주소창에 hash.kr 주소 입력
 +
#DNS에 도메인에 대한 아이피 요청
 +
#DNS에서 아이피를 회신
 +
#내 컴퓨터 또는 휴대폰 등에서 회신받은 아이피로 접속
 +
웹서버의 경우도 이 DNS를 입력하게 된다. 다른 사이트와 서버가 접속할 일이 가끔 생기기 때문에 다른 웹사이트 도메인을 아이피로 반환받아야 다른 사이트 접속을 할 수 있기 때문이다.<ref name="네임서버DNS차이"></ref>
 +
 
 +
== 구분 ==
 +
=== 루트 네임서버 ===
 +
[[파일:루트 네임서버 목록.jpg|썸네일|550픽셀|루트 네임서버 목록]]
 +
루트 네임서버(Root Name Server)는 최상위 레벨 도메인(TLD, Top Level Domain)을 알고있는 네임서버이다.<ref name="네임서버구분">차재복, 〈[http://www.ktword.co.kr/abbr_view.php?nav=&m_temp1=1486&id=1071 NS  Name Server  네임 서버, DNS 서버]〉, 《정보통신기술용어해설》, 2019-06-11</ref> 루트 네임서버에 대해 얘기하기 전에 먼저 도메인 체계에 대한 설명을 하겠다. 인터넷 도메인의 체계에서 최상위는 루트로, 인터넷 도메인의 시작점이다. 그리고 이 루트 도메인 바로 아래 단계에 있는 것을 1단계 도메인이라고 하며, 다른 말로 최상위 도메인이라고 한다. 최상위 도메인은 국가명을 나타내는 국가최상위도메인(ccTLD, country code Top Level Domain)과 일반적으로 사용되는 일반 최상위도메인(gTLD, general Top Level Domain)으로 구분된다. 국가최상위도메인의 예시로 kr, jp, us와 같이 국가명이 붙으며, 일반최상위도메인의 예시로는 com, net, org 등이 있다.<ref name="rootdns">관리자, 〈[http://brd.netpia.com/board/read.asp?code=dns_qna&article_no=999957&partition=1&category=0&page=1&order_type=thread,%20order_no&order_asc=&s_subject=1&s_content=&s_name=&s_keyword= root dns가 뭔가요?]〉, 《넷피아》, 2017-05-08</ref>
 +
 
 +
루트 네임서버는 도메인 질의 과정에서 가장 먼저 거치게 되는 네임서버로, 전세계에 오직 13대만 존재한다. [[디도스]](DDOS)공격 예방을 위해 전 세계에 루트 네임서버의 미러서버를 설치하여 관리되고 있다. 예를 들어 www.netpia.com의 주소를 찾아가기 위해서 클라이언트의 리졸버는 로컬에 설정된 네임서버를 통하여 루트 네임서버를 가장 먼저 참조하게 된다. 루트 네임서버의 주소는 bind 내에 흔히 알고 있는 named.ca(root hint)파일에 명시되어 있으며 현재는 [[ICANN]]이 관리하고 있는 [[IANA]]기관에서 배포한다. 루트 네임서버는 최상위네임서버들의 네임서버명(NS레코드)과 IP주소(A레코드)를 가지고 있는데 이를 [[글루레코드]](glue record)라고 한다. 최상위 네임서버를 통하여 .com네임서버를 거쳐 www.netpia.com 도메인의 정보를 가진 netpia.com 네임서버까지 찾아가게 된다.<ref name="rootdns"></ref>
 +
 
 +
=== 책임 네임서버 ===
 +
책임 네임서버는 관리하는 곳에서 DNS 요청에 응답하는 네임서버를 의미한다. 책임 본연의 기능만 가지고 있는(Authoritative-only name server) 관리자가 설정한 정보만을 반환한다. 예를 들어, 리졸버가 관리하는 캐시의 도메인 데이터 등을 사용하지 않는다.  리커시브(Recursive) 네임서버와 캐시(Cache) 네임서버와 구분되기도 하지만, 결론적으로 하나의 네임서버가 이들 기능을 함께 처리하기 때문에 굳이 구분할 필요는 없다. 책임 네임서버는 일차(Primary) 서버와 이차(Second) 서버로 구성된다. 일차서버는 관리하는 모든 레코드의 최종 버전 정보를 저장한다. 이차서버는 일차서버를 [[백업]]하는 역할을 한다. 평소에 자동으로 일차서버의 [[데이터베이스]]를 [[업데이트]] 해서, 데이터베이스를 서로 동기화한다. 데이터베이스 동기화를 위해서 DNS zone transfers [[프로토콜]]을 사용한다.<ref>Joinc - https://www.joinc.co.kr/w/man/12/DNS/AuthoritativeNameServer</ref>
 +
 
 +
=== 중간 네임서버 ===
 +
중간 네임서버란 어떤 호스트 이름을 알고 있는 책임 네임서버의 아이피 주소를 알고있는 서버이다.<ref name="네임서버구분"></ref>
 +
 
 +
=== 지역 네임서버 ===
 +
지역 네임서버(Local Name Server)는 지역 도메인에서 DNS 질의응답을 전담하는 서버이다. 클라이언트 시스템은 지역 네임서버로 요청을 전송하고, 루트가 데이터베이스에서 주소를 찾지 못하면 루트 네임서버로 요청을 전송하며, 그러면 쿼리가 중간 네임서버 또는 권한 있는 네임서버로 [[라우팅]]된다. 루트 네임서버에는 일부 호스트네임 to 아이피 주소 매핑도 포함될 수 있다. 중간 네임서버는 항상 권한 있는 네임서버가 누구인지 알고 있다. 따라서 마지막으로 아이피 주소는 지역 네임서버로 반환되고, 아이피 주소는 호스트에 반환된다.<ref>RonitRay&alokesh985, 〈[https://www.geeksforgeeks.org/domain-name-system-dns-in-application-layer/ Domain Name System (DNS) in Application Layer]〉, 《긱스포긱스》</ref>
  
 
{{각주}}
 
{{각주}}
  
 
== 참고 자료 ==
 
== 참고 자료 ==
* 〈[https://en.wikipedia.org/wiki/Name_server Name server]〉, 《위키피디아》
+
* 도메인클럽 - https://mypage.domainclub.kr/faq_view.htm?category2=FAQ&no=95
 +
* hostinggodo, 〈[https://m.blog.naver.com/PostView.nhn?blogId=hostinggodo&logNo=220593959842&proxyReferer=https:%2F%2Fwww.google.com%2F 네임서버(DNS)란?]〉, 《네이버 블로그》, 2016-01-11
 +
* egoing, 〈[https://opentutorials.org/module/288/2802 도메인과 네임서버]〉, 《오픈튜토리얼스》, 2012-09-14
 +
* clamp2x, 〈[https://studyforus.tistory.com/52 네임서버와 DNS에 대해 알아가기 (도메인 연결방법)]〉, 《티스토리》, 2014-07-18
 +
* 웹지기, 〈[https://xetown.com/topics/1125037 많이 혼돈하시는 네임서버와 DNS]〉, 《XETOWN》, 2018-12-09
 +
* 차재복, 〈[http://www.ktword.co.kr/abbr_view.php?nav=&m_temp1=1486&id=1071 NS  Name Server  네임 서버, DNS 서버]〉, 《정보통신기술용어해설》, 2019-06-11
 +
* 관리자, 〈[http://brd.netpia.com/board/read.asp?code=dns_qna&article_no=999957&partition=1&category=0&page=1&order_type=thread,%20order_no&order_asc=&s_subject=1&s_content=&s_name=&s_keyword= root dns가 뭔가요?]〉, 《넷피아》, 2017-05-08
 +
* ICAAN - https://www.icann.org/resources/pages/what-2012-02-25-ko
 +
* Joinc - https://www.joinc.co.kr/w/man/12/DNS/AuthoritativeNameServer
 +
* Cloudflare - https://www.cloudflare.com/learning/dns/dns-server-types/#authoritative-nameserver
 +
* 미리내닷컴 - https://www.mireene.com/webimg/nameserver_trans.html
  
 
== 같이 보기 ==
 
== 같이 보기 ==
 
 
* [[도메인]]
 
* [[도메인]]
 +
* [[아이피]](IP)
 +
* [[DNS]]
 +
* [[서버]]
  
{{인터넷|토막글}}
+
{{인터넷|검토 필요}}

2024년 3월 19일 (화) 22:50 기준 최신판

네임서버(Name server)는 도메인 이름과 아이피(IP, Internet Protocol)의 상호변환을 가능하게 해주는 서버이다. 쉽게 말해, 영문 도메인을 네 자리의 아이피 주소로 매핑시켜주는 서버를 말한다. 호스팅을 받게 되면 호스팅 업체의 네임서버가 사용자의 FTP 계정이 있는 웹서버로 아이피 주소를 연결해준다. 그러므로, 호스팅 업체가 정해지면 도메인의 네임서버 정보를 호스팅 업체의 네임서버로 변경해야만 사이트 연결이 된다. DNS라고도 한다.

아사달 스마트 호스팅 가로 배너 (since 1998).jpg
이 그림에 대한 정보
[아사달] 스마트 호스팅

개요[편집]

네임서버 역할

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

네임서버는 도메인 이름과 아이피의 상호변환을 가능하게 해준다. 대부분의 도메인 이름은 두 개의 네임서버를 갖게 되는데, 이는 두 개의 네임서버가 서로 병렬적으로 동작하면서 네임서비스를 보다 안정적으로 연결되도록 한다. 다시 말해, 네임서버는 해당 홈페이지의 고유 주소인 아이피를 도메인으로 변환, 연결하는 기능이 담긴 것이다. 때문에, 아무리 도메인을 등록하였다 하더라도 네임서버에 해당 도메인이 어떤 아이피로 연결되었는가 하는 정보가 없다면 그 도메인은 어떤 주소로도 접속이 되지 않으며, '페이지를 표시할 수 없습니다'라는 메시지를 보여주게 된다.[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는 실시간으로 각 네임서버로부터 전파된 모든 도메인의 아이피 정보를 갱신하며, 누군가에게 특정 도메인에 대한 요청이 들어오면 아이피 주소를 알려주는 담당을 한다. 여기서 들어오는 요청은 최종 이용자인 호스트에게서 들어오는 것이다. 예를 들어, 해시넷에 접속을 하기 위한 절차는 다음과 같다.

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

웹서버의 경우도 이 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)공격 예방을 위해 전 세계에 루트 네임서버의 미러서버를 설치하여 관리되고 있다. 예를 들어 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〉, 《긱스포긱스》

참고 자료[편집]

같이 보기[편집]


  검수요청.png검수요청.png 이 네임서버 문서는 인터넷에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.