본문 바로가기
IT Security/LINUX Basic

23. Linux - DNS 서버 구축1, 개요

by Rosmary 2020. 6. 13.
728x90
반응형

지난 포스팅에서, 우리는 리눅스의 httpd 서비스를 이용해 직접 제작한(조금 허접하지만) 홈페이지를 웹 브라우저로 확인해보았다. 그런데, 우리가 만든 이 홈페이지는 웹 브라우저로 접속할 때마다, 일반적인 인터넷 사이트 주소 형식이 아닌, IP를 주소창에 입력해주어야 한다. 일반적인 사이트 주소 형태를 주소창에 입력하려면, 도메인 관리 업체에 따로 연락하여, "X.X.X.X IP는 blahblah.com 주소로 연결되도록 해주세요" 하고 요청(돈을 지불)해야 한다. 

 

돈을 지불하면, 해당 업체에서는 IP와 사이트 주소를 매칭시키는 서버에 여러분들이 만든 사이트 주소와 IP를 등록하게 되며, 등록이 완료되면 주소창에 IP가 아닌 일반적인 사이트 주소로 각자가 만든 홈페이지에 접속하는 것이 가능해진다. 업체에서 IP와 주소를 매칭할 때 사용하는 서버는 DNS 서버라고 하며, 이 DNS라는 이름은 Domain Name System의 약자다. 

 

전문 업체뿐만 아니라, 우리와 같은 일반인들도 리눅스에 DNS서버를 구축하는 것이 가능하다. 특히 집안 내에서 가족들만 사용할 홈페이지를 만든 상태라면, 외부의 DNS에 홈페이지 주소를 등록하는 것은 비용적으로 매우 비효율적이기 때문에, 공유기 망 내에 위치한 리눅스에 DNS 서비스를 설치하여 운영하는 것이 좋다.

 

그럼... 이 DNS라는 녀석은 어떻게 동작하기에, 일반적인 사이트 주소에 우리가 접속이 가능하도록 만들어주는 것일까? 하나씩 살펴보자.

 

 

1. DNS 서버에 대한 간략한 소개.

 

DNS는 Domain Name System이라는 용어의 약자로, 도메인(주소) 명명 시스템 정도로 해석하면 될 듯 하다. 우리가 일반적으로 사용하는 인터넷 사이트 주소를 보면, .com, .net .org 또는 .co.kr로 끝나는 주소를 볼 수 있는데, 이들 주소는 국제적으로 정의된 규칙에 의해 만들어진 주소들이다.

 

도메인은 몇몇 계층으로 나뉘어지는데, 가장 최상위의 계층에는 다음 7가지의 도메인이 존재하고 있다. 사이트를 대표하는 기관 및 단체의 성격에 따라, 서로 다른 최상위 계층 도메인(Top Level Domain - TLD)이 부여된다.

 

< 일반(general) 최상위 도메인 목록 - gTLD >

- com :  영리 목적의 기업이나 단체

- net  :  네트워크를 관리하는 기관

- org  :  비영리 기관

- edu  : 미국의 4년제 이상 교육기관

- gov  : 정부기관

- mil   : 미국의 군사조직

 

< 국가코드(country code) 최상위 도메인 - ccTLD>

- .kr 또는 .uk 등:  각 국가에 할당된 최상위 도메인

 

이들 최상위 도메인은 각각의 DNS 서버를 가지고 있다. 그리고 각각의 DNS 서버는 자신들의 최상위 계층 도메인이 포함된 주소를 관리하고 있다. 이해하기 쉽게 예를 들자면, daum.net이나 기타 .net으로 끝나는 주소는 모두 최상위 계층 도메인이 .net인 DNS서버에서 관리되고 있고, nav-r.com과 같이 .com으로 끝나는 주소는 .com 최상위 계층 도메인의 DNS 서버에서 관리하고 있다고 보면 된다.

 

위에서 설명한 계층 구조에 따라, DNS 동작 방식을 하나씩 살펴보면 다음과 같다. 필자가 웹 브라우저의 주소창에 다음 사이트 주소(www.daum.net)를 입력하게 되면, 다음 주소의 가장 최상위 계층인 .net에서, daum.net의 DNS 서버 IP 주소를 알려준다. 그럼, daum.net의 DNS 서버에서는 www, 다음의 홈페이지로 접속할 수 있는 IP 주소를 필자의 컴퓨터로 전송하게 된다. 필자의 컴퓨터는 daum.net의 DNS서버로부터 받은 www.daum.net의 IP주소를 참조하여 다음의 웹 페이지에 접속하게 되는 것이다.  

 

이론적으로는 위와 같은 방식으로 동작한다.

 

한국에서 사용되고 있는 대부분의 윈도우 PC는 이 DNS 서버의 주소가 인터넷 통신 업체의 DNS 서버 주소로 설정되어 있는 경우가 대부분이다. 이 DNS 서버들은, 한국에서 자주 사용되는 사이트들에 대한 IP 주소 정보를 보관하고 있기 때문에, 최상위 계층 도메인의 DNS 서버까지 올라가지 않고, 문의한 주소의 IP를 빠르게 전달받을 수 있다.

 

만약 168.126.63.1 DNS가 자신이 가지고 있지 않은 주소에 대해 문의 받으면, 그 때는 최상위 도메인 DNS 서버에 해당 IP주소를 물어보게 된다. 

 

이 DNS 주소가 제대로 설정되어 있지 않다면, 여러분들은 daum.net과 같은 주소 형태를 아무리 주소창에 입력한다 하더라도 제대로 된 결과를 얻을 수 없다. 

 

 


< 윈도우에서 DNS 주소 설정 확인 방법 >

(1) 윈도우 검색창에 "네트워크 연결 보기"라고 입력하면, 현재 연결되어 있는 인터넷 종류가 표시되는 창이 나타난다. 와이파이가 연결되어 있다면, 와이파이 아이콘을 우클릭하여, 혹은 LAN선이 연결되어 있다면, 이더넷 아이콘을 우클릭한뒤, 속성으로 들어간다. 

 

(2) 인터넷 프로토콜 버전 4(TCP/IPv4)를 선택하고, 속성 버튼을 클릭한다.

 

 

(3) 속성 창의 하단에서 DNS 설정 내용을 확인할 수 있다.

 

(4) 만약, 이 DNS 서버 설정이 실제 DNS 서버 IP가 아닌 다른 IP가 작성되어 있다면, 다음과 같이 사이트 주소를 입력하는 것만으로는 웹 페이지를 정상적으로 접속할 수 없다.

 

 

 

 


정리하자면, DNS 서버는 마치 전화 통신에서 114와 같은 역할을 한다고 보면 된다. 114에 "홍콩반점 전화번호 알려주세요!" 라고 문의하면 "02-2222-3333으로 연락하세요!" 하고 답장이 오듯이, "daum.net IP주소 알려주세요!" 라는 요청에 "x.x.x.x IP로 접속하세요!" 하고 답변을 주는 것과 동일하다고 보면 된다. 그리고, DNS 서버에서 자신이 모르는 주소에 대해 요청이 들어온 경우, 자신보다 상위 기관에 고객의 요청을 전달하고 그 답변을 받아오는 것이라고 보면 된다. 

 

다음 포스팅에서는, 실제 리눅스에 DNS 서버 동작을 위한 패키지 설치, DNS 서버 구축과 간략한 정보 입력으로 우리가 만든 임의의 주소로 웹 페이지에 접속하는 방법에 대해 알아보려 한다.

 

 

FIN.

반응형

댓글