LINUX网络第三章:DNS解析

这篇具有很好参考价值的文章主要介绍了LINUX网络第三章:DNS解析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、DNS域名解析

首先,我们要知道DNS是什么,DNS(Domain Name System)是域名系统的英文系统,是一种组织成域层次结构和计算机和网络服务命名系统,用于TCP/IP网络。、

DNS实际上是域名解析协议,将域名转化为IP地址

在早期的域名解析的时候,是iana组织负责将域名和IP地址进行对应,并对其进行排列综合,形成了hosts文件,一个IP地址对应一个域名

LINUX网络第三章:DNS解析,linux,网络,服务器LINUX网络第三章:DNS解析,linux,网络,服务器

我们可以进入/etc/hosts配置文件为www.baidu.com.域名配置192.168.241.123的IP地址;

hosts配置文件的优先级最高;

可以进入 /etc/nsswotch.conf   #可以修改DNS的优先级

LINUX网络第三章:DNS解析,linux,网络,服务器

将dns写在file前面 

LINUX网络第三章:DNS解析,linux,网络,服务器

1.DNS的作用

通常识别主机的方式为主机名或者IP地址。人们更倾向于去记忆主机名,类似于www.baidu.com,而IP地址复杂且难记。为了解决这种问题,我们使用DNS域名解析服务,对IP地址进行解析,将可用的IP地址转化为域名,域名系统作为将域名和IP地址相互映射的一个分布式数据库,基于C/S架构,服务端口号为tcp53,udp53;实际上每台DNS域名解析服务器都只负责一个有限的范围(只负责自己范围内的解析)

正向解析:根据域名查找对应的IP地址

反向解析:根据IP地址查找对应的域名

DNS系统的分布式数据结构

2.域名的组成

2.1域名层级结构关系特点
  • 因特网采用层次树状结构的域名结构
  • 域名的结构由若干个分量组成,各分量之间用“点”隔开,分别代表不同级别的域名。
  • 每一级的域名都由英文字母和数字组成,不超过63个字符,不区分大小写字母。
  • 级别最低的域名写在最左边,而级别最高的顶级域名写在最右边。
  • 完整的域名不超过255个字符。
2.2域名空间构成

LINUX网络第三章:DNS解析,linux,网络,服务器

上图展示了 DNS 服务器的部分层次结构,从上到下依次为根域名服务器、顶级域名服务器和权威域名服务器。域名和IP地址的映射关系必须保存在域名服务器中,供所有其他应用查询。

2.3域名的四种不同类型
  • 根域名服务器 根域名服务器是最高层次的域名服务器。每个根域名服务器都知道所有的顶级域名服务器的域名及其IP地址。因特网上共有13个不同IP地址的根域名服务器。当本地域名服务器向根域名服务器发出查询请求时,路由器就把查询请求报文转发到离这个DNS客户最近的一个根域名服务器。这就加快了DNS的查询过程,同时也更合理地利用了因特网的资源。

根域:“ . ”;全球根域服务器节点只有13个,10个在美国,1个在荷兰,1个在瑞典,1个在日本

  • 顶级域名服务器 这些域名服务器负责管理在该顶级域名服务器注册的所有二级域名。当收到DNS查询请求时就给出相应的回答(可能是最后的结果,也可能是下一级权限域名服务器的IP地址)。

顶级域名也称一级域名(Top Level Domain:tid);顶级域:“ .com ”

  • 权限域名服务器 这些域名服务器负责管理某个区的域名。每一个主机的域名都必须在某个权限域名服务器处注册登记。因此权限域名服务器知道其管辖的域名与IP地址的映射关系。另外,权限域名服务器还知道其下级域名服务器的地址。

权限域名服务器也称组织与,国家域(.cn .ca  .hk  .tw);比如像.baidu就是权限域名服务器

  • 本地域名服务器 本地域名服务器不属于上述的域名服务器的等级结构。当一个主机发出DNS请求报文时,这个报文就首先被送往该主机的本地域名服务器。本地域名服务器起着代理的作用,会将该报文转发到上述的域名服务器的等级结构中。本地域名服务器离用户较近,一般不超过几个路由器的距离,也有可能就在同一个局域网中。本地域名服务器的IP地址需要直接配置在需要域名解析的主机中。

本地域名服务器也称主机名,比如www就是主机名

最多可达127级域名

2.3.1延伸

ICANN(The internet Corpora-tion for Assigned Names and Numbers)互联网名称与数字地址分配机构,负责在全球范围内对互联网通用顶级域名(gTLD)以及国家和地区顶级域名(ccTLD)系统的管理、以及根服务器系统的管理

