C. Oracle
DNS의 개념 그리고 BInd9 Configuration 알아보기
sfeg
2017. 7. 2. 22:27
Bind 9 Configuration
bind 9 의 설정은 기본적인 토대는 bind 8 을 정석으로 설정을 할 경우 무리없이 작동한다. 다만 bind 9 에서는 dnssec-key 라는 것을 이용하여 update 부분에 보안을 강화 했으며, 이 부분을 중 점으로 설명을 한다. Name Server란 무엇인가? 그러면 과연 name server라는 것이 무엇을 하는 놈인가 부터 이해를 해야 할것이다. internet 상 의 host 들은 ip address 라는 주소를 가지고 있다. 이 숫자로 된 주소는 외우기가 힘들 뿐 아니 라 이 주소만으로는 해당 주소의 특성을 알기가 힘이 들었다. 그래서 외우기 쉽고 주소만으로 그 site의 특성을 알기 쉽게 하기 위하여 만든 것이 domain name이라는 것이며, domain name을 관리 하는 것이 name server 이다. 우리가 windows 에서 internet 에 연결을 위한 셋팅을 할 때 보면 TCP/IP 설정에서 주 DNS서버, 보조 DNS서버 라는 항목을 볼수가 있는데 이 항목들이 바로 domain name을 ip address로 해석을 해 줄 Name Server를 지정을 하는 것 이라고 할 수가 있다. hosts file hosts file 이라는 것은 간단히 정의를 하자면 mini name server 라고 할 수 있다. 그렇다면 이 file 이 쓰이는 용도를 살펴 보자. 우리가 web browser 에서 domain name 으로 어떤한 주소를 찾아 가고자 할 때 web browser 는 그 domain name 을 system 에서 지정한 Name Server로 보내서 IP address 로 변환을 한후에 다시 자 신의 system 으로 받아와서 해당 site 를 찾아가게 된다. 그러므로 가끔 ip address 로는 접속이 되는데 domain name 으로 접속이 안될 경우에는 system 에 지정을 한 DNS 가 죽은 경우가 다반사 이다. 또한 지정한 DNS 의 회선이 과부하가 걸렸다거나 느릴경우에는 그만큼 ip address 로 반환 을 받는 속도가 느리기에 그만큼 접속속도가 느려지는 경우도 있다. 이런 경우를 대비해서 hosts file 에 미리 ip address 에 name 을 지정을 하면 DNS 를 거치는 과정을 생략하게 되는 것이다. 그러므로 우리가 자주 사용하는 통신망인 chollian.net, nownrui.net, home.hitel.net과 같은 사 이트들의 주소들은 이곳에 기입을 해놓는 것도 좋은 방법이다. 기본적으로 DNS보다는 hosts file 을 먼저 참조 하도록 되어 있으며, LINUX 에서는 이 순서를 hosts.conf 에서 변경할 수 있다. 윈 도우즈에서는 변경이 가능한지 모르겠다.. :-) hosts file의 위치는 RedHat을 기준으로 /etc/hosts 와 /etc/host.conf 이다. 설정에 들어가기 전에.. 설치에 들어가기 전에 간단히 점검을 해 보자. 이 강좌의 기초는 Linux 배포본 중의 하나인 REDHAT 을 기준으로 한다. 하지만 설정 자체는 NT 든 어떤 NOS 든 설정하는 form 이 다를 뿐이지 기본적인 것은 동일하기 때문에 알아서 잘 응용하 면 지정하는데 별 지장이 없다. 중요한 것은 Name Server 를 설정하는 것에 대한 이해를 해야지 만 한다는 것이다. compile 하는 과정은 bind 8 과는 다르게 autoconf 를 지원을 한다. 그러므로 ./configure make make install 의 과정을 거쳐 설치할 수 있다. configure 옵션은 ./configure --help 를 참고하여 설치를 하면 되겠다. 일단 bind 9 를 설정하는데 필요한 file 들을 보면
/etc/named.conf /etc/rndc.conf /etc/resolv.conf /etc/host.conf /etc/hosts /var/named/***.zone /var/named/***.rev 정도이다. 참고로 bind 9 를 설치 후, named.conf 가 설치가 안된다고 하시는 분들이 많은데 named.conf 는 기본파일이 아니다. 원래는 사용자가 직접 만들어야 하며, Redhat 에서는 caching-nameserver 라 는 패키지에서 제공을 한다. 추가적으로 bind 8 에서 보지 못하던 rndc.conf 가 있다. rndc 는 bind 8 에서는 ndc 로 제공이 되었으며, rndc 는 ndc 의 후속버전으로 보면 된다. 하지만 기능은 ndc 만큼 지원하지는 못한다. 하지만 이를 사용하는 이유는 named 를 reload 할 때, bind 8 에서 처럼 kill -HUP 를 사용하는 것을 ISC 에서 권장을 하지 않고 있다는 점이다. ISC 에서는 rndc 를 이용한 reload 를 사용하기 를 권장을 하고있다. 현재 최신 버전인 9.2.1 에서는 kill -HUP 도 작동을 하기는 하지만, 될 수 있으면 정석을 사용하는 것을 권장한다. 이에 대해서는 뒤에 논할 것이다.
- /etc/named.conf named 가 실행 시에 NS 의 database 에 대한 기본적인 정보를 취급한다. 설정 파일의 디렉토리, 파일 위치등을 지정하며 secondary option 으로 2 차 name server 를 지정 을 할 수도 있다.
- /etc/rndc.conf rndc 를 사용하기 위한 설정 파일
- /etc/resolv.conf system 에서 호출을 할 DNS 를 지정을 한다.
- /etc/host.conf hosts file 에 대한 설정과 dns 와 관련된 몇가지 설정을 이곳에서 한다.
- /etc/hosts mini dns 의 역할을 하는 file 이다. 위에 설명이 따로 되어 있다.
- /var/named NS 의 zone file 들이 위치한다. /etc/named.conf 에서 위치를 변경할 수 있다.
- /var/named/named.ca ROOT name server 의 IP 주소를 정의하여, 더 빨리 찾을 수 있도록 최적화 되어 있는 file 이다. (따로 수정할 필요가 없이 그냥 있는 그대로 사용을 하면 된다.)
- /var/named/named.local Roopback IP address 에 대한 reverse mapping 을 정의한 파일이다. reverse mapping 이란 ip address 로 domain name 을 찾는 것을 말한다. reverse mapping 설정을 하는 것을 inverse domain 을 설정한다고 하기도 한다.
- /var/named/***.zone host 들에 대한 정보를 가지게 되는 file 이다. 실제로 bind 셋팅하는 것의 대부분이 이 파일에서 이루어 진다. ( ***.zone 이라는 파일명은 /etc/named.conf 에서 정의한 다.
- /var/named/***.rev 대표 도메인에 대한 reverse mapping (inverse domain) 정보를 기록한다. 이 파일 역 시 /etc/named.conf 에서 이름을 정의한다.