서버관리자가 DNS와 BIND에 대해 공부한 내용

책 - DNS와 BIND, Paul Albitz & Cricket Liu, 이성희 역, 한빛미디어


1. 1. 기본 지식

2. 2. DNS는 어떻게 동작하는가?

3. 3. 시작하기

4. 4. BIND 셋업하기

4.1. 이용할 도메인

~cpp 
127.0.0.1	localhost

192.249.249.2	robocop.movie.edu	robocop
192.249.249.3	terminator.movie.edu	terminator bigt
192.249.249.4	diehard.movie.edu	diehard dh

192.253.253.2	misery.movie.edu	misery
192.253.253.3	shining.movie.edu	shining
192.253.253.4	carrie.movie.edu	carrie

192.253.253.2	wormhole.movie.edu	wh249
192.253.253.2	wormhole.movie.edu	wh253

~cpp 
robocop terminator diehard
  ㅁ       ㅁ        ㅁ
  |--------|---------|-----네트워크 192.249.249
               |
      wormhole ㅁ
               |
  |------|-------|---------네트워크 192.253.253
  ㅁ     ㅁ      ㅁ
misery shining carrie

4.2. DNS 데이터 셋업

db 파일(DNS 데이터 베이스 파일)
호스트->주소 맵핑하는 파일 - db.DOMAIN
예) db.movie
주소->호스트 맵핑하는 파일 - db.ADDR
예) db.192.249.249
네임서버환경설정파일 - /etc/named.conf (BIND 버전 8)
=> (책에는 BIND 버전 4와 BIND 버전 8 모두 설명하고 있는데 버전 8만 정리하겠음)

  • db 파일
    DNS 리소스 레코드 : db 파일내의 항목들
    리소스 레코드들의 (일반적)순서 - SOA(start of authority) 레코드, NS(name server) 레코드, 기타 레코드, A(address), PTR(pointer), CNAME(canonical name)

  • 주석문 - 세미콜론(;)으로 시작해서 그 라인의 끝까지

  • SOA레코드
    각 파일의 첫 항목
    이 네임서버가 이 영역의 데이터에 대한 최고의 정보 제공처라는 것을 의미

~cpp 
movie.edu.	IN	SOA	terminator.movie.edu. al.robocop.movie.edu. (
				     1		; Serial
				 10800		; Refresh
				  3600		; Retry
				604800		; Expire
				 86400 )	; Negative Cache TTL
terminator.movie.edu => 주 마스터 네임 서버의 이름
al.robocop.movie.edu => 책임자의 연락처(al@robocop.movie.edu)

  • NS 레코드
    영역에 대한 네임 서버 레코드

  • 주소와 별명 레코드
    A - 호스트 네임을 주소로 맵핑하는 리소스 레코드
    CNAME - 별명을 그에 해당하는 정규(canonical)네임으로 맵핑하는 리소스 레코드

  • PTR 레코드
    네트워크 주소를 호스트 주소로 맵핑

  • 완성된 데이터 파일
db.movie
~cpp 
movie.edu.	IN	SOA	terminator.movie.edu. al.robocop.movie.edu. (
				     1		; Serial
				 10800		; Refresh
				  3600		; Retry
				604800		; Expire
				 86400 )	; Negative Cache TTL
;
; 네임 서버들
;
movie.edu.	IN	NS	terminator.movie.edu.
movie.edu.	IN	NS	wormhole.movie.edu.

;
; 정규(canonical) 네임에 대한 주소들
;
localhost.movie.edu.	IN	A	127.0.0.1
robocop.movie.edu.	IN	A	192.249.249.2
terminator.movie.edu.	IN	A	192.249.249.3
diehard.movie.edu.	IN	A	192.249.249.4
misery.movie.edu.	IN	A	192.253.253.2
shining.movie.edu.	IN	A	192.253.253.3
carrie.movie.edu.	IN	A	192.253.253.4
wormhole.movie.edu.	IN	A	192.249.249.1
wormhole.movie.edu.	IN	A	192.253.253.1

