리눅스
CentOS 에서 네임서버 설치 , 운영
MadDog
2011. 2. 24. 17:27
반응형
■ CentOS 에서 네임서버 설치 , 운영
Tip .
0. 소스로 설치 할 경우
http:/www.isc.org 에서 소스 다운 받아 설치 하면 된다.
0. bind 9.2 까지는 named.conf 파일을 사용
0. bind 9.3 부터는 name.caching-nameserver.conf 사용
0. bind 9.3 부터는 name.caching-nameserver.conf 사용
1. 필요 패키지
2. 패키지 준비
패키지 확인
# rpm -qa | grep bind
bind-libs-9.3.3-10.el5
ypbind-1.19-8.el5
bind-utils-9.3.3-10.el5
# yum install bind
....
Dependencies Resolved
# rpm -qa | grep bind
bind-libs-9.3.3-10.el5
ypbind-1.19-8.el5
bind-utils-9.3.3-10.el5
# yum install bind
....
Dependencies Resolved
=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
bind i386 30:9.3.4-6.0.2.P1.el5_2 updates 9
58 k
Updating for dependencies:
bind-libs i386 30:9.3.4-6.0.2.P1.el5_2 updates 8
46 k
bind-utils i386 30:9.3.4-6.0.2.P1.el5_2 updates 1
67 k
Package Arch Version Repository Size
=============================================================================
Installing:
bind i386 30:9.3.4-6.0.2.P1.el5_2 updates 9
58 k
Updating for dependencies:
bind-libs i386 30:9.3.4-6.0.2.P1.el5_2 updates 8
46 k
bind-utils i386 30:9.3.4-6.0.2.P1.el5_2 updates 1
67 k
Transaction Summary
=============================================================================
Install 1 Package(s)
Update 2 Package(s)
Remove 0 Package(s)
=============================================================================
Install 1 Package(s)
Update 2 Package(s)
Remove 0 Package(s)
Total download size: 1.9 M
Is this ok [y/N]: y
....
Installed: bind.i386 30:9.3.4-6.0.2.P1.el5_2
Dependency Updated: bind-libs.i386 30:9.3.4-6.0.2.P1.el5_2 bind-utils.i386 30:9.3.4-6.0.2.P1.el5_2
Complete!
# rpm -qa | grep bind
bind-9.3.4-6.0.2.P1.el5_2
bind-utils-9.3.4-6.0.2.P1.el5_2
ypbind-1.19-8.el5
bind-libs-9.3.4-6.0.2.P1.el5_2
# yum install caching-nameserver
....
installed: caching-nameserver.i386 30:9.3.4-6.0.2.P1.el5_2
Complete!
# rpm -qa | grep caching
caching-nameserver-9.3.4-6.0.2.P1.el5_2
#
Is this ok [y/N]: y
....
Installed: bind.i386 30:9.3.4-6.0.2.P1.el5_2
Dependency Updated: bind-libs.i386 30:9.3.4-6.0.2.P1.el5_2 bind-utils.i386 30:9.3.4-6.0.2.P1.el5_2
Complete!
# rpm -qa | grep bind
bind-9.3.4-6.0.2.P1.el5_2
bind-utils-9.3.4-6.0.2.P1.el5_2
ypbind-1.19-8.el5
bind-libs-9.3.4-6.0.2.P1.el5_2
# yum install caching-nameserver
....
installed: caching-nameserver.i386 30:9.3.4-6.0.2.P1.el5_2
Complete!
# rpm -qa | grep caching
caching-nameserver-9.3.4-6.0.2.P1.el5_2
#
3. 운영을 위한 환경 설정 파일
bind 9.3 버전 부터 name.caching-nameser.conf 파일을 사용한다.
# vi /etc/named.caching-nameserver.conf
// named.caching-nameserver.conf
...
options {
// listen-on port 53 { 127.0.0.1; };
// 기본적으로 port 53 으로 자신만이 접근 가능하게 되어있다.
// ip v6 에 대한 것으로 차후 서비스를 위해 ~..주석처리.
# vi /etc/named.caching-nameserver.conf
// named.caching-nameserver.conf
...
options {
// listen-on port 53 { 127.0.0.1; };
// 기본적으로 port 53 으로 자신만이 접근 가능하게 되어있다.
// 외부접근 가능 하게 any로 바꾼다.
listen-on port 53 { any; };
// listen-on-v6 port 53 { ::1; }; listen-on port 53 { any; };
// ip v6 에 대한 것으로 차후 서비스를 위해 ~..주석처리.
directory "/var/named";
// zone file에 대한 기본 디렉토리 설정
// zone file에 대한 기본 디렉토리 설정
dump-file "/var/named/data/cache_dump.db";
// 캐쉬 덤프 파일 생성 위치와 파일 이름
// 캐쉬 덤프 파일 생성 위치와 파일 이름
statistics-file "/var/named/data/named_stats.txt";
// 통계파일 생성 위치와 파일 이름
// 통계파일 생성 위치와 파일 이름
memstatistics-file "/var/named/data/named_mem_stats.txt";
// 메모리 관련 통계파일 위치 이름
// 메모리 관련 통계파일 위치 이름
// Those options should be used carefully because they disable port
// randomization
// query-source port 53;
// randomization
// query-source port 53;
query-source port 53;
// 쿼리를 받아 들일 소스포트
// query-source-v6 port 53;// 쿼리를 받아 들일 소스포트
// allow-query { localhost; };
allow-query { any; };
// 쿼리 허용할 ip 대역
};allow-query { any; };
// 쿼리 허용할 ip 대역
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
// 실행에 있어 디버깅시 참고 할 수 있는 로그파일 생성 위치
view localhost_resolver {channel default_debug {
file "data/named.run";
severity dynamic;
};
};
// 실행에 있어 디버깅시 참고 할 수 있는 로그파일 생성 위치
// match-clients { localhost; };
// match-destinations { localhost; };
match-clients { any; };
match-destinations { any; };
// 로컬 리졸버 허용 클라이언트 지정
match-destinations { any; };
// 로컬 리졸버 허용 클라이언트 지정
recursion yes;
include "/etc/named.rfc1912.zones";
};
4. 구동 시작
# /etc/rc.d/init.d/named start
named를 시작 중: [ OK ]
[root@fedora ~]# tail /var/named/data/named.run
zone 0.in-addr.arpa/IN/localhost_resolver: loaded serial 42
zone 0.0.127.in-addr.arpa/IN/localhost_resolver: loaded serial 1997022700
zone 255.in-addr.arpa/IN/localhost_resolver: loaded serial 42
zone 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN/localhost_resolver: loaded serial 1997022700
zone localdomain/IN/localhost_resolver: loaded serial 42
zone localhost/IN/localhost_resolver: loaded serial 42
running
//정상 구동되었다.
#
named를 시작 중: [ OK ]
[root@fedora ~]# tail /var/named/data/named.run
zone 0.in-addr.arpa/IN/localhost_resolver: loaded serial 42
zone 0.0.127.in-addr.arpa/IN/localhost_resolver: loaded serial 1997022700
zone 255.in-addr.arpa/IN/localhost_resolver: loaded serial 42
zone 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN/localhost_resolver: loaded serial 1997022700
zone localdomain/IN/localhost_resolver: loaded serial 42
zone localhost/IN/localhost_resolver: loaded serial 42
running
//정상 구동되었다.
#
5. zone 파일 구성
# vi /etc/named.rfc1912.zones
// named.rfc1912.zones:
//
// Provided by Red Hat caching-nameserver package
//
// ISC BIND named zone configuration for zones recommended by
// RFC 1912 section 4.1 : localhost TLDs and address zones
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
zone "." IN {
type hint;
file "named.ca";
};
...
zone "linux.com" IN {
type master;
file "linux.com.zone";
allow-update { none; };
};
//추가
# cd /var/named
# ls
// 기본 포멧 파일을 이용
# cp localdoamin.zone linux.com.zone
# vi linux.com.zone
TTL 86400
@ IN SOA ns.linux.com. root.linux.com (
2008121601 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS ns.linux.com.
IN MX 10 mail.linux.com.
IN A 192.168.10.200
ns IN A 192.168.10.200
www IN A 192.168.10.200
mail IN CNAME www
ftp IN CNAME @
* IN CNAME @
@ IN SOA ns.linux.com. root.linux.com (
2008121601 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS ns.linux.com.
IN MX 10 mail.linux.com.
IN A 192.168.10.200
ns IN A 192.168.10.200
www IN A 192.168.10.200
mail IN CNAME www
ftp IN CNAME @
* IN CNAME @
// 생성 후 저장
//zone 파일과 conf 파일 체크
# named-checkconf /etc/named.rfc1912.zones
# named-checkconf /etc/named.caching-nameserver.conf
# named-checkzone linux.com /var/named/linux.com.zone
zone linux.com/IN: loaded serial 2008121601
OK
#
// 모든게 정상으로 나왔다. 서버 재구동
/etc/rc.d/init.d/named restart
named를 정지 중: [ OK ]
named를 시작 중: [ OK ]
# vi /etc/resolv.conf
search localdomain
nameserver 192.168.10.10
nameserver 168.126.63.1
// 기존에 있던 nameserver외에 추가로 자신의 ip로 된 nameserver ip를 추가
// 192.~ 대의 dns를 먼저 검색 하며 검색된 정보가 없을경우 다음 dns에게 물어 본다.
# nslookup
> linux.com
Server: [192.168.10.10]
Address: 192.168.10.10
Name: linux.com
Address: 192.168.10.100
...
> ftp.linux.com
>q
// 잘나오는것을 확인 할 수 있다.
Address: 192.168.10.100
...
> ftp.linux.com
>q
// 잘나오는것을 확인 할 수 있다.
6. zone file 설명
TTL 86400
time to live의 약자 다른 네임서버에서 읽어간 정보가 살아있는 시간이다. 초단위
time to live의 약자 다른 네임서버에서 읽어간 정보가 살아있는 시간이다. 초단위
@
ORIGIN 의 의미 public domain을 의미 즉 @ = linux.com.
ORIGIN 의 의미 public domain을 의미 즉 @ = linux.com.
IN
IN 다음 의 설정을 이용
IN 다음 의 설정을 이용
SOA ns.linux.com. root.linux.com
SOA start of authority 해당 도메인의 정보를 가지고 있고 root@linux.com 이 관리자를 나타낸다.
( SOA start of authority 해당 도메인의 정보를 가지고 있고 root@linux.com 이 관리자를 나타낸다.
2008121601 ; serial (d. adams)
해당 정보의 시리얼 보통 날짜정보 + 카운터로 표시된다.
해당 정보의 시리얼 보통 날짜정보 + 카운터로 표시된다.
3H ; refresh
리프레쉬 타임 주기
리프레쉬 타임 주기
15M ; retry
M-> S로의 장애 발생시 재 접속 시간
M-> S로의 장애 발생시 재 접속 시간
1W ; expiry
존파일 유효기간, 만약 Expiry 시간안에 M에서 응답을 못받을 경우 S는 데이터에 대한 유효성을 더이상 인정 하지 않겠다는뜻
존파일 유효기간, 만약 Expiry 시간안에 M에서 응답을 못받을 경우 S는 데이터에 대한 유효성을 더이상 인정 하지 않겠다는뜻
1D ) ; minimum
TTL과 같은 의미 다른 서버에서 zone 데이터를 가져갔을때 그 데이터에 대한 유효기간
TTL과 같은 의미 다른 서버에서 zone 데이터를 가져갔을때 그 데이터에 대한 유효기간
IN NS ns.linux.com.
// 네임서버 이름 지칭
IN MX 10 mail.linux.com.
// mailserver 이름 지칭
IN A 192.168.10.200
// ip 할당
ns IN A 192.168.10.200
// nameserver의 ip는 ""
www IN A 192.168.10.200
// www.linux.com ip할당
mail IN CNAME www
// mail server의 ip는 www의 설정을 가져온다.
ftp IN CNAME @
// ORIGIN 변수의 값을 그대로 사용
* IN CNAME
// 네임서버 이름 지칭
IN MX 10 mail.linux.com.
// mailserver 이름 지칭
IN A 192.168.10.200
// ip 할당
ns IN A 192.168.10.200
// nameserver의 ip는 ""
www IN A 192.168.10.200
// www.linux.com ip할당
mail IN CNAME www
// mail server의 ip는 www의 설정을 가져온다.
ftp IN CNAME @
// ORIGIN 변수의 값을 그대로 사용
* IN CNAME
www IN A 192.168.10.200
www IN A 192.168.10.201
www IN A 192.168.10.202
// A 레코드 여러개 적어 부하 분산!
www IN A 192.168.10.201
www IN A 192.168.10.202
// A 레코드 여러개 적어 부하 분산!
반응형