nns 기본 작업 원리 및 정반향 해석 및 주종 동기화

DNS(Domain Name System, 도메인 이름 시스템)는 인터넷에서 도메인 이름과 IP 주소가 서로 비치는 분포식 데이터베이스로서 사용자가 인터넷에 더욱 편리하게 접근할 수 있고 기계가 직접 읽을 수 있는 IP 문자열을 기억하지 않아도 된다.호스트 이름을 통해 최종적으로 이 호스트 이름에 대응하는 IP 주소를 얻는 과정을 도메인 이름 해석이라고 한다.
DNS 서버 유형:
주 DNS 서버: 해석을 담당하는 역내 해석 라이브러리 서버를 유지합니다.해석 라이브러리는 관리에서 유지보수한다.
DNS 서버: 주 DNS 서버나 다른 DNS 서버에서 해석 라이브러리를 복사(구역 전달)합니다.
일련 번호: 라이브러리의 버전 번호 해석하기;전제: 주 서버가 라이브러리 내용에 변화가 발생하고 그 서열이 증가한다.
리셋 간격: 서버에서 주 서버로부터 라이브러리 동기화 요청 간격;
재시도 간격: 서버에서 주 서버로부터 라이브러리 동기화 요청이 실패했을 때 다시 시도한 시간 간격;
기한이 지난 시간: 서버에서 메인 서버와 시종 연락이 되지 않을 때 얼마나 많은 시간이 지난 후에 서버 각도에서 서비스를 제공하는 것을 포기하고 서비스를 제공하지 않습니다.
영역 전송:
전체 전송: 전체 분석 라이브러리 전송
증량 전송: 해석 라이브러리 변화의 그 부분 내용 전달
DNS 서버 캐시
DNS의 작동 방법 및 절차:
1. 클라이언트가 도메인 이름 해석 요청을 제출하고 이 요청을 로컬 도메인 이름 서버에 발송한다.
2. 로컬 도메인 서버가 요청을 받은 후에 먼저 로컬 캐시를 조회하고 이 기록 항목이 있으면 로컬 도메인 서버는 조회의 결과를 직접 되돌려줍니다.
3. 로컬 캐시에 이 기록이 없으면 로컬 도메인 서버는 요청을 루트 도메인 서버에 직접 보내고 루트 도메인 서버는 로컬 도메인 서버의 조회역(루트의 하위 도메인)의 메인 도메인 서버의 주소로 되돌아간다.
4. 로컬 서버가 다시 한 단계 되돌아오는 도메인 이름 서버에 요청을 보내고 요청을 받은 서버가 자신의 캐시를 조회한다. 이 기록이 없으면 관련 하위 도메인 이름 서버의 주소를 되돌려준다.
5, 정확한 기록을 찾을 때까지 네 번째 단계를 반복한다.
6. 로컬 도메인 이름 서버는 다음에 사용할 수 있도록 되돌아오는 결과를 캐시에 저장하고 결과를 클라이언트에게 되돌려준다.
정방향 해결:
(1) 주 프로필에 영역/etc/named를 정의합니다.rfc1912.zones 
                                     zone"ZONE_NAME"IN {
type{master(주)|slave(종)|hint(뿌리)|forward(전송)};
                                               file"ZONE_NAME.zone";
                                     };
예:vim/etc/named.rfc1912.zones 
zone "magedu.com" IN {
        type master;
        file"magedu.com.zone";
};

구문 오류 확인: #named-checkconf
(2) 영역 분석 라이브러리 정의
/var/named 디렉토리에 magedu를 생성합니다.com.zone 파일
# vim magedu.com.zone
$TTL 86400
@     IN    SOA  ns1.magedu.com.  (
                  20150425
                  1H2
                  5M
                  7D
                  1D )
      IN    NS   ns1.magedu.com.
      IN   NS    ns2.magedu.com.
ns1   IN    A    172.16.249.17
ns2   IN   A     172.16.249.12
ww w  IN    A    172.16.249.17

문법 오류 검사: #named-checkzone "magedu.com"/var/named/magedu.com.zone
 
테스트 명령:dig
dig [-t type] name [@SERVER] [query options]
 
www.magedu.com
[root@localhost named]# dig -t A www.magedu.com @172.16.249.17
 
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6<<>> -t A www.magedu.com @172.16.249.17
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id:50599
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2,ADDITIONAL: 2
 
;; QUESTION SECTION:
;www.magedu.com.                         IN     A
 
;; ANSWER SECTION:
www.magedu.com.                 86400       IN     A       172.16.249.17
 
