티스토리 뷰

IT/RHEL

[RHCE] 캐싱전용 DNS 서버

트래이닝맨 2014. 8. 17. 13:08
728x90
반응형

15장. 캐싱전용 DNS서버




*DNS 개요
========
인가된 이름서버
마스터 - 원본 zone 데이터 파일을 가지고 있는 서버. 기본 이름서버라 한다.

슬레이브 - 마스터에서 zone 데이터 파일을 복사받은 백업 서버. 보조 이름서버라고 한다.

인가되지 않은/재귀적 이름서버
캐싱 전용 이름서버 : 조회에만 사용되며, 일반 데이터 이외의 내용에 대해 인가되지 않음. 
상대방의 zone정보만 가져오는 경우, 예를 들어, 사설망은 외부에 알려질 필요없으므로, zone 정보를 가지고 있을 필요가 없음.

*DNS 조회
=========
1) /etc/nsswitch.conf
2) /etc/hosts
3) /etc/resolv.conf ( 인터페이스에 dns가 정해져 있지 않았다면 이파일을 이용하여 Name Server를 찾음)
4) 만약에 Name Server의 zone 파일에 내용이 있어서 그 파일을 읽어서 응답을 줄 경우 => 인가된 응답이라 한다.
만약에 캐시에서 읽어와서 응답을 줄 경우 => 비인가된 응답이라 한다.
5) 여기까지 해당 서버를 찾지 못하였다면, 최상위 루트 영역에서 시작하여 하나하나 확인을 함(그림 참조)

(Note) 인가된 파일
1.로컬 zone (캐싱전용 이름서버일땐 불필요)
2.root zone
3.reverse zone(옵션) 
4.loop zone (127.0.0.1 => localhost)

*Sample
========


example.com.zone

; Begin Start Of Authority resource record
example.com. IN SOA instructor.example.com. root.instructor.example.com. ( 
2010091500 ; serial number
1H ; refresh slave
5M ; retry query
1W ; expire
1M ; negative TTL 
)

; Specify our name servers 
; !!WARNING: You can not use CNAMEs for RDATA here !!
; owner TTL CL type RDATA
@ IN NS instructor.example.com.

; Specify our mail exchangers
; !!WARNING: You can not use CNAMEs for RDATA here !!
; owner TTL CL type RDATA
@ IN MX 10 instructor.example.com.

; List our CNAME records ( aliases ) here
; owner TTL CL type RDATA
mail.example.com. 3600 IN CNAME instructor.example.com.
kerberos.example.com. 3600 IN CNAME instructor.example.com.

; List our A records ( hosts ) here
; owner TTL CL type RDATA
desktop1.example.com. IN A 192.168.0.1
desktop2 IN A 192.168.0.2


/var/named.ca ==> 최상위 Root 영역 주소

;; ADDITIONAL SECTION:
A.ROOT-SERVERS.NET. 3600000 IN A 198.41.0.4
A.ROOT-SERVERS.NET. 3600000 IN AAAA 2001:503:ba3e::2:30
B.ROOT-SERVERS.NET. 3600000 IN A 192.228.79.201
C.ROOT-SERVERS.NET. 3600000 IN A 192.33.4.12
D.ROOT-SERVERS.NET. 3600000 IN A 128.8.10.90


named.loopback ==> 127.0.0.1 = localhost를 정의하는 파일(리눅스에만 있음)

$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
PTR localhost.


 *DNS 리소스 레코드
===================

A            - IPv4
AAAA     - IPv6
CNAME  - 정규이름으로 ( alias 와 real name을 같다고 정의)
               ex) mail.example.com == instructor.example.com
PTR      - IPv4/IPv6 주소에서 이름으로( 역도메인 IP->도메인)
MX        - 메일 교환기 ( 메일박스)
NS        - 네임서버
SOA      - start of authority, DNS영역에 대한 정보(관리 정보)


*캐싱 전용 DNS 서버
===================

패키지 : BIND
사용 port : 53/UDP, 53/TCP


/etc/named.conf ==> @(오리진)의 정보가 들어있는 파일

options {
// Where do our zone files live?
directory "/var/named";
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";

cleaning-interval 1440;
// Use the ACL to say who can query us
allow-query { internal; };

// Allow recursion for localnets( not really needed becauses of above ) 
allow-recursion { internal; };

// Allow zone transfers only to exampleNetwork ACL
allow-transfer { exampleNetwork; };

// Blackhole illegal addresses commonly used for spoofing
// This is also redundant but we are showing off
blackhole { bogusNets; };

// If you're behind a firewall but have Internet access, you
// might need to run DNS lookups through another name server
// that can see through it, to resolve outside hosts.
// The commented-out line below works for Meridian.
forwarders { 66.187.233.210; 209.132.183.2; };

dnssec-enable yes;
dnssec-validation no;
dnssec-lookaside auto;

/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";

};

zone "example.com" {
type master;
file "example.com.zone";
// The forwarders line below turns off forwarding, if specified
// above, for delegated subdomains (domainXX.example.com, etc).
// (So we talk directly to the server for the zone we delegated,
// rather than asking the forwarder to do it for us.)
forwarders {};
};

zone "0.168.192.in-addr.arpa" {
type master;
file "192.168.0.zone";
forwarders {};
};




*options 지시문
==============

listen-on : IPv4주소 named가 리스닝을 할지 제어
listen-on-v6 : IPv6주소 named가 리스닝을 할지 제어 
allow-query : DNS 서버에 정보를 문의할 수 있는 클라이언트 제어
forwarders : DNS 쿼리가 전달될 이름서버 목록이 포함(외부 이름서버에 직접 연결하지 않음, 방화벽 시나리오에서 유용함)

*예제
=====

yum -y install bind
listen-on port 53 {any;};
listen-on-v6 port 53 {any;};
dnssec-validation no;
allow-query {localhost;192.168.0.0/24;};
forwarders {192.168.0.254;};

확인
host server1.example.com 192.168.0.101


반응형

'IT > RHEL' 카테고리의 다른 글

[RHCE] CIFS (SAMBA) 파일공유  (0) 2014.08.17
[RHCE] NFS 파일 공유  (0) 2014.08.17
[RHCE] SMTP (postfix) 설정  (0) 2014.08.17
[RHCE] WebServer (Apache) 설정 (보안설정 포함)  (0) 2014.08.17
[RHCE] 인증키 생성 for SSL  (0) 2014.08.17
댓글
250x250
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/10   »
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
글 보관함