目录

linux下的DNS服务器部署详细

linux下的DNS服务器部署(详细)

DNS服务器

什么是DNS?

DNS:

域名系统英文Domain Name System缩写DNS是互联网的一项服务
它作为将域名和IP地址相互映射的一个分布式数据库能够使人更方便地访问互联网
DNS使用UDP端口53
当前对于每一级域名长度的限制是63个字符域名总长度则不能超过253个字符

DNS作用:

当我们在浏览器输入www.baidu.com时计算机并不知道谁是baidu
计算机只能识别ip所有我们需要将www.baidu.com这个域名解析为ip才能继续通信
dns就提供了这个解析功能

DNS分类:

1.权威DNS
权威DNS是经过上一级授权对域名进行解析的服务器同时它可以把解析授权转授给其他人
如COM顶级服务器可以授权dns.com这个域名的的权威服务器为NS.ABC.COM
同时NS.ABC.COM还可以把授权转授给NS.DDD.COM
这样NS.DDD.COM就成了ABC.COM实际上的权威服务器了
平时我们解析域名的结果都源自权威DNS
比如dns.com的权威DNS服务器就是帝恩思的ns1.dns.com ns2.dns.com
权威名称服务器的类型包括:
Master : 包含原始区域数据有时称作 主要 名称服务器
Slave : 备份服务器通过区域传送从 Master 服务器获得的区域数据的副本有时称作 次要 名称服务器

2.递归DNS也叫本地DNS):
其核心功能一个是缓存一个是递归查询
收到域名查询请求后其首先看本地缓存是否有记录
如果没有则一级一级的查询根顶级域二级域……直到获取到结果然后返回给用户
日常上网中运营商分配的DNS即这里所说的递归DNS
//
负责接受用户对任意域名查询并返回结果给用户
递归DNS可以缓存结果以避免重复向上查询
我们平时使用最多的就是这类DNS他对公众开放服务一般由网络运营商提供
递归DNS一定要有可靠的互联网连接方可使用
比如谷歌的8.8.8.8和8.8.4.4以及114的114.114.114.114和114.114.115.115都属于这一类DNS
本地电脑上设置的DNS就是这类DNS

3.转发DNS:
转发DNS是一种特殊的递归
如果本地的缓存记录中没有相应域名结果时
其将查询请求转发给另外一台DNS服务器由另外一台DNS服务器来完成查询请求
//
负责接受用户查询并返回结果给用户
但这个结果不是按标准的域名解析过程得到的而是直接把递归DNS的结果转发给用户
它也具备缓存功能
他主要使用在没有直接的互联网连接但可以连接到一个递归DNS那里这时使用转发DNS就比较合适
其缺陷是直接受递归DNS的影响服务品质较差
比如我们用的路由器里面的DNS就是这一类查看本地电脑的DNS一般都是192.168.1.1

DNS解析过程:

比如一个域名为abc.com是想看到这个现HTTP服务如果要访问网站就要进行解析
首先在域名注册商那里通过专门的DNS服务器解析到一个WEB服务器的一个固定IP上211.214.1.XXX
然后通过WEB服务器来接收这个域名把abc.com这个域名映射到这台服务器上
那么输入abc.com这个域名就可以实现访问网站内容了

人们习惯记忆域名但机器间互相只认IP地址域名与IP地址之间是对应的
它们之间的转换工作称为域名解析域名解析需要由专门的域名解析服务器来完成整个过程是自动进行的
域名解析协议DNS用来把便于人们记忆的主机域名和电子邮件地址映射为计算机易于识别的IP地址
DNS是一种c/s的结构
客户机就是用户用于查找一个名字对应的地址而服务器通常用于为别人提供查询服务

DNS解析方式:逐级解析

根域名 .root 或者 . 通常是省略的
顶级域名 .com.cn 
次级域名 baidu.com 里的 baidu这个是用户可以进行注册购买的
主机域名比如 baike.baidu.com 里的baike这个是用户可分配的

主机名.次级域名.顶级域名.根域名baike.baidu.com.root

##根域名服务器都在美国,一共有13个