;
; 별명들
;
bigt.movie.edu.		IN	CNAME 	terminator.movie.edu.
dh.movie.edu.		IN	CNAME 	diehard.movie.edu.
wh.movie.edu.		IN	CNAME 	wormhole.movie.edu.

;
; 인터페이스를 위한 특정한 이름들
;
wh249.movie.edu.	IN	A	192.249.249.1
wh253.movie.edu.	IN	A	192.253.253.1

db.192.249.249
~cpp 
249.249.192.in-addr.arpa.	IN	SOA	terminator.movie.edu. al.robocop.movie.edu. (
				     1		; Serial
				 10800		; Refresh
				  3600		; Retry
				604800		; Expire
				 86400 )	; Negative Cache TTL
;
; 네임 서버들
;
249.249.192.in-addr.arpa.	IN	NS	terminator.movie.edu.
249.249.192.in-addr.arpa.	IN	NS	wormhole.movie.edu.

;
; 정규(canonical) 네임에 대한 주소들
;
1.249.249.192.in-addr.arpa.	IN	PTR	wormhole.movie.edu.
2.249.249.192.in-addr.arpa.	IN	PTR	robocop.movie.edu.
3.249.249.192.in-addr.arpa.	IN	PTR	terminator.movie.edu.
4.249.249.192.in-addr.arpa.	IN	PTR	diehard.movie.edu.

db.192.253.253
~cpp 
253.253.192.in-addr.arpa.	IN	SOA	terminator.movie.edu. al.robocop.movie.edu. (
				     1		; Serial
				 10800		; Refresh
				  3600		; Retry
				604800		; Expire
				 86400 )	; Negative Cache TTL
;
; 네임 서버들
;
253.253.192.in-addr.arpa.	IN	NS	terminator.movie.edu.
253.253.192.in-addr.arpa.	IN	NS	wormhole.movie.edu.

;
; 정규(canonical) 네임에 대한 주소들
;
1.253.253.192.in-addr.arpa.	IN	PTR	wormhole.movie.edu.
2.253.253.192.in-addr.arpa.	IN	PTR	misery.movie.edu.
3.253.253.192.in-addr.arpa.	IN	PTR	shining.movie.edu.
4.253.253.192.in-addr.arpa.	IN	PTR	carrie.movie.edu.

  • 루프백 주소
    db.127.0.0 파일
  • 루트 캐시 데이터
    db.cache(db.root) 파일

4.3. BIND 환경 설정 파일 셋업

/etc/named.conf
(db 파일들은 /usr/local/named에 존재한다고 가정)
~cpp 
// BIND 환경 설정 파일
options {
	directory "/usr/local/named";
	// 기타 옵션들을 여기에 적는다.
};

zone "movie.edu" in {
	type master;
	file "db.movie";
};

zone "249.249.192.in-addr.arpa" in {
	type master;
	file "db.192.249.249";
}

zone "253.253.192.in-addr.arpa" in {
	type master;
	file "db.192.253.253";
}

zone "0.0.127.in-addr.arpa" in {
	type master;
	file "db.127.0.0";
}

zone "." in {
	type hint;
	file "db.cache";
}

4.4. 축약어

  • 도메인 자동 확장
    robocop IN A 192.249.249.2
    =>robocop.movie.edu. IN A 192.249.249.2
    2 IN PTR robocop.movie.edu.
    =>2.249.249.192.in-addr.arpa. IN PTR robocop.movie.edu.

  • @ 기호
    @ => 도메인 네임의 기원

  • 마지막 이름 반복
    wormhole IN A 192.249.249.1
    IN A 192.253.253.1

  • 짧게 작성한 db 파일

~cpp 
;
; movie.edu: 점으로 끝나지 않는 이름은 기원이 추가됨
;
@	IN	SOA	terminator.movie.edu. al.robocop.movie.edu. (
				     1		; Serial
				 10800		; Refresh
				  3600		; Retry
				604800		; Expire
				 86400 )	; Negative Cache TTL
