티스토리 뷰

 

1. DNS 이해 - http://titanic1997.tistory.com/12?category=793107

2. CentOS에 DNS server 구축해보기

3. 다중 DNS Server 구축해보기 - http://titanic1997.tistory.com/17

4. Master-slave DNS server 구축 - DNS server 구축시 일어나는 오류들 정리

5. DNS 서버의 위협 요인

 

DNS의 역할을 이해하고, DNS 서버를 구축해보았습니다.

이번에는 www.ast015.org라는 임의의 도메인 서버를 구현해볼 것입니다.

 

다중 DNS 서버를 구축해봄으로써 DNS의 계층구조를 이해해보겠습니다.

 

 

 

오늘 구축해볼 서버의 계층구조를 표현해봤습니다.

 

리눅스 세 개를 설치해서,

루트도메인, 최상위 레벨 도메인, 2계층 레벨 도메인을 구현해보겠습니다.

 

먼저, DNS 서버 구축 시 bind를 이용합니다.

이 bind에 대해서 자세히 설명해보겠습니다.

 

bind는 호스트명과 IP 주소를 매핑하는 분산된 데이터베이스이며, Linux와 Unix에서 가장 많이 사용합니다.

bind 서버의 설정 파일은 /etc/named.conf 파일과 여러 개의 zone 파일로 구성되어 있습니다.

 

/etc/named.conf 파일은 zone 파일의 위치, 접근 권한 설정, 설정할 도메인 종류, 각 도메인에 대한 설정 파일 등의 정보를 가집니다.

/etc/named.conf 파일에 사용하는 도메인을 등록하고, 세부 설정은 zone 파일에 하는 것입니다.

 

네임 서버 구축에 앞서 해야할 bind 설치 확인이나 방화벽 작동 여부 같은 것들은 생략하겠습니다.

 

 

 

/etc/resolv.conf에서 DNS 설정을 할 때 질의 관계(즉, 서브 도메인)을 파악하셔야합니다.

org 서버에서 DNS 설정 시 루트 도메인의 서브 도메인이므로 도메인을 루트 도메인의 ip로 지정해주고,

ast015.org 서버에서 DNS 서버시 org 도메인의 서브 도메인이므로 도메인을 org 도메인의 ip로 지정해주면 됩니다.

 

1. Root Domain Server

먼저 루트 도메인 서버의 /etc/named.conf 파일을 작성해보겠습니다.

 

 

options~ : zone 파일들의 위치를 지정합니다.

 

root.zone파일 작성해보겠습니다.

 

bind 설치를 했는데 /var/named 밑에 chrooot가 있을 경우

옵션은 그대로 지정해주시고 zone 파일은 /var/named/chroot/var/named에 작성해주시면 됩니다.

 

root.zone파일

$TTL    86400
@   IN   SOA  ns.   root.ns. (
                                   1997022700   ; Serial
                                   28800        ; Refresh
                                   14400        ; Retry
                                   3600000      ; Expire
                                   86400 )      ; Minimum
; Name Server
   IN   NS      ns.
; Host address
         IN     A   192.168.190.129
ns       IN     A   192.168.190.129
;
www      IN     CNAME  ns
;Sub Domain
org.          IN     A   192.168.190.130
ns.org.       IN     A   192.168.190.130

아까 제가 구현하고자 했던 다중 도메인 서버를 도식화한 것을 보면, 루트 서버 하위 계층의 도메인이 org였습니다.

root.zone 파일에 하위 계층 도메인의 정보를 입력해줍니다.

 

저번 게시글에서는 생략했던 SOA 레코드의 세부 항목들을 자세히 살펴보겠습니다.

 

Serial 

Secondary 서버가 zone 파일의 수정 여부를 알 수 있다.

Secondary 서버는 Primary  서버에서 zone 파일의 수정 여부를 확인한 후 Serial을 통해서 데이터를 복제한다. 수정 여부 판단의 기준은 Serial 값의 증가이다. 따라서 zone 파일 수정 시 Serial 값을 증가시켜주지 않으면 Secondary 서버에 수정된 zone 파일의 내용이 전송되지 않는다.  

 Refresh

