도메인 네임 시스템(Domain Name System, DNS)은 호스트의 도메인 이름을 호스트의 네트워크 주소로 바꾸거나 그 반대의 변환을 수행할 수 있도록 하기 위해 개발되었습니다.
특정 컴퓨터(또는 네트워크로 연결된 임의의 장치)의 주소를 찾기 위해, 사람이 이해하기 쉬운 도메인 이름을 숫자로 된 식별 번호(IP 주소)로 변환해 줍니다.
도메인 네임 시스템은 흔히 "전화번호부"에 비유됩니다.
인터넷 도메인 주소 체계로서 TCP/IP의 응용에서, www.example.com과 같은 주 컴퓨터의 도메인 이름을 192.168.1.0과 같은 IP 주소로 변환하고 라우팅 정보를 제공하는 분산형 데이터베이스 시스템입니다.
yum -y install bind bind-chroot bind-utils
# 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";
};
# 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; };
};
$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
$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.
# systemctl enable --now named
# firewall-cmd --permanent --add-service=dns --zone=external
# firewall-cmd --permanent --add-service=dns --zone=internal
# firewall-cmd --reload
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)