서버/Linux III 2016. 3. 25. 11:50
Linux III - 10. DNS 서버
login as: root
root@192.168.1.100's password:
Last login: Fri Mar 25 11:50:45 2016 from 192.168.1.1
[root@main /root]#
login as: root
root@192.168.1.101's password:
Last login: Thu Mar 31 11:00:49 2016 from 192.168.1.1
[root@clone1 /root]#
1. Bind 9.8.2 패키지 설치 및 활성화
DNS 서버를 구축하기 위해서는 Bind 패키지가 설치되어 있어야 한다.
- DNS 서버 구축에 필요한 Bind 패키지(bind-9.8.2-0.37.rc1.el6_7.7.x86_64) 설치 유무를 확인한다.
[root@main /root]# rpm -qa | grep bind
samba-winbind-3.6.23-12.el6.x86_64
bind-libs-9.8.2-0.30.rc1.el6.x86_64
PackageKit-device-rebind-0.5.8-23.el6.x86_64
bind-utils-9.8.2-0.30.rc1.el6.x86_64
samba-winbind-clients-3.6.23-12.el6.x86_64
ypbind-1.20.4-30.el6.x86_64
rpcbind-0.2.0-11.el6.x86_64
- Bind 패키지가 없다면, 다음과 같은 방법을 통하여 설치하도록 한다.
[root@main /root]# yum -y install bind
~중간 생략~
Installed:
bind.x86_64 32:9.8.2-0.37.rc1.el6_7.7
Dependency Updated:
bind-libs.x86_64 32:9.8.2-0.37.rc1.el6_7.7
bind-utils.x86_64 32:9.8.2-0.37.rc1.el6_7.7
- Bind 패키지 설치가 완료되었다면, 설치 확인 및 서비스 상태를 확인한다.
[root@main /root]# rpm -qa | grep bind
bind-9.8.2-0.37.rc1.el6_7.7.x86_64
samba-winbind-3.6.23-12.el6.x86_64
PackageKit-device-rebind-0.5.8-23.el6.x86_64
bind-libs-9.8.2-0.37.rc1.el6_7.7.x86_64
bind-utils-9.8.2-0.37.rc1.el6_7.7.x86_64
samba-winbind-clients-3.6.23-12.el6.x86_64
ypbind-1.20.4-30.el6.x86_64
[root@main /root]# service named status # /etc/rc.d/init.d/named status
rndc: neither /etc/rndc.conf nor /etc/rndc.key was found
named가 정지되었습니다
- Named 서비스를 활성화 한다.
[root@main /root]# service named start # /etc/rc.d/init.d/named start
Generating /etc/rndc.key: [ OK ]
named 시작 중: [ OK ]
[root@main /root]#
[root@main /root]# service named status
version: 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6_7.7
CPUs found: 4
worker threads: 4
number of zones: 19
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 0/0/1000
tcp clients: 0/100
server is up and running
named (pid 3026)를 실행하고 있습니다..
- 만약, 부팅시에도 Named 서비스를 활성화하려면, 다음과 같은 방법을 통하여 활성화한다.
[root@main /root]# chkconfig --list named
named 0:해제 1:해제 2:해제 3:해제 4:해제 5:해제 6:해제
[root@main /root]# chkconfig named on
[root@main /root]# chkconfig --list named
named 0:해제 1:해제 2:활성 3:활성 4:활성 5:활성 6:해제
- 재부팅을 실시하여, Named 서비스 활성화 상태를 확인한다.
[root@main /root]# reboot
login as: root
root@192.168.1.100's password:
Last login: Thu Mar 31 11:00:42 2016 from 192.168.1.1
[root@main /root]# chkconfig --list named
named 0:해제 1:해제 2:활성 3:활성 4:활성 5:활성 6:해제
[root@main /root]# service named status
version: 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6_7.7
CPUs found: 4
worker threads: 4
number of zones: 19
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 0/0/1000
tcp clients: 0/100
server is up and running
named (pid 1802)를 실행하고 있습니다..
2. Bind 관련 파일 및 DNS 서버 구성
- Bind 패키지를 설치하면 다음과 같은 DNS 관련 파일을 이용하여 DNS 서비스를 운영한다.
- CentOS 5.x 버전에서는 'caching-nameserver' 패키지도 설치해야 한다.
- CentOS 6.x 버전에서는 Bind 9.8.2 패키지에 'caching-nameserver'가 포함되어 있다.
1) 'named.conf' 파일 및 설정 실시
- DNS 서버에 대한 설정 내용을 관리하는 파일이다.
[root@main /root]# ls /etc/named.conf
/etc/named.conf
[root@main /root]# vi /etc/named.conf
1 // 절대 경로와 파일 이름 지정 : wq! |
- 구성이 완료되었으면, 'named.conf' 파일 내용을 체크하도록 한다.
[root@main /root]# named-checkconf /etc/named.conf
2) 'named.rfc1912.zones' 파일 및 설정
- DNS 서버에 대한 정방향 및 역방향 선언 내용을 관리하는 파일이다.
정방향 : IP 주소를 문자로 표현하는 방법 (자주 사용하는 방법)
역방향 : 문자를 IP 주소로 표현하는 방법
[root@main /root]# ls /etc/named.rfc1912.zones
/etc/named.rfc1912.zones
[root@main /root]# vi /etc/named.rfc1912.zones
1 // named.rfc1912.zones: 42 // 정방향 설정 // allow-transfer { 172.20.1.X; }; <- Slave DNS 서버가 있다면, 설정 추가
47 };
[참고] Slave DNS 서버
zone "test.com" IN { type slave; file "/var/named/test.com.zone"; masters { 172.20.1.1; }; allow-update { none; }; };
: wq! |
- 구성이 완료되었으면, 'named.rfc1912.zones' 파일 내용을 체크하도록 한다.
[root@main /root]# named-checkconf /etc/named.rfc1912.zones
3) Bind Zone 파일
[root@main /root]# ls -l /var/named (샘플 파일 # ls -l /usr/share/doc/bind-9.8.2/sample/var/named/)
합계 28
drwxrwx--- 2 named named 4096 2016-03-31 11:09 data
drwxrwx--- 2 named named 4096 2016-03-31 14:10 dynamic
-rw-r----- 1 root named 2075 2014-04-23 21:57 named.ca
-rw-r----- 1 root named 152 2009-12-15 21:27 named.empty
-rw-r----- 1 root named 152 2007-06-21 19:09 named.localhost
-rw-r----- 1 root named 168 2009-12-15 21:27 named.loopback
drwxrwx--- 2 named named 4096 2016-03-16 22:25 slaves
4) Bind Zone 파일 복사 및 퍼미션 그룹 변경
[root@main /root]# cd /var/named
[root@main /var/named]# cp named.localhost test.com.zone
[root@main /var/named]# cp named.localhost 172.20.1.rev
[root@main /var/named]# ls -l
합계 36
-rw-r----- 1 root root 152 2016-04-04 11:33 172.20.1.rev
drwxrwx--- 2 named named 4096 2016-03-31 11:09 data
drwxrwx--- 2 named named 4096 2016-04-04 11:31 dynamic
-rw-r----- 1 root named 2075 2014-04-23 21:57 named.ca
-rw-r----- 1 root named 152 2009-12-15 21:27 named.empty
-rw-r----- 1 root named 152 2007-06-21 19:09 named.localhost
-rw-r----- 1 root named 168 2009-12-15 21:27 named.loopback
drwxrwx--- 2 named named 4096 2016-03-16 22:25 slaves
-rw-r----- 1 root root 152 2016-04-04 11:33 test.com.zone
[root@main /var/named]# ps -ef | grep named | grep -v grep
named 16639 1 0 15:19 ? 00:00:00 /usr/sbin/named -u named
[root@main /var/named]# groups named
named : named
[root@main /var/named]# chown root.named test.com.zone
[root@main /var/named]# chown root.named 172.20.1.rev
[root@main /var/named]# ls -l
합계 36
-rw-r----- 1 root named 152 2016-04-04 11:33 172.20.1.rev
drwxrwx--- 2 named named 4096 2016-03-31 11:09 data
drwxrwx--- 2 named named 4096 2016-04-04 11:31 dynamic
-rw-r----- 1 root named 2075 2014-04-23 21:57 named.ca
-rw-r----- 1 root named 152 2009-12-15 21:27 named.empty
-rw-r----- 1 root named 152 2007-06-21 19:09 named.localhost
-rw-r----- 1 root named 168 2009-12-15 21:27 named.loopback
drwxrwx--- 2 named named 4096 2016-03-16 22:25 slaves
-rw-r----- 1 root named 152 2016-04-04 11:33 test.com.zone
5) 정방향 'test.com.zone' 파일 설정
[root@main /var/named]# cat test.com.zone
$TTL 1D |
[root@main /var/named]# vi test.com.zone
1 $TTL 1D 15 centos IN A 172.20.1.4 : wq! |
6) 역방향 '172.20.1.rev' 파일 설정
[root@main /var/named]# cat 172.20.1.rev
$TTL 1D |
[root@main /var/named]# vi 172.20.1.rev
1 $TTL 1D 8 IN MX 10 mail.test.com. : wq! |
7) DNS 서버 지정 설정 변경
[root@main /var/named]# vi /etc/resolv.conf
1 # Generated by NetworkManager 11 nameserver 168.126.63.1 : wq! |
8) Named 서비스 재시작
[root@main /var/named]# service named restart
named 정지 중: . [ OK ]
named 시작 중: [ OK ]
9) Clone1에서 DNS 서버 지정 설정 변경
[root@clone1 /root]# vi /etc/resolv.conf
1 # Generated by NetworkManager 11 nameserver 168.126.63.1
: wq! |
10) Clone1에서 정방향 DNS 테스트 실시
[root@clone1 /root]# nslookup ns.test.com
Server: 172.20.1.1
Address: 172.20.1.1#53
Name: ns.test.com
Address: 172.20.1.1
[root@clone1 /root]# nslookup www.test.com
Server: 172.20.1.1
Address: 172.20.1.1#53
Name: www.test.com
Address: 172.20.1.1
[root@clone1 /root]# nslookup ftp.test.com
Server: 172.20.1.1
Address: 172.20.1.1#53
Name: ftp.test.com
Address: 172.20.1.2
[root@clone1 /root]# nslookup mail.test.com
Server: 172.20.1.1
Address: 172.20.1.1#53
Name: mail.test.com
Address: 172.20.1.1
[root@clone1 /root]# nslookup blog.test.com
Server: 172.20.1.1
Address: 172.20.1.1#53
blog.test.com canonical name = centos.test.com.
Name: centos.test.com
Address: 172.20.1.4
11) Clone1에서 역방향 DNS 테스트 실시
[root@clone1 /root]# nslookup 172.20.1.1
Server: 172.20.1.1
Address: 172.20.1.1#53
1.1.20.172.in-addr.arpa name = www.test.com.
1.1.20.172.in-addr.arpa name = mail.test.com.
1.1.20.172.in-addr.arpa name = ns.test.com.
[root@clone1 /root]# nslookup 172.20.1.2
Server: 172.20.1.1
Address: 172.20.1.1#53
2.1.20.172.in-addr.arpa name = ftp.test.com.
12) DNS 레코드
- 도메인을 설정할 경우, 꼭 '.' 을 마지막에 설정해야 한다. 만약, 마지막에 '.'을 설정하지 않으면 호스트 이름으로 처리한다.
[root@main /var/named]# cat test.com.zone
$TTL 1D centos IN A 172.20.1.4 blog IN CNAME centos |
레코드 |
내용 |
; |
주석 처리 |
$TTL 1D |
도메인/IP 주소 정보를 캐시에 저장하는 시간
- 10M: 10분 - 1H : 1시간 - 1D : 1일 - 86400 : 24시간 - 600 :10분
|
@ |
'/etc/named.rfc1912.zones' 파일에 정의된 test.com도메인 이름을 의미한다. @로 표기해도된다. 만약, 도메인으로 표기하려면, test.com. 으로 해야한다. |
IN |
클래스 이름으로 Internet를 의미한다. 가장 일반적으로 사용하는 레코드이다. |
SOA |
Start Of Authority 약자이며 권한을 의미한다.
DNS 도메인명. 이메일주소. ns.test.com. root.test.com.
각 영역에서 맨 처음에 설정되어 있는 기본 레코드이며,도메인 영역의 등록 정보 내용을 관리한다.
( ) 안에 있는 숫자들은 다음과 같은 시간을 의미한다.
- serial : 일련 번호, 파일이 변경될때 카운트를 증가시킨다. 상위 네임 서버(1차 넴서버)의 일련 번호가 높으면 DNS 정보를 업데이트한다. 날짜 형식으로 사용하는 것을 권장함 (Ex : 2016040400)
- refresh : 갱신 주기, 상위 네임 서버(1차 넴서버)에게 업데이트된 정보를 요청하는 시간 - retry : 재시도 주기, 상위 네임 서버(1차 넴서버)에 문제가 발생할 경우, 재요청 시간 - expire : 만료 주기, 상위 네임 서버(1차 넴서버)에 접속이 불가능할 경우, 이전 정보를 삭제하는 시간 - minimum : 최소 주기, 정보가 삭제되는 시간(TTL 개념, 캐싱된 정보를 삭제하는 시간)
|
NS |
Name Server의 약자이며, 설정된 도메인의 네임 서버 역할을 하는 시스템을 지정함 만약, 2차 네임서버가 있다면, 2차 네임서버 도메인도 설정해야 함 |
MX |
Mail Exchange의 약자이며, 메일 서버 도메인을 지정함 |
10 mail.test.com. |
메일 서버의 우선 순위를 '10'을 설정함 (우선 순위는 값이 낮을 수록 높음) |
A |
Address의 약자이며, 호스트 이름에 대한 IP 주소를 지정함 (IPv6는 IN AAAA 형식) |
CNAME |
호스트 이름에 대한 Alias를 지정함 (Ex : 긴 호스트 네임을 대신해서 사용할 경우) |
PTR |
Pointer의 약자이며, 역방향 IP 주소에 대한 도메인을 지정함 |
13) main에서 HTTP 서비스 활성화 실시
[root@main /var/named]# cd
[root@main /root]#
[root@main /root]# service httpd status
httpd가 정지되었습니다
[root@main /root]# service httpd start
httpd (을)를 시작 중: httpd: Could not reliably determine the server's fully qualified domain name, using 172.20.1.1 for ServerName
[ OK ]
- 오류 메세지 해결 방법
[root@main /root]# vi /etc/hosts
1 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 : wq! |
[root@main /root]# service httpd restart
httpd 를 정지 중: [ OK ]
httpd (을)를 시작 중: [ OK ]
[root@main /root]# vi /var/www/html/index.html
1 <h1> Welcome to www.test.com <h1> : wq! |
14) clone1 Xwindow에서 firefox를 이용하여 'www.test.com' 접속 실시
- main에서 'index.html' 파일 삭제 실시
[root@main /root]# rm /var/www/html/index.html
rm: remove 일반 파일 `/var/www/html/index.html'? y
'서버 > Linux III' 카테고리의 다른 글
Linux III - 12. Apache 웹-서버 (Tomcat & Tomcat-Connector) (0) | 2016.04.06 |
---|---|
Linux III - 11. Apache 웹-서버 (PHP & MySQL) (0) | 2016.04.06 |
Linux III - 09. DNS 서비스 이해 (0) | 2016.03.22 |
Linux III - 08. NFS 서버 (0) | 2016.03.18 |
Linux III - 07. FTP 서버(vsftpd) (0) | 2016.03.16 |