Domain Name System, DNS

박기원·2022년 5월 4일
0

On-Premise

목록 보기
7/8
post-thumbnail

도메인 네임 시스템(Domain Name System, DNS)은 호스트의 도메인 이름을 호스트의 네트워크 주소로 바꾸거나 그 반대의 변환을 수행할 수 있도록 하기 위해 개발되었습니다.
특정 컴퓨터(또는 네트워크로 연결된 임의의 장치)의 주소를 찾기 위해, 사람이 이해하기 쉬운 도메인 이름을 숫자로 된 식별 번호(IP 주소)로 변환해 줍니다.
도메인 네임 시스템은 흔히 "전화번호부"에 비유됩니다.
인터넷 도메인 주소 체계로서 TCP/IP의 응용에서, www.example.com과 같은 주 컴퓨터의 도메인 이름을 192.168.1.0과 같은 IP 주소로 변환하고 라우팅 정보를 제공하는 분산형 데이터베이스 시스템입니다.

DNS 설치

yum -y install bind bind-chroot bind-utils
  • DNS 환경설정
# vi /etc/named.conf
  • 모두 지우고 삽입✍
options {
        listen-on port 53 { 127.0.0.1; 192.168.0/24; 10.0.22/24; };
        listen-on-v6 port 53 { ::1; };
        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     { localhost; 192.168.0/24; 10.0.22/24; };
        forwarders { 8.8.8.8; 8.8.4.4; };

        recursion yes;

        dnssec-enable yes;
        dnssec-validation yes;

        /* Path to ISC DLV key */
        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;
        };
};
view "internal" {
        zone "." IN {
                type hint;
                file "named.ca";
        };

        include "/etc/named.rfc1912.zones";
        include "/var/named/giwon.shop.zones";
};
  • giwon.shop.zones 설정 ✍
# vi /var/named/giwon.shop.zones
zone "giwon.shop" IN {
        type master;
        file "giwon.shop.db";
        allow-update { none; };
};

zone "22.0.10.in-addr.arpa" IN {
        type master;
        file "22.0.10.in-addr.arpa.db";
        allow-update { none; };
};
  • giwon.shop.db 설정 ✍
$TTL    86400
@       IN      SOA     giwon.shop.   root.giwon.shop.(
                        2022050201 ; Serial
                        3h         ; Refresh
                        1h         ; Retry
                        1w         ; Expire
                        1h )       ; Minimum

        IN      NS      ns.giwon.shop.
        IN      MX 10   ns.giwon.shop.
ns      IN      A       10.0.22.1
nat     IN      A       10.0.22.1
web01   IN      A       10.0.22.2
web02   IN      A       10.0.22.5
web03   IN      A       10.0.22.4
db      IN      A       10.0.22.3
  • 22.0.10.in-addr.arpa.db 설정✍
$TTL	86400
@	IN	SOA	giwon.shop.	root.giwon.shop.(
			2022041401 ; Serial
			3h         ; Refresh
			1h         ; Retry
			1w         ; Expire
                        1h )       ; Minimum

	IN	NS	ns.giwon.shop.
1	IN	PTR	ns.giwon.shop.
  • named 자동시작
# systemctl enable --now named
  • 내, 외부 zone에 DNS 방화벽 추가 및 리로드
# firewall-cmd --permanent --add-service=dns --zone=external
# firewall-cmd --permanent --add-service=dns --zone=internal
# firewall-cmd --reload
  • ifcfg-ens192 에 DNS 및 PEERDNS 추가 ✍
DNS1=10.0.22.1
DNS2=8.8.8.8
DNS3=203.248.252.2
PEERDNS=no
# systemctl restart NetworkManager
# cat /etc/resolv.conf
# ss -ant

대표적인 레코드

  • SOA : 다루는 도메인 버전과 업데이트 시간 간격 등의 정보를 저장하는 레코드

  • A : 호스트 이름으로 IPv4 주소를 조회할 때 사용하는 레코드
    예: 호스트 ns.giwon.shop의 IPv4 주소는 172.31.0.130

  • AAAA : 호스트 이름으로 IPv6 주소를 조회할 때 사용하는 레코드
    예: jprs.jp의 IPv6 주소는 2001:218:3001:7::80

  • PTR : IP 주소로 호스트 이름을 조회할 때 사용하는 레코드
    예: 172.31.0.130의 호스트 이름은 ns.giwon.shop

  • NS : DNS 서버의 호스트 이름 혹은 IP 주소를 저장하는 레코드
    예: giwon.shop의 DNS 서버는 ns.giwon.shop

  • MX : 메일 서버 호스트 이름 혹은 IP 주소를 저장하는 레코드
    예: giwon.shop의 메일 서버는 mail.giwon.shop

  • CNAME: 호스트 이름의 별칭을 저장하는 레코드
    예: www.giwon.shop은 ns.giwon.shop의 별칭(alias)

0개의 댓글