어제에 이어서  DNS서버 구축을 마무리 해보겠다.

도메인 설정

 설정 도메인 : 100.A.localdomain.com  (내가 해야할 DNS  서버 이름)

 

 

(vi 편집기를 이용해 복사한 zone 파일을 연다.)

 

 

복사된 샘플 zone 파일이다.

 

(복사된 샘플 zone 파일)

 

 

레코드(항목)
  - SOA ( Start Of Authority ) 도메인에대한 권한을 가지고 있는 것
  - NS ( Name Server ) : Name 서버에 대한 주소
  - A  (Address) : 주소.

 - IN   ( Internet 클래스 )
 TTL : 조회해간 IP주소를 얼마동안 참조할 것인가. 1D 는 하루동안 참조한다는 뜻이다.
 @ : 대체문자  나의 경우 100.A.localdomain.com 파일이름을 대신 적어주는 것이다.
      도메인 이름으로 주소를 적는다면 100.A.localdomain.com.  이렇게 마지막에 점을 찍어줘야한다.
      도메인 이름이 끝난다는 표시이다. 반드시 찍어줘야한다.
 
 serial : 도메인 네임에 대한 식별자. 보통은 날짜를 적어주는 것이 일반적이다. 
 refresh : TTL과 같다.
 expire : 파기시간
 minumum : 최소시간

 

 

 

(설정)

 

 

나는 이렇게 설정하였다.
DNS 서버 이름은 100.A.localdomain.com 이고
내가 가지고 있을 win 호스트의 주소를 적어주었다.

 

 

(파일 권한 보기)

 

 

DNS  서버를 실행시키기 전에 파일 권한을 확인해보았다.

읽기 권한이 없으면 zone파일에서 읽어서 주소를 알려줘야하는데
못알려주기 때문이다.
위 화면처럼 확인해보니 root 권한만 존재했다.

파일의 권한 설정을 해주었다.

 

 

(파일 권한 설정)

 

 

권한부여까지 끝났으면
DNS 서버를 실행시켜준다.

 

 

 

(DNS 서버 실행)

 

 

 

실행 화면을 확인해보겠다.

현재. 내 DNS 주소와 win 호스트 하나의 주소밖에 입력되지 않았다.

 

 

 

(nslookup 으로 확인해보는 화면)

 

 

 

확인해본결과 도메인 네임에 대한 주소를 잘 알려주고 있다.

 

 

(호스트 추가한 모습)

 

 

 

나 이외에 다른 호스트들도 추가한 모습이다.

 

 

 

(다른 도메인 네임의 영역까지 주소가 잘 전달되는 모습)

 

 

 

나는 A 도메인 안의 100이라는 DNS 서버를 만들었고
전체적으로 localdomain이라는 DNS 서버로 묶여져있었다.

마지막까지 잘 동작하는 것을 확인한 모습이다.

오늘은 DNS에 관해 알아볼 것이다.

* DNS ( Domain Name System )
 - 문자 주소 사용을 가능하게 해주는 서비스이다.
 Domain Name (문자주소)란?
 ex) www.naver.com 이런 형태의 주소이다.

이 주소로는 통신을 할 수 없다. 실제로 통신하는 것은 IP주소로 통신하기 때문이다.
우리가 편하게 쓰려면 우리가 알아보기 쉬운 문자주소를 IP주소로 바꾸어주는
서비스가 필요하다. 바로 이 서비스가 DNS 이다.


도메인이란 영역을 묵어주는 것이다.

국가 Domain ( .kr  ,  .jp   ,   .de   ,   .be  ...  )
국제 Domain  (  .com   ,   .net   ,   .org   ,  ... ) -> 나라와 상관없이
교육 Domain ( .edu ... )
미국 Domain  ( .gov  )

Root DNS  -> 최상위 DNS 서버 총 세계에 약 7~8대 정도 모든 도메인을 관리한다.

Domain 이름에 대한 정보를 가지고 있는 서버 DNS 서버

- 트리구조의 계층 구조다.

DNS 역할
-> 이름 주소를 주면 IP 주소를 알려준다.
ex) www.naver.com 주소를 물어볼때의 동작
1. Root DNS 에 먼저 물어본다.  ( .com ) 의 DNS서버 주소를 물어본다.
2. .com  DNS에 .naver 의 DNS 서버 주소를 물어본다.
3. .naver DNS에 www의 주소를 물어본다.
-> 역질의구조  (위에서부터 물어보면서 내려온다.)
(지금은 이렇게 동작하지 않는다.)
-> 이렇게 하면 시간이 너무 오래걸린다.


그렇기 때문에!
DNS 캐시 서버를 둔다.