DNS记录类型(域名解析规则):

A地址记录Address),返回域名指向的IP地址

NS域名服务器记录Name Server),返回保存下一级域名信息的服务器地址
该记录只能设置为域名不能设置为IP地址

MX邮件记录Mail eXchange),返回接收电子邮件的服务器地址

CNAME规范名称记录Canonical Name),返回另一个域名即当前查询的域名是另一个域名的跳转详见下文

PTR逆向查询记录Pointer Record),只用于从IP地址查询域名详见下文

DNS解析报错信息:

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

SOA:授权起始主机,SOA给出如图答案意思是没有这样一台主机

https://i-blog.csdnimg.cn/blog_migrate/f04a47a07d9af80d8be586e349d1d6db.png

百度域名劫持事件

2010年1月12日上午7时40分(UTC+8时),有网民发现百度首页登陆发生异常情况。上午8时后,在中国内地大部分地区和美国、欧洲等地都无法以任何方式正常登陆百度网站,而百度域名http://baidu.com的WHOIS信息中NS服务组被无故更改,网站的域名被更换至雅虎属下的两个域名服务器,修改时间为2010年1月11日。部分网民更发现网站页面被篡改成黑色背景以及伊朗国旗,同时显示“This site has been hacked by Iranian Cyber Army”(该网站已被伊朗网军入侵)字样以及一段阿拉伯文字,然后跳转至英文雅虎主页,但仍可以利用百度IP地址http://202.108.22.5/正常登陆。

地址解析命令

host www.baidu.com ##地址解析命令,内容简略!
dig www.baidu.com ##地址详细解析信息命令,内容详细!

dig

https://i-blog.csdnimg.cn/blog_migrate/360d26e098dc92f3d3b34bdae621a7cb.png

host

https://i-blog.csdnimg.cn/blog_migrate/3c11028445d8aabcfd1a6dde038429b0.png

配置高速缓存DNS服务器

所谓高速缓存dns就是:

内网内的dns服务器主机(非权威dns)把缓存下来的数据共享给其他内网主机。

只有第一次访问时间较长,访问后就会保存下来,之后内网内使用该dns服务器的主机再次访问就可以直接从缓存里取,速度会非常快。

dns的安装及开启:

dnf install bind.x86_64 -y 		#安装
#Berkeley Internet Name Domain (BIND)

systemctl enable --now named	#启用dns服务,服务名称叫named
firewall-cmd --permanent --add-service=dns #火墙设置
firewall-cmd --reload			#重启火墙
setenforce 0					#调整内核级火墙为警告模式

配置dns服务使内网主机可以访问其dns资源:

netstat -antlupe | grep named				#可以查看dns开放端口

vim /etc/named.conf							#编辑dns配置文件,对文件做以下修改
11行左右 listen-on port 53 { any; }; 		#在本地所有网络接口上开启53端口
19行左右 allow-query { any; }; 				#允许查询A记录的客户端列表,提供服务给所有主机
20行左右 forwarders { 114.114.114.114; };	#将源换为国内的,指定资源从114上取,这样速度会快一点
34行左右 dnssec-validation no; 				#禁用dns检测使dns能够缓存外部信息到本机,开着会因为检测不合规返回不了“答案”
##每一个字符串一定要用分号结尾

systemctl restart named						#重启服务

https://i-blog.csdnimg.cn/blog_migrate/feceb9a4ac2b08bc8225b4efde4aab08.png

https://i-blog.csdnimg.cn/blog_migrate/7226a165b9edc9ca6f30124c3bb0275a.png

使用内网其他主机测试:

vim /etc/resolv.conf 			#编辑dns指向文件
nameserver 192.168.187.129		#添加我们配置的dns服务器的ip

dig www.baidu.com				#解析测试我们的dns服务器配置是否成功

https://i-blog.csdnimg.cn/blog_migrate/93c152e9d6d1787dda4b75252bd14950.png

显示NOERROR就是没有问题!

https://i-blog.csdnimg.cn/blog_migrate/8769049e8ab73fbbd5f04cf860f148b3.png

DNS的正向解析

