DNS

2023. 10. 16. 13:42리눅스/CentOS

DNS

 - Domain Name Service or  Domain Name System

 - Internet에 존재하는 무수히 많은 서버들을 사람이 쉽게 기억하고
   접근할 수 있도록 주소(FQDN)를 이용한 접근을 도와주는 서버
    > 문자주소(FQDN) <-> IP address 상호 변환

 - FQDN 일반적으로 말하는 도메인 주소
    > 영문자 및 숫자를 사용한 이름으로 자원(서버)에 대한 접근이 가능

    > host name과 domain name으로 구성되어 있다
      (ex. www.google.com 이라는 주소에서 www는 host name, google.com은 domain name)

 - DNS server가 FQDN을 IP address로 변경할 때 Domain Namespace를 바탕으로 하여
   domain name을 사용하는 nameserver에서 FQDN에 대한 IP address를 받아온다
   (= Domain Namespace에 등록된 서버에서 해당 FQDN에 대한 IP address를 알아온다)

 - 정보
패키지 : bind-*
데몬 : named
방화벽 : port=53/tcp, service=dns
설정파일 : /etc/named.conf


Domain Namespace
 - Internet에서 접근 가능한 모든 FQDN(문자 주소)이 tree 구조로 모여있는 범위

 - 전반적으로 InterNIC에서 관리
    > FQDN의 효율적인 관리를 위해 최상위에 root domain을 운용

      root domain들은 top-level domain의 주소만 갖고 해당 주소를 제공

      top-level domain들은 second-level domain의 주소만 갖고 해당 주소를 제공

      second-level domain들은 자신이 갖고 있는 record를 확인하여 FQDN에 대한 IP address를 제공

 - root domain
    > InterNIC에서 관리하는 Domain Namespace의 최상위 서버

    > 전 세계에 총 13개가 있으며 a ~ m까지의 이름을 붙여서 식별

    > top-level domain들의 주소를 갖고 있다
      (위임 처리가 되어 있어서 해당 nameserver의 주소를 알려준다)

 - top-level domain
    > FQDN의 마지막 단락
      (ex. com, net, org, 등)

    > 해당 이름으로 끝나는 second-level domain들의 주소를 갖고 있다
      (위임 처리가 되어 있어서 해당 nameserver의 주소를 알려준다)

 - second-level domain
    > 일반적으로 각 회사에서 운영하는 nameserver
      (ex. google.com, nate.com, 등)

    > FQDN에서 host name을 record를 이용하여 특정 IP address에 맵핑
      (host name + domain name 형식으로 FQDN을 식별, 해당 host name에 맵핑된 IP address를 안내)


DNS server의 역할
 1. IP address와 FQDN을 상호 변환
   - DNS 이름 풀이 ppt 파일 참조

 2. nameserver 구성
   - DNS server의 구성 요소를 설치하면 nameserver를 구성할 수 있는(=zone 영역을 만들 수 있는)
     파일이 함께 설치, 해당 파일들의 내용을 작성하여 nameserver로 동작이 가능하다

   - root domain, top-level domain, second-level domain은 전부 nameserver

Linux에 기본적으로 존재하는 DNS 관련 파일
 1. /etc/hosts
   - 내부에 FQDN과 IP address를 적어서
     컴퓨터에 해당 FQDN이 입력되면 함께 작성된 IP address로 연결

   - 파일 형식
<IP address>   <FQDN>   [<FQDN> ... <FQDN>]

 2. /etc/resolv.conf
   - IP 설정에 입력한 DNS(네임서버) 주소가 network 데몬이 실행될 때마다 작성되는 파일

   - 컴퓨터가 입력된 FQDN에 대한 IP address를 모를 때, 이 파일의 내용에 따라 DNS server로 찾아간다

   - 파일 형식
nameserver   <DNS IP>

* nameserver 설정이 여러줄인 경우 상단에 작성된 주소부터 우선 순위가 부여된다

* 실제 Internet에서 사용 가능한 DNS server 주소
   168.126.63.1 : KT DNS server
   8.8.8.8 : Google DNS server

 

