2.7 DNS服务器部署


实验环境

两台操作系统:一台可以正常上网(服务端),另一台的IP和上网机的IP在同一网段(测试端

Linux真机
虚拟机采用桥接模式
真机连接WiFi,正常上网

Window真机虚拟机上网
设定虚拟机的网桥搭到无线网卡上,
设定网关DNS,
虚拟机的IP要求和Windows真机的IP在同一网段
需要3台主机

  1. 服务端环境配置

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

  1. 测试端环境配置

在这里插入图片描述

1. DNS名词介绍

  1. 测试端(客户端)

1)修改合适的IP地址
2)修改/etc/resolv.conf

  1. 服务端

1)bind 安装包
2)named 服务名称
3)/etc/named.conf 主配置文件
4)/var/named 数据目录
5)端口是53

  1. 报错信息

1)no servers could be reached:服务无法访问,服务开启?火墙?网络?端口?
2)服务启动失败:配置文件写错,journalctl -xe查询错误

  1. A记录文件
$TTL 1D    //TIME-TO-LIVE(dns地址保存时间长短)
@	IN SOA	dns.westos.org. root.westos.org. (    //SOA授权起始
					2021022501	; serial			//域名版本序列号
					1D			; refresh			//刷新时间(辅助dns)                        
					1H			; retry			//重试时间(辅助dns)
					1W			; expire			//过期时间(辅助dns,查询失败过期停止对辅助域名的应答)
					3H )		; minimum			//A记录最短有效期
				NS		dns.westos.org.
dns				A		192.168.0.18
www				CNAME   bbs.westos.org.			//规范域名
bbs				A		192.168.0.133			//正向解析记录
bbs				A		192.168.0.222			//邮件解析记录
westos.org.		MX	1	mail.westos.org.
mail			A		192.168.0.18    
  1. 解析
dig www.westos.org	//查询正向解析
dig -t mx www.westos.org	//邮件解析记录查询

2. 高速缓存DNS

Q:企业想要连接外网,该怎么做?
A:需要要设定DNS
A:如果user1要访问1.1.1.1,则DNS服务器会将1.1.1.1的数据返回给user1 ;user1已经获得了1.1.1.1的域名等信息,而user2还是需要花费同等的时间再让DNS服务器去解析一次(这样太花费时间

Q:如何避免这种时间损耗?
A:user1已经解析到了地址,那么user2可以去问user1
(相当于:本地解析永远是最快的)
用户1相当于充当了高速缓存DNS

2.1 服务端操作

注意!!服务端不能dig 但是,在服务端的/etc/resolv.conf文件中写入了服务端的IP地址,这代表,服务端主机node4此时可以作为测试机询问服务端(自己)解析数据,因此,该主机node4既可以作为测试端,也可以作为服务端!

  1. 在/etc/resolv.conf配置文件中写入实验机的地址

nameserver 192.168.0.18

vim /etc/resolv.conf

在这里插入图片描述

  1. 开启服务,设定火墙策略

安装dns服务

dnf install bind -y
systemctl enable --now  named

添加火墙策略

firewall-cmd --permanent --add-service=dns
firewall-cmd --reload

在这里插入图片描述在这里插入图片描述在这里插入图片描述

  1. 查看服务端口开放情况

默认只开启了回环接口上的服务,除了本机外的主机无法使用

netstat -antuple | grep named

在这里插入图片描述

  1. 编辑dns服务的配置文件
vim /etc/named.conf
systemctl restart named

1)默认只开启了回环接口上的服务,除了本机外的主机无法使用
要求本机所有网络接口都开启53端口,对外提供dns服务
修改11行:listen-on port 53 { any; };

2)之前的配置文件只要求为本机服务
要求为所有主机提供dns服务
修改19行:allow-query { any; };

3)当做解析www.baidu.com时,需要到.com服务器中获得数据
(dns分级;根域名13个.net .com .cn )
解析www.baidu.com时,去baidu.com中查找数据;如果没有,再去 .com 中查找;如果还是没有,就去根域名中查找
(13个根域名都在美国,每次都去根域名查找,耗费太多的时间
设定在国内的域名解析服务器中查找数据
添加20行:forwarders {114.114.114.114; };从114.114.114.114取得缓存,所有的解析数据获取渠道是114.114.114.114

4)完成以上操作后,这时再去 dig ,还是很耗时,很慢。这是因为,访问时遇到dns劫持
修改35行:dnssec-validation no;关闭dns的认证功能,关闭自检,加速解析速度