2.3.2总结

根dns服务器只能解析  主机名  +  根域  ;例如根域无法解析www.baidu.com.,只能解析com.,但是会告诉该地址,它的下一级地址可以解析baidu.com.

顶级域(一级域)的dns服务器只能解析  主机名  +  一级域   +根域  ;例如www.baidu.com.

二级域的dns服务只能解析  主机名  +  二级域  +  一级域   +根域 ;例如www.baidu.com.

3.DNS域名解析过程

域名解析包含两种查询方式,分别是递归查询迭代查询,两种查询方式都可以得到结果,但是递归只需要询问一次即可得到结果,迭代需要询问多次才可以得到结果。

DNS域名解析的次数和域名长度有关 

3.1递归查询

一般客户机和本地DNS服务器之间属于递归查询,即当客户机向DNS服务器发出请求后,若DNS服务器不能解析,则会向另外的DNS服务器发出查询请求,得到最终的肯定或否定的结果后转交给客户机。此查询的源和目标保持不变,为了查询结果只需要发起一次查询。(不需要自己动手)

3.2迭代查询

一般情况下,本地的DNS服务器向其他DNS服务器的查询属于迭代查询,如:若对方不能返回权威的结果,则它会向下一个DNS服务器(参考前一个DNS服务器返回的结果)再次发起进行查询,直到返回查询的结果为止。此查询的源不变,但查询的目标不断变化,为查询结果一般需要发起多次查询(需要自己手动)

3.3一次DNS解析的过程

假如我要访问www.baidu.com.服务器

1.首先看我本机的 /etc/hosts 文件,如果有的话直接访问,如果没有就去找你设置的缓存DNS服务器

2.如果缓存服务器有,直接反馈结果(递归)如果没有就需要迭代查询,直接去找根域服务

3.由于根域服务器只能解析根,无法解析www.baidu.com. ;但是,根域服务器会让你去找一级域服务器

4.一级域发现自己也解析不了,让你去找二级域

5.二级域发现这台服务器在自己的管理范围内,直接反馈结果给缓存服务器

6.缓存服务器再交给客户
LINUX网络第三章:DNS解析,linux,网络,服务器

4.DNS系统类型

4.1缓存域名服务器
  • 缓存域名服务器也称DNS高速缓存服务器
  • 通过向其他域名服务器查询获得域名→IP地址记录
  • 将域名查询结果缓存到本地,提高重复查询时的速度
4.2主域名服务器
  • 特定DNS区域的权威服务器,具有唯一性
  • 负责维护该区域内所有域名→IP地址的映射记录
  • 需要自行建立所负责区域的地址数据文件
4.3从域名服务器
  • 也称为辅助域名服务器,是对主域名服务器的热备份
  • 其维护的域名→IP地址记录来源于主域名服务器
  • 需要从主域名服务器自动同步区域地址数据库

权威DNS服务器,最后谁解析DNS,谁为权威服务器,最后解析成功的服务器为权威服务器

二、Bind(Berkeley Internet Name Daemon)

  • Bind是应用最广泛的DNS服务程序
  • 官方站点:https://www.isc.org/

DNS服务器软件:bind,powerdns,dnsmasq,unbound,coredns

  • bind:服务器
  • bind-libs:相关库
  • bind-utils: 客户端
  • bind-chroot: 安全包,将dns相关文件放至 /var/named/chroot/

1.搭建内网DNS服务器

实验目的:在内网服务器上可以使用域名进行上网

1.1安装bind软件包

LINUX网络第三章:DNS解析,linux,网络,服务器

安装bind的时候会自动生成一个名叫named的用户

LINUX网络第三章:DNS解析,linux,网络,服务器

安装完软件后   要找到两个东西 (1.配置文件位置  2.主程序的位置)

rpm -qc 可以找到配置文件的位置

LINUX网络第三章:DNS解析,linux,网络,服务器

rpm -ql可以找到主程序的位置

1.2修改DNS地址

LINUX网络第三章:DNS解析,linux,网络,服务器

LINUX网络第三章:DNS解析,linux,网络,服务器

 安装完软件后,要找到两个东西(1.配置文件位置;2主程序位置)

rpm -qc  #可以找到配置文件的位置

LINUX网络第三章:DNS解析,linux,网络,服务器

rpm -qc  #可以找到主程序的位置

LINUX网络第三章:DNS解析,linux,网络,服务器

其中,bind是安装包的名字,namde是程序的名字

