【Linux篇<Day16>】——NDS解析详解


在这里插入图片描述

一份微语报,众览天下事!
【今日要闻】
国家医保局:
常态化核酸费用由各地政府承担
【今日微语】
为喜欢自己的人活着
才是最好的生活态度

让我们进入今天的学习吧!
💪Keep  trying💪

在这里插入图片描述

在这里插入图片描述

🍎一、DNS工作原理

  在上一期搭建web服务时,我们已经初步感受到了DNS服务时干什么用的,它主要是用来做域名解析,有了DNS服务器,我们才能更好地使用web服务,本期就让我们更加细致的了解一下DNS吧!

🥬1.1 DNS解析的作用

  • 为什么需要DNS解析
    大家在显示的网络环境中,应该没有用 http://192.168.88.240 这样去访问网站的吧,想必大家都是像www.qq.com 这样去访问的,后面的访问方式不仅好记忆,而且更加适用于虚拟web主机的技术,用来实现单台服务器显示多页面的网站,所以NDS技术应运而生。
  • DNS解析的作用
    正向解析:根据注册的域名查找其对应的IP地址
    反向解析:根据IP地址查找对应注册的域名(不常用)

🥦2.2 DNS的分布式结构

  • 域名的组成结构
    在这里插入图片描述
    看上图可知,一个域名的起始点是根域名,根域名下面有一级域名、二级域名、三级域名和主机站点。

  • Full Qualified Domain Name
    译为一个完全合格的域名。一个完全合格的域名必须同同事具备站点名和域名后缀,可以同时有多级域。注意,其实每个域名的最后都有一个点,比如:www.qq.com.,只是平时我们省略了,浏览器帮我们补上的。
    在这里插入图片描述

  • 常见的顶级/一级域名
    在这里插入图片描述

🍓二、BIND服务分析

🥬2.1 BIND域名服务

  • 所需软件包
    bind:提供域名服务
    bind-chroot:提供虚拟根支持,也就是牢笼政策,当bind出现问题时就会将bind囚禁
  • bind服务端程序
    主要执行程序:/usr/sbin/named
    系统服务:named
    默认端口:TCP/UDP 53
    运行时的虚拟根环境:/var/named/chroot
  • 主配置文件:/etc/named.conf
    设置负责解析的域名
  • 地址库文件:/var/named/
    完全合格的域名与IP地址的对应关系

🥦2.2 修改主配置文件

  我们先看看主配置文件里面比较重要的几行代表什么意思

  • 全局配置部分如下:
    设置监听地址/端口、地址库存放位置等
    在这里插入图片描述

  • 区域配置如下:
    定义NDS区域、类型、地址文件路径等
    关键词 IN 表示Internet,可以省略
    在这里插入图片描述

  • 由于主配置文件极为重要,所以我们在修改主配置文件之前,一定要将其备份一份到 /root 下面,然后再做修改。我们就修改的简单一点:如下图所示
    在这里插入图片描述
    这样配置完之后我们的主配置文件就写完了,注意,地址库文件的名称是随意的,但是我们一般取名都要达到见名知意的效果,所以我们一般会用域名加zone结合在一起作为地址库文件的名字。目的是为 tedu.cn 这个域名做解析。接下来我们配置一下地址库文件。

🥕2.3 建立地址库文件

  • NDS服务器资源解析记录类型
    NS:DNS服务器声明记录
    A:正向解析记录
    CNAME:解析记录别名
    MX:邮件服务器记录
  • 书写地址库文件
    我们在 /var/named/ 下面创建出我们的地址库文件 qq.cn.zone。
    在这里插入图片描述
    我们分别对www.qq.cn和ftp.qq.cn做出解析,我们需要重启一下named服务再来验证解析结果,解析结果可以用nslookup这个命令来验证。
    在这里插入图片描述从结果我们可以看出,这个解析成功了。

🌶️2.4 DNS特殊解析

  • 泛域名解析
    用*代表站点,当其他站点都匹配不上时,就进入该站点。
    在这里插入图片描述我们测试一下
    在这里插入图片描述从解析结果可以看出,成功解析了。

  • NDS解析记录的别名
    CNAME代表解析别名,他的意思就是本条记录的解析结果和某某一样,如下图
    在这里插入图片描述这条配置的意思就是,mail这个站点的解析结果和ftp一样,我们来看下解析结果:
    在这里插入图片描述

  • 如果我们想要要其他的客户机也可以认识这些域名,我们必须再书写一个配置文件,该配置文件为 /etc/resolv.conf。该配置文件可以告诉电脑,你上哪台主机去寻找NDS服务器进行域名解析。
    在这里插入图片描述在这里插入图片描述这样我们用客户机就可以成功访问网站了。

🍑三、/etc/hosts 与 /etc/resolv.conf 的区别

  1. /etc/hosts 文件的解析优先级高于 /etc/resolv.conf
  2. /etc/hosts 适用于没有NDS服务器但又需要做域名解析的场景

🥭四、DNS查询

🥬4.1 查询方式

  • nslookup
    这个上面已经演示过了,下面的host比这个命令精简
  • host
    在这里插入图片描述

🌶️4.2 DNS查询工作方式

  • 递归查询
    客户端发送请求给首选DNS服务器,首选服务器与其他的DNS服务器交互,最终将解析结果带回来。
    注意:只有首选服务器能进行递归查询;首选服务器就是办理宽带是分配的服务器

  • 迭代查询
    客户端发送请求给首选DNS服务器,首选服务器先去找根域服务器,根域服务器提供前一个域的的服务器地址,首选服务器再去找这台服务器,这台服务器再次提供前一个域的地址,依次下去,知道找到完整的域名
    在这里插入图片描述


         👆回到顶部👆

在这里插入图片描述

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论
XML解析器来解析XML文件,使用C语言自带的字符串解析函数,比如strtok等。首先,需要打开XML文件并逐行读取,将每一行保存为一个字符串。然后,使用字符串解析函数解析每个标签和其对应的属性和值。可以使用栈结构来处理标签的嵌套关系,以便构建XML树形结构。最后,将XML树状结构打印出来。 具体的实现方法包括以下步骤: 1. 打开XML文件并逐行读取,将每一行保存为一个字符串。 2. 解析每个标签的开头和结尾,以及对应的属性和值。在解析属性和值时,需要考虑属性值可能带有单引号或双引号的情况,需要使用一些技巧来判断。 3. 使用栈来处理标签的嵌套关系,以便构建XML树形结构。具体来说,遇到一个标签的开头时,就将该标签入栈;当遇到一个标签的结尾时,就将栈顶元素弹出,表示该标签的嵌套关系已经结束。 4. 将构建好的XML树状结构打印出来,可以使用递归方式遍历XML树,输出每个标签及其对应的属性和值。 需要注意的一些问题包括: 1. 在解析属性和值时,需要考虑属性值可能包含单引号或双引号的情况。可以使用一个标记来判断当前属性值使用的是哪种引号。 2. 在使用栈处理XML的嵌套关系时,需要判断栈是否为空,以免发生栈溢出等错误。 3. 在输出XML树的时候,可以使用一些格式化的方式,让输出结果更易读。 最后,需要注意的是,手动解析XML文件是一项相对较为复杂的工作,需要考虑到很多细节和特殊情况。因此,如果可以使用开源的XML解析库,会更加方便和可靠。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小猿桥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值