Primary 서버와 Secondary 서버의 동기화 주기 

Retry

Secondary 서버가 Primary 서버 Refresh 실패할 때 재시도할 시간을 설정

Expire

Secondary 서버가 Expire로 지정된 시간동안 Primary 서버에 연결하지 못하는 경우 Secondary 서버는 갖고 있던 primary zone 파일 복사본을 버리고 Secondary 역할을 하지 않는다.

Minimum TTL

- 다른 네임 서버가 zone 파일의 내용을 가져간 경우 자료에 대한 유효기간

- 캐싱 기능으로, zone 파일의 정보를 가져간 다른 DNS는 일정 기간동안 원본을 읽지 않고 자신이 저장한 값을 안내

- TTL 값이 길면 zone 파일의 변경 내용을 바로 적용하지 않고 DNS의 부하를 줄이고

짧으면 DNS의 부하가 늘어나고 zone 파일의 변경 내용이 바로 적용됨

 

 

 

 

named 서비스를 재시작해서 설정이 적용되도록 합니다.

 

2. org domain server

 

/etc/named.conf

options {
directory "/var/named";
};

zone "." {
type hint;
file "named.ca";
};

zone "org" {
type master;
file "org.zone";
};

이 떄 중요한 것은 named.ca 파일을 새로 작성해야 한다는 것입니다.

DNS는 계층구조이기 때문에 최상위 계층인 root는 그 다음 하위 계층의 정보를 다 가지고 있어야 합니다.

그 방대한 양의 정보를 일일이 DNS 구축시마다 적을 수는 없기 때문에 bind 설치 시 named.ca 파일에 해당 내용이 담겨 있습니다.

 

root 서버도 자체적으로 구현했으므로 만든 root 서버를 참조하는 named.ca 파일을 새로 작성해야 합니다.

 

 

named.ca
.                        36000000  IN   NS   A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET.      36000000  A   192.168.10.129

org.zone

$TTL    86400
@   IN   SOA  ns.org.   root.ns.org. (
                                   1997022700   ; Serial
                                   28800        ; Refresh
                                   14400        ; Retry
                                   3600000      ; Expire
                                   86400 )      ; Minimum
; Name Server
   IN   NS      ns.org.
; Host address
         IN     A   192.168.190.130
ns       IN     A   192.168.190.130
;
www      IN     CNAME  ns
;Sub Domain
ast015.org.          IN     A   192.168.190.131
ns.ast015.org.       IN     A   192.168.190.131

service named restart 명령어로 설정 변경 내용 적용시켜주고,

도메인을 루트 서버의 ip주소로 변경해준 다음에

host 명령어로 확인해봤습니다.

 

 

3. ast015.org

마지막 단계가 남았습니다.

org 계층을 구현할 때와 마찬가지로 named.ca 파일을 다시 작성해줘야 합니다.

 

그 다음 /etc/named.conf 와 ast015.zone을 org 계층할 때처럼 마찬가지로 적용해주면 됩니다.

 

options {
directory "/var/named";
};

zone "." {
type hint;
file "named.ca";
};

zone "ast015.org" {
type master;
file "ast015.zone";
};

 

ast015.zone

$TTL    86400
@   IN   SOA  ns.ast015.org.   root.ns.ast015.org. (
                                   1997022700   ; Serial
                                   28800        ; Refresh
                                   14400        ; Retry
                                   3600000      ; Expire
                                   86400 )      ; Minimum
; Name Server
   IN   NS      ns.ast015.org.
; Host address
         IN     A   192.168.190.131
ns       IN     A   192.168.190.131
;
www      IN     CNAME  ns

 

최하위 계층인 ast015가 관리하는 도메인이 없으므로 zone파일에 Sub Domain 입력할 게 없습니다.

 

구축 완료.

/etc/resolv.conf에서 DNS 변경해주고, service named restart 명령어 수행 했습니다.

 

마지막으로 host 명령어로 확인해보겠습니다.

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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
글 보관함