vim /etc/named.conf
systemctl restart named

在这里插入图片描述在这里插入图片描述在这里插入图片描述

2.2 测试端操作

测试端node2 会向 服务端node4 询问 解析地址信息

在/etc/resolv.conf配置文件中写入服务端的地址
nameserver 192.168.0.18

vim /etc/resolv.conf

解析地址

dig www.jd.com 

在这里插入图片描述在这里插入图片描述在这里插入图片描述

2.3 已有解析缓存

当测试端/etc/resolv.conf文件中的域名解析服务器已经获得了某个网址的解析信息,测试端再去 dig 获取该网址的解析信息时,耗时为0ms

服务端
在这里插入图片描述

测试端
在这里插入图片描述在这里插入图片描述

3. 正向解析

以上操作都是询问上级的DNS 服务器

我们也可以尝试不去询问上级的服务器

保留:第11和19,35行
注释20行:114,//

3.1 服务端操作

  1. 编辑子配置文件

在主配置文件 /etc/named.conf中,我们可以写入下列内容:
如果添加58行:

zone "westos.org" IN {
        type  master;
	    file "westos.org.zone"
};

在企业,如果这样一个一个写入zone语句,会使主配置文件太长,不方便排错;所以,一般都在子配置文件中写zone语句

子配置文件要写上主配置文件的第11,19,35行

vim  /etc/named.rfc1912.zones
zone "westos.org" IN {            //维护的域名
        type  master;             //当前服务器的主DNS
        file "westos.org.zone"    //域名A记录文件
        allow-update { none; };   //允许更新主机列表
};

在这里插入图片描述在这里插入图片描述

  1. 编辑A记录解析文件

1)生成A记录文件

注意,复制时,也要将A记录文件的权限复制过去
-p:复制权限

cp -p /var/named/named.localhost  /var/named/westos.org.zone

在这里插入图片描述

2)编辑A记录文件

此文件中所有不用“.”结尾的字符串会自动补齐@的值

vim /var/named/westos.org.zone
systemctl restart named

内容解释:
1D:缓存时间为1天
TTL:time to life:缓存时长
@:等于zone后面的内容,比如,此实验的@代表了westos.org
1D;refreash:辅助DNS,自动刷新
1H;retry
1W;expire:如果连续刷新的时间超过1周,就对外宣称DNS 不能服务
3H;minimum:最小时间

NS:域名服务器的名称nameserver
A:ipv4
AAAA:ipv6
在这里插入图片描述在这里插入图片描述

3.2 客户端操作

dig www.westos.org

在这里插入图片描述

dig 中 A记录没有的地址,会自动访问上级DNS服务器

dig www.baidu.com

在这里插入图片描述在这里插入图片描述

4. MX记录

规范域名转换
mx解析记录

4.1 服务端操作

vim /var/named/westos.org.zone
systemctl restart named

在这里插入图片描述在这里插入图片描述

4.2 测试端操作

dig -t mx westos.org

在这里插入图片描述

5. 反向解析

5.1 服务端操作

  1. 编辑子配置文件
vim  /etc/named.rfc1912.zones
zone "0.168.192.in-addr.arpa" IN {
			type master;
			file "192.168.0.ptr";
			allow-update { none; };
};

在这里插入图片描述

  1. 编辑PTR记录,反向解析记录
cp -p /var/named/named.loopback /var/named/192.168.0.ptr
vim /var/named/192.168.0.ptr
systemctl restart named

在这里插入图片描述在这里插入图片描述在这里插入图片描述

6. 双向解析

内网的人解析内网的地址
外网的人解析外网的地址

主配置文件中做2套解析

6.1 服务端操作1

ip addr add 1.1.1.100/24 dev ens160
ip addr show ens160

在这里插入图片描述

6.2 客户端操作

修改IP地址到服务端的新网段
添加新的域名解析服务器1.1.1.100
在这里插入图片描述在这里插入图片描述在这里插入图片描述

6.3 服务端操作2

1)编辑A记录解析文件westos.org.inter

cp -p /var/named/westos.org.zone /var/named/westos.org.inter
vim /var/named/westos.org.inter

在这里插入图片描述在这里插入图片描述
2)编辑双向解析的子配置文件

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

在这里插入图片描述
3)编辑主配置文件

vim /etc/named.conf
systemctl restart named

在这里插入图片描述在这里插入图片描述
4)测试

dig www.westos.org

在这里插入图片描述

