본문 바로가기

Tip&Tech/Server

[팁] MissFlash의 리눅스 유용 단축키, 명령어 모음(14) - 리눅스 DNS 관리

* 본 게시물은 MissFlash가 "CentOS 리눅스 구축관리실무"를 참고로 유용한 단축키 및 명령어를 정리한 것입니다.
* 게시물이 지속적으로 업데이트 될 예정이니, 퍼가기 보다는 링크나 트랙백을 이용해 주세요 :)

* DNS(Domain Name Server)의 경우 서버 자체에서 관리하는 것보다 DNSEver와 같은 온라인 관리 서비스를 이용하는 것이 좋다고 생각합니다. 이렇게 할 경우, 서버에 문제가 생겼을 때 해당 도메인을 다른 곳으로 연결할 수 있을 뿐만 아니라 DNS를 쉽고 간편하게 관리할 수 있기 때문입니다.
참고링크 : http://blog.missflash.com/73



* MissFlash의 리눅스 유용 명령어 목록
  • 도메인 관리 파일 : /etc/hosts
  • hosts에 지정되지 않은 도메인 관리 파일 : /etc/resolv.conf
  • 네임서버 설치여부 확인 : rpm -qa | grep bind[각주:1]
  • 네임서버 설치 사이트 : http://www.isc.org
  • 네임서버에 질의하여 호스트의 IP를 확인하는 방법
    • host [찾고자 하는 호스트명] (사용예 : host http://blog.missflash.com)
    • dig [찾고자 하는 호스트명]
    • nslookup [찾고자 하는 호스트명] [질의할 네임서버]
  • nslookup, 네임서버 변경 후 검색 : (> 프롬프트 상에서)server [네임서버 도메인 혹은 IP]
  • nslookup, 검색 레코드 변경 : (> 프롬프트 상에서)set type=[레코드 타입][각주:2]

  • CentOS 4.4 버전의 네임서버 설정파일 : /etc/named.conf
  • CentOS 5.X 버전의 네임서버 설정파일 : /etc/named.caching-nameserver.conf
    • listen-on port 53 { 127.0.0.1; }; : 네임서버의 포트번호와 접근가능한 IP 설정 지시자(외부 접근 가능하게 설정시 any;를 입력)
    • listen-on-v6 port 53 { ::1; }; : ipv6에서의 네임서버 설정
    • directory "/var/named"; : DNS zone파일의 위치 설정
    • dump-file "/var/named/data/cache_dump.db"; : 캐시 덤프 파일 생성 위치 설정
    • statistics-file "/var/named/data/named_stats.txt"; : 통계파일 경로 및 이름 설정
    • memstatistics-file "/var/named/data/named_mem_stats.txt"; : 메모리 통계파일 경로 및 이름 설정
    • query-source port 53; : 네임서버 쿼리를 받아들일 소스포트 설정
    • query-source-v6 port 53; : ipv6에서의 소스포트 설정
    • allow-query { localhost; }; : 네임서버 쿼리를 허용할 IP혹은 IP대역 설정(외부 접근 가능하게 설정시 any;를 입력)
    • logging { }; : 로그파일 생성 위치 설정
    • match-clients { localhost; };, match-destinations { localhost; }; : 로컬 리졸버 사용을 허용할 클라이언트 설정
    • recursion no; : 외부에서 현재의 네임서버를 사용할 수 있는지 여부 설정(네임서버 보안을 위해 no;로 설정할 것을 추천)

  • /etc/named.rfc1912.zones 설정(named.caching-nameserver.conf에 다음과 같이 include됨 : include "/etc/named.rfc1912.zones";)
    • zone ".[각주:3]" IN { type hint[각주:4]; file "named.ca[각주:5]"; }; : 설정예
    • named.ca : 최상위 도메인에 대한 관리권한을 가진 13개의 네임서버 정보 기록
    • 루트 도메인에 대한 정의 파일 : ftp://ftp.internic.net/domain/

  • zone 파일의 오류 확인 : named-checkconf [도메인명] [zone파일 절대경로]
    • named-checkconf /etc/named.rfc 1912.zones

  • zone 파일 작성법
    • $TTL 86400 : Time To Live의 약자로 설정한 해당 도메인 정보를 네임서버에 얼마동안 보관할 것인지 설정[각주:6]
    • @ : Origin, 즉 public domain을 의미(@ = missflash.com.[각주:7])
    • IN : IN 다음에 나오는 설정을 사용하겠다는 의미
    • SOA : Start Of Authority의 약자로 해당 도메인의 DNS 정보를 기록
    • IN NS ns.missflash.com : 실제 네임서버의 도메인 할당 작업([도메인[각주:8]][탭[각주:9]][IN][탭][레코드명][공백,탭][우선순위숫자][탭][도메인,IP])
    • www=www.missflash.com. : 서브 도메인 입력([공백]=@=missflash.com.)

  • 레코드 종류
 레코드 설 명
NS 도메인의 네임 서버
MX 도메인의 Mail Exchanger 서버[각주:10] (IN MX 10 mail.missflash.com.)
A 호스트의 실제 IP 주소
CNAME 별칭으로 부여된 Canonical Name (mail IN CNAME www[각주:11])
SOA 도메인의 Start Of Authority
HINFO 호스트의 CPU 및 운영체제 정보
MINFO 메일박스와 메일리스트 정보
PTR IP주소에 대한 호스트명
TXT 호스트에 대한 텍스트 정보
UINFO 사용자 정보
ANY 호스트에 관련된 모든 레코드들의 정보

  • 하나의 도메인에 여러 서버 IP 지정(라운드로빈 방식) : www IN A 125.137.5.162, www IN A 125.137.5.163, www IN A 125.137.5.164[각주:12]
  • 라운드로빈 방식을 위한 웹서버 파일 동기 : rsync 프로그램 이용



DNSEver라는 좋은 서비스가 있음에도 불구하고 DNS설정에 대한 정리를 한 것은 역시 기본은 필요하기 때문이겠지요... DNSEver가 영원히 무료로, 문제없이 이용가능하다면... 그다지 쓸 일이 없을 것 같지만...
  1. DNS 프로토콜을 구현한 BIND(Berkeley Internet Name Domain)은 DNS 서버, Resolver 라이브러리, DNS 서버 작동 확인을 위한 도구 등이 포함되어 있습니다. [본문으로]
  2. NS, MX, ANY 등의 레코드 타입이 입력 가능합니다. [본문으로]
  3. .은 루트 도메인을 의미합니다. [본문으로]
  4. set type에서 hint라고 설정하면 루트 도메인을 지정합니다. [본문으로]
  5. 루트 도메인의 내용이 named.ca 파일에 정의되어 있다는 의미입니다. [본문으로]
  6. 86400초는 24시간을 의미하며, 서브 도메인에도 각각 설정할 수 있습니다. [본문으로]
  7. .은 루트 도메인을 의미합니다. [본문으로]
  8. 생략시 최초에 설정한 도메인( missflash.com)으로 인식하며, 직접 입력시 마지막에 .을 입력해야 합니다. [본문으로]
  9. 공백대신 탭을 입력합니다. [본문으로]
  10. 여러 개의 메일서버 운용시 우선순위 번호를 지정해 메일을 수신할 수 있습니다. [본문으로]
  11. mail.missflash.com IP 설정을 www와 동일하게 합니다. [본문으로]
  12. 이를 통해, 클라이언트 트래픽을 분산할 수 있습니다. [본문으로]