企业内部也需要对外提供dns做相应的解析工作!

准备工作:

在上个高速缓存配置的基础上,先编辑主配置文件 vim /etc/named.conf ,将源注释掉

https://i-blog.csdnimg.cn/blog_migrate/c942d402875525feba0b1f14deafbb50.png

然后使用命令 nm-connection-editor 将dns服务器在的主机和测试主机的ip都改为静态ip

dns服务器的IP改成:192.168.187.129

测试主机IP改为:192.168.187.136

https://i-blog.csdnimg.cn/blog_migrate/20aceb5c74f89665b0b2b24444563c67.png

主机记录A记录

第一步:添加域名语句块

vim /etc/named.rfc1912.zone
##和主配置文件里的内容一样,里边有要维护域名的语句块
##主配置文件读取域名信息就会到这个文件里读取
##我们可以在这个文件里添加我们要维护的域名的语句块
添加
zone "lucky.com" IN { 			#维护的域名
 type master; 					#当前服务器位主dns
 file "lucky.com.zone"; 		#域名A记录文件,要解析域名时看的是这个文件
 allow-update { none; }; 		#允许更新主机列表
};

https://i-blog.csdnimg.cn/blog_migrate/fc640c61e00d5229e62301e1a748a2a6.png

第二步:编辑域名A记录文件

cd /var/named/				#进入数据目录
cp -p named.localhost lucky.com.zone		#复制模板得到我们要的域名A记录文件,一定要加-p参数,所属组相同

vim lucky.com.zone			#编辑A记录文件

A记录文件内容及解释如下
$TTL 1D #TIME-TO-LIVE(dns地址保存时间长度)
@ IN SOA dns.lucky.com. root.lucky.com ( 		#SOA授权起始(Start of Authority),谁授权的
#@符的值就是/etc/named.rfc1912.zone文件里我们编写的域名语句块引号里的内容
#不是以.结尾的字符串都会被自动补齐@符的值
 0 ; serial 			#域名版本序列号,下文dns集群会用到,有详细解释
 1D ; refresh 			#刷新时间(辅助dns)
 1H ; retry 			#重试时间(辅助dns)
 1W ; expire 			#过期时间(辅助dns,查询失败过期停止对辅助域名的应答)
 3H ) ; minimum 		#A记录最短有效期
 		NS 	dns.lucky.com.
dns 	A 	192.168.187.129
lucky.a A 	192.168.187.97 		##正向解析记录
lucky.a A 	192.168.187.99

复制并编辑A记录文件

https://i-blog.csdnimg.cn/blog_migrate/ca77b6c845408868faeb4deab2b62886.png

https://i-blog.csdnimg.cn/blog_migrate/7cc93c687ad792f5c2615cebe122049e.png

第三步:重启并在另一台内网主机测试

systemctl restart named

另一台主机先检查下dns服务器是不是我们设置的

https://i-blog.csdnimg.cn/blog_migrate/c07bb835fd1e9767aeda86afe6150ea2.png

然后 dig www.lucky.com ,如图测试成功!

##多个ip会自动做轮调

https://i-blog.csdnimg.cn/blog_migrate/b27c2de5633b2dfc041cc93b33e6efaf.png

规范域名转换CNAME记录

当内部主机名不规范时,对外开放的是规范域名。

那么对外开放的域名只有一个,将对外开放的域名转换到内部主机再做解析!

dns服务器端
vim /var/named/lucky.com.zone			#编辑A记录文件

添加
www     CNAME   www.a.lucky.com.
#www.a.lucky.com.就是不规范域名

systemctl restart named		#重启dns

客户端
dig www.lucky.com			#另一台主机测试

编辑文件

https://i-blog.csdnimg.cn/blog_migrate/dfe3c94d0a435a90cd72166253992864.png

重启

https://i-blog.csdnimg.cn/blog_migrate/4735142a997950e6520c24a67c9a2ed4.png

另一台主机测试,如图设置成功!

https://i-blog.csdnimg.cn/blog_migrate/a92149e5730cf9b3b7cb02b74be95a14.png

邮件解析MX记录

什么是MX记录?

