DNS 서버 2
3) 도메인 등록
■ RR(Record Type, Resource Record) 종류에 따른 등록 방법
------------------------------------------------------------------------------------
(ㄱ) NS Record Type (Name Server)
linux2XX.example.com. IN NS ns1.linux2XX.example.com.
ns1.linux2XX.example.com. IN A 172.16.9.2XX
(ㄴ) A Record Type (Address)
www.linux2XX.example.com. IN A 172.16.9.2XX
ftp.linux2XX.example.com. IN A 172.16.9.2XX
cafe.linux2XX.example.com. IN A 172.16.9.2XX
(ㄷ) MX Record Type (Mail Exchange)
linux2XX.example.com. IN MX 10 mail.linux2XX.example.com.
mail.linux2XX.example.com. IN A 172.16.9.2XX
linux2XX.example.com. IN MX 20 mail2.linux2XX.example.com.
mail2.linux2XX.example.com. IN A 172.16.9.241
(ㄹ) CNAME Record Type (Canonical Name)
www IN A 172.16.9.2XX
ftp IN A 172.16.9.2XX
or
www IN A 172.16.9.2XX
ftp IN CNAME www
(ㅁ) PTR Record Type (Pointer Address)
2XX IN PTR ns1.linux2XX.example.com.
2XX IN PTR www.linux2XX.example.com.
------------------------------------------------------------------------------------
(시나리오) 도메인 등록 요청이 들어 왔다. 요청이 들어온 내용을 확인해 보면 다음과 같다.
▪ WEB 서버 등록 요청: www.linuxXXX.example.com -> 172.16.9.XXX
▪ FTP 서버 등록 요청: ftp.linuxXXX.example.com -> 172.16.9.XXX
▪ MAIL 서버 등록 요청: mail.linuxXXX.example.com -> 172.16.9.XXX
▪ CAFE 서버 등록 요청: cafe.linuxXXX.example.com -> 172.16.9.XXX
(도메인 등록 방법)
(ㄱ) Forward Zone 파일에 등록
# vi /var/named/chroot/var/named/exampleXXX.zone (Domain -> IP)
-> 반드시 등록 해야 함. (www IN A 172.16.9.2XX)
(ㄴ) Reverse Zone 파일에 등록
# vi /var/named/chroot/var/named/exampleXXX.rev (IP -> Domain)
-> 반드시 등록할 필요 없음. (2XX IN PTR www)
① Forward Zone 파일에 등록
# cd /var/named/chroot/var/named
# vi example2XX.zone
$TTL 4 @ IN SOA ns1.linux2XX.example.com. root.linux2XX.example.com. ( 42 ; serial (d. adams) 3H ; refresh 15M ; retry 1W ; expiry 1D ) ; minimum IN NS ns1 ns1 IN A 172.16.9.2XX
;; (1) WEB Server www IN A 172.16.9.2XX ;; (2) FTP Server ftp IN A 172.16.9.2XX ;; (3) MAIL Server linux2XX.example.com. IN MX 10 mail.linux2XX.example.com. mail IN A 172.16.9.2XX ;; (4) etc cafe IN A 172.16.9.2XX |
-> 실습할 때는 Reverse Zone 파일에 등록하지는 않는다.
-> Reverse Zone 파일에는 반드시 등록할 필요가 없기 때문이다.
-> 이 파일에 Zone Entry를 등록할 때 필드와 필드 구분은 탭/스페이스로 한다.(권장: 탭)
# service named restart
-> Zone 파일이 수정되면 변경된 사항을 적용시키기 위해서 데몬(named) restsart가 필요하다.
-> 서비스를 restart 할때는 반드시 /var/log/messages 파일을 같이 모니터링 한다.
# nslookup www.linux2XX.example.com (# nslookup www)
# nslookup ftp.linux2XX.example.com (# nslookup ftp)
# nslookup cafe.linux2XX.example.com (# nslookup cafe)
# nslookup -q=MX linux2XX.example.com
② DNS와 웹서버 연동
----- DNS Client ---- ----- DNS Server ----- ---- WEB Server -----
http://www.linuxXXX.example.com ------> named(53) <------ # cat exampleXXX.com www.linuxXXX.example.com. IN A 172.16.9.XXX
----------------------------------------------------> httpd(80) <---------------------------------------------------- httpd.conf |
# ls /etc/httpd/conf --> httpd.conf 파일 존재 확인
httpd.conf magic |
# ls /var/www/html --> index.html 파일 존재 확인
#
-> index.html 파일 존재하지 않는다.
# cp /etc/passwd /var/www/html/index.html
# service httpd restart
Stopping httpd: [FAILED] Starting httpd: [ OK ] |
[참고] 리눅스에서 호스트이름(Hostname) 변경하는 경우
# system-config-network-tui
or
# vi /etc/sysconfig/network 파일 수정
# vi /etc/hosts <----- 일부 프로그램들이 호스트이름을 확인(예: oracle, apache, ....)
# service network restart
[참고] "service httpd restart" 에러메세지
# service httpd restart
Stopping httpd: [FAILED]
Starting httpd: httpd: apr_sockaddr_info_get() failed for linux249.example.com
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for
ServerName
# vi /etc/hosts
.......
172.16.9.2XX linux2XX.example.com linux2XX
# service httpd restat
# pgrep -lf httpd (# ps -ef | grep httpd)
5836 /usr/sbin/httpd 5838 /usr/sbin/httpd 5839 /usr/sbin/httpd 5840 /usr/sbin/httpd 5841 /usr/sbin/httpd 5842 /usr/sbin/httpd 5843 /usr/sbin/httpd 5844 /usr/sbin/httpd 5845 /usr/sbin/httpd |
■ 윈도우 창에서 확인(IP 확인)
(Linux) # firefox http://172.16.9.2XX
■ 윈도우 창에서 확인(도메인 이름으로 확인)
(Linux) # firefox http://www.linux2XX.example.com
# cd /var/www/html
# vi index.html
<HTML> <BODY> <CENTER><H1>linux2XX</H1></CENTER> </BODY> </HTML> |
■ 윈도우 창에서 확인 (http://www.linux2XX.example.com)
-> http://www.linux2XX.example.com
-> 파트너시스템들에 대해서 http://www.linux249.example.com 요청을 해 본다.
(Linux) # firefox http://www.linux2XX.example.com
(Linux) # firefox http://www.linux249.example.com
4) DNS 부하 분산(DNS Load Balancing)
(L4 부하분산)
+------ Web1 ------+ | | ----- L4 ------+------ Web2 ------+------ NAS/NFS | | +------ Web3 ------+
(DNS 부하분산)
+------ Web1 ------+ | | ---- DNS ------+------ Web2 ------+------ NAS/NFS | | +------ Web3 ------+ |
DNS load balancer는 오로지 round robin(순서대로 돌아가면서 배정) 밖에 사용할 수 없다.
L4 switch는 RR(round robin) 외에 다른 여러 기능들도 사용할 수 있다.
다음은 "Windows Vista"의 "cmd" 창에서 실행한것이다.
<CTRL + ESC> => cmd => <ENTER>
c:\> nslookup www.daum.net
서버: qns1.hananet.net Address: 210.220.163.82
권한 없는 응답: 이름: top.g.daum.net Addresses:211.115.77.213 211.115.77.214 211.32.117.30 211.115.77.211 211.115.77.212 Aliases: www.daum.net |
c:\> nslookup www.daum.net
서버: qns1.hananet.net Address: 210.220.163.82
권한 없는 응답: 이름: top.g.daum.net Addresses:211.115.115.212 222.231.51.40 222.231.51.77 222.231.51.78 211.115.115.211 Aliases: www.daum.net |
c:\> nslookup www.daum.net
서버: qns1.hananet.net Address: 210.220.163.82
권한 없는 응답: 이름: top.g.daum.net Addresses:211.115.77.214 211.32.117.30 211.115.77.211 211.115.77.212 211.115.77.213 Aliases: www.daum.net |
-> 1~2초 정도에 한번씩 nslookup 명령어를 통해 정보를 요청해 보면, 첫번째 오는 아이피 주소가 변경된다는 것을
알수 있다. 출력된 내용의 첫번째 아이피쪽으로 도메인에 대한 IP 요청을 하게 된다.
(시나리오) 다음과 같이 도메인 등록을 해 달라고 요청이 들어왔다. 하나의 도메인 이름에 대해서 3개의 아이피가
연결 된다고 한다.
▪ 도메인이름(www.linux2XX.example.com) -> (172.16.9.2, 172.16.9.3, 172.16.9.4)
① Forward Zone 파일에 등록
# cd /var/named/chroot/var/named
# vi example2XX.zone
$TTL 4 @ IN SOA ns1.linuxXXX.example.com. root.linuxXXX.example.com. ( 42 ; serial (d. adams) 3H ; refresh 15M ; retry 1W ; expiry 1D ) ; minimum IN NS ns1 ns1 IN A 172.16.9.XXX
;; (1) WEB Server ;www IN A 172.16.9.2XX <----- 주석(;)처리 www IN A 172.16.9.2 <----- 새로운 라인 등록 www IN A 172.16.9.3 <----- 새로운 라인 등록 www IN A 172.16.9.4 <----- 새로운 라인 등록
;; (2) FTP Server ftp IN A 172.16.9.XXX
;; (3) MAIL Server IN MX 10 mail mail IN A 172.16.9.XXX
;; (4) etc cafe IN A 172.16.9.XXX |
# service named restart
-> Zone 파일 수정 내용 적용
② DNS 부하 분산 테스트
# nslookup www.linux2XX.example.com (# nslookup www)
Server: 172.16.9.XXX Address: 172.16.9.XXX#53
Name: www.linuxXXX.example.com Address: 172.16.9.3 Name: www.linuxXXX.example.com Address: 172.16.9.4 Name: www.linuxXXX.example.com Address: 172.16.9.2 |
# nslookup www.linux2XX.example.com (# nslookup www)
Server: 172.16.9.XXX Address: 172.16.9.XXX#53
Name: www.linuxXXX.example.com Address: 172.16.9.2 Name: www.linuxXXX.example.com Address: 172.16.9.3 Name: www.linuxXXX.example.com Address: 172.16.9.4 |
# nslookup www.linux2XX.example.com (# nslookup www)
Server: 172.16.9.XXX Address: 172.16.9.XXX#53
Name: www.linuxXXX.example.com Address: 172.16.9.4 Name: www.linuxXXX.example.com Address: 172.16.9.2 Name: www.linuxXXX.example.com Address: 172.16.9.3 |
5) Master DNS Server/ Slave DNS Server 구축
----- Master DNS Server ----- ----- Slave DNS Server ----- (172.16.9.2XX) (172.16.9.1XX) ----------------------------- ---------------------------- |
[그림] 실습 구조(Master/Slave DNS Server)
(전제조건) Master DNS Server를 Clone을 통해 Slave DNS Server를 구축한다.
[Master DNS Server] Original OS
Master DNS Server 네트워크 설정 파일들의 MAC 주소를 삭제한다.
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
# vi /etc/sysconfig/network-scripts/ifcfg-eth1
[Slave DNS Server] Clone OS
▪ Power ON
▪ 네트워크 설정
- 호스트 이름 : linux2XX.example.com -> linux1XX.example.com
- 아이피 : (eth0) 172.16.9.2XX -> 172.16.9.1XX
(eth1) 192.168.10.2XX -> 192.168.10.1XX
- /etc/hosts 파일 편집 (-> # service sendmail restart)
172.16.9.1XX linux1XX.example.com linux1XX
▪ 로그아웃 -> 로그인
[Master DNS Server] Original OS
▪ Power ON
▪ Master DNS Server : 172.16.9.2XX (ns1.linuxXXX.example.com)
▪ Slave DNS Server : 172.16.9.1XX (ns2.linuxXXX.example.com)
▪ 한개의 도메인(example2XX.com)에 두개의 DNS 서버(ns1/ns2.example2XX.com)가 존재한다.
▪ 두개의 DNS 서버는 각각 다른 IP(172.16.9.2XX/172.16.9.1XX)를 가지고 있다.
▪ (윈도우) cmd.exe
<CTRL + ESC> => "cmd"
C:\> nslookup –q=NS seoul.ac.kr
C:\> nslookup –q=NS kornet.net
C:\> nslookup –q=NS naver.com
C:\> nslookup –q=NS daum.net
[Master DNS Server] 172.16.9.2XX
-> Master DNS 서버의 전원 ON
① 주설정 파일 정보 확인 및 설정
Master DNS 서버에서 주 설정 파일은 특별히 설정할 필요가 없다.
# cat /etc/named.caching-nameserver.conf (# vi /var/named/chroot/etc/named.caching-nameserver.conf)
-> 정보만 확인
# vi /etc/named.rfc1912.zones (# vi /var/named/chroot/etc/named.rfc1912.zones)
..... (중략) ..... zone "0.in-addr.arpa" IN { type master; file "named.zero"; allow-update { none; }; };
zone "linux2XX.example.com" IN { type master; file "exampleXXX.zone"; also-notify { 172.16.9.1XX; 172.16.9.2XX; }; <----- 라인 추가 };
zone "9.16.172.in-addr.arpa" IN { type master; file "exampleXXX.rev"; also-notify { 172.16.9.1XX; 172.16.9.2XX; }; <----- 라인 추가 }; |
"also-notify { 172.16.9.140; 172.16.9.2XX; };" 자신의 Slave DNS 서버에게 변경 사항을 알려주는 설정
(주의) 이 설정이 없으면, 실시간적으로 Slave DNS 서버에 업데이트가 가능하지 않다.
② Forward-Zone/Reverse-Zone 파일 설정
# cd /var/named/chroot/var/named
# ls
data example2XX.zone localhost.zone named.ca named.ip6.local named.zero example2XX.rev localdomain.zone named.broadcast named.ca.old named.local slaves |
-> Forward Zone, Reverse Zone 파일을 변경할 것이다.
# vi example2XX.zone
$TTL 4 @ IN SOA ns1.linux2XX.example.com. root.linux2XX.example.com. ( 42 ; serial (d. adams) 3H ; refresh 15M ; retry 1W ; expiry 1D ) ; minimum IN NS ns1 IN NS ns2 <----- 새로운 라인 추가 ns1 IN A 172.16.9.2XX
bind, centos, dns, DNS Server, master dns, slave dns |