티스토리 뷰

ORACLE DB/Projects

DNS SERVER 구축 . bind

sai505 2012. 12. 2. 12:39

DNS SERVER 구축

 

준비물

1. BIND.tar.gz 형식 소프트웨어 소스로 컴파일 할것임. (rpm, yum install X )

굳이 소스로 컴파일하는 이유는 환경설정을 바꿔줄수 있기 때문. rpm과 yum으로 인스톨하게 되면

파일들이 여러디렉토리에 뿔뿔이 흩어지는 반면에, configure 하면 내가 원하는 디렉토리에 경로를 정해 줄수있는게 장점.

2. 페도라서버 IP주소, nameserver ip와 도메인이름.

우리의 시나리오는 DNS 서버를 내 페도라서버로 지정해주고. 도메인이름은 naver.com 이고 IP는 구글로 설정.

그러면 www.naver.com 이라는 URL을 입력했을때 DNS서버에 설정되어있는 IP인 구글 사이트가 나오면 성공.

3. 디렉토리 위치 개념.

/usr 디렉토리 : 응용 프로그램에서 필요한 파일이 저장되는 디렉토리

/var 디렉토리 : 시스템 운영중 생기는 임시 데이터 저장

/sbin 디렉토리 : 시스템 관리 명령

/etc 디렉토리 : 시스템 설정 파일들이 들어 있음

디렉토리 위치를 잘 알고 있어야.. 서버 구축 중간에 데몬 시작해야하는데 어느 디렉토리에 있었더라? 설정파일 수정해줘야 되는데 어디있었지? conf파일을 어느 디렉토리에 복사해줘야 되는데 어디였지? 등등. 헷갈리지 않는다.

BIND소프트웨어 tar.gz : /usr/local/dns 에

named.conf 환경설정 파일 : /usr/local/dns/etc/named.conf

이후에 /etc/named.conf 로 복사해줘야한다. 설정파일이기때문에..

항상 두 디렉토리에는 최종본이 있어야한다.

안그러면 named 데몬 실행 시켰을때 실행이안되서 한번더 카피해줘야 하는 경우가있다. 뭐 카피 명령어는 쉬우니까 한번더 해도 상관없다 사실.

naver.com.zone 파일 : /var/named 에 생성해준다.

named.conf 설정파일에 데이터저장 디렉토리가 /var/named로 설정이 되어있다.

zone 파일은 운영중 생긴 임시 데이터이기 때문에 /var 디렉토리에 있는게 맞다.

named 데몬, named-checkconf, named-checkzone : /usr/local/dns/sbin 디렉토리에 있다. 시스템관리 명령들이기 때문에. 나중에 다 설치하고 실행할때 /sbin 디렉토리에 가서 실행시켜주고 conf파일과 zone파일 체크해주면된다.

중요한 파일들이 기억이 나지 않을때는 find명령어로 찾아준다.

]# find / -name 파일이름

같은 이름의 파일들이어도 여기저기 다른 디렉토리에 있는것이 있다. 그러면 A디렉토리에 있는 b파일을

수정해줘야하는데, 엉뚱하게 다른디렉토리에 있는 같은이름 b파일을 수정해주는 오류를 범하게 된다.

나같은 경우에는 분명 블로그에서하라는데로 다햇는데 설치후에 파일이 이상한디렉토리로 가서 분명 있어야 되는 디렉토리에 갔는데 그 파일이 없어서 당황을 많이 했다. 그러면 find 로 찾거나 어떻게서든 찾아라.

4. 명령어

여러가지 생소한 명령어들을 보게 된다.

]# ./configure --prefix=/usr/local/dns

./configure은 항상 초기상태를 구성해주겠다는 명령어다.

configure자체는 소프트웨어 파일이다. 우리가 설치한 BIND안에 configure가 포함되어있다.

자세한것은 ../configure --help 파일을 참고하면된다. 다음장에 자세하게 설명을 올리겠다.

--prefix=/usr/local/dns

라고 해주지 않으면 prefix는 default로 /usr 디렉토리에 어쨋든 설치가된다.

