티스토리 뷰

DNS

전 세계에 존재하는 KR DNS

도메인 네임 시스템(Domain Name System)은 도메인 이름을 IP로 바꾸거나 IP를 도메인 이름으로 변환 할 수 있도록 역할을 합니다. 분산형 데이터베이스 시스템으로 작동합니다.

 

도메인 이름 체계

그림과 같은 트리 구조 형태의 도메인 이름 체계가 고안되었습니다. 사용자는 먼저 root DNS 서버에 찾고자하는 도메인을 질의합니다. root DNS 에서 찾고자하는 도메인이 없을 경우 1단계에 해당하는 도메인 서버의 주소를 사용자에게 알려줍니다. 다시 사용자는 1단계 서버에서도 반복하여 해당 도메인를 질의하고 HIT할경우 해당 IP주소를 반환하지만 그렇지 못할경우에는 2단계 도메인 SEVER 주소를 알려줍니다. 위를 반복하여 해당 도메인의 대한 IP주소를 얻을때까지 실행하며, 해당 도메인에 대한 IP가 없을 경우 도메인을 찾지 못했다고 사용자에게 알려줍니다.

 

/etc/hosts

/etc/hosts 파일은 도메인 네임 주소를 해석할때 가정 먼저 참고하는 곳입니다. 캐시역할을 하며, 여기서 찾고자 하는 해당 도메인과 ip주소를 찾을 수 있으면 해당 주소를 반환합니다. 소규모 내부 네트워크에서는 해당 파일을 통해서 DNS 역할을 할 수 있습니다.

(127.0.0.1은 자기 자신을 의미하는 localhost를 의미하며, 127.0.1.1은 자신의 컴퓨터 이름을 의미합니다.)

/etc/hosts

실험을 통해 캐시 역할을 제대로 수행하는지 알아봅니다. 해당 아이피는 구글 아이피이며 www.naver.com를 도메인으로 입력했을때 구글로 접속하기 위해 아래와 같이 저장하였습니다.

/etc/hosts 에 추가

크롬 웹브라우저에 www.naver.com 도메인을 입력하여 접속하려고 하면 경고창이 뜨면서 접속이 불가능합니다. 해킹의 피해 방지를 위해 크롬과 파이어폭스 등 대부분의 웹 브라우저는 hosts 파일의 직접변경을 권장하지 않습니다.

 

 

/etc/host.conf

해당 파일은 도메인 이름 해석 요청시 검색 순서를 나타냅니다. 아래의 그림에서 order host,bind라고 되어있는데, 해석하자면 /etc/hosts파일을 먼저참고합니다. 그 다음 찾고자하는 주소가 없을 경우 /etc/resolv.conf 파일을 참고합니다. 만약 order bind, hosts 로 바뀐다면 탐색 순서도 바뀝니다. 

/etc/host.conf

/etc/resolv.conf

요청할 로컬 네임 서버를 지정할 때 사용합니다. 도메인 네임 주소 요청시 hosts파일 다음으로 접근하는 파일입니다.(host.conf에 설정한 순서대로 다르지만 기본적으로는 위와 같습니다.)

/etc/resolv.conf

 

 

DNS 서버 구축 실습

먼저 dns 서버에 해당하는 bind9과 bind9utils를 설치합니다.

bind9, bind9utils 설치

다음으로 네임서버의 포트(53)를 개방합니다.

 

여기서 정말 많은 시간을 소비하였다... 데몬의 로그를 보면서 하나 하나씩 해결하였습니다. 다음과 같이 설정파일을 수정합니다.

/etc/bind/named.conf.options
/etc/default/bind9

위 설정들을 변경한 후 bind9 서비스를 재시작해줍니다.

재시작한 후에 해당 서비스의 상태를 확인합니다. 로그를 보아도 잘 돌아가고 있는것을 확인할 수 있습니다.

정말로 DNS 역할을 하고있는지 확인합니다. 잘 작동합니다

 

VMware 밖의 환경에서 해당 서버를 로컬 DNS 서버로 사용할때 작동하는지 보았습니다.

 

반응형