V. DNS 관리
• 도메인 질의 순서 (www.naver.com 에 대한 질의)
① Client에서 가장 먼저 hosts파일을 확인한다
② 다음 Cache파일을 확인한다
③ Client에서 IP설정 시 지정한 DNS서버에게 "www.naver.com" 에 대한 질의를 한다
④ (KT DNS : 168.126.63.1)
⑤ DNS 서버에서 해당국가에 지정된 Root DNS에게 "com"을 관리하는 DNS서버를 질의한다
⑥ "com"을 관리하는 서버에게 "naver.com"을 관리하는 DNS서버를 질의한다
⑦ "naver.com"을 관리하는 서버에게 "www.naver.com"의 IP주소를 질의한다
⑧ DNS서버가 알아낸 "www.naver.com"의 IP주소를 Client에게 알려준다
①주(Primary) DNS 서버
•가장 많이 사용되는 네임서버로, 이 자체가 도메인에 관련된 DB를 가지고 있고, 도메인 등록 시 이 주소를 등록하며, 주 네임서버에 등록된 도메인에 대한 IP로 변환해 주는 역할을 한다.
②보조(Secondary) DNS 서버
•주 네임서버의 백업서버로 주 네임서버의 DB를 가지고 있으며, 지속적으로 복제하였다가 주 네임서버에 문제가 생겼을 때, 네임서버의 역할을 한다.
①BIND 설치
root@bjkim:~# yum install bind bind-libs bind-chroot bind-utils caching-nameserver
주 설정파일
• /etc/named.conf : 네임서버 데이터베이스 및 zone 파일의 위치, 접근제어등의 보안설정을 할 수 있는 메인 설정 파일이다.
• /var/named : 네임서버의 zone 파일이 존재하는 디렉터리이다.
②주네임 서버로 설정
[1] /etc/named.conf 파일 설정 - "bjkim.com"도메인에 대한 zone 관련 설정
zone "bjkim.com" IN {type master; file "bjkim.com.zone"; allow-update { none; }; };
▲ bjkim.com 도메인은 type이 master이고, 파일은 bjkim.com.zone으로 설정되어 있으며, 주 DNS이므로 업데이트를 허용하지 않는다.
(저장경로: /var/named 또한 [bind-chroot 패키지 설치 설정 시] /var/named/chroot/var/named)
[2] zone 파일 설정
$TTL 86400 @ IN SOA ns.superuser.co.kr. root.bjkim.com. ( 20180901 ; 시리얼 값(년월일시간)으로 셋탕 3H ; 보조 네임서버가 주 네임서버에 접속하는 시간 15M ; 접속 실패 시 다시 시도할 시간 간격 1W ; 주 네임서버에서 데이터가 없다면 1주 이후에 지워짐 1D ) ; 위에서 설정한 TTL값과 같은 의미 ; IN NS ns.superuser.co.kr. ; 도메인을 소유한 주 DNS의 도메인 IN NS ns2.superuser.co.kr. ; 도메인을 소유한 보조 DNS의 도메인 IN MX 10 mail.bjkim.com. ; 메일을 보낼 도메인 또는 주소 IN TXT "v=spf1 ip4:192.168.0.1 ~ all" IN A 192.168.0.1 ; 도메인이 찾아갈 IP 주소 www IN A 192.168.0.1 ; www.도메인이 찾아갈 IP주소 mail IN A 192.168.0.1 ; 메일서버 IP * IN A 192.168.0.1 ; 모든 서브 도메인이 찾아갈 서버 IP 주소
옵션 | 의미 |
$TTL |
SOA레코드의 Minimum항목에 설정되어 있는 값과 같으며, $TTL값이 전의 값보다 우선시 된다. |
@ |
origin 도메인을 의미하며, /etc/named.conf 파일에 설정되어 있는 도메인명을 의미한다. (반드시 "."로 끝표시) |
SOA 레코드 |
해당 도메인에 대한 네임서비스의 모든 권한이 여기에 있음을 뜻한다. |
Serial |
주 네임서버와 보조네임서버의 연동을 어떻게 할 것인가에 대한 설정이다. |
Refresh |
보조 네임서버에서는 1차 네임서버의 변경된 값들이 있는가를 주기적으로 체크하게 되는 값이다. |
Retry |
2차 네임서버가 1차 네임서버로의 접근이 안될 경우 2차 네임서버는 주기적으로 접근을 시도하는 값이다. |
Expire |
retry주기마다 한번씩 지속적으로 연결을 시도하였으나 결국 expire시간동안 계속해서 연결이 되지 않으면 보조 네임서버는 해당 도메인의 정보가 삭제되었다고 판단해 이후부터는 연결을 시도하지 않는다. |
Minimum |
TTL값으로 해당 도메인의 정보를 다른 네임서버에서 가져갔을 때 가져간 도메인 정보를 얼마나 보관하고 있을 것인가에 대한 시간 값이다. |
NS레코드 |
해당 도메인의 네임서버를 지정하는 레코드이다. |
A레코드 |
해당 도메인의 실제 IP주소를 설정하는 레코드이다. |
MX레코드 | 메일서버를 설정하는 레코드이다. |
CNAME레코드 | IP가 아닌 특정 도메인으로 설정하기 위해 사용한다. |
PTR레코드 | IP주소에 대해 도메인명을 매핑해주며 Reverse Zone 파일에서 사용된다. (ex. 1.0.168.192.in-addr.arpa. IN PTR bjkim.com.) |
TXT레코드 | 임의의 문자열을 추가하는 레코드 이다. |
AAAA레코드 | IPv6에서 사용되는 A레코드이다. |
[3] 설정 파일 검증
• named.conf 설정파일 검증
root@bjkim:~# named-checkconf /etc/named.conf
▲아무런 메세지가 없으면 정상
• zone 파일 검증
root@bjkim:~# named-checkzone bjkim.com /var/named/bjkim.com.zone zone bjkim.com/IN: loaded serial 20180901 OK
▲OK 메세지를 보여주면 정상 (잘못 설정 시 위치와 내용을 알려줌)
③보조네임 서버로 설정
zone "bjkim.com" IN {type slave; masters {192.168.0.129;}; file "bjkim.com.zone"; };
▲ bjkim.com 도메인 type은 slave이고, master 서버는 192.168.0.129이며, zone 파일명은 bjkim.com.zone으로 설정되어 있다.
④캐싱 서버로 설정
•캐싱 네임서버는 대부분 리눅스 배포판에서 패키지로 제공되는 bind는 캐싱 기능이 설정된 상태여서 따로 복잡한 설정이 필요없다.
(/etc/named.conf 파일의 'view'에 설정되어 있음)
view localhost_resolver { match-clients { any; }; match-destinations { any; }; recursion yes; include "/etc/named.rfc1912.zones"; };
⑤DNS의 서비스 시작(named)
root@bjkim:~# service named start named를 시작 중: [ OK ] root@bjkim:~# tail -f /var/log/messages ~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~
▲ 네임서버를 시작한 후에는 /var/log/messages파일을 확인하여, bind가 정상인지 체크한다.
⑥DNS 도메인 테스트
host 명령어
root@bjkim:~# host bjkim.com localhost Using domain server: Name: localhost Address: 127.0.0.1#53 Aliases: bjkim.com has address 192.168.0.1 bjkim.com mail is handled by 10 mail.bjkim.com. root@bjkim:~# host -t txt bjkim.com localhost Using domain server: Name: localhost Address: 127.0.0.1#53 Aliases: bjkim.com descriptive text "v=spf1 ip4:192.168.0.1 ~all"
▲host 명령을 통해 도메인 localhost DNS를 조회 하였고, -t 옵션을 사용해 TXT 레코드를 조회한 결과
dig 명령어
root@bjkim:~# dig bjkim.com @localhost ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11774 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0 ;; QUESTION SECTION: ;bjkim.com. IN A ;; ANSWER SECTION: bjkim.com. 5 IN A 192.168.0.1 ;; AUTHORITY SECTION: bjkim.com. 5 IN NS ns.superuser.co.kr. ;; Query time: 35 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Fri Aug 31 03:48:01 2018 ;; MSG SIZE rcvd: 77
⑦DNS를 이용한 로드 밸런싱
root@bjkim:~# host naver.com naver.com has address 202.131.30.12 naver.com has address 220.95.233.171 naver.com has address 220.95.233.172 naver.com has address 202.131.30.11 naver.com mail is handled by 10 mx-1.naver.com. naver.com mail is handled by 10 mx2.naver.com. naver.com mail is handled by 10 mx3.naver.com.
root@bjkim:~# cd /var/named/ root@bjkim: named# weget ftp://ftp.rs.internic.net/domain/named.root root@bjkim: named# cat named.root > named.ca
'자격증 > 리눅스 마스터 1급' 카테고리의 다른 글
Part3) 네트워크 및 서비스의 활용 - 네트워크 서비스 | 기타 서비스 (0) | 2018.09.05 |
---|---|
Part3) 네트워크 및 서비스의 활용 - 네트워크 서비스 | 가상화 관리 (0) | 2018.09.04 |
Part3) 네트워크 및 서비스의 활용 - 네트워크 서비스 | 메일 관련 서비스 (0) | 2018.09.03 |
Part3) 네트워크 및 서비스의 활용 - 네트워크 서비스 | 파일관련 서비스 | NFS, FTP (0) | 2018.08.30 |
Part3) 네트워크 및 서비스의 활용 - 네트워크 서비스 | 파일관련 서비스 | 삼바서버 (0) | 2018.08.28 |