경로를 알고 싶으면 ]# echo $PATH 를 이용하면 된다.

굳이 --prefix=/usr/local/dns를 사용하지 않아도 다른 명령어가 있는데,

]#PKG_CONFIG_PATH=/usr/local/dns 를 이용하는데 configure실행하기전에 입력해준다.

http://www.gnu.org/prep/standards/html_node/Directory-Variables.html

참조

--prefix=/usr/local을 제데로 하지 않았을때 발생하는 좋은예제가 인터넷에 있다.

http://www.ubuntu.or.kr/viewtopic.php?p=54453

--prefix 경로를 제데로 설정해주지 않으면 폴더가 생기지 않으므로 상당히 중요하다.!!!!

]# make 와 make install

make는 무엇인가? 인터넷에 여러가지 정의가 나오는데. 내가 이해하는 선에서 쉽게 설명하면...

make는 업데이트인것 같다. make 유틸리티이고 그 목적은 프로그램 설정에 내가 변경해줬다면 다른 의존된 것들을 알아서 전체적으로 새롭게 컴파일 해주는것이다. 리눅스에서는 make다음에 make install과 같이 쓰인다. 여기서 `의존된것`

dependency에 의미가 있다.

http://wiki.kldp.org/KoreanDoc/html/GNU-Make/GNU-Make-1.html#ss1.1

make에대해서 자세하게 참조 하려면 이사이트로 가보시길... 리눅스개념은 아니지만.

]# ps -ef | grep named

아시다시피 ps 명령어는 프로세서가 돌아가는지 확인 하는것이다.

나중에 설치가 끝나면 named 데몬이 돌아가는지 안돌아가는지 확인하자

]# vi /etc/resolv.conf

아시다시피 /etc/resolv.conf 에는 네임서버 정보가 들어가있다.

현재는 공인 dns가 들어가 있을것이다 168.126.63.1

우리는 dns를 페도라 서버로 하기로 했으니까 이것을 페도라 서버 ip로 수정하기 바란다.

]# named-checkconf 와

/usr/local/dns/sbin 디렉토리에 있는 체크 파일이다.

우리가 설정한 named.conf파일이 잘 수정이 되었는지 확인하는 작업이다.


]# named-checkzone naver.com /var/named/naver.com.zone

이것은 zone 파일생성을 잘 해줬는지 확인하는 작업이다.

이것이 잘 실행이 되었다면 아무런 메시지가 뜨지 않는다.

만약에 url 이름을 named.conf파일에 google.com 으로 지정해주었다면

]# named-checkzone google.com /var/named/google.com.zone이 될것이다.

이것이 잘 실행이되면 'load successed' 라는식의 메세지가 나올것이다.

 

5. named.conf 파일 설정과 zone 파일 생성

named.conf파일은 /usr/local/dns/etc/named.conf와 /etc/named.conf 에 있고

zone 파일은 /var/named 디렉토리에 있다.

이것은 설명하기가 되게 길겠다.

일단 named.conf 파일은 앞에서도 여러번 얘기해서 목적은 이미 다 알고 있을거라고 생각한다.

그럼 named.conf파일에는 무엇을 설정해줘야 하는가?

이번 프로젝트 시나리오는 naver.com이라는url을 치게 되면 www.google.com이라고 나오는것이니까

일단 기본적인 내용들과 이번시나리오에 필요한 설정 내용들만 설명하겠다. 다른설정은 프로젝트때 더 설명할것이다.

기본적으로 어떻게 생겼는지 봐야하니까.. 보자.

]# vi /usr/local/dns/etc/named.conf

햇는데 나오질 않는다. bind.keys라는 파일만 있고 named.conf 파일이 없다 !!!!

분명 경로를 제데로 정해준것 같은데. 왜 없을까?

다른 블로그에서는 bind 9 버전 이상부터는 named.conf 파일이 없다고 하는데.

분명 있다. default값이 다른 디렉토리로 되어있을뿐이다. 그럼 named.conf파일은 어디있을까?

find로 찾아보자.

되게 많이 나온다. named.conf라는 파일이 엄청 많은데. 모두다 설정해주는 파일들이긴 하다. 그런데

