咱们在浏览器的地址栏中输入:http://www.sohu.com就能够浏览该网站的资源了,可是在互联网数据的传输、主机的识别依靠的是IP地址。也就是说,在互联网中能准确地把数据从一台主机路由到指定的主机依赖于逻辑地址IP。可是,咱们日常浏览网页的时候,没有输入IP地址,只输入了http://www.sohu.com 就可以访问sohu的网页了,那又是为何呢?web
其实,这背后是由:DNS域名解析服务器,把域名www.sohu.com 解析成对应的 IP 地址,而后浏览器就使用该IP地址访问服务器了。若是DNS域名解析服务器没法解析该域名,则你是没法访问该域名对应的主机的资源的。固然,你也能够在浏览器直接输入你要访问主机的IP地址,也是能够的。数据库
DNS解析以前的步骤:vim
-------> 查找hosts文件 -------> DNS缓存(DNS客户端) --------> 查找DNS服务器缓存 ---------> 由DNS服务器去解析以下图
说明:(这里略去国家域的解析)浏览器
一、 DNS客户端向DNS域名解析服务器(运营商DNS)发送域名www.9527du.com解析请求。 二、 运营商DNS收到请求后,发现【.com】该域并不在本身的解析能力范围内。 把解析请求提交给根域。 三、 根域告诉运营商DNS,负责解析【.com】域的DNS服务器的地址 四、 运行商DNS服务器,从根域那里知道了负责【.com】域的DNS服务器的地址, 就请求帮忙解析【9527.com】 五、 负责解析【.com】域的DNS服务器就告诉,运行商DNS负责【9527du】该域的DNS服务器的地址 六、 运行商DNS服务器,就向负责【9527du】域DNS服务器,请求解析【www】主机的地址 七、 负责解析【9527du】域的DNS,查找本身的A记录,确实有这www这台主机, 就把该主机对应的IP地址,告诉运营商DNS服务器。 八、 运营商DNS服务器,就告诉本身的客户端你要解析的域名的IP地址是什么。 九、 DNS客户端(浏览器)就使用IP地址访问www.9527du.com这域名对应主机的资源了。
从上面,能够看出,域名解析也就是从域名找出,它所对应的IP地址。属于名称解析的一种。那么咱们应该使用文件或数据库把域名与IP地址的对应关系存储起来,文件或数据库就被称为:解析库。缓存
解析库的种类有:bash
一、文本文件 查找速度慢,若是文本文件很大的知,把该文件加载入内存,才能够查找占用很大内存 二、基于关系型数据库 能够经过一级索引,多级索引,加速数据的检索速度 三、LDAP:LightweightDirectory Access Protocol 比关系型数据库的检索快100倍数据级。
咱们的应用应该选择哪一种解析库呢,视实际应用而定。服务器
那么,DNS服务器是如何定义解析库的呢?架构
[root@stu13 ~]# vim/etc/named.rfc1912.zones zone "9527du.com" IN { type master; file "9527du.zone"; };
说明:dom
Zone 关键字,是定义域的名称。域有嫡属关系的。如上图【.9527du】这个域是【.com】域的子 域,而【.com】域又属于根域的子域。因此,咱们定义域的时候,要标明该域是属于那个 域的。如:【.9727du.com】.这也是域的层级结构决定的。咱们只有了解域的层级才能够ide
正确配置DNS服务器的。
Type 关键字,是定义负责该域解析的DNS服务器工做类型:主DNS仍是slave DNS仍是根:hint.
File 关键字,指定咱们的解析库名称。该解析库是使用相对路径表示的,是相对于named工做 的目录而言的,工做目录在options{…};主配置段中使用:directory关键字来定义的。
咱们有了解析库了,就应该在解析库中定义要解析的内容了,也就是定义资源类型。那么DNS有那些资源类型呢,定义资源类型的格式又是什么样的呢?
一、 资源类型
(1)、SOA Start Of Authority 起始受权记录; 做用:定义负责该区域zone的DNS域名解析的服务器的工做特征的。 注意:一个区域文件中只能有一个 SOA 资源记录。 (2)、NS Name Server 标识一个区域zone内,谁是DNS服务器。 (3)、MX Mail eXchange标明一个域内谁是邮件DSN 服务器。 注意要指明优先级:[0-99] (4)、A address A记录,专门用于正向解析库。 (5)、PTR 专用于反向解析库。FQDN-------> IP 注意:A资源记录与PTR不能同时出现。 (6)、AAAA 专用于IPV6 (7)、CNAME Canonical Name 别名记录
2、资源记录类型的格式;
Name [ttl] IN RRType value 缓存时长 资源记录类型
(1)、SOA Start Of Authority 起始受权记录
Name 当前区域的域名,也就是负责解析的区域zone..一般能够简写成:@ Value 负责解析该区域的DNS的FQDN,也能够是当前区域的区域名称。
例:
@ IN SOA ns.9527du.com. admin.9527du.com. ( serialnumber ; 解析库的版本号。分号为注释。每改变一次配置版本号要+1 refreshtime ; DNS服务器是主从架构时,解析库数据同步的时间间隔 retry time ; 当从服务器链接不到主服务器时,每隔多长时间联系一次。 expiretime ; 从服务器联系不到主服务器。从服务器帮助主服务器解析域名的时长 negativeanswer ttl ; 否认答案(不能解析的域名)的统一缓存时长。 )
注意:任何解析库文件的第一个记录必须是SOA
(2)、NS name server
Name DNS服务器负责解析的区域zone,,能够简写成:@ Value DSN 服务器的FQDN
例:
@ IN NS ns.9527du.com.
注意:
若是有多台NS服务器,每个都必须有对应的NS记录。对于正向解析文件来讲,每个NS的FQDN都应该有一个A记录。
(3)、MX: Mail eXchanger
name: 邮件DNS服务器负责解析的区域zone名称 value: 邮件服务器的FQDN
例:
@ IN MX 10(优先级) mail.9527du.com @ IN MX 20 mail2.9527du.com
注意:
若是有多台MX服务器,每个必须有对应的MX记录,但各MX记录还有优先级属性
对于正向解析文件来讲,每个NS的FQDN都应该有一个A记录。
作为邮件的DNS服务器,必需有正反解的功能。
(4)、A (Address):记录
Name FQDN Value IP地址
例:
ns.9527du.com IN A 10.16.13.1 mail.9527du.com IN A 202.1.50.8 www.9527du.com IN A 202.1.50.8 bbs.9527du.com IN A 202.1.50.8
(5)、CNAME: Canonical Name
name: FQDN value: FQDN
例:
web.8527du.com IN CNAME www.9527du.com.
那如何配置DNS的正向解析功能呢?
一、 要先肯定DNS服务器负责解析的区域?再定义DNS服务器的工做模式和解析库
负责解析:9527du.com该区域,该DNS工做在master,解析库文件为:9527du.zone
[root@stu13 ~]# vim/etc/named.rfc1912.zones zone "9527du.com" IN { type master; file "9527du.zone"; };
2、在解析库9527du.com.zone中添加资源记录。
三、使用【host】测试是否可以解析成功
[root@stu13~]# host -t A www.9527du.com 172.16.13.1 Usingdomain server: Name:172.16.13.1 Address:172.16.13.1#53 Aliases: www.9527du.comhas address 172.16.249.50 www.9527du.comhas address 172.16.249.51
[root@stu13~]# host -t A web.9527du.com 172.16.13.1 Usingdomain server: Name:172.16.13.1 Address:172.16.13.1#53 Aliases: web.9527du.comis an alias for www.9527du.com. www.9527du.comhas address 172.16.249.51 www.9527du.comhas address 172.16.249.50
[root@stu13~]# host -t A bbs.9527du.com 172.16.13.1 Usingdomain server: Name:172.16.13.1 Address:172.16.13.1#53 Aliases: bbs.9527du.com has address 172.16.249.52
OK!!!!