named程序的主要文件:

/etc/named.conf  #主配置文件

/etc/named.rfc1912.zones  #子配置文件  域名配置文件

/var/named   #程序库文件 

启动named程序的话 会先读取主配置文件

然后读取include包含的子配置文件
LINUX网络第三章:DNS解析,linux,网络,服务器

1.3重启网卡

LINUX网络第三章:DNS解析,linux,网络,服务器

会出现如下报错

LINUX网络第三章:DNS解析,linux,网络,服务器

1.4再次ping百度地址

LINUX网络第三章:DNS解析,linux,网络,服务器

DNS解析使用的是TCP和UDP的53端口

1.5配置本机为DNS内网解析服务器

LINUX网络第三章:DNS解析,linux,网络,服务器

修改监听端口为任意;修改权限为任意 

LINUX网络第三章:DNS解析,linux,网络,服务器

1.6修改客户端配置

LINUX网络第三章:DNS解析,linux,网络,服务器

LINUX网络第三章:DNS解析,linux,网络,服务器

1.7验证

LINUX网络第三章:DNS解析,linux,网络,服务器

此时内网DNS服务器就搭好了

2.正向解析——通过域名解析IP地址

实验目的:在内网环境中,需要有一台自己的dns服务器,去解析内网的服务

2.1安装bind工具包——bind-utlis

LINUX网络第三章:DNS解析,linux,网络,服务器

2.2修改配置

LINUX网络第三章:DNS解析,linux,网络,服务器

LINUX网络第三章:DNS解析,linux,网络,服务器

2.3手写域名配置文件

vim /etc/named.rpc1912.zones

LINUX网络第三章:DNS解析,linux,网络,服务器

2.4手写配置文件

拷贝named.localhost例子,到cxk.com.zone

LINUX网络第三章:DNS解析,linux,网络,服务器

vim /var/named/cxk.com.zone

LINUX网络第三章:DNS解析,linux,网络,服务器

@:域名;

IN:使用Internet协议

SOA:这条配置的基本功能

A:正向解析(将域名转化为IP地址);PTR:反向解析(将IP地址转化为域名)

master:定义了谁是dns服务器

2.5开启named服务

LINUX网络第三章:DNS解析,linux,网络,服务器

2.6验证

使用dig来解析域名

LINUX网络第三章:DNS解析,linux,网络,服务器

显示www.cxk.com的地址是192.168.241.111

2.6.1检测命令

named-checkconf  主配置文件

named-chechconf  /etc/named.conf

named-checkzone  域名  数据库文件

named-checkzone cxk.com /var/named/cxk.com.zone

3.主从复制

3.1原理

LINUX网络第三章:DNS解析,linux,网络,服务器

3.2主从服务器一起配置

在Xshell中选择工具一栏,选择“发送键输入到所有会话”

LINUX网络第三章:DNS解析,linux,网络,服务器

关闭防火墙

LINUX网络第三章:DNS解析,linux,网络,服务器

3.3统一安装bind-utils

LINUX网络第三章:DNS解析,linux,网络,服务器

3.4修改主配置文件

LINUX网络第三章:DNS解析,linux,网络,服务器

LINUX网络第三章:DNS解析,linux,网络,服务器

3.5修改域名配置文件

LINUX网络第三章:DNS解析,linux,网络,服务器

LINUX网络第三章:DNS解析,linux,网络,服务器

3.6修改网卡配置——主从复制

LINUX网络第三章:DNS解析,linux,网络,服务器

3.7重启网卡 

LINUX网络第三章:DNS解析,linux,网络,服务器

3.8验证主服务器

LINUX网络第三章:DNS解析,linux,网络,服务器

3.9从服务器配置

LINUX网络第三章:DNS解析,linux,网络,服务器

LINUX网络第三章:DNS解析,linux,网络,服务器

3.10修改监听与权限配置

LINUX网络第三章:DNS解析,linux,网络,服务器

LINUX网络第三章:DNS解析,linux,网络,服务器

3.11修改从配置文件

LINUX网络第三章:DNS解析,linux,网络,服务器

3.212重启网卡验证从服务器

systemctl resrart named

LINUX网络第三章:DNS解析,linux,网络,服务器

3.13关闭主服务器,测试从服务器

systemctl stop named

重启从服务器的dns服务 

LINUX网络第三章:DNS解析,linux,网络,服务器LINUX网络第三章:DNS解析,linux,网络,服务器

3.14补充

4.CDN——内容分发网络

静态资源:不需要服务器二次处理的(图片、txt、视频)