목적이 다른 파일들이다.

우리가 원하는 파일은 맨 마직막에서 두번째에 파일 /bin/tests 디렉토리에 있는게 왠지 모르게 땡긴다.

들어가봤더니 너무 복잡하게 많은 zone파일들이 완성되지 않은채 있다.

그래서 그냥 없는샘 치고 /etc에 우리가 원하는데로 새로운 named.conf파일을 만드는게 빠르다.

named.conf 파일에는 꼭 필요한

options, 캐시네임서버, 로컬호스트, 로컬호스트 reverse파일,도메인네임서버, 도메인네임서버 reverse.

# options

options {

listen-on port 53 { 127.0.0.1; } => 네임 서버에 접속이 허용된 컴퓨터의 IP주소

directory "/var/named" ; => 네임서버 데이터베이스 파일은 /var/named로 설정 해놓는다.

dump-file "/var/named/data/cache_dump.db" ; => 정보가 갱신될때 저장되는 파일

statistics-file "/var/named/data/named_stats.txt" ; => 통계처리 용도의 파일

allow-query { localhost; } => 도메인 이름의 쿼리가 허용된 컴퓨터

};

# 캐시네임서버

zone "." { =>

type hint; => root DNS 서버는 hint

file "named.ca"; => 캐시를 저장할곳

};

# 로컬호스트 forward zone 파일 : 도메인에 대한 정보를 지정하는 영역

zone "localhost" IN {

type master; => 1차 DNS 서버는 master

file "localhost.zone"; => 도메인을 저장할곳

allow-update { none; };

};

# 로컬호스트 reverse zone 파일 : ip주소에 대한 정보를 지정하는 영역

zone "0.0.127.in-addr.arpa" IN {

type master;

file "named.local"; => ip주소 저장할곳

allow-update { none; };

};

#도메인생성 forward zone 파일

zone "naver.com" IN {

type master;

file "naver.com.zone"

};

#도메인생성 reverse zone 파일 ( 없어도 된다. 여기서 만들면 /var/named에도 zone 파일을 따로 만들어줘야 한다.)

#reverse zone 파일은 ip주소를 지정하는 영역인데. 우리는 이미 등록된 ip이름영역을 쓰기때문에 상관없다.

#naver.com도메인 ip는 74.125.128.94이니까 맨마지막 94 빼고. 거꾸로 세자리 써주면된다.

zone "128.125.74.in-addr.arpa" IN

type master;

file "zone-71.16.172.in-addr.arpa";

};

 

zone 파일 생성

/var/named에 zone파일생성

우리는 도메인 하나만 만들었기 때문에 naver.com.zone 으로 만들어주자.

]# vi /var/named/naver.com.zone

#Time To Live 다른네임서버가 캐시의 정보를 몇일동안 저장할것이지를 설정해준다,

#@ : /etc/named.conf 에 정의된 naver.com

#IN : 클래스 이름 internet을 의미

#SOA : start of authority. 괄호 안에 있는 시간 만큼 권한주기

#NS : name server 의 약자

#A : 호스트이름에 상응하는 ip주소

$TTL    3H

@        SOA    @    root. ( 2 1D 1H 1W 1H )   => root 뒤에 . 꼭 붙여줘야한다. 레코드단위로 저장되기 때문에

      IN       NS   @

      IN       A     74.125.128.94  => GOOGLE IP 주소

www    IN        A     74.125.128.94

 

6. DNS 설정하기

]# vi /etc/resol.conf 로

nameserver 를 페도라서버ip로 준다.

 

그리고 나서 네트워크 다시 시작 할필요없이.

named데몬돌리고, named-checkconf 돌리고, named-checkzone 돌리고

파이어폭스에 naver.com을 치거나

]# nslookup naver.com 을 치면 나는 안나온다. bind rpm을 설치전에 다 지워서 이명령어가 어느 디렉토리에 짱박혔는지 가물가물하다. whereis로 찾아봤지만 나오지 않는다. 

여튼 웹에 네이버라고 쳤을때. 

구글 홈페이지가 나오면 성공이다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함