当我们在发送邮件时,假设我们用的163.com邮箱,需要将163.com解析成ip才能进行数据传输,这个ip就叫这个域的mx记录(负责邮件发送和接收的ip)。

dns服务器端:

vim /var/named/lucky.com.zone			#编辑A记录文件

添加后保存退出
lucky.com. MX 1 192.168.187.129.


systemctl restart named		#重启dns

添加时写的是服务器ip

https://i-blog.csdnimg.cn/blog_migrate/c6ec6beda3f3ed158c3b7e6cd172aef9.png

客户端:

dnf install postfix mailx -y	#安装提供邮件投递协议的软件postfix和发送邮件的客户端mailx

systemctl start postfix			#开启postfix服务

dig -t mx lucky.com				#查看mx记录

查看mx记录,没有问题

https://i-blog.csdnimg.cn/blog_migrate/a6cf3130d3e4293317a4997436822b2e.png

发邮件给root@lucky.com(自行类比@qq.com)

##因为在dns服务器端25端口是自用的(回环),所以不会收到邮件,所以我们在测试端看发送队列看下效果即可

##如图即是正向解析成功!

https://i-blog.csdnimg.cn/blog_migrate/bfd57b4103caf4dcaa44bde2936d2a43.png

DNS的反向解析

逆向查询记录PTR记录

什么是PTR记录?

邮件接收方只会显示发送方的ip,需要做反向解析,显示真实的域名,让用户知道邮件从哪儿来的。从ip到域名就是ptr记录。

dns服务器端:

vim /etc/named.rfc1912.zones			#编辑文件
添加
zone "187.168.192.in-addr.arpa" IN {
        type master;
        file "192.168.187.ptr";
        allow-update { none; };
};

cd /var/named/
cp -p named.loopback 192.168.187.ptr		#复制模板得到ptr文件

vim 192.168.187.ptr							#编辑ptr记录文件
修改成下文
$TTL 1D
@       IN SOA  dns.lucky.com. rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      dns.lucky.com.
dns     A       192.168.187.129
233     PTR     www.lucky.com.
#反向解析IP192.168.187.233应该得到域名www.lucky.com

systemctl restart named						#重启

编辑named.rfc1912.zones文件

https://i-blog.csdnimg.cn/blog_migrate/120dfdcb25d39f0e0f21ee6cae7c8ad5.png

编辑ptr记录文件

https://i-blog.csdnimg.cn/blog_migrate/c9d32c6454961ce07d118cb99b4fbf92.png

客户端:

dig -x 192.168.187.233 测试如图成功!

https://i-blog.csdnimg.cn/blog_migrate/869bab41d447346fac7982311e1319f4.png

DNS的双向解析

双向解析:

在内网中的主机解析得到内网的ip,

在外网中的主机解析得到外网的ip。

实验环境:

我们需要一台双网卡主机模拟内网,一台单网卡主机模拟外网

dns服务器端做内网主机:

添加一个网卡,将ip设为192.168.0.0/24网段的

原来的192.168.187.0/24网段的做内网ip

https://i-blog.csdnimg.cn/blog_migrate/1dcea31bfd66c74e0ae6f8f72a209c06.png

单网卡主机做外网主机:

ip改为192.168.0.0/24网段的,模拟外网主机,并且将网关设为dns服务器端192.168.0.0/24网段的ip,保证两台主机能相互通信

https://i-blog.csdnimg.cn/blog_migrate/b08617cf872a25d2cc7c13e1b60fab9b.png

两台主机更改完网络后都需重启网络
nmcli connection reload
nmcli connection up 网络名
例如客户端网卡名为ens160那么就是
nmcli connection up ens160

设置完后ping一下通了即可

https://i-blog.csdnimg.cn/blog_migrate/9a502b878aae6dd7983b1a618ea46dc3.png

dns服务器端(内网主机):

vim /etc/named.conf		#编辑主配置文件
将下图内容注释掉

https://i-blog.csdnimg.cn/blog_migrate/4e95727c34a1c9e3a1ff2b2610f8b78c.png

