본문 바로가기

OS,Network,Container

CentOS7 DNS 서버 구축 #1 - Name Server 개념, 원리

반응형

CentOS7 DNS 서버 구축 1편 - 개념, 원리

 

 

DNS(Domain Name Service)

도메인 네임을 IP 주소로 변환해주거나 IP주소를 도메인 이름으로 변환해주는 서비스이다.

 

웹서버에 접속하기 위해서는 IP주소로 접속해야만 하며, 사실 우리가 평소에 쓰는 영어로 된 Domain Name으로는 접속을 할 수 없다. 하지만 우리가 일일이 숫자로 된 ip주소보단 영어로 된 domain name을 외우기 쉽기 때문에 domain name에 따른 ip주소의 정보를 가지고 있다가 Query가 들어오면 ip주소를 알려주는 것이 DNS 서버이다.

 

DNS Query

위 그림을 보면 어떻게 DNS Query가 이루어지는지 쉽게 확인할 수 있다.

 

 

초기 단계

  1. 클라이언트가 'www.example.com' 이란 도메인 주소로 접속하고자 한다.

  2. DNS Resolver로 도메인 주소를 전달. ( 자신의 DNS Cache와 Host file을 조회 후 없으면 DNS 서버로 Query를 시작)

 

DNS Query

  1. Root Name Server로 'www.example.com'에 대한 질의를 보낸다.

  2. Root Name Server는 질의를 받으면 '.com'의 Name Server 위치를 알려준다.
    .com Name Server는 'example.com'의 Name Server 위치를 알려준다. ( Amazon Route 53 name server로 가시오. )

  3. Route 53 Name server는 질의를 받으면 'www.example.com'에 대한 IP주소 192.0.2.44를 알려주며 응답한다.
  4. IP주소를 받은 DNS Resolver는 Client에게 통보한다.

최종 단계

  1. Client는 알게 된 IP주소(192.0.2.44)를 통해 해당 Web Server으로 접속한다.

( URL에 192.0.2.44를 치면 도메인주소와 같은 결과값이 나온다. 고로, Domain Name을 사용하여 인터넷 접속을 하려면 도메인 서버와 연결이 되어있어야 한다. )

 

 

 

 

 


[ 서버 구축 환경 ]

 

DNS Server 구축은 타 Server 구축보다 이해하기 어려우므로 집중해서 봐주길 바랍니다.

개념에서 이해를 잘 하고 넘어가야 실습이 수월합니다.

만약, 원리나 개념을 알고 있으신 분들은 Skip해주셔도 됩니다.

 

 

 

 

본인 컴퓨터의 실습 환경 + DNS 이해를 위한 그림

 

[root@localhost ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 8.8.8.8

 

 

현재 설정된 Name Server 8.8.8.8로 구글 공인 Name Server이다.

 

Client가 URL창에 ww.yahoo.com 이라고 침 -> 1번 (Google Name Server에게 요청) -> 2번 (Root Name Server 질의) -> 3번 -> 4번 -> 5번 (ww.yahoo.com의 Zone 파일 내에 저장되어 있는 ip 주소 (66.218.71.80)을 Google Name Server에게 알려줌 -> Client에게 알려줌 -> 받은 IP 주소로 Web Server 접속

 

 

 

 

 

[ Domain Name Server 종류 및 역할 ]

 

- Master 서버 : Zone 형태의 DB File 유지

- Slave 서버   : Master 서버 이상 시 운영

- Caching 전용 서버 : Zone 파일이 없어 중간 역할만을 수행한다. [ 도메인 -> IP 역할만 가능 ]

 

 


본격적으로 DNS Server 구축에 대한 설명을 해보겠다.

우선적으로 DNS Server는 1개만 존재해도 무방하지만 백업 목적으로 Master 서버와 N개의 Slave 서버를 두곤 한다. Master 서버는 Primary Server (주 서버)로써 평상시에 작동하는 서버를 말하며 만약 Master Server가 고장이 났을 시를 대비하여 Secondary Server(보조 서버)로써 Slave Server를 두게 된다.

통상적으로 Slave Server는 Master 서버와 다른 네트워크에 구성한다.

( Slave 서버는 있어도 되고, 없어도 되며 갯수에 제한은 없다.)

 

 

목표

 

1. 가상머신 내 서버인 192.168.5.3 DNS Server로 구축한다. 도메인 이름은 'testdns.com'으로 만들어 줄 것이다.

( testdns.com 이란 도메인 이름은 원래 존재하지 않는다. 그래서 새로운 DNS Server를 구축하여 URL 창에 testdns.com을 치면 해당 서버의 Zone을 참고하여 도메인 이름을 ip주소로 변환시켜줄 수 있는 서버를 구축할 예정 )

 

2. 캐싱 전용 서버는 따로 구축하지 않고, Master 서버가 그 역할을 수행할 수 있도록 설정을 해 볼 예정임

 

 

[ 서버 생성 순서 ] 

 

크게 봤을 때 8가지 순서로 서버 구축이 이루어진다.

 

[0] Bind, Bind-utils 설치

[1] /etc/named.conf

[2] /etc/named.rfc1912.zones

[3] /var/named/[Forward Zone Conf File]

[4] /var/named/[Reverse Zone Conf File]

[5] Conf File 문법 오류 체크

-- named-checkconf /etc/named.conf

-- named-checkzone testdns.com /var/named/testdns.com.zone

[6] DNS Firewall Port Open

[7] Named Daemon Restart, Enable

 

 

 

[ 정방향과 역방향 ]

 

-- 포워드 존은 정방향 ( 도메인 이름 -> IP )

 

-- 리버스 존은 역방향 ( IP -> 도메인 이름 )

 

Reverse Zone File은 Forward Zone File과 반대로 IP 주소를 도메인 이름으로 변경하는 역할

메일 서비스 이용하거나 ip가 사용중인지 아닌지 확인할 때 보통 이용.

 

공유기를 통해 개인망 IP주소를 부여 받아  사용하는 서버는 Reverse zone을 설정할 필요가 없다.

그래도 Reverse Zone File 설정하는 방법에 대해서는 알아야 한다.

 

Reverse Zone 파일은 PTR 레코드를 제외하고 Forward Zone 파일 설정 방법과 대부분 동일.

 

 

반응형