动态资源:需要服务器二次处理的(java、Python、php)文章来源地址https://www.toymoban.com/news/detail-795982.html

状态代码:404错误、200正确、304缓存

到了这里,关于LINUX网络第三章:DNS解析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 第三章:Linux简介及面试常问问题

    目录 一、Linux发展史 1.Linux前身-Unix 2.Linux诞生 3.开源文化 4.Linux系统特点 5.Linux操作系统优点 6.Linux操作系统发行版 7.Linux内核命名规则 二、Linux系统的安装 三、linux系统分区简介及如何分区 1.自动分区 2.手动分区 3.linux下查看分区信息和剩余空间大小 五、Linux系统的文件目录结

    2024年02月16日
    浏览(41)
  • 第三章 LInux多线程开发 3.1-3.5线程创建 终止 分离

    一般情况下,main函数所在的线程我们称之为 主线程(main线程) ,其余创建的线程称之为子线程。 程序中默认只有一个进程,fork()函数调用,2进行 程序中默认只有一个线程,pthread_create()函数调用,2个线程。 #include pthread.h int pthread_create(pthread_t *thread, const pthread_attr_t *attr,

    2024年02月09日
    浏览(47)
  • 【云边有个小卖部】上新《探秘Linux》第三章 Linux 软件包管理器 yum

    🕺作者: 主页 我的专栏 C语言从0到1 探秘C++ 数据结构从0到1 探秘Linux 菜鸟刷题集 😘欢迎关注:👍点赞🙌收藏✍️留言 🏇 码字不易,你的👍点赞🙌收藏❤️关注对我真的很重要,有问题可在评论区提出,感谢阅读!!! 在Linux下安装软件, 一个通常的办法是下载到程序

    2024年02月15日
    浏览(69)
  • Linux系统Shell脚本第三章:for、while循环及脚本实操

    目录 一、for循环 1、基本格式 2、类C语言格式 二、while循环 1、基本格式 2、死循环语句 三、跳出循环 1、continue跳出循环 2、break跳出循环 四、常用循环脚本实例 1、循环打印9*9乘法表 2、循环ping测试某个网段网络连通性 3、while死循环实现猜数字游戏 用于已知循环次数的场景

    2024年01月16日
    浏览(46)
  • 【正点原子Linux连载】第三章 RV1126开发环境搭建 摘自【正点原子】ATK-DLRV1126系统开发手册

    1)实验平台:正点原子RV1126 Linux开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=692176265749 3)全套实验源码+手册+视频下载地址: http://www.openedv.com/thread-340252-1-1.html 3.1 rv1126的环境配置 在上章节里面我们已经安装好Ubuntu,此时的Ubuntu还是不能做开发的,因为还有很多环

    2024年02月04日
    浏览(52)
  • 【计算机网络 - 第三章】运输层

    目录 一、多路复用和多路分解 1、运输层端口号 2、概述 3、原理  1、无连接的多路复用与多路分解 - UDP 2、面向连接的多路复用与多路分解 - TCP 二、无连接运输——UDP用户数据报协议 1、UDP概述 2、UDP的优点 三、可靠数据传输原理 1、概述 2、rdt1.0——可靠信道上的可信数据

    2024年02月11日
    浏览(52)
  • [计算机网络]第三章——传输层

    仅供交流,请勿转载,侵权必删,写作业时请勿直接抄袭 传输层协议为运行在不同主机上的 应用进程之间 提供了 逻辑通信( logic communication) 功能。从应用程序的角度看,通过逻辑通信,运行不同进程的主机好像直接相连一样;实际上,这些主机也许位于地球的两侧,通过很多

    2023年04月08日
    浏览(46)
  • 【Zookeeper源码走读】第三章 服务器处理客户端请求的流程

    前一篇文章,已经大致介绍了Server的启动流程,在NIOServerCnxnFactory.start()方法中,启动了多个线程,其中就有接收socket报文的线程,代码如下: 注意这里,acceptThread是接收socket的线程(AcceptThread),acceptThread的初始化是在NIOServerCnxnFactory.configure()中实现的: NIOServerCnxnFactory.confi

    2024年02月02日
    浏览(52)
  • 【全解析 | PTA】浙大版《Python 程序设计》题目集-第三章

    一、判断题 1.\\\'age\\\'+23不是正确的表达式。T 2 . 列表可以用find()函数来搜索数据是否在列表中。F         find()函数是字符串处理函数;Python find() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含子

    2024年04月15日
    浏览(64)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包