注释掉后在下边添加如下内容
view localnet {
        match-clients { 192.168.187.0/24; };
        zone "." IN {
                type hint;
                file "named.ca";
        };
        include "/etc/named.rfc1912.zones";
};

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

https://i-blog.csdnimg.cn/blog_migrate/c3e5ddb06d0a5c12e28bddd2002af3a2.png

拷贝/etc/named.rfc1912.zones文件得到/etc/named.rfc1912.zones.inter文件
cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.zones.inter
vim /etc/named.rfc1912.zones.inter		#编辑外网配置文件
做如下图更改

https://i-blog.csdnimg.cn/blog_migrate/f00917b014d3f4c7e4fc9f2f76d3d0b6.png

拷贝A记录文件得到外网的A记录文件
cp -p /var/named/lucky.com.zone /var/named/lucky.com.inter
vim /var/named/lucky.com.inter		#编辑外网A记录文件
做如下图更改
#把ip都改成我们想让外网主机访问时看到的ip

https://i-blog.csdnimg.cn/blog_migrate/3c24da6d41e4992f3edc9d7e19d73c3b.png

重启 systemctl restart named

vim /etc/resolv.conf	#添加dns服务器ip
nameserver 192.168.187.129
#因为更改过网络,所以可能需要重新添加

https://i-blog.csdnimg.cn/blog_migrate/985328b5193082a1e8fa3f0cfdea92e7.png

客户端(外网主机):

vim /etc/resolv.conf	#添加dns服务器ip
nameserver 192.168.187.129
#因为更改过网络,所以可能需要重新添加

https://i-blog.csdnimg.cn/blog_migrate/985328b5193082a1e8fa3f0cfdea92e7.png

测试:

dns服务器端(内网主机):

dig -x 192.168.187.233 测试,如图显示的内网ip,成功!

https://i-blog.csdnimg.cn/blog_migrate/27878b269cb97810a9b6e36a265b3afa.png

客户端(外网主机):

dig -x 192.168.187.233 测试,如图显示的外网ip,成功!

https://i-blog.csdnimg.cn/blog_migrate/a45a6a419956c4aca62874dcd0e8cb2f.png

DNS集群

当我们的主dns服务器访问量过大时,服务器不足以支撑这么大的访问量,我们可以增加n台辅助dns来分担访问压力。

我们下面以增加一台辅助dns来实验如何使主辅dns同步更新!

辅助dns:

我以上面用过的客户端主机为辅助dns

先将其IP改为和主dns一个网段的,192.168.187.136

https://i-blog.csdnimg.cn/blog_migrate/5bff6706575bde30b41947893c986678.png

更改完网络后需重启网络
nmcli connection reload
nmcli connection up ens160
dnf install bind.x86_64 -y 		#也安装dns
#Berkeley Internet Name Domain (BIND)

systemctl enable --now named	#启用dns服务,服务名称叫named
firewall-cmd --permanent --add-service=dns #火墙设置
firewall-cmd --reload			#重启火墙
setenforce 0					#调整内核级火墙为警告模式

vim /etc/named.conf				#编辑主配置文件
注释掉111219行

vim /etc/named.rfc1912.zones	#在文件中加入域名语句块
添加
zone "lucky.com" IN {
        type slave;				#类型是辅助dns
        masters { 192.168.187.129; };	#主dns
        file "slaves/lucky.com.zone";	#数据同步到slaves目录下
};                

编辑主配置文件注释掉如图三行,就相当于全部都开启(any)

https://i-blog.csdnimg.cn/blog_migrate/b0a0e08a22bb12492fc021daccfb9afd.png

添加域名语句块

https://i-blog.csdnimg.cn/blog_migrate/969df39583c09dc14391e8b7fc9b55d1.png

vim /etc/resolv.conf		
 nameserver 192.168.187.136  	#将dns服务器改为自己的,为了看效果
 
 systemctl restart named	#重启dns服务

https://i-blog.csdnimg.cn/blog_migrate/f3855b912696c96bb4e4bc5e004db581.png

主dns:

我以上面配好的dns服务器192.168.187.129这台主机为主dns

