DNS ( Domain Name Service )

Linux/Linux (CentOS) 2018. 7. 30. 18:37

DNS


- 도메인을 IP 주소로 변환 시켜주는 관리 서비스


   Root Level Domain        :  . ( dot )

               :

   Top Level Domain          : com , net , kr , ...

  :

   Second Level Domain    : naver , nate , ...

  :

   Third Level Domain       : www , blog , cafe    <--------- ( Host )



1. Client


1) 설치


yum -y install bind-utils.x86_64


2) DNS Lookup


# nslookup


> Ctrl + d ( 종료 )


> www.naver.com

Server:         168.126.63.2

Address:        168.126.63.2#53

Name:   www.naver.com.nheos.com

Address: 125.209.222.141

Name:   www.naver.com.nheos.com

Address: 210.89.160.88




[ Netwokr ]


1. 내부 통신


# ping < 내부_ip >


2. 외부 통신


# ping < 외부_ip >


3. DNS Lookup


# ping www.google.com




2. Server ( ServerA korea.com )


1) 설치


# yum -y install bind.x86_64


2) 설정 파일  ( www.korea.com 라고 물어보면 100.100.100.100 라고 대답하라 )


1. /etc/named.conf  <--------- DNS서버 전체 설정 파일


12 options {

l---- 네임서버 접속을 허용할 IP 주소

13         listen-on port 53 { any; };    ipv4                      l  <------ 바뀐곳

14         listen-on-v6 port 53 { any; };     ipv6                l  <------ 바뀐곳

  l-------------------------l

15         directory       "/var/named";   

- 각 도메인의 zone 파일의 위치를지정

16         dump-file       "/var/named/data/cache_dump.db";

- 정보가 갱신될때 저장되는 파일 위치

17         statistics-file "/var/named/data/named_stats.txt";

- 통계파일이 생성되는 절대 경로와 파일이름을 지정

18         memstatistics-file "/var/named/data/named_mem_stats.txt";

- 메모리 관련 통계파일이 생성되는 절대 경로와 파일 이름을 지정

19         allow-query     { any; };    <------ 바뀐곳

- 도메인 이름의 쿼리가 허용된 IP 주소



2. /etc/named.rfc1912.zones  


37  zone "0.in-addr.arpa" IN {

38          type master;

39          file "named.empty";

40          allow-update { none; };

41 };

----------- [ 복사해서 수정 ] ------------


 43  zone "korea.com" IN {

 44          type master;    

 45          file "korea.com.zone";

 46          allow-update { none; };

 47 };




- 확인

# named-checkconf /etc/named.rfc1912.zones  <----- 문법적 오류만찾아줌


- 오타 있을시


- 아무것도 나오지 않으면 정상



3. /var/named/*


------------------- [ 기본 값 ] ------------------------------


[root@korea ~]# ls -l /var/named/

합계 16

drwxrwx--- 2 named named    6  4월 13 03:48 data

drwxrwx--- 2 named named    6  4월 13 03:48 dynamic

-rw-r----- 1 root  named 2281  5월 22  2017 named.ca

-rw-r----- 1 root  named  152 12월 15  2009 named.empty

-rw-r----- 1 root  named  152  6월 21  2007 named.localhost

-rw-r----- 1 root  named  168 12월 15  2009 named.loopback

drwxrwx--- 2 named named    6  4월 13 03:48 slaves



# touch /var/named/korea.com.zone


- 소유 그룹 named

# chown .named /var/named/korea.com.zone


- 권한 640

# chmod 640 /var/named/korea.com.zone




# vi /var/named/korea.com.zone


------------------- [ 아래 내용 입력 ] -----------------------


$TTL 3H;;

@       IN SOA  ns.korea.com. root.ns.korea.com. (

                                                        0       ; serial

                                                        1D      ; refresh

                                                        1H      ; retry

                                                        1W      ; expire

                                                        3H )    ; minimum

      IN      A       100.100.100.100

             IN     NS       ns.korea.com.

          ns      IN      A       100.100.100.100

              www     IN      A       100.100.100.100




---------------------------------------------------------------------------------------

1 . $TTL ( Time To Live )

- 네임 서버가 설정된 도메인에 대한 정보를 제공받은 클라이언트들이 얼마동안

  이정보를 캐시에 저장할지 결정하는 시간


2. @ = 도메인( korea.com )

- oringin 도메인


3. SOA ( Start Of Authority )

- korea.com 도메인에 대하여 여기서 설정한 네임서버가 모든 정보를 가지고 있음을

  선언하는 것


4. 

(

  0       ; serial        : zone 정보가 업데이트 되었는지를 슬레이브 네임서버에 전달하기위해 사용

     하는 숫자

  1D      ; refresh    : 슬레이브 네임서버가 얼마의 주기로 마스터 서버에 접속해 정보가 변경되었

      는지를 점검하기 위해 사용 하는 시간

  1H      ; retry        : 슬레이브 네임서버가 마스터 네임서버에 refresh 실패시 얼마나 후에 다시

      접근할지 설정하는 시간

  1W      ; expire      : 슬레이브 네임서버가 retry를 얼마 동안 허용할지 결정하는 시간

  3H )    ; minimum   : 잘못된 호스트 정보를 저장하기 위한 TTL


5. record

- A        : 도메인에 대한 주소

- NS     : 네임서버

- MX     : 메일 서버


--------------------------------------------------------------------------------------------------------------


- 확인 

# cd /var/named

# named-checkzone korea.com korea.com.zone


       -------------- [ 정 상 ] ---------------

zone korea.com/IN: loaded serial 0

OK



- 오타 있을 때



3) 서비스 시작


# systemctl restart named   <--------- 오타가 있다면 restart 했을때 출력된다



- 확인

# ss -ant     53번포트



4) 방화벽 설정


# firewall-cmd --zone=home --add-service=dns --permanent

# firewall-cmd --reload





-------------------------- [ 실 습 - Windows 확인 ] ----------------------------------


cmd창 접속


cmd > nslookup

> server < server_ip >

> server 100.100.100.100  <--------------- 이거로 바꾸겠다


> www.korea.com

서버:    [100.100.100.100]

Address:  100.100.100.100


이름:    www.korea.com

Address:  100.100.100.100


-----------------------------------------------------------------------------------------




3) Server ( DNS 위임 ServerB    linux.korea.com )


1. Server A ( 1차 DNS )


# vi /var/named/korea.com.zone


--------------- 정보 추가 -----------------

linux    IN    NS    ns.linux.korea.com.

ns.linux.korea.com.    IN    A    100.100.100.110




- 확인


# cd /var/named

# named-checkzone korea.com korea.com.zone

-zone korea.com/IN: linux.korea.com/NS 'ns.linux.korea.com' (out of zone) has no      - addresses records (A or AAAA)

- zone korea.com/IN: loaded serial 0

- OK




2. Server B ( 2차 DNS )


1. 설치


# yum -y install bind.x86_64


2. 설정 파일


# vi /etc/named.conf


options {

        listen-on port 53 { any; };   <----------- 바뀐곳

        listen-on-v6 port 53 { any; }; <------------ 바뀐곳

        directory       "/var/named";

        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";

        allow-query     { any; }; <----------- 바뀐곳



- 전


-후

   



# vi /etc/named.rfc1912.zones

- linux.korea.com


------------ [ 복사 후 작성 ] ----------------


zone "linux.korea.com" IN {

        type master;

        file "linux.korea.com.zone";

        allow-update { none; };

};


-->



# cd /var/named

# touch linux.korea.com.zone

# chown .named linux.korea.com.zone

# chmod 640 linux.korea.com.zone

# vi /var/named/linux.korea.com.zone




$TTL 3H;;

@       IN SOA  ns.linux.korea.com. root.ns.linux.korea.com. (

                                                            0       ; serial

                                                            1D      ; refresh

                                                            1H      ; retry

                                                            1W      ; expire

                                                            3H )    ; minimum

                IN      A       100.100.100.110

                IN     NS       ns.linux.korea.com.

ns             IN      A       100.100.100.110

www          IN      A       100.100.100.110




- 확인

# named-checkconf /etc/named.rfc1912.zones

# named-checkzone linux.korea.com linux.korea.com.zone



3. 서비스 시작


# systemctl restart named



4. 방화벽 설정


# firewall-cmd --add-service=dns --permanent

# firewall-cmd --reload





--------------------------- [ 실 습 - Windows 확인 ] ---------------------------------------


cmd > nslookup


> server 100.100.100.100


> www.korea.com


> www.linux.korea.com



4. Server ( master - slave )


1) Server A master


1. 설치


# yum -y install bind.x86_64


2. 설정 파일


# vi /etc/named.conf   <----------- 13 , 14 , 19 번째 줄 any로 변경




# vi /etc/named.rfc1912.zones 

-------------------------------------------------------------------------

 zone "korea.com" IN {

        type master;  <------------- master

        file "korea.com.zone";

        allow-update { none; }; <-------------  { < slave_server_ip >;} 

 };                                                                100.100.100.110


 --> 


-------------------------------------------------------------------------



# vi /var/named/korea.com.zone

-------------------------------------------------------------------------

$TTL 3H;;

@       IN SOA  ns.korea.com. root.ns.korea.com. (

                                        0       ; serial

                                        1D      ; refresh

                                        1H      ; retry

                                        1W      ; expire

                                        3H )    ; minimum

        IN      A       100.100.100.100

        IN     NS       ns.korea.com.

ns      IN      A       100.100.100.100

www     IN      A       100.100.100.100


----------------------------------------------------------------------------


3. 서비스 재시작


# systemctl restart named

# systemctl enable named




2) Server B slave


1. 설치


# yum -y install bind.x86_64


2. 설정 파일


# vi /etc/named.conf   <----------- 13 , 14 , 19  번줄 any 로 바꿔주기




# vi /etc/named.rfc1912.zones

------------------------------------- 

zone "korea.com" IN {

        type slave;  <-------------- slave 

        file "korea.com.zone";

        masters { 100.100.100.100; }; <---------- < master_server_ip >

};



------------------------------------


# ls -ld /var/named


# chmod g+w /var/named

or

# chmod 770 /var/named





3. 서비스 시작


# systemctl start named

# systemctl enable named


# ls - l /var/named


-rw-r--r-- 1 named named  275  8월  1 16:33 korea.com.zone  <---------- 추가


4. 방화벽 설정


# firewall-cmd --add-service=dns --permanent

# firewall-cmd --reload






---------------------------------------------- [ 실 습 ] ------------------------------------------------------


Client CentOS7 추가생성



# vi /etc/sysconfig/network-scripts/ifcfg-ens33


ONBOOT=yes



* IP 할당 *


1) static

BOOTPROTO=static

IP값이 고정된다.

-> 네트워크 지식이 필요


2) dhcp

BOOTPROTO=dhcp

IP값이 동적으로 변경된다

-> dhcp 서버를 이용하여 PC에 IP 할당

-> 사용자의 편의성 ( 네트워크 지식이 없어도 된다 )

-> 관리의 편의성 ( IP충돌 문제 해결 )

-> DHCP 서버는 같은 네트워크 안에 존재해야 한다



DHCP


1. 설치

# yum -y install dhcp.x86_64

# yum -y install dhcp-common.x86_64



2. 설정 파일


# vi /etc/dhcp/dhcpd.conf


# man dhcpd.conf 


# ls -l /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example

-> etc/dhcp/dhcpd.conf 파일을 덮어쓰기




# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf

-> cp: overwrite `/etc/dhcp/dhcpd.conf'?  y




# vi /etc/dhcp/dhcpd.conf


 7 option domain-name "korea.com";

 8 option domain-name-servers ns.korea.com;


- Network 설정

- 네트워크 대역대 100.100.100.0

- NetMask 255.255.255.0

- Gateway 100.100.100.2 

- DNS 100.100.100.100 korea.com


 27 subnet 100.100.100.0 netmask 255.255.255.0 {


range 100.100.100.150 100.100.100.200;            

option routers 100.100.100.2;                          

option domain-name-servers 100.100.100.100;    

option domain-name "korea.com";                        

option broadcast-address 100.100.100.255;       

default-lease-time 600;                                      

max-lease-time 7200;

      }



range    : IP 주소 범위

routers : Gate Way 주소

domain-name-servers : DNS 서버 

broadcast-address ( 255 )

leaser-time : IP할당 기본 시간 ( 초 )  , 최대 시간 ( 초 )


3. 서비스 시작


# systemctl restart dhcpd

# systemctl enable dhcpd




4. 방화벽 설정


# firewall-cmd --zone=home --add-service=dhcp --permanent

# firewall-cmd --reload




5. Client ( client1 )


# systemctl restart network

# ip addr





1) DHCP 동작 과정


- DHCP Discover

: Client IP ( 0.0.0.0 ) , Mac Address(00:12:..:.. )

: 브로드 캐스트 메세지(255.255.255.255) : " DHCP 서버 있으면 응답 주세요 "


- DHCP Offer

: Server IP ( 100.100.100.100 ) : " 여기 있다 "

: 네트워크 정보 ( IP , GatWay , .......) 를 보내준다


- DHCP Request

: Client IP (100.100.100.150)

: Server IP (100.100.100.100)



- DHCP Ack

: Server IP (100.100.100.100)

: Client IP (100.100.100.150)




2) Server 확인


# vi /var/lib/dhcpd/dhcpd.leases





3) Client 확인


# ip addr




# vi /etc/resolv.conf




# yum -y install net-tools.x86_64



net-tools.x86_64

- # ifconfig 



- # route



//  - n  : 내가 사용하는 GateWay가 궁금하면 



 




     























































'Linux > Linux (CentOS)' 카테고리의 다른 글

find  (0) 2018.08.03
Mail Server  (0) 2018.08.02
GNOME Desktop  (0) 2018.07.27
FTP (ACTIVE mode & PASSIVE mode) Xinetd  (0) 2018.07.26
FTP & 접근제어  (0) 2018.07.20

설정

트랙백

댓글