20/120

김건호·2022년 3월 8일
0

DNS

Domain Name Server
IP 주소를 Domain 형식으로 변환해주는 서비스

DNS의 이해

  • Domain Name : IP주소를 다 외우기는 불가능 하므로 알파벳으로 이루어지는 도메인 이름 사용 ex) naver.com == 222.122.84.250
  • 도메인 등록 원칙 :
    • 영문자, 숫자, 특수기호 - 총 37개의 글자 조합으로 나타낼 수 있음.
    • 영어 대소문자 구별하지 않음.
    • 특수 기호인 - 는 처음과 끝에 올 수 없음
    • First Come, First Served

Domain Nmae 구조


네임 서버의 유형

  • 도메인에 대한 DNS 네임 처리를 위해 한대의 네임서버 필요
    (다운될 경우를 방지하기 위해 대체 가능한 네임서버 함께 구축 필요)

주 네임서버

1차 네임서버, 영역에 대한 모든 데이터 소유 -> 한명에 대한 모든 권한을 가지고 있음 -> 가장 중요

보조 네임서버

2차 네임서버, 1차 네임서버가 다운 되었을 경우 동작

캐시서버(Cache Server)

직접 입력 불가능, 주 서버에서 정보를 가져와 서비스하는 서버

설정 파일

/etc/hosts

인터넷 주소와 호스트 이름의 관계를 설정
로컬 시스템에서만 유효

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

/etc/resolv.conf

호스트가 사용할 DNS 서버의 주소 설정
자신의 호스트가 DNS 서버라면 자신의 IP를 써야함

도메인 확인 명령어

nslookup

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

host

도메인 정보 및 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

옵션

  • -t A : 도메인으로 ip 를 찾을 때
[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
  • -t PTR : ip로 도메인을 찾을 때
[root@server named]# host -t PTR 10.0.2.10
10.2.0.10.in-addr.arpa domain name pointer server.encore.class4.
  • -v : 자세한 정보를 볼 때
[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

dig

네임서버로부터 정보를 가져오는 명령어

[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

DNS 서버 구성

정방향조회

  1. 패키지 설치
  • bind : BIND 패키지
  • bind-utils : DNS 쿼리를 위한 유틸리티
# yum -y install bind bind-utils
  1. 서비스 설정
  • 고정 IP 설정
[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)이 성공적으로 추가되었습니다.
  • DNS 서버 주소 설정
[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
  • hostname 설정
# hostnamectl set-hostname
  • /etc/named.conf 설정 : dns를 설정하는 파일
[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;} : 어떠한 질문에도 답하지 않겠다

  • /var/named 아래 파일 설정
[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
  1. 서비스 활성화 (named)
[root@server named]# systemctl start named
[root@server named]# systemctl enable named --now
  1. 방화벽 설정 (dns)
[root@server named]# firewall-cmd --add-service=dns --permanent
[root@server named]# firewall-cmd --reload
  1. dns 확인
[root@server named]# host dns.test.example.com
dns.test.example.com has address 10.0.2.100

역방향 조회

정방향 조회 과정에서

  • /etc/named.conf의 zone부분 설정
zone "2.0.10.in-addr.arpa" IN {
        type master;
        file "10.0.2.0.zone";
};
  • /var/named/test.example.com.zone 파일을 이용하여 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.
profile
Ken, 🔽🔽 거노밥 유튜브(house icon) 🔽🔽

0개의 댓글