先去掉上个实验的配置防止影响
vim /etc/named.conf		#编辑主配置文件
注释掉如下图内容

https://i-blog.csdnimg.cn/blog_migrate/a08d982af6ba216f0752af5df0c7d49e.png

vim /etc/named.rfc1912.zones	
在域名语句块内添加如下内容
also-notify { 192.168.187.136; };		#辅助dns的ip

systemctl restart named				#重启dns

https://i-blog.csdnimg.cn/blog_migrate/1676dd2681c5f1faf81db33ce803f79a.png

测试:

辅助dns:

dig www.lucky.com 得到如图结果:

https://i-blog.csdnimg.cn/blog_migrate/250ceaad000e5c76fd764801e5827d7f.png

主dns:

vim /var/named/lucky.com.zone	#编辑A记录文件
更改下ip和serial值
之后在辅助dns端重新dig看是否同步成功

https://i-blog.csdnimg.cn/blog_migrate/ed8c6352e49e6f9898878bd8c11ff163.png

serial值的作用:
每更改一次该值并重启主dns服务后辅助dns就会重新同步A记录
即重新同步域名所对应ip
一天可以改99次
值可以任意写
!!!!!但只能增量更改!!!!!

其他值解释
 1D ; refresh 			#刷新时间(辅助dns)
 1H ; retry 			#重试时间(辅助dns)
 1W ; expire 			#过期时间(辅助dns,查询失败过期停止对辅助域名的应答)
 3H ) ; minimum 		#A记录最短有效期

辅助dns:

dig www.lucky.com 得到如图结果:

测试成功!ip同步成功!

https://i-blog.csdnimg.cn/blog_migrate/5d904ad1f85e6884d9a25533232520af.png

DDNS(DHCP+DNS)动态域名解析

dhcp能自动分配ip,当重新分配时怎么让dns知道ip重新分配了呢?ddns可以解决这个问题,实现动态域名解析。

更新原理:制作一个key,让dhcp能更新dns的A记录,key是更新域名的钥匙。

在/var/named目录下生成一个更新数据,在系统读取A记录时会把.jnl结尾的更新文件与A记录文件整合实现。

ddns服务端:

dnf install dhcp-server -y		#安装dhcp服务器
cp /usr/share/doc/dhcp-server/dhcpd.conf.example /etc/dhcp/dhcpd.conf		#复制模板得到配置文件
vim /etc/dhcpd/dhcpd.conf		#编辑dhcp配置文件
做如下图修改
#修改最终结果是剩31行

https://i-blog.csdnimg.cn/blog_migrate/2cd41157d08c70bd875566e04d36a6b3.png

systemctl start dhcpd		#开启dhcp
接下来制作更新域的钥匙key
#/etc/rndc.key是dns默认使用的key模板,用的是SHA-256加密,所以我们下面也要使用SHA-256加密
cd /mnt/
dnssec-keygen -a HMAC-SHA256 -b 128 -n HOST luckykey
#SHA256加密方式是对称的,公钥和私钥是一样的

https://i-blog.csdnimg.cn/blog_migrate/69091db58a84c2533fa1953e3e534ad2.png

cp -p /etc/rndc.key /etc/lucky.key		#复制key模板得到key文件
vim /etc/lucky.key						#编辑key文件
改成如下内容
key "luckykey" {						#我们前面取的key名字
        algorithm hmac-sha256;			#加密方式
        secret "/P/GVMVRb/dNIjtr2qYvMg==";		#我们前面生成的密钥,最好复制粘贴
};

https://i-blog.csdnimg.cn/blog_migrate/1c8390397e41285ab7bf9226f9b671f9.png

vim /etc/named.conf				#更改dns主配置文件加key文件指向
在第45行左右添加key文件指向
include "/etc/lucky.key";

https://i-blog.csdnimg.cn/blog_migrate/fdb878225fda8e806299e61d2e7edcc0.png

vim /etc/named.rfc1912.zones		#域名语句块在这里
在域名语句块里添加key更新
如下图

https://i-blog.csdnimg.cn/blog_migrate/f069ddee9bede539d47a02dc05114aca.png

