RHCE——八、DNS域名解析服务器
RHCE
- 一、概述
- 1、产生原因
- 2、作用
- 3、连接方式
- 4、因特网的域名结构
- 4.1 拓扑
- 4.2 分类
- 4.3 域名服务器类型划分
- 二、DNS域名解析过程
- 1、分类
- 2、解析图:
- 2.1 图:
- 2.2 过程分析
- 三、搭建DNS域名解析服务器
- 1、概述
- 2、安装软件
- 3、/bind服务中三个关键文件
- 4、配置文件分析
- 5、区域配置文件
- 5.1 作用
- 5.2 区域配置文件示例分析
- 6、正向解析资源文件
- 6.1 概述
- 6.2 模板内容分析
- 6.3 域名解析记录分析
- 7、反向解析资源文件
- 7.1 实验1:正向解析
- 准备工作
- DNS解析配置
- 注意:第三步数据配置文件可以进行精简
- 7.2 实验2:反向解析
- 四、部署DNS从服务器
- 1、作用
- 2、实验:主从DNS服务器
- 2.1 完全区域传送
- 2.2 增量区域传送
- 2.3 注意
- 五、练习:配置dns服务的正反向解析
- 正向解析
- 反向解析
一、概述
1、产生原因
- IP 地址:是互联网上计算机唯一的逻辑地址,通过 IP 地址实现不同计算机之间的相互通信,每台联网计算机都需要通过 IP 地址来互相联系和分别,但由于 IP 地址是由一串容易混淆的数字串构成,人们很难记忆所有计算机的 IP 地址,这样对于我们日常工作生活访问不同网站是很困难的。
- 基于这种背景,人们在 IP 地址的基础上又发展出了一种更易识别的符号化标识,这种标识由人们自行选择的字母和数字构成,相比 IP 地址更易被识别和记忆,逐渐代替 IP 地址成为互联网用户进行访问互联的主要入口。这种符号化标识就是域名
- 域名虽然更易被用户所接受和使用,但计算机只能识别纯数字构成的 IP 地址,不能直接读取域名。因此要想达到访问效果,就需要将域名翻译成 IP 地址。而 DNS 域名解析承担的就是这种翻译效果
2、作用
- DNS(Domain Name System)是互联网上的一项服务,用于将域名和IP地址进行相互映射,使人更方便的访问互联网
- 正向解析:域名->IP
- 反向解析:IP->域名
3、连接方式
- DNS使用53端口监听网络
- 查看方法:
- DNS默认以UDP这个较快速的数据传输协议来查询,但没有查询到完整的信息时,就会再次以TCP协议重新查询则启动DNS时,会同时启动TCP以及UDP的port53
4、因特网的域名结构
4.1 拓扑
- 由于因特网的用户数量较多,则因特网命名时采用层次树状结构的命名方法。
- 域名(domain name):任何一个连接在因特网上的主机或路由器,都有一个唯一的层次结构的名称
- 域(domain):是名字空间中一个可被管理的划分结构。
- 注意:域名只是逻辑概念,并不代表计算机所在的物理地点
4.2 分类
- 国家顶级域名:采用ISO3166的规定,如:cn代表中国,us代表美国,uk代表英国,等等。国家域名又常记为CCTLD(country code top-level domains,cc表示国家代码contry-code)
- 通用顶级域名:最常见的通用顶级域名有7个
- com (公司企业)
- net (网络服务机构)
- org (非营利组织)
- int (国际组织)
- gov (美国的政府部门)
- mil (美国的军事部门)
- 基础结构域名(infrastructure domain):这种顶级域名只有一个,即arpa,用于反向域名解析,因此称为反向域名
4.3 域名服务器类型划分
-
组织架构:
-
根域名服务器:最高层次的域名服务器,所有的根域名服务器都知道所有的顶级域名服务器的域名和IP地址。本地域名服务器要对因特网上任何一个域名进行解析,只要自己无法解析,就首先求助根域名服务器。则根域名服务器是最重要的域名服务器。假定所有的根域名服务器都瘫痪了,那么整个DNS系统就无法工作。所以根域名服务器并不直接把待查询的域名直接解析出IP地址,而是告诉本地域名服务器下一步应当找哪一个顶级域名服务器进行查询。
-
在与现有IPv4根服务器体系架构充分兼容基础上,由我国下一代互联网国家工程中心领衔发起的“雪人计划”于2016年在美国、日本、印度、俄罗斯、德国、法国等全球16个国家完成25台IPv6(互联网协议第六版)根服务器架设,事实上形成了13台原有根加25台IPv6根的新格局,为建立多边、民主、透明的国际互联网治理体系打下坚实基础。中国部署了其中的4台,由1台主根服务器和3台辅根服务器组成,打破了中国过去没有根服务器的困境。
-
顶级域名服务器:负责管理在该顶级域名服务器注册的二级域名
-
权限域名服务器:负责一个“区”的域名服务器
-
本地域名服务器:本地域名服务器不属于域名服务器的层次结构,当主机发出DNS查询时,这个查询报文就发送给本地域名服务器
-
为了提高域名服务器的可靠性,DNS域名服务器都把数据复制到几个域名服务器来保存,如:
- 主服务器:在特定区域内具有唯一性,负责维护该区域内的域名与 IP 地址之间的对应关系(真正干活的)
- 从服务器:从主服务器中获得域名与 IP 地址的对应关系并进行维护,以防主服务器宕机等情况(打下手的)
- 缓存服务器:通过向其他域名解析服务器查询获得域名与 IP 地址的对应关系,并将经常查询的域名信息保存到服务器本地,以此来提高重复查询时的效率,一般部署在企业内网的网关位置,用于加速用户的域名查询请求
二、DNS域名解析过程
1、分类
- 递归解析:DNS 服务器在收到用户发起的请求时,必须向用户返回一个准确的查询结果。如果 DNS 服务器本地没有存储与之对应的信息,则该服务器需要询问其他服务器,并将返回的查询结果提交给用户
- 迭代解析(反复):DNS 服务器在收到用户发起的请求时,并不直接回复查询结果,而是告诉另一台 DNS 服务器的地址,用户再向这台 DNS 服务器提交请求,依次反复,直到返回查询结果
2、解析图:
2.1 图:
2.2 过程分析
- 第一步:在浏览器中输入www . google .com 域名,本地电脑会检查浏览器缓存中有没有这个域名对应的解析过的 IP 地址,如果缓存中有,这个解析过程就结束。浏览器缓存域名也是有限制的,不仅浏览器缓存大小有限制,而且缓存的时间也有限制,通常情况下为几分钟到几小时不等,域名被缓存的时间限制可以通过 TTL 属性来设置。这个缓存时间太长和太短都不太好,如果时间太长,一旦域名被解析到的 IP 有变化,会导致被客户端缓存的域名无法解析到变化后的 IP 地址,以致该域名不能正常解析,这段时间内有一部分用户无法访问网站。如果设置时间太短,会导致用户每次访问网站都要重新解析一次域名
- 第二步:如果浏览器缓存中没有数据,浏览器会查找操作系统缓存中是否有这个域名对应的 DNS 解析结果。其实操作系统也有一个[域名解析]的过程,在 Linux 中可以通过 / etc/hosts 文件来设置,而在 windows 中可以通过配置 C:\Windows\System32\drivers\etc\hosts 文件来设置,用户可以将任何域名解析到任何能够访问的 IP 地址。例如,我们在测试时可以将一个域名解析到一台测试服务器上,这样不用修改任何代码就能测试到单独服务器上的代码的业务逻辑是否正确。正是因为有这种本地 DNS 解析的规程,所以有黑客就可能通过修改用户的域名来把特定的域名解析到他指定的 IP 地址上,导致这些域名被劫持
- 第三步:前两步是在本地电脑上完成的,若无法解析时,就要用到我们网络配置中的 “DNS 服务器地址” 了。操作系统会把这个域名发送给这个本地 DNS 服务器。每个完整的内网通常都会配置本地 DNS 服务器,例如用户是在学校或工作单位接入互联网,那么用户的本地 DNS 服务器肯定在学校或工作单位里面。它们一般都会缓存域名解析结果,当然缓存时间是受到域名的失效时间控制的。大约 80% 的域名解析到这里就结束了,后续的 DNS 迭代和递归也是由本地 DNS 服务器负责
- 第四步:如果本地 DNS 服务器仍然没有命中,就直接到根 DNS 服务器请求解析
- 第五步:根 DNS 服务器返回给本地 DNS 域名服务器一个顶级 DNS 服务器地址,它是国际顶级域名服务器,如. com、.cn、.org 等,全球只有 13 台左右
- 第六步:本地 DNS 服务器再向上一步获得的顶级 DNS 服务器发送解析请求
- 第七步:接受请求的顶级 DNS 服务器查找并返回此域名对应的 Name Server 域名服务器的地址,这个 Name Server 服务器就是我要访问的网站域名提供商的服务器,其实该域名的解析任务就是由域名提供商的服务器来完成。 比如我要访问 www.baidu.com,而这个域名是从 A 公司注册获得的,那么 A 公司上的服务器就会有 www.baidu.com 的相关信息
- 第八步:返回该域名对应的 IP 和 TTL 值,本地 DNS 服务器会缓存这个域名和 IP 的对应关系,缓存时间由 TTL 值控制
- 第九步:Name Server 服务器收到查询请求后再其数据库中进行查询,找到映射关系后将其IP地址返回给本地DNS服务器
- 第十步:本地DNS服务器把解析的结果返回给本地电脑,本地电脑根据 TTL 值缓存在本地系统缓存中,域名解析过程结束在实际的 DNS 解析过程中,可能还不止这 10 步,如 Name Server 可能有很多级,或者有一个 GTM 来负载均衡控制,这都有可能会影响域名解析过程
- 注意:
- 从客户端到本地DNS服务器是属于递归查询,而DNS服务器之间使用的交互查询就是迭代查询
- 114.114.114.114是国内移动、电信和联通通用的DNS,手机和电脑端都可以使用,干净无广告,解析成功率相对来说更高,国内用户使用的比较多,而且速度相对快、稳定,是国内用户上网常用的DNS。
- 223.5.5.5和223.6.6.6是阿里提供的免费域名解析服务器地址
- 8.8.8.8是GOOGLE公司提供的DNS,该地址是全球通用的,相对来说,更适合国外以及访问国外网站的用户使用
三、搭建DNS域名解析服务器
1、概述
- BIND:Berkeley Internet Name Domain ,伯克利因特网域名解析服务是一种全球使用最广泛的、最高效的、最安全的域名解析服务程序
2、安装软件
[root@server ~]# yum install bind -y
3、/bind服务中三个关键文件
-
/etc/named.conf : 主配置文件,共59行,去除注释和空行之和有效行数仅30行左右,用于设置bind服务程序的运行
-
/etc/named.rfc1912.zones : 区域配置文件(zone),用于保存域名和IP地址对应关系文件的所在位置,类似于图书目录,当需要修改域名与IP映射关系时需要在此文件中查找相关文件位置
-
/var/named 目录:数据配置文件目录,该目录存储保存域名和IP地址映射关系的数据文件
4、配置文件分析
- 主配置文件共4部分组成
-
options{}
-
logging{}
-
zone{}
-
include
-
- 常用参数:
[root@server ~]# vim /etc/named.conf options { # 全局参数设置listen-on port 53 { 127.0.0.1; }; # 重要,监听允许访问的ip与端口,可以使用IP地址、网段、所有主机(any)listen-on-v6 port 53 { ::1; };# 重要,监听允许访问的ipV6与端口directory "/var/named"; # DNS数据目录位置,默认即可dump-file "/var/named/data/cache_dump.db"; # 默认缓存文件位置,默认即可statistics-file "/var/named/data/named_stats.txt"; # DNS状态文件保存文件,默认即可memstatistics-file "/var/named/data/named_mem_stats.txt"; # 内存状态文件保存文件,默认即可secroots-file "/var/named/data/named.secroots"; # 安全根服务器保存位置,默认即可recursing-file "/var/named/data/named.recursing"; # 递归查询文件保存位置,默认即可allow-query { localhost; }; # 重要,表示允许那些客户端进行访问,可以书写IP地址、网段、所有主机(any)recursion yes; # 重要,允许递归查询,若删除则为迭代查询dnssec-validation yes; # 开启加密,默认即可managed-keys-directory "/var/named/dynamic"; # 指定目录中文件保存位置,用于管理密钥(DNSSEC)pid-file "/run/named/named.pid"; # pid文件保存路径,默认即可session-keyfile "/run/named/session.key"; # 会话密钥存储路径,自动生成,默认即可logging { # 指定日志记录的分类及其存储目录channel default_debug { # 设置日志输出方式file "data/named.run"; # 产生日志信息文件的位置severity dynamic; # 日志级别};
};zone "." IN { # zone 表示区域, "." 表示根,此处设置DNS根服务器的相关内容type hint; # 表示服务器的类型为根file "named.ca"; # 用于保存dns根服务器信息的文件,存储路径/var/named/named.ca,一共有13台ipv4和13台ipv6根服务器信息
};include "/etc/named.rfc1912.zones"; # 表示当前DNS服务器的区域配置文件位置
include "/etc/named.root.key"; # 密钥存储文件位置
- 一般需要修改三部分:
- listen-on port 53 { 127.0.0.1; }; 即监听ip及端口
- allow-query { localhost; }; 允许那些客户端访问
- recursion yes; 是否开启递归查询
5、区域配置文件
5.1 作用
- /etc/named.rfc1912.zones文件为bind服务程序的区域配置文件,用来保存域名与IP地址映射关系文件的位置,是一系列功能模板的集合
5.2 区域配置文件示例分析
- 正向解析
zone "localhost.localdomain" IN { # 正向解析域名type master; # 服务类型:master表示主服务器,slave表示从服务器,hint根服务器file "named.localhost"; # 域名与IP地址规则文件存储位置allow-update { none; }; # 允许那些客户端动态更新本机域名解析
};# allow-update:允许更新解析库内容,一般关闭
# allow-query: 允许查询的主机,白名单
# allow-tranfter : 允许同步的主机,白名单,常用
# allow-recursion: 允许递归的主机
- 反向解析:
zone "1.0.0.127.in-addr.arpa" IN { # 表示127.0.0.1的反向解析配置,IP地址需要倒置书写,只需书写网段即可type master; file "named.loopback"; # 反向解析的规则文件保存位置allow-update { none; };
};
6、正向解析资源文件
6.1 概述
- 查看:
[root@server ~]# vim /var/named/named.localhost
- 注意:推荐对该模板文件进行局部修改
6.2 模板内容分析
$TTL 1D # 设置生存周期时间,为1天,$表示宏定义
@ IN SOA @ rname.invalid. (
# @ :表示zone域,现在表示域名,如baidu.com
# IN SOA : 授权信息开始
# rname.invalid. : 域名管理员的邮箱(不能使用@,使用点替代邮件分隔符@)1 ; serial # 序列号,10位以内的整数1D ; refresh # 更新频率为1天1H ; retry # 失败重试时间为1小时1W ; expire # 失效时间1周3H ) ; minimum # 缓存时间为3小时IN NS ns.域名.
ns IN A 域名解析服务器IP地址
www IN A 域名解析服务器IP地址
bbs IN A 域名解析服务器IP地址
mail IN A 域名解析服务器IP地址# A:表示IPv4地址, AAAA表示IPv6地址
6.3 域名解析记录分析
- A记录:A 代表 Address,用来指定域名对应的 IP 地址,如将 item.taobao.com 指定到 115.238.23.xxx,将 switch.taobao.com 指定到 121.14.24.xxx
- MX记录:Mail Exchange,就是可以将某个域名下的邮件服务器指向自己的 Mail Server,如 taobao.com 域名的 A 记录 IP 地址是 115.238.25.xxx,如果将 MX 记录设置为 115.238.25.xxx,即 xxx@taobao.com 的邮件路由,DNS 会将邮件发送到 115.238.25.xxx 所在的服务器,而正常通过 Web 请求的话仍然解析到 A 记录的 IP 地址
- NS记录:为某个域名指定 DNS 解析服务器,也就是这个域名由指定的 IP 地址的 DNS 服务器取解析
- CNAME 记录:Canonical Name,即别名解析。所谓别名解析就是可以为一个域名设置一个或者多个别名,如将 aaa.com 解析到 bbb.net、将 ccc.com 也解析到 bbb.net,其中 bbb.net 分别是 aaa.com 和 ccc.com 的别名
- TXT 记录:为某个主机名或域名设置说明,如可以为 ddd.net 设置 TXT 记录为 “这是 XXX 的博客” 这样的说明
7、反向解析资源文件
[root@server ~]# vim /var/named/named.loopback
$TTL 1D
@ IN SOA @ rname.invalid. (0 ; serial1D ; refresh1H ; retry1W ; expire3H ) ; minimum
IN NS ns.域名. # 域名服务器记录,注意结尾的点
ns IN A 域名解析服务器的IP地址
IP地址 PTR 域名. # PTR 指针记录,用于反向解析
7.1 实验1:正向解析
服务端IP | 客户端IP | 网址 |
---|---|---|
192.168.13.134 | 192.168.13.135 | www.openlab.com |
准备工作
[root@server ~]# setenforce 0
[root@server ~]# systemctl stop firewalld
# 服务端及客户端都设置静态IP地址
[root@server ~]# yum install bind -y
DNS解析配置
- 第一步:服务端操作,配置DNS主配置文件
[root@server named]# vim /etc/named.conf options {listen-on port 53 { any ;};……allow-query { any ;};
- 第二步:服务端操作,编辑区域配置文件,可以清空后添加,也推荐选择一个解析模版进行修改
[root@server ~]# vim /etc/named.rfc1912.zones
# 选择一个正向解析模版,进行修改,设置解析区域名及存储解析记录的数据文件名
zone "openlab.com" IN {type master;file "openlab.com.zone";allow-update { none; };
};
- 第三步:服务端操作,编辑数据配置文件,推荐使用cp -a命令完全拷贝一份正向解析模版(named.localhost),在修改局部
[root@server ~]# cd /var/named
[root@server named]# ls
data dynamic named.ca named.empty named.localhost named.loopback slaves
[root@server named]# cp -a named.localhost openlab.com.zone
[root@server named]# vim openlab.com.zone
# 修改如下
$TTL 1D
openlab.com. IN SOA ns.openlab.com. andy.qq.com. (0 ; serial1D ; refresh1H ; retry1W ; expire3H ) ; minimum
openlab.com. IN NS ns.openlab.com.
ns.openlab.com. IN A 192.168.13.134www.openlab.com. IN A 192.168.13.134
bbs.openlab.com. IN A 192.168.13.134
ftp.openlab.com. IN A 192.168.13.134
www1.openlab.com. IN CNAME www.openlab.com.
- 第四步:服务端操作,重启服务
[root@server named]# systemctl start named
- 第六步:测试,将客户端的网卡配置文件中的DNS解析地址修改为服务端的IP地址,以后客户端的dns解析申请会交给服务端来完成
修改后:
[root@node1 ~]# vim /etc/NetworkManager/system-connections/ens160.nmconnection # 打开网卡配置文件
[ipv4]
address1=192.168.13.135/24,192.168.13.2
dns=192.168.13.134; # 修改dns值为服务端ip
method=manual[root@node1 ~]# nmcli connection reload # 重载配置文件
[root@node1 ~]# nmcli connection up ens160 # 激活
[root@node1 ~]# nslookup # 进入交互模式进行测试
> www.openlab.com
Server: 192.168.13.134
Address: 192.168.13.134#53Name: www.openlab.com
Address: 192.168.13.134
> ftp.openlab.com
Server: 192.168.13.134
Address: 192.168.13.134#53Name: ftp.openlab.com
Address: 192.168.13.134
> www1.openlab.com
Server: 192.168.13.134
Address: 192.168.13.134#53www1.openlab.com canonical name = www.openlab.com.
Name: www.openlab.com
Address: 192.168.13.134
> # ctrl+d退出
[root@node1 ~]# nslookup bbs.openlab.com # 命令模式
Server: 192.168.13.134
Address: 192.168.13.134#53Name: bbs.openlab.com
Address: 192.168.13.134# 或者使用下列方法测试
[root@node1 ~]# host www.openlab.com
[root@node1 ~]# dig @192.168.13.134 www.openlab.com
注意:第三步数据配置文件可以进行精简
- SOA起始授权记录:openlab.com. IN SOA ns.openlab.com. admin.openlab.com. (),表示openlab.com.这个域名指定dns服务器为ns.openlab.com.这台主机,以及其它附加信息
- ns记录:openlab.com. IN NS ns.openlab.com. ,声明openlab.com.这个域名的dns服务器为ns.openlab.com.主机
- 以上区别:NS记录仅仅只是声明该域内哪台主机是dns服务器,用来提供名称解析服务,NS记录不会区分哪台dns服务器是master哪台dns服务器是slave。而SOA记录则用于指定哪个NS记录对应的主机是master dns服务器,也就是从多个dns服务器中挑选一台任命其为该域内的master dns服务器,其他的都是slave,都需要从master上获取域相关数据
- A记录:表示那台主机解析为什么IP地址
- CNAME记录:别名,www1.openlab.com.主机解析为www.openlab.com.主机在查找对应IP
- 精简原则:
- 可以使用@替代域名,如@替代openlab.com.
- 可以使用空格或tab重复继承上一行第一列的值
- 可以省略域名,会自动补全,如:www为www.openlab.com.
- 配置文件可以省略如下:
[root@server named]# vim openlab.com.zone$TTL 1D
@ IN SOA ns.openlab.com. admin.openlab.com. (0 ; serial1D ; refresh1H ; retry1W ; expire3H ) ; minimumNS ns.openlab.com.
ns IN A 192.168.48.130
www IN A 192.168.48.130
ftp IN A 192.168.48.130
bbs IN A 192.168.48.130
www1 IN CNAME www
7.2 实验2:反向解析
服务端IP | 客户端IP | 网址 |
---|---|---|
192.168.13.134 | 192.168.13.135 | www.openlab.com |
- 第一步:服务端操作,基于上例,继续完成,主配置文件按照上例设置不变,编辑区域配置文件,选择一个反向解析模版进行修改
[root@server ~]# vim /etc/named.rfc1912.zones
zone "13.168.192.in-addr.arpa" IN { # 区域名使用倒置的网段号+.in-addr.arpa组成type master;file "192.168.13.arpa"; # 数据配置文件名使用网段号+.arpa组成allow-update { none; };
};
- 第二步:服务端操作,编辑数据配置文件,复制一份反向解析模版(named.loopback),在修改局部即可
[root@server ~]# cd /var/named/
[root@server named]# cp -a named.loopback 192.168.13.arpa
[root@server named]# vim 192.168.13.arpa
$TTL 1D
@ IN SOA ns.openlab.com. zy.qq.com. (0 ; serial1D ; refresh1H ; retry1W ; expire3H ) ; minimumNS ns.openlab.com.
134 IN PTR ns.openlab.com.
134 IN PTR www.openlab.com.
134 IN PTR bbs.openlab.com.
134 IN PTR ftp.openlab.com.
- 第三步:服务端重启服务
[root@server named]# systemctl restart named
- 第四步:客户端操作,测试
[root@node1 ~]# nslookup
> www.openlab.com
Server: 192.168.13.134
Address: 192.168.13.134#53Name: www.openlab.com
Address: 192.168.13.134
> 192.168.13.134
134.13.168.192.in-addr.arpa name = ftp.openlab.com.
134.13.168.192.in-addr.arpa name = ns.openlab.com.
134.13.168.192.in-addr.arpa name = www.openlab.com.
134.13.168.192.in-addr.arpa name = bbs.openlab.com.
> # ctrl+d退出
四、部署DNS从服务器
1、作用
- DNS作为重要的互联网基础设施服务,保证 DNS 域名解析服务的正常运转至关重要,只有这样才能提供稳定、快速且不间断的域名查询服务
- DNS 域名解析服务中,从服务器可以从主服务器上获取指定的区域数据文件,从而起到备份解析记录与负载均衡的作用,因此通过部署从服务器可以减轻主服务器的负载压力,还可以提升用户的查询效率
- 注意:
- 时间同步必须保持一致性
- bind最好使用同一版本
2、实验:主从DNS服务器
2.1 完全区域传送
- 将一个区域文件复制到多个从服务器上的过程称为区域传送
- 将主服务器的所有信息全部复制到从服务器中,称为完全区域传送,即复制整个区域文件
- 实验说明
设备 | IP | 系统 |
---|---|---|
主服务器 | 192.168.13.134 | RHEL9.1 |
从服务器 | 192.168.13.135 | RHEL9.1 |
- 第一步:两个服务器server和node1恢复快照,安装软件,设置静态IP
[root@server ~]# setenforce 0
[root@server ~]# systemctl stop firewalld
[root@node1 ~]# setenforce 0
[root@node1 ~]# systemctl stop firewalld
# 服务端及客户端都设置静态IP地址
[root@server ~]# yum install bind -y
[root@node1 ~]# yum install bind -y
- 第二步:主服务器server端操作,设置dns主配置文件,修改内容如下:
[root@server ~]# vim /etc/named.conf
options {listen-on port 53 { 192.168.13.134; }; # 可以该为本机IP或any……allow-query { any; };
- 第三步:主服务器server‘操作,设置区域配置文件
[root@server ~]# vim /etc/named.rfc1912.zones
zone "openlab.com" IN {type master;file "openlab.com.zone";allow-transfer { 192.168.13.135; };
};
# 重点:改为同步模式,格式为allow-transfer { 从服务器的IP地址; };
- 第四步:主服务器server端操作,设置正向解析的数据配置文件
[root@server ~]# cd /var/named/
[root@server named]# ls
data dynamic named.ca named.empty named.localhost named.loopback slaves
[root@server named]# cp -a named.localhost openlab.com.zone
[root@server named]# vim openlab.com.zone
$TTL 1D
openlab.com. IN SOA ns.openlab.com. zy.qq.com. (0 ; serial1D ; refresh1H ; retry1W ; expire3H ) ; minimum
openlab.com. IN NS ns.openlab.com.
openlab.com. IN NS slave.openlab.com. # 增减从
ns.openlab.com. IN A 192.168.13.134
slave.openlab.com. IN A 192.168.13.135 # 增加从www.openlab.com. IN A 192.168.13.134
ftp.openlab.com. IN A 192.168.13.134
bbs.openlab.com. IN A 192.168.13.134
- 第五步:主服务器server端操作,重启服务
[root@server named]# systemctl start named
- 第六步:从服务器node1端操作,修改主配置文件
[root@node1 ~]# vim /etc/named.conf
options {listen-on port 53 { 192.168.13.135; }; ……allow-query { any; };
- 第七步:从服务器node1端操作,修改区域配置文件,注意:
zone "openlab.com" IN {type slave; # 服务类型变更为从masters { 192.168.13.134; }; # 设置主服务器的IP地址file "slaves/openlab.com.zone"; # 从服务器的数据配置文件存储位置必须为slaves目录下
};
- 第八步:从服务器node1端重启服务,当从服务器服务重启,会向主服务器同步拉取数据到/var/named/slaves
[root@node1 named]# cd slaves/
[root@node1 slaves]# ls # 重启前为空目录
[root@node1 slaves]# systemctl start named
[root@node1 slaves]# ls
openlab.com.zone # 拉取数据
- 第九步:测试,定位客户端node2,修改网卡的dns
[root@node2 ~]# vim /etc/NetworkManager/system-connections/ens160.nmconnection # 设置dns为192.168.48.131
[root@node2 ~]# nmcli connection reload
[root@node2 ~]# nmcli connection up ens160
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/2)
[root@node2 ~]# nslookup www.openlab.com
Server: 192.168.13.135
Address: 192.168.13.135#53Name: www.openlab.com
Address: 192.168.13.134
2.2 增量区域传送
- 功能:仅复制区域中变化的数据部分
- 第一步:主服务器server端操作,修改数据配置文件
[root@server named]# vim /var/named/openlab.com.zone
$TTL 1D
openlab.com. IN SOA ns.openlab.com. alice.126.com. (1 ; serial # 修改1D ; refresh1H ; retry1W ; expire3H ) ; minimum
openlab.com. IN NS ns.openlab.com.
openlab.com. IN NS slave.openlab.com.
openlab.com. IN MX 8 mail.openlab.com. # 增加ns.openlab.com. IN A 192.168.13.134
slave.openlab.com. IN A 192.168.13.135mail.openlab.com. IN A 192.168.13.134 # 增加
www.openlab.com. IN A 192.168.13.134
ftp.openlab.com. IN A 192.168.13.134
bbs.openlab.com. IN A 192.168.13.134
www1.openlab.com. IN CNAME www.openlab.com. # 增加# 注意:1 ; serial中序号修改为1,否则从服务器不会更新数据
- 第二步:主服务器server端操作,重启服务
[root@server named]# systemctl restart named
- 第三步:从服务器node1端,重启服务
[root@node1 slaves]# systemctl restart named
- 第四步:客户端node2测试
[root@node2 ~]# nslookup mail.openlab.com
Server: 192.168.13.135
Address: 192.168.13.135#53Name: mail.openlab.com
Address: 192.168.13.134[root@node2 ~]# nslookup www1.openlab.com
Server: 192.168.13.135
Address: 192.168.13.135#53www1.openlab.com canonical name = www.openlab.com.
Name: www.openlab.com
Address: 192.168.13.134
2.3 注意
- 序号必须比原序号要大
- 更新频率需要改小一些,这样可以更快看到实验结果
- 增量传送中主服务端需要写关于从服务器的NS记录和A记录,否则从服务器端不更新数据
五、练习:配置dns服务的正反向解析
正向解析
服务端IP | 客户端IP | 网址 |
---|---|---|
192.168.13.134 | 192.168.13.135 | www.openlab.com |
- 第一步:关闭安全软件并安装
[root@server ~]# setenforce 0
[root@server ~]# systemctl stop firewalld
[root@server ~]# yum install bind -y
- 第二步:在服务端进行配置DNS主配置文件
[root@server named]# vim /etc/named.conf
原文件:
修改之后:
- 第三步:在服务端进行编辑区域配置文件
[root@server ~]# vim /etc/named.rfc1912.zones
原文件:
修改之后:
- 第四步:在服务端编辑数据配置文件
[root@server ~]# cd /var/named
[root@server named]# ls
data dynamic named.ca named.empty named.localhost named.loopback slaves
[root@server named]# cp -a named.localhost openlab.com.zone # 复制模板进行编辑
[root@server named]# vim openlab.com.zone
修改之后文件:
- 第五步:重启服务
[root@server named]# systemctl start named
- 第六步:更改客户端dns服务IP并测试
[root@node1 ~]# vim /etc/NetworkManager/system-connections/ens160.nmconnection # 打开并编辑网卡配置文件
[root@node1 ~]# nmcli connection reload # 重载配置文件
[root@node1 ~]# nmcli connection up ens160 # 激活
原文件:
修改后:
[root@node1 ~]# nslookup
> www.openlab.com
Server: 192.168.13.134
Address: 192.168.13.134#53Name: www.openlab.com
Address: 192.168.13.134
> ftp.openlab.com
Server: 192.168.13.134
Address: 192.168.13.134#53Name: ftp.openlab.com
Address: 192.168.13.134
> www1.openlab.com
Server: 192.168.13.134
Address: 192.168.13.134#53www1.openlab.com canonical name = www.openlab.com.
Name: www.openlab.com
Address: 192.168.13.134
反向解析
服务端IP | 客户端IP | 网址 |
---|---|---|
192.168.13.134 | 192.168.13.135 | www.openlab.com |
- 第一步:主配置文件不变,在服务端编辑区域配置文件。
主配置文件:
[root@server ~]# vim /etc/named.rfc1912.zones
修改后:
- 第二步:在服务端编辑数据配置文件
[root@server ~]# cd /var/named/
[root@server named]# cp -a named.loopback 192.168.13.arpa # 复制模板
[root@server named]# vim 192.168.13.arpa
修改之后:
- 第三步:在服务端重启服务
[root@server named]# systemctl restart named
- 第四步:在客户端测试
[root@node1 ~]# nslookup
> www.openlab.com
Server: 192.168.13.134
Address: 192.168.13.134#53Name: www.openlab.com
Address: 192.168.13.134
> 192.168.13.134
134.13.168.192.in-addr.arpa name = ftp.openlab.com.
134.13.168.192.in-addr.arpa name = ns.openlab.com.
134.13.168.192.in-addr.arpa name = www.openlab.com.
134.13.168.192.in-addr.arpa name = bbs.openlab.com.
> # ctrl+d退出
练习完成。
相关文章:

RHCE——八、DNS域名解析服务器
RHCE 一、概述1、产生原因2、作用3、连接方式4、因特网的域名结构4.1 拓扑4.2 分类4.3 域名服务器类型划分 二、DNS域名解析过程1、分类2、解析图:2.1 图:2.2 过程分析 三、搭建DNS域名解析服务器1、概述2、安装软件3、/bind服务中三个关键文件4、配置文…...

flink cdc初始全量速度很慢原因和优化点
link cdc初始全量速度很慢的原因之一是,它需要先读取所有的数据,然后再写入到目标端,这样可以保证数据的一致性和顺序。但是这样也会导致数据的延迟和资源的浪费。flink cdc初始全量速度很慢的原因之二是,它使用了Debezium作为捕获…...

论文笔记: MOGRIFIER LSTM
2020 ICLR 修改传统LSTM 当前输入和隐藏状态充分交互,从而获得更佳的上下文相关表达 1 Mogrifier LSTM LSTM的输入X和隐藏状态H是完全独立的 机器学习笔记:GRU_gruc_UQI-LIUWJ的博客-CSDN博客这篇论文想探索,如果在输入LSTM之前…...

Angular中使用drag and drop实现文件拖拽上传,及flask后端接收
效果:拖拽文件到组件上面时 边框变大变红 松手后发送到服务器(或者点击蓝字手动选择文件)并且把文件名显示在框内,美化还没做 html <div class"drapBox"><div id"drop" (dragenter)"dragenter($event)" (dragov…...

Spring Authorization Server入门 (十六) Spring Cloud Gateway对接认证服务
前言 之前虽然单独讲过Security Client和Resource Server的对接,但是都是基于Spring webmvc的,Gateway这种非阻塞式的网关是基于webflux的,对于集成Security相关内容略有不同,且涉及到代理其它微服务,所以会稍微比较麻…...

配置Flink
配置flink_1.17.0 1.Flink集群搭建1.1解压安装包1.2修改集群配置1.3分发安装目录1.4启动集群、访问Web UI 2.Standalone运行模式3.YARN运行模式4.K8S运行模式 1.Flink集群搭建 1.1解压安装包 链接: 下载Flink安装包 解压文件 [gpbhadoop102 software]$ tar -zxvf flink-1.1…...

39、springboot的前端静态资源的WebJar支持(bootstrap、jquery等)及自定义图标和首页
★ WebJar支持 Spring Boot支持加载WebJar包中的静态资源(图片、JS、CSS), WebJar包中的静态资源都会映射到/webjars/**路径。——这种方式下,完全不需要将静态资源复制到应用的静态资源目录下。只要添加webjar即可。假如在应用的…...

【图论】缩点的综合应用(一)
一.缩点的概念 缩点,也称为点缩法(Vertex Contraction),是图论中的一种操作,通常用于缩小图的规模,同时保持了图的某些性质。这个操作的目标是将图中的一些节点合并为一个超级节点,同时调整相关…...

C++—纯虚函数
一、前言 定义一个函数为虚函数,不代表函数为不被实现的函数。 定义函数为虚函数是为了允许用基类的指针来调用子类的这个函数。 定义一个函数为纯虚函数,才代表函数没有被实现。 定义纯虚函数是为了实现一个接口,起到一个规范的作用&…...

经过卷积神经网络之后的图片的尺寸如何计算
经过卷积神经网络(Convolutional Neural Network,CNN)处理后,图片的尺寸会发生变化,这是由于卷积层、池化层等操作引起的。计算图片经过卷积神经网络后的尺寸变化通常需要考虑卷积核大小、步幅(stride&…...

Java升级JDK17(更高版本同理),修改maven
记住三个网址就行:下面这个是oracle的 Java Platform, Standard Edition 17 ReferenceImplementations https://www.oracle.com/java/technologies/downloads/#jdk17-windows 另外一个 redhat旗下的:这个是开源的(推荐这个!&am…...

Go测试之.golden 文件
Go测试中的.golden 文件是干什么用的?请举例说明 在Go语言中,.golden文件通常用于测试中的黄金文件(golden files)。黄金文件是在测试期间记录预期输出结果的文件。测试用例运行时,黄金文件用于比较实际输出与预期输出…...

回归预测 | MATLAB实现GA-RF遗传算法优化随机森林算法多输入单输出回归预测(多指标,多图)
回归预测 | MATLAB实现GA-RF遗传算法优化随机森林算法多输入单输出回归预测(多指标,多图) 目录 回归预测 | MATLAB实现GA-RF遗传算法优化随机森林算法多输入单输出回归预测(多指标,多图)效果一览基本介绍程…...

springboot整合rabbitmq死信队列
springboot整合rabbitmq死信队列 什么是死信 说道死信,可能大部分观众大姥爷会有懵逼的想法,什么是死信?死信队列,俗称DLX,翻译过来的名称为Dead Letter Exchange 死信交换机。当消息限定时间内未被消费,…...

高中信息技术教资考试模拟卷(22下)
2022 年下半年全国教师资格考试模考卷一 (高中信息技术) 一、单项选择题(本大题共 15 小题,每小题 3 分,共 45 分) 1.2006 年 10 月 25 日,深圳警方成功解救出一名被网络骗子孙某…...

Linux中shadow及passwd格式内容解析
/etc/passwd文件包括Linux账号信息,示例如下: root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin 具体格式 用户名࿱…...

计算机视觉 – Computer Vision | CV
计算机视觉为什么重要? 人的大脑皮层, 有差不多 70% 都是在处理视觉信息。 是人类获取信息最主要的渠道,没有之一。 在网络世界,照片和视频(图像的集合)也正在发生爆炸式的增长! 下图是网络上…...

2.Redis 通用命令
Redis 中最核心的两个命令: set 作用:设置 key 对应的 value 值并存储进去。若key已包含一个值,则无论其类型如何,都会覆盖该值。在SET操作成功时,将丢弃与密钥相关联的任何先前生存时间。 对于上述这里的 key和val…...

【学习FreeRTOS】第18章——FreeRTOS软件定时器
1.软件定时器的简介 定时器:从指定的时刻开始,经过一个指定时间,然后触发一个超时事件,用户可自定义定时器的周期硬件定时器:芯片本身自带的定时器模块,硬件定时器的精度一般很高,每次在定时时…...

C++--两个数组的dp问题(2)
1.交错字符串 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 给定三个字符串 s1、s2、s3,请判断 s3 能不能由 s1 和 s2 交织(交错) 组成。 两个字符串 s 和 t 交织 的定义与过程如下,其中每个字符串都…...

利用人工智能彻底改变库存管理:综合指南
通过本指南了解人工智能如何增强库存管理,为希望简化运营的管理者和企业主提供帮助。 库存管理是任何销售实物产品的企业的重要组成部分。它包括跟踪库存水平,预测未来需求,并确保始终有足够的产品来满足客户需求,但又不会因库存过多而浪费金钱。有效的库存管理可以显着降…...

连接器信号完整性仿真教程 七
本将介绍微带线及差分微带线仿真。做连接器信号完整性仿真时,有时后没法将激励端口直接设置到连接器端子上,这就需画出连接器PCB PAD,将激励端口设置在PAD的端面上,或者用引线连接PAD,将引线引出到适当的位置ÿ…...

Wireshark数据抓包分析之UDP协议
一、实验目的: 通过使用wireshark对UDP数据包的抓取分析UDP协议的内容 二、预备知识: UDP协议的概念:UDP使用底层的互联网协议来传送报文,同IP一样提供不可靠的无连接传输服务。它也不提供报文到达确认、排序及流量控制等功能。 …...

Java小游戏
一、需求 二、思路一 HP当然是怪物的一个属性成员,而武器是角色的一个属性成员,类型可以使字符串,用于描述目前角色所装备的武器。角色类有一个攻击方法,以被攻击怪物为参数,当实施一次攻击时,攻击方法被调…...

服务器Linux系统配置mysql数据库主从自动备份
服务器Linux系统配置mysql数据库主从自动备份 当数据内容越来越多的时候,数据库也变得越来越大了。如果不小心误删了,或者被黑主机了,那就什么都没有了。所以数据库的数据怎么能让它不丢失做到万无一失变得尤为重要! 我是艾西&a…...

Java通过PowerMockito和Mokito进行单元测试
PowerMockito和Mokito的概念 PowerMockito和Mockito都是Java语言中的测试框架,用于进行单元测试和集成测试。它们中的每一个都有不同的功能和应用。 Mockito是一个基于模拟的测试框架。它允许你模拟对象,在测试中隔离被测代码的依赖项。使用Mockito&am…...

数字化技术无限延伸,VR全景点亮智慧生活
随着互联网的发展,我们无时无刻不再享受着互联网给我们带来的便利,数字化生活正在无限延伸,各行各业也开始积极布局智能生活。要说智慧生活哪个方面应用的比较多,那应该就是VR全景了,目前VR全景已经被各个行业广泛应用…...

抖音艺术签名小程序源码/艺术签名设计小程序源码/字节跳动小程序开发
最近很火的抖音艺术签名小程序源码,这是一款艺术签名设计小程序源码,字节跳动小程序开发,之适用于字节系小程序。介意请绕过! 下载地址:https://bbs.csdn.net/topics/616145725...

养号自动化,指纹浏览器和RPA机器人解除烦恼
在这个充满科技魔力的时代,社交媒体已经成为人们生活的一部分,而Facebook更是我们分享欢乐、联络亲友的重要平台。然而,随之而来的是一个棘手的问题:如何保持账号的活跃度,而又不被沉重的养号工作压垮?别担…...

ES6中promise的使用
ES6中promise的使用 本文目录 ES6中promise的使用基础介绍箭头函数function函数状态 原型方法Promise.prototype.then()Promise.prototype.catch() 静态方法Promise.all()Promise.race()Promise.any() 链式回调 基础介绍 官网:https://promisesaplus.com/ window.…...