Domain Name Server
IP 주소를 Domain 형식으로 변환해주는 서비스
1차 네임서버, 영역에 대한 모든 데이터 소유 -> 한명에 대한 모든 권한을 가지고 있음 -> 가장 중요
2차 네임서버, 1차 네임서버가 다운 되었을 경우 동작
직접 입력 불가능, 주 서버에서 정보를 가져와 서비스하는 서버
인터넷 주소와 호스트 이름의 관계를 설정
로컬 시스템에서만 유효
[root@server ~]# ping client
ping: client: 이름 혹은 서비스를 알 수 없습니다
[root@server ~]# ping client.encore.lass4
ping: client.encore.lass4: 이름 혹은 서비스를 알 수 없습니다
# IP 주소와 호스트 이름 등록
[root@server ~]# vi /etc/hosts
...
*.*.*.200 client client.encore.class4
# 정상 작동
[root@server ~]# ping -c 3 client
PING client (*.*.*.*) 56(84) bytes of data.
호스트가 사용할 DNS 서버의 주소 설정
자신의 호스트가 DNS 서버라면 자신의 IP를 써야함
DNS 서버에 직접 DNS 쿼리를 하고 그 결과를 출력
[root@client ~]# nslookup
> mail.encore.class4
Server: 10.0.2.10
Address: 10.0.2.10#53
Name: mail.encore.class4
Address: 10.0.2.40
>exit
도메인 정보 및 ip 정보 출력
[root@server named]# host www.naver.com
www.naver.com is an alias for www.naver.com.nheos.com.
www.naver.com.nheos.com has address 223.130.200.107
www.naver.com.nheos.com has address 223.130.195.200
[root@server named]# host -t A www.naver.com
www.naver.com is an alias for www.naver.com.nheos.com.
www.naver.com.nheos.com has address 223.130.200.107
www.naver.com.nheos.com has address 223.130.195.200
[root@server named]# host -t PTR 10.0.2.10
10.2.0.10.in-addr.arpa domain name pointer server.encore.class4.
[root@server named]# host -v -t A www.naver.com
Trying "www.naver.com"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50410
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;www.naver.com. IN A
;; ANSWER SECTION:
www.naver.com. 2518 IN CNAME www.naver.com.nheos.com.
www.naver.com.nheos.com. 39 IN A 223.130.200.104
www.naver.com.nheos.com. 39 IN A 223.130.200.107
Received 97 bytes from 1.214.68.2#53 in 13 ms
네임서버로부터 정보를 가져오는 명령어
[root@server named]# dig www.naver.com
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.9 <<>> www.naver.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25071
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.naver.com. IN A
;; ANSWER SECTION:
www.naver.com. 5737 IN CNAME www.naver.com.nheos.com.
www.naver.com.nheos.com. 51 IN A 223.130.200.107
www.naver.com.nheos.com. 51 IN A 223.130.200.104
;; Query time: 8 msec
;; SERVER: 1.214.68.2#53(1.214.68.2)
;; WHEN: 월 3월 07 13:49:14 KST 2022
;; MSG SIZE rcvd: 108
# yum -y install bind bind-utils
[root@server ~]# nmcli con add con-name static ifname enp0s3 type ethernet ip4 10.0.2.10/24 gw4 10.0.2.
2
연결 'static' (669caceb-d970-4735-9695-2ea8e8445a85)이 성공적으로 추가되었습니다.
[root@server ~]# nmcli con mod static ipv4.dns 10.0.2.10
[root@server ~]# nmcli con reload
[root@server ~]# nmcli con up static
연결이 성공적으로 활성화되었습니다 (D-Bus 활성 경로: /org/freedesktop/NetworkManager/ActiveConnection/7)
[root@server ~]# cat /etc/resolv.conf
# Generated by NetworkManager
search encore.class4
nameserver 10.0.2.10
# hostnamectl set-hostname
[root@server ~]# vi /etc/named.conf
...
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { none; };
...
allow-query { any; };
...
zone "test.example.com" IN {
type master;
file "test.eample.com.zone";
# zone 내용은 수정말고 추가
};
listen-on port 53{127.0.0.1;}; : 루프백에 대해서만 가능. 루프백에 질문을 듣겟다,
listen-on port 53{10.0.2.30;}; : 10.0.2.30에 대해서 질문을 들을 준비가 되었다
listen-on port 53{any;}; : 어떠한 주소에서 질문이 들어오든지 들을 준비가 되어있다
listen-on prot 54{none;} : 어떠한 질문에도 답하지 않겠다
[root@server ~]# ls /var/named
data dynamic named.ca named.empty named.localhost named.loopback slaves
탬플릿 이용을 위해 named.empty파일 사용
[root@server ~]# cd /var/named/
[root@server named]# cp named.empty test.example.com.zone
[root@server named]# ls /var/named
... test.example.com.zone
[root@server named]# vi test.example.com.zone
$TTL 3H
@ IN SOA test.example.com.zone. root.test.example.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.test.example.com.
A 10.0.2.2
dns A 10.0.2.100
www A 10.0.2.110
ftp A 10.0.2.120
mail A 10.0.2.130
blog A 10.0.2.140
test.example.com.zone. 과 같이 도메인 주소를 적을때는 맨 마지막에 마침표가 빠지지 않도록 주의
[root@server named]# chmod 660 test.example.com.zone [root@server named]# chown :named test.example.com.zone
[root@server named]# systemctl start named
[root@server named]# systemctl enable named --now
[root@server named]# firewall-cmd --add-service=dns --permanent
[root@server named]# firewall-cmd --reload
[root@server named]# host dns.test.example.com
dns.test.example.com has address 10.0.2.100
정방향 조회 과정에서
zone "2.0.10.in-addr.arpa" IN {
type master;
file "10.0.2.0.zone";
};
[root@server named]# pwd
/var/named
[root@server named]# cp test.example.com.zone 10.0.2.0.zone
[root@server named]# vi 10.0.2.0.zone
$TTL 3H
@ IN SOA test.example.com. root.test.example.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.test.example.com.
A 10.0.2.2
100 PTR dns.test.example.com.
110 PTR www.test.example.com.
120 PTR ftp.test.example.com.
130 PTR mail.test.example.com.
140 PTR blog.test.example.com.
[root@server named]# chmod 660 10.0.2.0.zone
[root@server named]# chown :named 10.0.2.0.zone
[root@server named]# systemctl restart named.service
[root@server named]# host -t PTR 10.0.2.100
100.2.0.10.in-addr.arpa domain name pointer dns.test.example.com.