systemctl restart named		#重启dns

接下来测试一下该key能否更新dns
nsupdate -k Kluckykey.+163+37031.private		#-k指定key,不指定send会失败
> update add hello.lucky.com 86400 A 192.168.187.111	#新增A记录
> send													#成功
> update del hello.lucky.com							#删除A记录
> send													#成功
> quit													#退出
测试成功继续下一步

https://i-blog.csdnimg.cn/blog_migrate/508c623a7633523694c93f7c20fbe0ec.png

vim /etc/dhcp/dhcpd.conf 			#编辑dncp配置文件

打开dns更新的开关”:
第14行取消注释并改为interim网络更新):
ddns-update-style interim;

在最后指定key相当于让dhcp拿到了dns更新的钥匙”:
key luckykey {							#我们前面取得key的名字,别写错了
  algorithm hmac-sha256;
  secret /P/GVMVRb/dNIjtr2qYvMg==;		#最好直接复制前面我们生成的key文件里的防止出错
};

在最后加入key要更新的域
zone lucky.com. {
  primary 127.0.0.1;					#dns在本机,所以直接写本机回环接口就可以了
  key luckykey;							#我们前面取得key的名字,别写错了
}

https://i-blog.csdnimg.cn/blog_migrate/b528a083b5b952b5dc5c7710aab453e5.png

删掉jnl文件不然前面的更新测试会影响):
rm -fr /var/named/lucky.com.zone.jnl
重启两个服务
systemctl restart dhcpd
systemctl restart named

https://i-blog.csdnimg.cn/blog_migrate/98b8e38b7c8413c5affd9aa7e39159a3.png

客户端:

首先要关闭VM虚拟机的本地dhcp服务,如下图操作即可:

##如果是真机是linux系统直接在虚拟机里改配置文件即可

https://i-blog.csdnimg.cn/blog_migrate/2581d417bafb4052cb932b8951ecce3b.png

选择更改设置

https://i-blog.csdnimg.cn/blog_migrate/7065c3670de3d3221d8c8e8222bc4a89.png

取消勾选本地dhcp服务

https://i-blog.csdnimg.cn/blog_migrate/b0aa4abd9f6e46e4f62d1027a07be825.png

然后将我们之前设置的静态ip改为dhcp
nm-connection-editor

https://i-blog.csdnimg.cn/blog_migrate/b164301fbdfc53b2d97866fbeb233764.png

测试下我们是否关闭本地dhcp成功
nmcli connection up ens160		#重启网卡
cat /etc/resolv.conf			#看下dns服务用的谁的

如图是用的我们自己配置的,设置成功!

https://i-blog.csdnimg.cn/blog_migrate/cd323b6e6121c8d5e2e6b6115ac2bbff.png

改下主机名方便测试
hostnamectl									#查看主机名
hostnamectl set-hostname nodeb.lucky.com	#改主机名为nodeb.lucky.com

https://i-blog.csdnimg.cn/blog_migrate/c554ab7ef8063170adafe55c3440eb4d.png

测试:

客户端:

dig nodeb.lucky.com
ifconfig
看两个出来的ip一样否

如图是一样的

https://i-blog.csdnimg.cn/blog_migrate/50524d0a34379ad085226222f862a16a.png

ddns服务端:

vim /etc/dhcp/dhcpd.conf		#编辑dncp配置文件
改一下ip范围
我改为了77-90如下图

https://i-blog.csdnimg.cn/blog_migrate/510e19bb0822528f94e10e2bcf1927f7.png

重启下dhcp服务
systemctl restart dhcpd

https://i-blog.csdnimg.cn/blog_migrate/60b83e1f51a1521364b1a106f9c0c3f7.png

客户端:

nmcli connection up ens160		#重启网卡,那么会重新获取ip
dig nodeb.lucky.com	
ifconfig
看两个出来的ip一样否

如图,重新获取的ip是我们上面重新设置的范围内的,dns解析也是同步的!

https://i-blog.csdnimg.cn/blog_migrate/2f2e7710c56d92300124c3f4a5f46383.png

测试成功!