;
; 네임 서버들 ('@'가 내포되어 있음)
;
		IN	NS	terminator.movie.edu.
		IN	NS	wormhole.movie.edu.

;
; 정규(canonical) 네임에 대한 주소들
;
localhost	IN	A	127.0.0.1
robocop		IN	A	192.249.249.2
terminator	IN	A	192.249.249.3
diehard		IN	A	192.249.249.4
misery		IN	A	192.253.253.2
shining		IN	A	192.253.253.3
carrie		IN	A	192.253.253.4
wormhole	IN	A	192.249.249.1
		IN	A	192.253.253.1

;
; 별명들
;
bigt		IN	CNAME 	terminator
dh		IN	CNAME 	diehard
wh		IN	CNAME 	wormhole

;
; 인터페이스를 위한 특정한 이름들
;
wh249		IN	A	192.249.249.1
wh253		IN	A	192.253.253.1

db.192.249.249
~cpp 
;
; 249.249.192.in-addr.arpa: 점으로 끝나지 않는 이름은 기원이 추가됨
;
@	IN	SOA	terminator.movie.edu. al.robocop.movie.edu. (
				     1		; Serial
				 10800		; Refresh
				  3600		; Retry
				604800		; Expire
				 86400 )	; Negative Cache TTL
;
; 네임 서버들 ('@'가 내포되어 있음)
;
	IN	NS	terminator.movie.edu.
	IN	NS	wormhole.movie.edu.

;
; 정규(canonical) 네임에 대한 주소들
;
1	IN	PTR	wormhole.movie.edu.
2	IN	PTR	robocop.movie.edu.
3	IN	PTR	terminator.movie.edu.
4	IN	PTR	diehard.movie.edu.

db.192.253.253
~cpp 
;
; 253.253.192.in-addr.arpa: 점으로 끝나지 않는 이름은 기원이 추가됨
;
@	IN	SOA	terminator.movie.edu. al.robocop.movie.edu. (
				     1		; Serial
				 10800		; Refresh
				  3600		; Retry
				604800		; Expire
				 86400 )	; Negative Cache TTL
;
; 네임 서버들 ('@'가 내포되어 있음)
;
	IN	NS	terminator.movie.edu.
	IN	NS	wormhole.movie.edu.

;
; 정규(canonical) 네임에 대한 주소들
;
1	IN	PTR	wormhole.movie.edu.
2	IN	PTR	misery.movie.edu.
3	IN	PTR	shining.movie.edu.
4	IN	PTR	carrie.movie.edu.

4.5. 호스트 네임 검사

4.6. 유용한 도구

4.7. 주 마스터 네임 서버 운영하기

  • 네임 서버 실행
    /etc/named
    /etc/named -b conf-file (다른곳에 있는 환경설정파일 이용할때)

  • Syslog 에러 검사
    grep daemon /etc/syslog.conf (syslog 메시지가 기록되는 파일을 알아냄, 여기선 /var/adm/messages)
    grep named /var/adm/messages
  • nslookup으로 검사
    • 기본 도메인 네임 초기화
      /etc/resolv.conf 파일에 domain movie.edu 라인 추가
    • 로컬 네임 탐색
      nslookup carrie
    • 로컬 주소 탐색
      nslookup 192.253.253.4
    • 원격 네임 탐색
      nslookup ftp.uu.net.
    • 추가 테스트
      nslookup carrie gatekeeper.dec.com
    • 시동 파일 편집

4.8. 슬레이브 네임 서버 운영하기

4.9. 다른 도메인 추가

4.10. 이후의 내용들


와우~ 수고하십니다. 이후에 유용한 자료가 될듯.. ^^ - 임인택
그냥 필요한거 일부분만 정리했구요. DNS개념이나 고급적인 부분은 직접 책을 보시는게 좋을거에요 ^^ --곽세환

Retrieved from http://wiki.zeropage.org/wiki.php/DNS와BIND
last modified 2021-02-07 05:23:04