* DNS cache Server
(우리는 이 캐시서버를 사용하고 있는 것이다.)
클라이언트는 제일 먼저 캐시서버에게 Domain Name 주소를 물어본다.
캐싱 : 적어둔다. 적어둔 내용을 일정 시간동안 보관한다.
다른사람이 같은 주소를 물어보면 보관된 내용을 돌려준다.
역질의는 캐시서버가 따로한다.
우리는 캐시서버와만 통신을 해서 주소를 받아온다.
ex) DNS 캐시서버
163.126.63.1
8.8.8.8


이제 우리가 직접 DNS 서버를 구축해볼 것이다.

리눅스에서 DNS 서버를 구축하기위해
bind를 설치해서 이용할 것이다.


(설치 완료모습)



bind를 설치하였다.

먼저 DNS 캐시서버를 만들어보겠다.

이 과정은 간단하다.
설정만하고 실행시켜주면 되기 때문이다.

설정해야하는 파일은
/etc/named.conf 파일이다.
vi 편집기를 이용해 /etc/named.conf파일을 열어준다.




(/etc/named.conf 수정)




(/etc/named.conf 수정)



빨간색 표시 부분을 any로 고친다. 저 부분은 모든 호스트들에게 DNS를 해주겠다는 것이다.
접근 리스트이다.

그리고 DNS서버를 실행시켜준다.




(DNS 서버 실행)



netstat로 확인해보니
tcp, udp 모두 53번 포트가 열려있는 것을 확인 할 수 있다.

이유는
DNS는 53번 포트를 사용하기 때문이다.

그렇다면 이제 캐시서버 설정은 끝이다.
과연 잘 돌아갈지 직접 DNS 서버를 내가 만든 서버로 지정해보았다.



(DNS 서버 지정)





(인터넷 화면)



인터넷이 잘 되는 모습이다.
내가 만든 DNS 캐시 서버가 잘 동작하고 있음을 알 수 있다.

DNS가 잘 동작하는지 직접 인터넷으로 확인해보는 방법도 있지만
다른 도구도 있다.
nslookup 이다.

윈도우의 cmd 창에서 nslookup을 사용하여 보았다.



(nslookup 사용 화면)



nslookup은 리눅스에서도 마찬가지로 똑같이 사용할 수 있다.




(리눅스 nslookup)



캐시 서버가 잘 동작하는 것을 nslookup을 이용해서까지 확인했다.

이제 실제로 DNS 서버를 구축해보겠다.
실제 Domain Name을 사는 것은 돈이 드니
간단하게 사설망에서 임의로 만들어보겠다.

먼저 DNS 서버를 안정적으로 돌리기 위해 IP 주소를 정적으로 바꾸어주었다.



(IP 설정)



그 후 /etc/named.rfc1912.zones 파일을 수정해주어야한다.

만들어볼 DNS 서버는
최상위 DNS -> " localdomain.com "가 있고 그 아래로 A, B, C, D 가있다.
또 그 아래로 다른 DNS 서버들이 있는 형태이다.
A - 100
   -  88
   - 12

나는 A 도메인에 속해있는 100번의 DNS 서버를 구축해 볼것이다.
정리하면
100.A.localdomain.com 의 주소를 가지는 DNS 서버를 만들 것이다.

먼저 vi 편집기를 이용해 /etc/named.rfc1912.zones를 추가해줘야한다.




(/etc/named.rfc1912.zones 화면)




(/etc/named.rfc1912.zones 화면)



여기 아래에 우리가 설정한 DNS 이름을 추가할 것이다.




(/etc/named.rfc1912.zones 추가 모습)



내가 관리하려는 100 DNS 아래 win 의 주소는 여기에 적지 않고 다른 곳에 적어주어야한다.
여기는
내가 만드려는 DNS 서버의 이름을 적어주는 것이다.

자 설정이 잘 적용됬는지 확인해 본다.
명령어 named-checkconf 를 이용해서 파일이 오류가 없는지 체크해본다.




(체크 화면)



아무것도 뜨지 않으면 오류가 없는 것이다.

우리가 관리할 win의 주소를 설정해 보겠다.

아래의 화면처럼 이동해준다.



(이동)



위 화면을 보면 우리가 적어야할 설정 파일이 보인다.
우리는 저 파일의 형식으로 써야하므로
저 파일을 복사해서 사용하겠다.



(우리가 수정해야할 복사본 파일)



복사 까지 했다면
이제 우리가 관리할 DNS 서버의 정보들을 적어주면 된다.
내일 이어서 DNS 서버를 만들어 보겠다.
:)


+ Recent posts