본문 바로가기

네트워크 서버 구축 실무

네임서버 설치와 운영

- 네임서버의 개요

 

- www.nate.com을 IP 주소로 변환하는 과정을 이름해석(name resolution)이라고 한다.

 

- 네트워크에서 컴퓨터를 구분하는 유일한 방법은 IP주소다. 즉, 인터넷에 연결된 ㅇ모든 컴퓨터는 중복되지 않는 IP주소를 가지고 있다.

 

 

- 트리 구조 형태의 도메인 이름 체계

 

[참조] http://webdir.tistory.com/161

  • ROOT(.) 네임서버 : com 네임서버, net 네임서버, org 네임서버, edu 네임서버와 국가도메인인 kr, fr, sp 등을 관리
  • 1단계 네임서버 : 자신의 하위 네임서버를 관리, 예를 들어 com 네임서버는 nate, google, naver 등 2단계 도메인을 관리하는 네임서버들만 관리하면 된다.

 

- hosts 파일이란?

  • 웹 브라우저에 URL 주소를 입력하면 가장 먼저 자신의 hosts 파일에서 해당 URL에 대응하는 IP주소가 있는지 확인한다. hosts 파일에 설정하는 방법은 다음과 같다.

ex) 192.168.10.111    www.nate.com 

 

 

- hosts 파일 위치

  • 윈도우 : C:\Windows\system32\drivers\etc\hosts
  • 리눅스 : /etc/hosts

 

- /etc/host.conf 파일과 /etc/resolv.conf 파일의 의미

 

host.conf 파일에는 URL 입력 시 IP주소를 얻기 위해 무엇을 먼저 확인할 것인지 결정되어 있다. 기본적으로는 'order hosts,bind' 라고 입력됐거나, 생략됐으면 먼저 /etc/hosts 파일을 찾아본다. /etc/hosts 파일에도 관련 정보가 없다면 bind(DNS 클라이언트, 즉 /etc/resolv.conf 에 설정된 네임 서버에 질의하라는 의미)를 이용한다. 만약 네임서버에 먼저 질의하고, 없을 경우 /etc/hosts 파일을 확인하고 싶으면 "order bind,hosts"로 변경한다. 또 'multi on' /etc/hosts 파일에 여러 개의 URL을 사용할 수 있다는 의미다.

 

 

- DNS 질의 명령어

 

- nslookup 명령어

  • 도메인 이름과 IP주소를 확인하는 기능을 가진 네트워크 관리 툴

 

- dig 명령어

  • domain information groper 의 약자
  • DNS 네임서버에 쿼리를 날리기 위한 툴
  • dig 사용시 name server 를 명시하지 않으면 /etc/resolv.conf 파일에 명시된 리스트로 쿼리를 보낸다.

  → dig 명령어 형식

dig @[SERVER] [NAME] [TYPE]

dig @네임서버IP 조회할URL

 

[SERVER] : 네임서버의 아이피 또는 도메인을 명시한다.

[NAME] : 도메인을 명시한다.

[TYPE] : ANY, A, MX, SIG, 기타... 를 명시한다. TYPE을 생략하는 경우 기본적으로 A레코드를 출력한다.

 

ex) dig @168.126.63.1 domain.net ANY

 

TYPE의 종류

A : 네트워크 주소를 의미

ANY : 지정한 도메인의 모든 정보를 의미

MX : 지정한 도메인의 메일서버 정보를 의미

NS : 네임서버를 의미

SOA : 권한의 시작을 의미

HINFO : HINFO 레코드에 대한 정보를 의미

 

 

- 네임서버의 종류

 

- 캐싱전용네임서버(로컬네임서버)

 

리눅스에는 각자 사용하는 네임서버가 /etc/resolv.conf 파일에 'nameserver IP주소' 형식으로 설정된다. 즉, PC에서 URL로 IP주소를 얻고자 할 때 해당하는 URL의 IP주소를 알려주는 네임서버로써 로컬네임서버라고 지칭한 컴퓨터가 캐싱전용네임서버의 역할을 수행한다고 보면된다. 

 

- 마스터네임서버

 

john.com 과 같은 도메인에 속해 있는 컴퓨터들의 이름을 관리하고 외부에서 www.john.com 이나 ftp.john.com 등의 컴퓨터 IP 주소를 알기 원할 때 해당 컴퓨터의 IP주소를 알려주는 네임서버로 자신이 직접 www (웹서버), ftp(파일전송서버) 등을 서비스하는 네임서버

 

 

- 네임서버 설정파일(named.conf)과 포워드 존파일

 

/etc/named.conf : 네임서버의 설정파일로써 네임서버 시작될 때 제일 먼저 읽어들이는 파일

 

options {

listen-on port 53 { any; }    → 네임서버에 접속이 허용된 컴퓨터 IP주소

directory "디렉터리이름" ;  네임서버 DB 파일이 들어 있는 디렉터리

dump-file "덤프파일이름" ; 정보가 갱신될 때 저장되는 파일

statistics-file "통계파일이름" ; 통계 처리 용도의 파일

allow-query { 컴퓨터; } 도메인이름의 쿼리가 허용된 컴퓨터 또는 IP주소

};

 

zone "도메인이름" IN {

type hint 또는 master 또는 slave; 마스터 네임 서버는 master

file "파일이름" ; options의directory에 생성될 도메인이름의 상세 설정파일

allow-update { IP주소 } 또는 { none } ; 2차 네임서버의 주소. 생략하면 none으로 됨

};

 

 

포워드 존 파일의 문법 이해하기

  • ; (세미콜론) : 주석을 의미한다.
  • $TTL : Time To Live의 약자로 www.john.com 의 호스트 이름을 질의해갔을 때 질의해간 다른 네임서버가 해당 IP주소를 캐시에 저장하는 시간. 3H는 3시간(Hour)을 의미한다.
  • @ : /etc/named.conf 에 정의된 john.com을 의미(john.com으로 고쳐 써도 됨)한다.
  • IN : 클래스 이름으로 internet을 의미한다.
  • SOA : Start Of Authority 약자로 권한의 시작을 뜻한다. 또, 괄호 안의 숫자는 시간을 의미하는데 다음과 같다. serial(버전정보), refresh(상위 네임 서버에 업데이트된 정보를 요청하는 간격), retry(상위 네임 서버에 문제가 발생했을 때  재 접속 간격), expire(상위 네임 서버에 접속하지 못할 경우 이전의 정보를 파기하는 간격), minimum(이 시간 이후에 정보가 삭제됨)을 말한다. 여기서 H는 Hour, D는 Day, W는 Week의 약자다.
  • NS : Name Server의 약자로 설정된 도메인의 네임 서버 역할을 하는 컴퓨터를 지정한다.
  • MX : Mail Exchanger 의 약자로 메일 서버 컴퓨터를 설정한다.
  • A : 호스트 이름에 상응하는 IP주소를 지정한다.
  • CNAME : 호스트 이름에 별칭을 부여할 때 사용한다.

포워드 존 파일 설정 예

$TTL        3H

@            SOA    @        root.    (    2    1D    1H    1W    1H    )

IN         NS               @    

IN         A                 192.168.111.100

 

ftp               IN         A                 192.168.111.200

www                      CNAME         webserver.john.com.

webserver   100        IN                61.111.13.51

      200        IN                119.205.194.11

      300        IN                211.234.241.141

 

 

포워드 존 파일 설정 예에서 붉은색 부분은 웹서버에 별칭을 부여함으로써 라운드로빈방식으로 구현하고 있다.

 

라운드로빈 : 여러대의 웹 서버를 통해 웹 서버의 부하를 분산시키는 방법