当前TCP/IP网络中的设备之间进行通信,是利用和依赖于IP地址实现的。但数字形式的IP地址是很难记忆的。当网络设备众多,想要记住每个设备的IP地址,可以说是"不可能完成的任务"。那么如何解决这一难题呢?我们可以给每个网络设备起一个友好的名称,如:www.baidu.com,这种由文字组成的名称,显而易见要更容易记忆。但是计算机不会理解这种名称的,我们可以利用一种名字解析服务将名称转化成(解析)成IP地址。从而我们就可以利用名称来直接访问网络中设备了。除此之外还有一个重要功能,利用名称解析服务可以实现主机和IP的解,即:当主机IP变化时,只需要修改名称服务即可,用户仍可以通过原有的名称进行访问而不受影响。
DNS:Domain Name System 域名系统,应用层协议,是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网,基于C/S架构,服务器端:53/udp, 53/tcp?实际上,每一台 DNS 服务器都只负责管理一个有限范围(一个或几个域)内的主机域 名和 IP 地址的对应关系,这些特定的 DNS 域或 IP 地址段称为 zone(区域)。根据地址解 析的方向不同,DNS 区域相应地分为正向区域(包含域名到 IP 地址的解析记录)和反向区 域(包含 IP 地址到域名的解析记录)
IPv4的根名称服务器:全球共13个负责解析根域的DNS服务器,美国10个,英国1,瑞典1,日本1
IPv6的根名称服务器:全球共25个,中国1主3从,美国1主2从
dns:域名解析协议
作用:将域名转化成ip地址
IP地址过长,都是数字,不方便记忆,所以出现了域名
一个dns服务器,只管字节范围内的解析
服务器端口:53/udp,? ?53/tcp?
正向解析:将域名解析为对应的ip地址。
反向解析:通过ip地址解析对应的域名。
递归查询:一般客户机和本地DNS服务器之间属于递归查询,即当客户机向DNS服务器发出请求后,若DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求,得到最终的肯定或否定的结果后转交给客户机。此查询的源和目标保持不变,为了查询结果只需要发起一次查询。(不需要自己动手)递归只需问一次
迭代查询:一般情况下(有例外)本地的DNS服务器向其它DNS服务器的查询属于迭代查询,如:若对方不能返回权威的结果,则它会向下一个DNS服务器(参考前一个DNS服务器返回的结果)再次发起进行查询,直到返回查询的结果为止。此查询的源不变,但查询的目标不断变化,为查询结果一般需要发起多次查询。(需要自己动手)??迭代要多次
递归查询:客户机和本地服务器之间的,对已有服务器依次发送,A可以解析则返回,不能则递归到下一台直到成功或全部都失败返回结果,不需要动手。
迭代查询:本地服务器向其他服务器查询,查询源不变查询目标一直在变,需要多次查询,需要自己动手。
3.域名组成
例如:? ?www.baidu.com..根域
.com ?顶级域 ?一级域
.baidu ?二级域
www ? 主机名
根的dns服务器只能解析? ? ?? 主机名+根域
一级域的dns服务器只能解析? ? ? 主机名+一级域+根域
二级域的dns服务器? ? ? ? ? 主机名+二级域+一级域+根域
1.先看我本机的hosts文件,如果有,直接访问;如果没有,就去找你设置的缓存dns服务器
2.如果缓存服务器有,直接反馈结果(递归);如果没有,就需要迭代查询,直接去找根域服务器
3.由于根域服务器,只能解析 根,无法解析www.baidu.com,但是根域服务器让你去找一级域服务器
4.一级域发现自己也解析不了,让你去找二级域
5.二级域发现这台服务器在自己的管理范围内,直接反馈结果给缓存服务器
6.缓存服务器再交给客户
在内网可以使用域名上网
(软件名 bind , 服务名 named)