본문 바로가기
Linux

DNS Server

by shinebee* 2020. 6. 1.

DNS 서버

- IP <-> Domain Name

- Domain Name : www.google.com  -> DNS Server -> IP 알려줌

- 도메인 주소가 너무 많다.

- 검색하는데 시간이 너무 오래 걸린다. 

   -> 계층화를 통한 분산 시스템을 만들어 준다.

 

      <www.google.com>

      - root servers

       .com  |  .com's IP

       .org    |  .org's IP

 

       .com  |  nsname.com  |  NS  |  3500

       nsname.com  |  101.5.5.3  |  A  |  3500

 

      -TLD

       nsname.com

       google.com   |  dn1.google.com  |  NS  |  3500

       dns1.google.com   |  8.8.8.8  |  A  |  350000

 

       amazon.com  |  dn1.amazon.com  |  NS  |  3220

       amazon.com  |  9.9.9.9  |  A  | 3220

 

      - auth DNS

        dn1.google.com

        maps  | 8.8.8.10

        www   |  8.8.8.15

        mail    |  8.8.8.100


local DNS 서버를 만들어 놓고 운영한다.

 - DNS Query를 저장해 놓고 host들이 질의하면 대신 답변해 준다.

 - TTL 필드가 존재해서 최신 상태를 유지하게 해준다.


DNS 레코드

                              v  

 NAME  VALUE  TYPE  TTL

 

- A type : 특정 호스트의 주소 (ipv4, ipv6->AAAA)

  www.google.com  |  111.111.11.11  |  A  |  1250

  server1.google.com  |  111.111.11.15  |  A  |  1250

  mail.google.com  |  111.111.11.17  |  A  |  1250

  google.com  |  111.111.20.230  |  A  |  1250

 

- NS type : 도메인의 네임 서버 정보

  .com  |  nsname.com  |  NS  |  3500

  .net  |  nsname-net.com  |  NS  |  3500

 

- CNAME type (별칭) : 호스트의 별칭(Alias) 정보

  www.google.com  | server1.google.com |  CNAME  | 30

  www.google.com   | server2.google.com |  CNAME  | 30 

 

- MX : 메일교환기에 대한 정보

- PTR : 도메인 이름에 대한 포인터

- SOA : 영역의 권한 시작 정보 (Start of Authority)

- TXT : 다양한 정보를 포함할 수 있는 텍스트 문자열


//host 명령어 실습 (KVM)

yum install bind-utils  // 필요한 패키지 설치
host google.com
host -v google.com  // -v : 상세한 정보 표시
host -t a google.com  // -t : 조회할 테코드의 타입을 지정
host -t cname google.com
host -t ns google.com
host -a google.com  // -a : all
host ns4.google.com 8.8.8.8

//DNS 서버 구성 (KVM)

yum update -y
yum install bind* -y
systemctl status named.service
vi /etc/named.conf	
	listen-on port 53 { any; };
	listen-on-v6 port 53 { none; };
	allow-query  { any; };

setenforce 0
getenforce 
 -> permissive 확인
firewall-cmd --add-service=dns --permanent  // dns 서비스를 영구적으로 추가해줌.
firewall-cmd --reload
firewall-cmd --list-all  // dns가 있는지 확인
systemctl restart named.service
systemctl status named.service  // 상태 확인

 

 영역(zone) 구성

  zone file : 도메인에 대한 정보나 도메인 내의 호스트에 대한 정보를 가지고 있음. 

                  bind는 이 영역 파일을 참고하여 DNS 요청에 응답한다.

                  /var/named 디렉터리에 생성.

 

-Server

cp /var/named/named.empty /var/named/data/testdns.co.kr.zone
vi /var/named/data/testdns.co.kr.zone
	$TTL    3H

  	@       IN    SOA     ns.testdns.co.kr   root.testdns.co.kr. (
														 0       ;   serial
														 1D      ;    refresh
														 1H      ;    retry
														 1W      ;   expire
														3H  )    ;   minimum
	@        IN        NS           ns.testdns.co.kr.
	         IN        A             192.168.122.150  // DNS 서버의 IP

	ns       IN        A             192.168.122.200
	www      IN        A             192.168.122.150
    
vi /etc/named.conf
	zone "testdns.co.kr"  IN  {
			type master;
			file "data/testdns.co.kr.zone";
	};
    
named-checkconf /etc/named.conf // conf 파일의 잘못된 부분이 없는지 확인. 
chmod -R 754 /var/named
systemctl restart named.service
systemctl status named.service  

 

 -Test

yum install bind-utils -y
yum install bind* -y
vi /etc/named.conf
	zone "testdns.co.kr"   IN  {
			type slave;
			masters { 192.168.122.200; };
			file "slaves/testdns.co.kr.slave";
	};
    
systemctl start named.service
ls -al /var/named/slaves  // 확인
file /var/named/slaves/testdns.co.kr.slave

// http
yum install httpd -y
vi /var/ww/html/index.html
	Hello KVM

firewall-cmd --add-service=http --permanent
firewall-cmd --reload
firewall-cmd --list-all  // http가 있는지 확인
systemctl start httpd.service
systemctl status httpd.service

curl 192.168.122.150
curl www.testdns.co.kr  

 

-Client

nslookup www.testdns.co.kr  192.168.122.150  
curl www.testdns.co.kr   
	curl: (6) Could not resolve host: ~~~~~~ Unknown error
	//dns를 서버로 변경해주어야 연결가능
	-> nmcli con mod xxxxxx ipv4.dns 192.168.x.200
	   nmcli con up

'Linux' 카테고리의 다른 글

SMB Storage  (0) 2020.06.03
NFS Storage (autofs)  (0) 2020.06.02
DHCP Server  (0) 2020.06.01
리눅스 보안-SELinux  (0) 2020.06.01
Network Teaming  (0) 2020.06.01

댓글