DNS服务

  • DNS的简介:

域名系统(Domain Name System缩写DNS,Domain Name被译为域名)是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串

目的 : 为了减少主服务器的压力

  • 域的分类

顶级域:顶级域(Top Level Domain,简称TLD)分为三类

通用顶级域:诸如 .com(商业机构) .org(非营利性组织) .net(网络服务机构)等

国家顶级域:诸如 .cn(中国) .uk(英国) .us(美国) .jp(日本)

反向域(基础建设顶级域):.arpa,即从IP到FQDN的反向解析

  • 解析过程:
  • DNS服务器类型:

主DNS服务器:负责解析至少一个域。

辅助(从)DNS服务器:负责解析至少一个,是主DNS服务器的辅助。

缓存DNS服务器:不负责解析域,只是缓存域名解析结果。
DNS返回的结果类型:

肯定答案:查询的域存在,会被缓存下来。

否定答案:不存在查询的域名,因此不存在与其查询的域名对应的IP;会被缓存下来。

权威答案:所查询的域名的结果是由负责解析这个域的DNS服务器所返回的答案。

非权威答案:在缓存中查询的结果。

Android 原生DNS服务器 安卓dns是什么_Android 原生DNS服务器

  • 简单搭建 DNS服务:
    环境配置
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# vim /etc/selinux//config
  SELINUX=enforcing 改为 SELINUX=disabled
[root@localhost ~]# reboot

1.安装相关软件

[root@localhost ~]# yum -y install bind bind-chroot bind-utils caching-nameserver

2.配置文件

[root@localhost ~]# rpm -ql bind  
/etc/logrotate.d/named
/etc/named  # 区域文件 存放目录
/etc/named.conf  # 主配置文件
/etc/named.iscdlv.key
/etc/named.rfc1912.zones
/etc/named.root.key
/etc/rndc.conf
/etc/rndc.key

3开启named 服务 并设置开机自启

[root@localhost ~]# systemctl start named
[root@localhost ~]# netstat -antp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      4446/named
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      905/sshd
tcp        0      0 127.0.0.1:953           0.0.0.0:*               LISTEN      4446/named
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      982/master
tcp        0      0 192.168.9.8:22          192.168.9.1:54421       ESTABLISHED 1035/sshd: root@not
tcp        0      0 192.168.9.8:47749       199.9.14.201:53         FIN_WAIT2   -
tcp        0     48 192.168.9.8:22          192.168.9.1:54416       ESTABLISHED 1033/sshd: root@pts
tcp6       0      0 ::1:53                  :::*                    LISTEN      4446/named
tcp6       0      0 :::22                   :::*                    LISTEN      905/sshd
tcp6       0      0 ::1:953                 :::*                    LISTEN      4446/named
tcp6       0      0 ::1:25                  :::*                    LISTEN      982/master
[root@localhost ~]# systemctl enable named
 Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.

配置文件

[root@localhost ~]# vim /etc/named.conf
options {
        listen-on port 53 { any; }; # 设置监听的 IP 修改为 any 或者 注释掉  解释允许所有IP
        listen-on-v6 port 53 { ::1; };  # ipv6的监听地址
        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; };  #只允许本地主机localhost,any或者注释掉就是允许所有主机查询
 		recursion yes;  #递归查询

编辑配置文件 vim /etc/named.rfc1912.zones

zone "hello.com" IN {
        type master;
        file "hello.com.zone";
        allow-update {none; };
};
zone "9.168.192.in-addr.arpa" IN {
        type master;
        file "hello.com.local";
        allow-update {none; };
};
$TTL	86400	#有效解析记录的生存周期
@    IN    SOA  dfzr.com. admin.dfzr.com.(	#SOA 标记、域名、管理邮箱
2011030501	#更新序列号,可以是10 位以内的整数
3H	#刷新时间,重新下载地址数据的间隔
15M	#重试延时,下载失败后的重试间隔
1W	#失效时间,超过该时间仍无法下载则放弃
1D	#无效解析记录的生存周期
)

正向解析文件

[root@localhost named]# cat hello.com.zone
$TTL 1D
@       IN SOA @ rname.invalid. (
            0  ; serial
            1D ; refresh
            1H ; retry
            1W ; expire
            3H )   ; minimum
 NS     @
 A      192.168.9.8
www     IN A   192.168.9.8
ftp     IN A   192.168.9.8
 AAAA   ::1

反向解析文件

[root@localhost named]# cat hello.com.local
$TTL 1D
@       IN SOA @ rname.invalid. (
            0  ; serial
            1D ; refresh
            1H ; retry
            1W ; expire
            3H )   ; minimum
 NS     @
 A      192.168.9.8
8       IN PTR www.hellow.com

配置

[root@localhost named]# cat /etc/resolv.conf
# Generated by NetworkManager
search hello.com
nameserver 192.168.9.8

检查语法是否错误

[root@localhost ~]#named-checkconf

重启DNFS服务

[root@localhost ~]#service named restart

使用dig测试

[root@localhost named]# dig www.hello.com
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-16.P2.el7_8.6 <<>> www.hello.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57847
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.hello.com.         IN      A

;; ANSWER SECTION:
www.hello.com.  86400   IN      A     192.168.9.8

;; AUTHORITY SECTION:
hello.com.  86400  IN   NS      hello.com.

;; ADDITIONAL SECTION:
hello.com.  86400  IN   A       192.168.9.8

;; Query time: 0 msec
;; SERVER: 192.168.9.8#53(192.168.9.8)
;; WHEN: Wed Jul 15 22:18:00 EDT 2020
;; MSG SIZE  rcvd: 88
[root@localhost named]# dig 192.168.9.8
 ; <<>> DiG 9.11.4-P2-RedHat-9.11.4-16.P2.el7_8.6 <<>> 192.168.9.8
 ;; global options: +cmd
 ;; Got answer:
 ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 32085
 ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

 ;; OPT PSEUDOSECTION:
 ; EDNS: version: 0, flags:; udp: 4096
 ;; QUESTION SECTION:
 ;192.168.9.8.      IN   A

 ;; AUTHORITY SECTION:
 .          10393   IN   SOA     a.root-servers.net. nstld.verisign- grs.com. 2020071501 1800 900 604800 86400

 ;; Query time: 0 msec
 ;; SERVER: 192.168.9.8#53(192.168.9.8)
 ;; WHEN: Wed Jul 15 22:18:24 EDT 2020
 ;; MSG SIZE  rcvd: 115
SERVFALL DNS服务端处理请求出错
NXDOMAIN    没有请求查询的记录
REFUSED        DNS服务端拒绝客户端的解析请求
NOERROR