* zone 형식

zone   "이름"   IN   {
options;
}

option 종류

type : 영역 종류
master : 주 영역
slave : 보조 영역

file : zone에 대한 세부 설정이 작성된 파일
  경로를 생략하고 /var/named에 생성


*
TTL : 데이터의 유효기간
IN  : 클래스 정보[하단에서는 위의 정보가 그대로 상속됨]


record : nameserver의 zone에서 쓰는 자원

SOA : 시작 및 인증
NS : nameserver 식별
A : host 레코드(IPv4)
AAAA : host 레코드(IPv6)
PTR : 역방향 레코드

host 레코드
host name에 특정 IP address를 맵핑

역방향 레코드
host ID에 특정 FQDN을 맵핑


* 에러 보는 법
systemctl status named | journalctl -xe

 

 

'/etc/hosts' 실습

Firefox 실행

 

 

네이버 접속 확인

 

 

파일 '/etc/hosts'에 위와 같이 내용 입력

 

 

다시 들어가면 내 컴퓨터로 연결되므로 연결 실패

 

 

저장하면 두번째 순위 nameserver 주소가 설정 됨

 

 

network 데몬이 재실행되면 초기설정으로 돌아온다

 

 

DNS 설치

설치 패키지

 

 

설정파일

설정파일 [주석처리가 슬래시 2개]

 

 

루트힌트 영역 ['.'붙거나 '.'인 경우 루트도메인을 의미]

 

 

any로 수정 [53번 포트를 누가 쓰게할 지 설정]

 

 

IPv6에서의 포트 53번

 

 

디폴트 경로 [절대 경로 표시 아닌 디렉토리 앞에 붙음]

 

 

listen-on port 53과 동일하게 any로 수정

 

 

외부에서 DNS 질의를 허용할 지 설정

 

 

DNS에서 해당 파일의 영역도 읽음 [상단 파일은 nameserver 구성에 관한 파일]

 

 

네임서버 구성

/etc/named.rfc1912.zones 수정

 

 

내용 추가 후 저장

 

 

내용 추가 후 저장

 

 

파일 생성

 

 

파일 생성

 

 

설정 적용 및 실행

 

 

실습

상단은 어느 DNS server에 물어봤는지 하단은 물어본 결과

 

 

역방향 조회

 

 

정방향 조회 영역; FQDN를 IPaddress로

 

 

역방향 조회 영역; IPaddress를 FQDN으로

 

 

좌상단;main영역 / 우상단;시간영역 / 좌하단;record영역

 

 

nameserver

 

 

하위 record[정방향 영역]

 

 

마찬가지로 하위 record[역방향 영역]

 

 

일련번호[보조 영역이 이 번호를 기준으로 데이터 업데이트]

 

 

데이터 최소 유지기간[DoS 공격예방]

 

 

데이터 갱신 및 만료[refresh 때 갱신, 실패 시 retry 때 다시 시도, expire 시점 때는 데이터 파기]

 

 

root 권한으로 동작

 

 

문제

<실습>
www.itbank.com 셋팅하기

* 스냅샷 되돌린 후 진행[domain이 바뀌게 되면 패키지를 제거해야 한다. 귀찮아서 스냅샷!]
* 최대한 기억에 의존
* 확인은 정방향+역방향 nslookup 조회 결과

각각의 영역에서 복사 붙여넣기 하면 쉬움
named.localhost 복사 붙여넣기 하면 쉬움
권한을 바꿔야 외부에서 조회 가능함

 

 

<실습>
어제 구성했던 www.itbank.com을 nslookup으로 다시 확인하면 안된다
이유를 확인하고 해결하기

* /etc/resolv.conf : 초기화됨[네트워크 데몬이 다시 동작되면 항상 초기화 됨]
  named 데몬 : 다시 실행

'리눅스 > CentOS' 카테고리의 다른 글

DNS, httpd 결합 실습  (2) 2023.10.16
Web Server  (0) 2023.10.16
DHCP  (0) 2023.10.12
Samba  (0) 2023.10.12
autofs  (0) 2023.10.12