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) ...