서버관리자가 DNS와 BIND에 대해 공부한 내용 ---- 책 - DNS와 BIND, Paul Albitz & Cricket Liu, 이성희 역, 한빛미디어 || [[TableOfContents]] || = 1. 기본 지식 = = 2. DNS는 어떻게 동작하는가? = = 3. 시작하기 = = 4. BIND 셋업하기 = == 이용할 도메인 == {{{~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 }}} == 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) 파일 == 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"; } }}} == 축약어 == * 도메인 자동 확장 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. }}} == 호스트 네임 검사 == == 유용한 도구 == == 주 마스터 네임 서버 운영하기 == * 네임 서버 실행 /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 * 시동 파일 편집 == 슬레이브 네임 서버 운영하기 == == 다른 도메인 추가 == == 이후의 내용들 == ---- 와우~ 수고하십니다. 이후에 유용한 자료가 될듯.. ^^ - [임인택] 그냥 필요한거 일부분만 정리했구요. DNS개념이나 고급적인 부분은 직접 책을 보시는게 좋을거에요 ^^ --[곽세환] ---- [책분류] [프로젝트분류]