dns服务器部署

1.关于dns的名词解释
dns:
domain name service(域名解析服务)
作用:上网搜索时能通过域名搜索到地址

实验环境:两台虚拟机,一台作客户端172.25.254.104,一台当服务端172.25.254.204

#关于客户端:#

/etc/resolv.conf ##dns指向文件

nameserver 172.25.254.204

nameserver 如何配置_vim

A记录 ##ip地址叫做域名的Address 记录
SOA ##授权起始主机

#关于服务端#
bind ##安装包
named ##服务名称
/etc/named.conf ##主配置文件
/var/named ##数据目录
端口 ##53

关于报错信息:
1.no servers could be reached ##服务无法访问(服务开启?火墙?网络?端口?)
2.服务启动失败 ##配置文件写错 journalctl -xe查询错误
3.dig 查询状态
NOERROR ##表示查询成功
REFUSED ##服务拒绝访问
SERVFAIL ##查询记录失败,(dns服务器无法到达上级,拒绝缓存)
NXDOMAIN ##此域名A记录在dns中不存在

## 2.dns服务的安装与启用

#安装#(服务端)
dnf install bind.x86_64 -y

#启用#
systemctl enable --now named
firewall-cmd --permanent --add-service=dns
firewall-cmd --reload

服务器上能dig出baidu

nameserver 如何配置_linux_02

vim /etc/named.conf

11 行 listen-on port 53 { any; }; ##在本地所有网络接口上开启53端口

19 行 allow-query { any; }; ##允许查询A记录的客户端列表

34 行 dnssec-validation no; ##禁用dns检测使dns能够缓存外部信息到本机

nameserver 如何配置_SOA_03

nameserver 如何配置_linux_04

systemctl restart named

#测试:客户端

host www.baidu.com ##地址解析命令

dig www.baidu.com ##地址详细解析信息命令

nameserver 如何配置_vim_05

3.高速缓存dns

20 forwarders { 114.114.114.114; };

指定一台主机向外界请求信息,这里用实验中的服务端来向114网段请求dns信息

nameserver 如何配置_运维_06

nameserver 如何配置_nameserver 如何配置_07

当其他主机想要获取dns解析时,可以通过直连的服务器主机来获取,获取解析速度更快,节约用时

nameserver 如何配置_SOA_08

4.dns的正向解析
vim /etc/named.rfc1912.zone

zone "westos.com" IN {		##维护的域名
        type master;		##当前服务器位主dns
        file "westos.com.zone";	##域名A记录文件
        allow-update { none; };	##允许更新主机列表
};

nameserver 如何配置_运维_09

cd /var/named/

cp -p named.localhost westos.com.zone

nameserver 如何配置_nameserver 如何配置_10

$TTL 1D #TIME-TO-LIVE(dns地址保存时间长度)

@       IN SOA  dns.westos.com. root.westos.com (	#SOA授权起始(Start of Authority)
                                        0       ; serial	#域名版本序列号
                                        1D      ; refresh	#刷新时间(辅助dns)
                                        1H      ; retry		#重试时间(辅助dns)
                                        1W      ; expire	#过期时间(辅助dns,查询失败过期停止对辅助域名的应答)
                                        3H )    ; minimum	#A记录最短有效期
                NS      dns.westos.com.
dns             A       192.168.0.20
www             CNAME   westos.a.westos.com.		##规范域名
westos.a        A       192.168.0.111			##正向解析记录
westos.a        A       192.168.0.112			
westos.com.     MX 1    192.168.0.20.			##邮件解析记录

nameserver 如何配置_SOA_11

systemctl restart named

dig www.westos.com #查询正向解析

dig -t mx westos.com #邮件解析记录查询

nameserver 如何配置_SOA_12

NOERROR

表示查询成功

REFUSED

服务拒绝访问

SERVFAIL

查询记录失败,(dns服务器无法到达上级,拒绝缓存)

NXDOMAIN

此域名A记录在dns中不存在

MX 1 #邮件地址解析

CNAME #规范域名解析

nameserver 如何配置_nameserver 如何配置_13

nameserver 如何配置_nameserver 如何配置_14

5.dns的反向解析
vim /etc/named.rfc1912.zones

zone "0.168.192.in-addr.arpa" IN {
	type master;
	file "192.168.0.ptr";
	allow-update { none; };
};

cp时-p是指把文件权限一并复制过来

nameserver 如何配置_SOA_15

nameserver 如何配置_linux_16

cd /var/named/
cp -p named.loopback 192.168.0.ptr

vim 192.168.0.ptr

@	IN SOA	dns.westos.com. root.westos.com. (
					0	; serial
					1D	; refresh
					1H	; retry
					1W	; expire
					3H )	; minimum
	NS	dns.westos.com.
dns	A	192.168.0.20
11	PTR	www.westos.com.
12	PTR	bbs.westos.com.
13	PTR	news.westos.com.

nameserver 如何配置_SOA_17

systemctl restart named

测试:

dig -x 172.25.254.111