;; AUTHORITY SECTION:
magedu.com.                  86400       IN     NS    ns1.magedu.com.
magedu.com.                  86400       IN     NS    ns2.magedu.com.
 
;; ADDITIONAL SECTION:
ns1.magedu.com.          86400       IN     A       172.16.249.17
ns2.magedu.com.          86400       IN     A       172.16.249.12
 
;; Query time: 1 msec
;; SERVER: 172.16.249.17#53(172.16.249.17)
;; WHEN: Sat Apr 25 16:17:27 2015
;; MSG SIZE  rcvd: 116

 
역해석:
영역 이름: 네트워크 주소 역쓰기.in-addr.arpa.
 
(1) 영역 정의
                                   zone"ZONE_NAME"IN {
                                            type{master|slave|forward};
file "네트워크 주소.zone"
                                   };
예:
zone"1.16.172.in-addr.arpa" IN {
            typemaster;
            file"192.168.zone";
};

(2) 영역 분석 라이브러리 파일
주의: MX와 A, 그리고 AAAA 기록은 필요 없습니다.PTR 레코드 위주;
 
$TTL 86400
$ORIGIN 1.16.172.in-addr.arpa.
@   IN    SOA  ns1.magedu.com.   admin.mage.com.(
              2015042501
              10M
              5M
              3D
              1D )
    IN    NS   ns1.magedu.com.
    IN    NS   ns2.magedu.com.
11  IN   PTR   ns1.magedu.com.
12  IN   PTR   ns2.magedu.com.

 
해석 172.16.249.17
[root@localhost ~]# dig -x 172.16.249.17
 
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6<<>> -x 172.16.249.17
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id:24949
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2,ADDITIONAL: 2
 
;; QUESTION SECTION:
;17.249.16.172.in-addr.arpa.         IN     PTR
 
;; ANSWER SECTION:
17.249.16.172.in-addr.arpa. 86400 INPTR  ns1.magedu.com.
 
;; AUTHORITY SECTION:
249.16.172.in-addr.arpa. 86400   IN     NS    ns2.magedu.com.
249.16.172.in-addr.arpa. 86400   IN     NS    ns1.magedu.com.
 
;; ADDITIONAL SECTION:
ns1.magedu.com.          86400       IN     A       172.16.249.17
ns2.magedu.com.          86400       IN     A       172.16.249.12
 
;; Query time: 1 msec
;; SERVER: 172.16.249.17#53(172.16.249.17)
;; WHEN: Sat Apr 25 16:11:33 2015
;; MSG SIZE  rcvd: 136

주종 동기화
1. 독립된 이름 서버가 되어야 한다.
2. 주 서버의 영역 분석 라이브러리 파일에 반드시 NS 기록이 종속 서버를 가리켜야 한다.
3. 서버에서 영역만 정의하고 분석 라이브러리 파일을 제공할 필요가 없다.해석 라이브러리 파일은/var/named/slaves/디렉터리에 두어야 합니다.
4. 메인 서버는 서버에서 지역으로 전송하는 것을 허용해야 한다.
5. 주종 서버 시간은 동기화되어야 하며 ntp를 통해 진행할 수 있다.
6.bind 프로그램의 버전은 일치해야 한다.그렇지 않으면 높고 낮음부터
 
영역으로부터의 방법을 정의합니다.
zone "ZONE_NAME"IN {
                type slave;
                masters {MASTER_IP; };
                file"slaves/ZONE_NAME.zone";
};
 
예: 새 호스트를 열고 캐시 이름 서버를 설정하고 영역을 다음과 같이 정의합니다
#[root@bogon etc] vim named.conf
options {       
       listen-on port 53 { 127.0.0.1; 192.168.1.115; };       
       listen-on-v6 port 53 { ::1; };       
       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";       
       allow-query     { any; };        
       recursion yes;
};

영역을 정의하려면 다음과 같이 하십시오.
#[root@bogon etc]# vim named.rfc1912.zones
zone "magedu.com" IN {
       type slave;
       masters{ 192.168.1.114;};
       file "slaves/magedu.com.zone";
};
zone "1.168.192.in-addr.arpa" IN {
       type slave;
       masters{ 192.168.1.114;};
       file"slaves/192.168.zone";
};

기본 프로파일 및 영역 분석 라이브러리 파일 다시 로드
#rndc reload

서버 설정에서 완료하기;주 서버에서 새로운 기록을 추가하면 서버에서 실시간으로 동기화합니다

좋은 웹페이지 즐겨찾기