7. 辅助DNS,集群

实验环境
服务端:将配置文件中的上一个实验 双向解析 的内容注释掉
(该实验可以和双向解析实验一起做,但是,为了保险,不受到影响,我选择注释掉)
在这里插入图片描述

测试端的IP地址改成192.168.0.200
在这里插入图片描述

辅助DNS的作用:缓解主DNS的压力

7.1 服务端操作

  1. 修改子配置文件
vim /etc/named.rfc1912.zones
zone "westos.org" IN {
		type master;
		file "westos.org.zone";
		allow-update { none; };			//不允许指定客户端更新域
 	    also-notify { 192.168.0.200; };
};

在这里插入图片描述

  1. 修改A记录文件
vim /var/named/westos.org.zone

注意:dns版本数字发生改变,才可以同步更新(只能增量,最多十位)

$TTL 1D
@	IN SOA	dns.westos.org. root.westos.org. (
					2021022501	; serial
					1D			; refresh
					1H			; retry
					1W			; expire
					3H )		; minimum
				NS		dns.westos.org.
dns				A		192.168.0.18
www				CNAME   bbs.westos.org.
bbs				A		192.168.0.133
bbs				A		192.168.0.222
westos.org.		MX	1	mail.westos.org.
mail			A		192.168.0.18    

在这里插入图片描述

  1. 重启服务
systemctl restart named

7.2 测试端操作

  1. 安装dns服务器
dnf install bind -y
  1. 修改配置文件

修改11行:any
修改19行:any
修改35行:no

vim /etc/named.conf

在这里插入图片描述

  1. 修改子配置文件
vim /etc/named.rfc1912.zones
zone "westos.org" IN {					//维护的域名
				type slave;			//dns状态位辅助dns
				masters { 192.168.0.18; };			//主dns
				file "slaves/westos.org.zone";			//同步数据文件
};

在这里插入图片描述

  1. 修改域名服务器的配置文件
vim /etc/resolv.conf
nameserver 192.168.0.200

在这里插入图片描述

  1. 设定火墙策略
firewall-cmd --permanent --add-service=dns
firewall-cmd --reload

在这里插入图片描述

  1. 重启服务
systemctl restart named
  1. 测试
dig www.westos.org

在这里插入图片描述

8. 更新DNS

8.1 服务端操作

  1. 编辑dhcp的配置文件

修改7行:option domain-name "westos.org";
修改8行:option domain-name-servers 192.168.0.18;
修改14行:ddns-update-style inerim,dhcp开启网络更新dns的服务
修改30行:修改IP池

vim /etc/dhcp/dhcpd.conf
systemctl restart dhcpd

在这里插入图片描述在这里插入图片描述

  1. 生成密钥
cd /var/named
dnssec-keygen -a HMAC -SHA256 -b 128 -n host westos
cat Kwestos.+163+10845.private

在这里插入图片描述

  1. 在dhcp的主配置文件中写入密钥
key westos {
        algorithm hmac-sha256;
        secret LbmPE1sc0r3ZQ3HXmsNUNA==;
};

zone westos.org. {
		primary 127.0.0.1;
		key westos;
}

在这里插入图片描述

  1. 在dns的主配置文件中写入密钥
vim /etc/named.conf
key westos {
        algorithm hmac-sha256;
        secret LbmPE1sc0r3ZQ3HXmsNUNA==;
};

在这里插入图片描述

  1. 修改dns的子配置文件
vim /etc/named.rfc1912/zones
zone "westos.org" IN {
		type master;
		file "westos.org.zone";
		allow-update { key westos; };			//允许指定客户端更新westos域
 	    also-notify { 192.168.0.200; };
};

在这里插入图片描述

  1. 重启服务
systemctl restart dhcpd
systemctl restart named

在这里插入图片描述

8.2 测试端操作

  1. 修改网卡配置文件

修改:BOOTPROTO=dhcp
修改:PEERDNS=no

vim /etc/sysconfig/network-scripts/ifcfg-ens160
nmcli connection reload
nmcli connection down ens160
nmcli connection up ens160

在这里插入图片描述在这里插入图片描述

  1. 修改域名服务器的配置文件

写入:nameserver 192.168.0.18

vim /etc/resolv.conf

在这里插入图片描述

  1. 最好修改一下主机的名字(名字里不要有特殊字符)
hostnamectl set-hostname linux.westos.org
  1. 测试
dig linux.westos.org

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_47133613/article/details/114018155
2.7