nameserver 如何配置_运维_18

6.dns的双向解析

实验环境:

客户端2个网段

172.25.254.104

1.1.1.204

nameserver 如何配置_linux_19

服务端2个网段的ip

172.25.254.204

1.1.1.104

nameserver 如何配置_vim_20

在172.25.254.104的客户主机中
vim /etc/resolv.conf
nameserver 172.25.254.204

在1.1.1.204 的客户主机中
vim /etc/resolv.conf
nameserver 1.1.1.104

配置方式:

cd /var/named/

cp -p westos.com.zone westos.com.inter

vim westos.com.inter

nameserver 如何配置_linux_21

$TTL 1D
@	IN SOA	dns.westos.com. root.westos.com (
					0	; serial
					1D	; refresh
					1H	; retry
					1W	; expire
					3H )	; minimum
		NS	dns.westos.com.
dns		A	172.25.254.20
www		CNAME	westos.a.westos.com.
westos.a	A	172.25.254.111
westos.a	A	172.25.254.112
westos.com.	MX 1	172.25.254.20.	#mail exchanger

nameserver 如何配置_linux_22

cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.inters
vim /etc/named.rfc1912.inters

zone "westos.com" IN {
	type master;
	file "westos.com.inter";
	allow-update { none; };
};

分别指向自己的配置文件

nameserver 如何配置_SOA_23


nameserver 如何配置_运维_24

vim /etc/named.conf
注释掉

#zone "." IN {
##       type hint;
##       file "named.ca";
##};
#
##include "/etc/named.rfc1912.zones";
##include "/etc/named.root.key";

注释后在后面添加

view localnet {
        match-clients { 172.25.254.0/24; };
        zone "." IN {
                type hint;
                file "named.ca";
        };
        include "/etc/named.rfc1912.zones";
        include "/etc/named.root.key";
};

view internet {
        match-clients { any; };
        zone "." IN {
                type hint;
                file "named.ca";
        };
        include "/etc/named.rfc1912.inters";
        include "/etc/named.root.key";
};

systemctl restart named

测试:
分别在2个网段的主机中作同样域名的地址解析
得到的A记录不同

当dns指向1.1.1.104时

nameserver 如何配置_vim_25

当dns指向172.25.254.204时

nameserver 如何配置_运维_26

7.dns集群

主dns:

主动通知辅助dns主机

nameserver 如何配置_nameserver 如何配置_27

vim /var/named/westos.com.zone

$TTL 1D
@       IN SOA  dns.westos.com. root.westos.com (
                                        2020112001      ; serial	##每次修改A记录文件需要
                                        1D      ; refresh		##变更此参数的值
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum

nameserver 如何配置_nameserver 如何配置_28

slave dns:
dnf install bind -y
firewall-cmd --add-service=dns

vim /etc/named.conf

listen-on port 53 { any; };

allow-query { any; };

dnssec-validation no;

nameserver 如何配置_nameserver 如何配置_29

nameserver 如何配置_SOA_30

vim /etc/named.rfc1912.zone

zone "westos.org" IN {
        type slave;			##dns状态位辅助dns
        masters { 172.25.254.204; };	##主dns
        file "slaves/westos.org.zone";	##同步数据文件
};

nameserver 如何配置_vim_31

systemctl restart named

nameserver 如何配置_运维_32

8.dns的更新

dns基于ip地址的更新:
在dns中设定:
vim /etc/named.rfc1912.zones

zone "westos.com" IN {
        type master;
        file "westos.com.zone";
        allow-update { 172.25.254.104; };		##允许指定客户端更新westos域
        also-notify { 172.25.254.204; };
};

测试:
在172.25.254.104主机

[root@rhel7_node1 ~]# nsupdate   #修改dns服务器解析规则的命令
> server 172.25.254.204
> update add hello.westos.com 86400 A 172.25.254.111	##新曾A记录
> send 
> update delete hello.westos.com			##删除A记录
> send

dns基于key更新的方式:

dnssec-keygen -a HMAC-SHA256 -b 128 -n HOST westos

cp -p /etc/rndc.key /etc/wesots.key

vim /etc/wesots.key

key “westos” {

algorithm hmac-sha256;

secret “SB1tQcLaWeroU9lGW21zeA==”;

};

nameserver 如何配置_SOA_33

nameserver 如何配置_SOA_34

把公钥和私钥发送给104主机

nameserver 如何配置_SOA_35

vim /etc/named.conf

43 include "/etc/wesots.key";  #在43行把key文件加上去

vim /etc/named.rfc1912.zones

zone "westos.com" IN {
        type master;
        file "westos.com.zone";
        allow-update { key westos; };    ##允许有该密码的可以进行更新
        also-notify { 172.25.254.104; };
};

systemctl restart named

[root@rhel7_node1 ~]# nsupdate -k /mnt/Kwestos.+163+26695.private 
> server 172.25.254.104
> update add test.westos.org 86400 A 172.25.254.245
> send 
> quit

nameserver 如何配置_nameserver 如何配置_36