[Linux] 웹서버 - DNS

:)·2024년 5월 21일
0

Linux

목록 보기
13/17

웹서버 - DNS

  • DNS (Domain name Server/service)

    • Domain => 영역 ( 사람이 지정한 영역:문자 )
      • DNS 레코드 정보

        IN INPUT 내용적용
        NS 도메인의 네임서버 (관리중인 도메인) names erver
        MX 도메인과 메일 연결
        A 도메인에 대한 IP매칭 (A : ipv4 AAAA: ipv6
        PTR IP주소에 대한 도메인 매칭
        CNAME 별칭 (기존 도메인 다른 도메인으로 공유 연결)
        *SOA start of Authority DNS (시작점, 대표 도메인 시작)

        **도메인 마지막에 . 붙이기**
  • DNS: IP주소 체계로 되어 있는 컴퓨터의 지명을 사람이 인지 가능한 문자 형태로 변환 시켜주는 서버 또는 서비스

    요청자 목적지
    IP >>>WEB>>> O
    도메인 >>>WEB>>> X
    도메인 >>>DNS>>>WEB O

  • 구조
    - IP와 도메인은 역매칭됨

  • NET ID : 요즘에는 글로벌로 com,net... 등등 국가 도메인 없이 쓰임

    • #rootdmain . (루트도메인 :Root Domain 정보: http://root-servers.org)
      1. 최상위 도메인
      2. 모든 도메인 시작
      3. 도메인임을 증명
      4. 보통 web에서는 생략되나 DNS에서는 필수 기재
      1. top-level kr 국가 (jp:일본 , au:호주 , cn:중국 , US:미국....)
      1. second-level co com 회사 ( 영리목적기관 )
      1. third-level sevas 회사명 ( ISP, 도메인업체에게 등록된 도메인)
  • HOST ID

    subdomain www www 웹서버 사용자가 임의로 바꿀 수 있는 도메인
    mail 메일 서버
    ftp 파일 서버
    db DB 서버
    ........

도메인

- Primary   : 주 영역 서버
secondry :  보조 영역 서버
- 1차 영역 서버에서 찾지 못한 도메인은 2차 영역 서버로 옮겨짐
    
    ><pre> 
    사용자(DOMAIN) → 1차 도메인(192.168.1.10) → 목적지PC
    >                 → 2차 도메인(168.126.63.1) → 인터넷
    > 
- 도메인 해석 순서
    
    > 로컬도메인 →	1차도메인 → 2차도메인
    /etc/hosts	1DNS서버	2DNS서버
    > 

DNS서버설정

  1. 패키지설치 (DNS = bind )
    1. bind 패키지 : LINUX/UNIX용 DNS전용 패키지

        yum install bind* -y
        
    2.  ZONE :		정매칭	A	:도메인을 IP에 매칭		www	A	192.168.10.10
    REV_ZONE: 	역매칭	PTR	:IP를 도메인에 매칭		10	PTR	www.sevas.com.
  2. bind

    • vi /etc/named.conf ( named 서버 전역환경)
      options {
      #listen-on port 53 { 127.0.0.1; };
      listen-on port 53 { any; };	<<<< 외부에서 서버 연결 허용
      
      #allow-query { localhost; };
      allow-query     { any; };    <<<<<<<< 외부에서 nslookup사용가능
      
      recursion yes;		     <<<<<<<<<<<<<< FORWARD를 통한 인터넷 사용이나 연결된 DNS검색 가능여부
      
      #dnssec-enable yes;
      #dnssec-validation yes;
      dnssec-enable no;	<<<<<<<<<<<<<<dnssec 암호화 여부
      dnssec-validation no;    <<<<<<<<<<<<<<dnssec 암호화 키값
      
      zone "." IN {		<<<< rootdomain (최상위도메인 . 에 대한 레코드)
      type hint;		<<<< 레코드타입  hint    /타입이 hint 인 경우 보통 root 도메인
      file "named.ca";          <<<<  rootdomain 정보 저장파일(루트 힌트)
      };
    • vi /etc/named.rfc1912.zones (정매칭 파일과 역매칭 파일 정의 - 예외기법)
      19번째, 31번째 줄 내용 복붙한 것
      43 zone "sevas10.com" IN {		     <<<<<<<<C class 네트워크 도메인
      44         type master;
      45         file "sevas10.zone";
      46         allow-update { none; };
      47 };
      48
      49 zone "10.168.192.in-addr.arpa" IN {    <<<<<<C class라 네트워크만 매칭(역매칭)
      50         type master;
      51         file "sevas10.rev";
      52         allow-update { none; };
      53 };
      54
  3. DNS 매칭 설정

    cd /var/named/

    named.ca => rootdomain 정보파일

    zone 파일 생성
    cp named.empty sevas10.zone

    • vi sevas.zone(정방향)
      $TTL 3H <<<캐쉬시간
      @       IN SOA  ns.sevas10.com.           root.sevas10.com. (
      																	0       ; serial  # [업데이트 날짜]
      																	1D      ; refresh	#[ 재갱신 기간]
      																	1H      ; retry   #[ 재시도 기간]
      																	1W      ; expire  #[ 만료 기간]
      																	3H )    ; minimum #[ 캐쉬 시간]
      		IN	NS      ns.sevas10.com.
      		IN	A       192.168.10.10
      				
      ns      IN  A       192.168.10.10
      www     IN  A       192.168.10.10
      ftp     IN  A       192.168.10.20
    • 역방향 설정 (IP가 도메인에 할당되는 것이 PTR) cp sevas.zone sevas.rev
      • vi sevas.rev
        $TTL 3H     
        @       IN SOA  ns.sevas10.com.           root.sevas10.com. (
        																	0       ; serial  # [업데이트 날짜]
        																	1D      ; refresh	#[ 재갱신 기간]
        																	1H      ; retry   #[ 재시도 기간]
        																	1W      ; expire  #[ 만료 기간]
        																	3H )    ; minimum #[ 캐쉬 시간]
                IN	    NS      ns.sevas10.com.
                IN	     A       192.168.10.10
        10      IN      PTR     ns.sevas10.com.
        10      IN      PTR     www.sevas10.com.
        20      IN      PTR     ftp.sevas10.com.
    • 저장후 named-checkzone 10.168.192 sevas10.rev
    • 실행전 권한 바꾸기

      chown .named sevas10.
      chmod 660 sevas10.
      (세컨에서 업데이트 할경우)

  • 파일의 내용에서 자리(들여쓰기.. ) 중요!
    • 노란 부분에 IN이 가도록 글을 쓸 경우, 위치가 맞지 않아 인식에 오류가 발생
  1. dns zone 파일검사
    1-1. 파일검사 (설정파일확인) named-checkconf /etc/named.conf
    1-2. 존파일검사 (named-checkzone [도메인][설정파일]) named-checkzone sevas10.com sevas.zone
    named-checkconf /etc/named.conf
    named-checkzone sevas10.com sevas10.zone <<<----zone 파일검사
    named-checkzone 192.168.10 sevas10.rev <<<----rev 파일검사
     
    1-3. 오류메세지 확인 cat /var/log/messages
    dns 새로 받아오기 ipconfig /flushdns
      
  2. 최종 랜카드 설정
    • vi /etc/sysconfig/network-scripts/ifcfg-ens33
      DEVICE=ens33
      IPADDR=192.168.10.10
      NETMASK=255.255.255.0
      GATEWAY=192.168.10.2
      ONBOOT=yes
      DNS1=192.168.10.10
      service network restart
      service named restart
      cat /etc/resolv.conf <<<<<<<<<<<<<<* DNS 참조 확인 **
      nslookup www.sevas.com 확인
  3. 보조 서버로 넘기기
    • 20.20.20.20(서브)에서 10(본 서버)에 있는 dns 가져오기
      • vi /etc/named.rfc1912.zones
        • 20(받을 서브 서버)

          zone "korea10.com" IN {
          type slave;
          file "slaves/korea10.zone";
          masters { 10.10.10.10; };
          };

        • 10 (본 서버)

          zone "korea10.com" IN {
          type master;
          file "korea10.zone";
          allow-transfer { 20.20.20.20; }; (AXFR) - tcp
          also-nofity {20.20.20.20; }; -> 업데이트 전달받을 서브 서버 (IXFR) - 받을 서버에서 udp
          };

          • 서브 서버에서 53/udp 포트 열기.. /var/named/slaves에 korea10.zone이 생성됨
  • /etc/name.conf 와 /etc/named.rfc1912.zones의 차이점
    • named.conf : 모든 도메인 및 DNS에 적용
    • named.rfc1912 : 지정한 도메인에 대해서만 적용
      • IXFR 방식 zone 파일 비교 후 업데이트
      • AXFR (기본값) zone 파일 전송
profile
:) GITHUB: https://github.com/YJ2123412

0개의 댓글