DNS 서버 설정 및 내부 네트워크 기반 도메인 해석 구성

1. 실험 환경 구성

  • DNS 서버: youxi1 (IP: 192.168.5.101)
  • 테스트 클라이언트: youxi2 (IP: 192.168.5.102)

2. DNS 리소스 레코드 종류 설명

  • SOA (Start of Authority): 영역의 관리 정보와 기본 설정을 포함하며, 각 도메인의 시작 지점에 하나만 존재해야 한다.
  • NS (Name Server): 해당 도메인을 담당하는 이름 서버를 지정한다.
  • A (Address): FQDN(Fully Qualified Domain Name)을 실제 IP 주소로 매핑한다.
  • PTR (Pointer): IP 주소를 역방향으로 도메인 이름으로 변환할 때 사용된다.
  • CNAME (Canonical Name): 특정 호스트에 별칭을 부여하여 내부 구조를 은폐한다.
  • MX (Mail Exchange): 이메일 전송을 위한 메일 서버를 지정한다.

3. BIND DNS 서버 설치

[root@youxi1 ~]# yum -y install bind bind-chroot bind-utils

BIND는 베이클리 인터넷 이름 도메인 시스템의 약자로, 네트워크에서 도메인 이름 해석을 수행하는 핵심 서비스이다. 주요 구성 요소:

  • bind: DNS 서버 실행 파일 포함
  • bind-chroot: chroot 환경에서 실행하여 보안 강화
  • bind-utils: nslookup, dig 등의 클라이언트 툴 제공

4. DNS 관련 설정 파일 위치

  • /etc/named.conf: BIND의 전반적인 설정 파일
  • /var/named/: DNS 영역 데이터 파일 저장 디렉토리

5. 기본 설정 파일 수정

기본적으로 named는 포트 53(접근 요청), 953(관리 명령)을 사용한다.

[root@youxi1 ~]# systemctl start named
[root@youxi1 ~]# systemctl enable named
[root@youxi1 ~]# netstat -antup | grep named

6. /etc/named.conf 설정 구성

설정 파일은 options, zone, logging, acl 등으로 나뉜다.

[root@youxi1 ~]# cat /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";
    recursing-file "/var/named/data/named.recursing";
    secroots-file "/var/named/data/named.secroots";
    allow-query { any; };
    recursion yes;
    dnssec-enable yes;
    dnssec-validation yes;
    dnssec-lookaside auto;
    bindkeys-file "/etc/named.iscdlv.key";
    managed-keys-directory "/var/named/dynamic";
    pid-file "/run/named/named.pid";
    session-keyfile "/run/named/session.key";
};

logging {
    channel default_debug {
        file "data/named.run";
        severity dynamic;
    };
};

zone "test.cn" IN {
    type master;
    file "test.cn.zone";
};

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

7. 영역 파일 생성 및 설정

영역 파일을 복제하고 권한 설정 후 수정한다.

[root@youxi1 ~]# cp -a /var/named/named.localhost /var/named/test.cn.zone
[root@youxi1 ~]# vim /var/named/test.cn.zone
$TTL 1D
@       IN SOA  dns.test.cn. root.test.cn. (
                        0       ; serial
                        1D      ; refresh
                        1H      ; retry
                        1W      ; expire
                        3H )    ; minimum

@       NS      dns.test.cn.
dns     A       192.168.5.101
www     A       192.168.5.101
alias   CNAME   www.test.cn.

8. 서비스 재시작 및 테스트

[root@youxi1 ~]# systemctl restart named

테스트 머신에 DNS 설정 적용:

[root@youxi2 ~]# vim /etc/resolv.conf
nameserver 192.168.5.101

[root@youxi2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
...
DNS1=192.168.5.101

[root@youxi2 ~]# systemctl restart network

9. 정상 작동 확인

[root@youxi2 ~]# ping www.test.cn
PING www.test.cn (192.168.5.101) 56(84) bytes of data.
64 bytes from youxi1.cn (192.168.5.101): icmp_seq=1 ttl=64 time=2.73 ms

--- www.test.cn ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms

[root@youxi2 ~]# ping alias.test.cn
PING www.test.cn (192.168.5.101) ...

태그: DNS BIND linux Networking zone file

7월 13일 18:05에 게시됨