● DNS 서버 구축
- DNS 서버 : HostName(ComputerName+Domain)을 ip주소로 변환하는 서버
=> 외부 DNS 서버 : 도메인을 이용하여 도메인DB(.도메인)의 정보를 활용해 도메인에 대한
내부 DNS 서버명과 ip 주소를 응답해 주는 서버
ex) ocj1778.com => ns.ocj1778.com : 172.16.5.100
=> 내부 DNS 서버 : 도메인 그룹에 등록된 ComputerName에 대한 ip 주소를 응답해 주는 서버
ex) www.ocj1778.com => www : 172.16.5.99
- DNS 서버 구축 방법
1. 도메인 구입 후 . 도메인에 도메인에 대한 정보(내부 DNS서버명과 ip주소)를 등록
ex) ocj1778.com => ns.ocj1778.com : 172.16.5.100
ocj1778.co.kr => ns.ocj1778.com : 172.16.5.100
2. DNS 서버 프로그램 설치
]# rpm -qa | grep bind => 설치 유무 확인
]# yum -y install bind => yum 명령을 이용해 bind 설치
]# rpm -qa | grep bind
bind-9.3.4-10.P1.el5 => bind 프로그램
3. DNS 서버 환경설정 => zone(영역)을 생성
1) forward zone(순방향 영역) : 도메인(호스트명)을 ip 주소로 변환하는 정보를 가지고 있는 영역
=> 도메인의 갯수만큼 생성
2) reverse zone(역방향 영역) : ip 주소를 도메인(호스트명)으로 변환하는 정보를 가지고 있는 영역
=> 1개만 생성(생략 가능)
]# vi /etc/named.conf => zone를 만들어 주는 환경설정 파일
options { => 서버옵션 지정영역
directory "디렉토리명"; => zone 파일이 저장되어야될 디렉토리
};
zone "정보" IN { => 영역 지정
type {hint|master|slave}; => zone의 형태 지정
masters { 1차DNS주소; }; => master(1차 DNS서버의 ip주소) : 2차 DNS 서버 설정(type이 salve인 경우)만 사용
file "파일명"; => zone에서 사용할 파일 : zone file
allow-update { key; }; => 2차 DNS에서 1차 DNS 참조시 인증하기 위한 key 값
};
....
=> 정보 : 도메인 - forward zone
ip주소 - reverse zone
=> type : hint - zone 파일을 다운로드 받는 zone인 경우
master = zone파일을 직접 생성하는 zone인 경우(1차 DNS 서버)
slave = zone파일을 1차 DNS의 zone파일을 복사하는 zone인 경우(2차 DNS 서버)
=> zone 파일 : zone의 상세정보를 저장하고 있는 파일
zone에서 설정할 값이 같은 경우 같은 zone파일을 사용해도 된다.
ex) ]# vi /etc/named.conf
options {
directory "/var/named";
};
zone "." IN { => forward zond : .도메인
type hint;
file "named.ca"; => zone 파일 : . 도메인의 ip주소 정보가 저장된 파일
};
zone "ocj1778.com" IN { => forward zond : ocj1778.com 도메인
type master;
file "ocj1778.com.zone";
allow-update { none; };
};
zone "ocj1778.co.kr" IN { => forward zond : ocj1778.co.kr 도메인
type master;
file "ocj1778.co.kr.zone";
allow-update { none; };
};
zone "5.16.172.in-addr.arpa" IN { => reverse zone : 172.16.5 네트워크 그룹
type master;
file "ocj1778.rev";
allow-update { none; };
};
4. zone 파일 생성 => /var/named 디렉토리에서 생성
: zone 파일은 레코드 단위로 데이타를 표현
1) .도메인에 대한 zone 파일
named.ca 파일은 다운로드 => wget 명령(URL 자원 다운로드 명령) 활용
: 외부 DNS 서버 구축
]# wget ftp://ftp.internic.net/domain/named.root
]# mv named.root /var/named/named.ca => 파일 이동 후 파일명 변경
2) reverse zone 파일 => ocj1778.rev
※ zone 파일 맨 처음은 TTL 시간을 작성해 준다.
형식) $TTL 시간(초) => zone 파일의 정보를 클라이언트가 기억하도록 요청하는 시간
SOA 레코드 => 모든 zone 파일의 가장 먼저 선언되는 레코드
=> 도메인에 대한 권한이 있음을 알리는 레코드 및 2차 DNS가 1차 DNS를 참조하기 위한 시간 설정
형식) 도메인 IN SOA 내부DNS서버명 도메인관리자이메일주소 (
시리얼번호
참조시간
재참조시간
포기시간
정보삭제시간 )
=> 도메인 대신 @를 사용해도 된다.
=> 도메인 마지막에는 반드시 .를 붙인다.
ex) ns.ocj1778.com.
=> 도메인 관리자 이메일에는 @를 사용할 수 없다
ex) ocj.ocj1778.com => @ 대신 .을 사용
=> 시리얼번호 : 2차 DNS 서버가 1차 DNS 서버의 Zone파일을 참조할 경우 1차 DNS 서버의
Zone 파일의 변경 유무를 확인하는 값 - 일반적으로 날짜 및 시간정보를 활용
참조시간 : 2차 DNS서버가 1차 DNS 서버를 반복적으로 참조하는 시간
재참조시간 : 2차 DNS서버가 1차 DNS 서버를 참조하기 위해 요청에 대해 응답이 없는 경우 다시 요청하기 위한 시간
포기시간 : 2차 DNS서버가 1차 DNS 서버를 참조할 경우 반복적인 요청에 응답이 계속 없을 경우 포기하는 시간 => 서버 중지
정보삭제시간 : 1차 DNS서버의 정보를 2차 DNS 서버 cache에 저장하는 시간
NS 레코드 => 모든 zone 파일에 선언되며 SOA 레코드 아래 선언
=> 도메인을 관리하기 위한 내부 DNS서버명 지정
형식) 도메인 IN NS 내부DNS서버명
=> 도메인은 SOA 레코드에서 @를 사용한 경우 생략 가능
=> NS 레코드는 여러 개 선언 가능(1차 DNS 서버는 여러 개 선언)
PTR 레코드 => reverse zone에만 존재하는 레코드
=> ip 주소는 호스트명으로 변경하는 정보를 가진 레코드
형식) ip주소 IN PTR 호스트명
ex) ]# cd /var/named
]# vi ocj1778.rev
$TTL 86400
@ IN SOA ns.ocj1778.com. ocj.ocj1778.com. (
2013091314
28800
14400
3600000
86400 )
IN NS ns.ocj1778.com.
100 IN PTR ocj1778.com.
3) forward zone 파일 => ocj1778.com.zone 또는 ocj1778.co.kr.zone
※ forward zone파일은 reverse zone 파일과 동일하게 TTL, SOA 레코드 및 ns 레코드로 시작된다.
MX 레코드 => 일반적으로 forward zone 파일에 선언한다.
=> 도메인을 이용한 메일 서버명을 지정(메일서버를 구출할 경우 반드시 선언해야 되는 레코드)
형식) 도메인 IN MX 숫자 메일서버명
※ 숫자 : 메일 주서버 및 메일 보조서버들을 구분하는 값
=> 값이 적은 것이 메일 주서버
주서버 : 메일을 받아 계정에게 전달
보조서버 : 주서버가 고장날 것을 대비하여 만든 서버
주서버가 고장난 경우
A 레코드 => forward zone 파일에만 설정
=> 호스트명을 ip주소로 변경하기 위한 정보를 저장한 레코드
형식) 호스트명 IN A ip주소
CNAME 레코드 => 기존 호스트명에 대한 alias명을 지정
형식) 호스트명 IN CNAME 기준호스트명
ex) ]# vi ocj1778.com.zone
$TTL 86400
@ IN SOA ns.ocj1778.com. ocj.ocj1778.com. (
2013091314
28800
14400
3600000
86400 )
IN NS ns.ocj1778.com.
IN MX 5 mail.ocj1778.com.
IN A 172.16.5.100
www IN A 172.16.5.100
cafe IN A 172.16.5.100
blob IN A 172.16.5.100
www2 IN CNAME www
ns IN A 172.16.5.100
mail IN A 172.16.5.100
ftp IN A 172.16.5.100
mysql IN A 172.16.5.100
]# vi ocj1778.co.kr.zone
$TTL 86400
@ IN SOA ns.ocj1778.com. ocj.ocj1778.com. (
2013091314
28800
14400
3600000
86400 )
IN NS ns.ocj1778.co.kr.
IN A 172.16.5.100
www IN A 172.16.5.100
ns IN A 172.16.5.100
5. DNS 서버 프로그램을 실행 => named 이용하여 관리
]# service named start => 실행
]# ps -xa | grep named => 실행 여부 확인
]# chkconfig --level 2345 named on => 부팅시 자동 실행되도록 변경
]# chkconfig --list | grep named
named 0:해제 1:해제 2:활성 3:활성 4:활성 5:활성 6:해제
6. DNS 서버에 대한 요청 응답 확인
]# nslookup www.ocj1778.com => 요청
=> ip주소로 응답
※ 도메인에 대한 .도메인 등록이 되어 있지 않기 때문에 응답이 없다.
(잘못된 응답이 발생할 수도 있다.)
]# vi /etc/resolv.conf
nameserver 210.181.1.24
------------
└ 172.16.5.100으로 변경 => 현재 서버의 ip주소로 변경
]# nslookup www.ocj1778.com
Server: 172.16.5.100
Address: 172.16.5.100#53
Name: www.ocj1778.com
Address: 172.16.5.100
※ 응답이 없을 경우 /etc/named.conf 또는 zone 파일에 오류가 발생된 경우
=> 변경 후 named 재실행
'Dev > Dev:: Linux' 카테고리의 다른 글
[Day 010] Linux 10일차 - ● ftp 서버 구축 (0) | 2013.09.16 |
---|---|
[Day009] Linux 9일차 - 메일 서버 구축 (0) | 2013.09.13 |
[Day008] Linux 8일차 - 네트워크 관리 2 (0) | 2013.09.13 |
[Day008] Linux 8일차 - 네트워크 관리 1 (0) | 2013.09.13 |
[Day008] Linux 8일차 - SHELL 관리 2 (0) | 2013.09.13 |