网络通讯大部分是基于TCP/IP的,而TCP/IP是基于IP地址的,所以计算机在网络上进行通讯时只能识别IP地址,而不能认识域名。我们无法记住多个IP地址的网站,所以我们访问网站时,更多的是在浏览器地址栏中输入域名,就能看到所需要的页面,这是因为有一个叫“DNS服务器”的计算机自动把我们的域名“翻译”成了相应的IP地址,然后调出IP地址所对应的网页。
什么是DNS?
DNS( Domain Name System)是“域名系统”的英文缩写,是一种组织成域层次结构的计算机和网络服务命名系统,它用于TCP/IP网络,它所提供的服务是用来将主机名和域名转换为IP地址的工作。DNS就是这样的一位“翻译官”。
DNS域名称
域名系统作为一个层次结构和分布式数据库,包含各种类型的数据,包括主机名和域名。DNS数据库中的名称形成了一个分层树状结构称为域名空间。域名包含单个标签分割点,例如:www.baidu.com.
完全限定的域名(FQDN)唯一地标识在DNS分层树中的主机的位置,通过指定的路径中点分隔从根引用的主机的名称列表。下面显示主机称为www内mageedu.com DNS树的示例。主机的FQDN是www.magedu.com.
DNS域名称空间的组织方式:
按其功能命名空间中用来描述DNS域名称的五个类别的介绍如下:
DNS和Internet 域
互联网域名系统由名称注册机构负责维护分配由组织和国家/地区的顶级域在 Internet 上进行管理。 这些域名按照国际标准 3166。 一些很多现有缩写,保留以供组织中,以及两个字母和三个字母的国家/地区使用的缩写使用下表所示。一些常见的DNS域名称有:
com:商业公司 edu:教育机构 net:网络公司 gov:非军事政府机构 Mil:军事政府机构 xx:国家/地区代码(cn代表中国)
资源记录
DNS数据库中包含的资源记录RR,每个RR标识数据库中的特定资源。我们在建立DNS服务器时,经常会用到SOA,NS,A之类的记录,在维护DNS服务器是,会用到MX,CNAME记录。常见的RR如下所示
Dns服务的工作过程
当 DNS 客户机需要查询程序中使用的名称时,它会查询本地DNS 服务器来解析该名称。客户机发送的每条查询消息都包括3条信息,以指定服务器应回答的问题。
● 指定的 DNS 域名,表示为完全合格的域名 (FQDN) 。
● 指定的查询类型,它可根据类型指定资源记录,或作为查询操作的专门类型。
● DNS域名的指定类别。
对于DNS 服务器,它始终应指定为 Internet 类别。例如,指定的名称可以是计算机的完全合格的域名,如im.qq.com,并且指定的查询类型用于通过该名称搜索地址资源记录。
DNS 查询以各种不同的方式进行解析。客户机有时也可通过使用从以前查询获得的缓存信息就地应答查询。DNS 服务器可使用其自身的资源记录信息缓存来应答查询,也可代表请求客户机来查询或联系其他 DNS 服务器,以完全解析该名称,并随后将应答返回至客户机。这个过程称为递归。
另外,客户机自己也可尝试联系其他的 DNS 服务器来解析名称。如果客户机这么做,它会使用基于服务器应答的独立和附加的查询,该过程称作迭代,即DNS服务器之间的交互查询就是迭代查询。
DNS 查询的过程如下图所示。
1、在浏览器中输入www.magedu.com域名,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析。
2、如果hosts里没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。
3、如果hosts与本地DNS解析器缓存都没有相应的网址映射关系,首先会找TCP/IP参数中设置的首选DNS服务器,在此我们叫它本地DNS服务器,此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具有权威性。
4、如果要查询的域名,不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性。
5、如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(是否设置转发器)进行查询,如果未用转发模式,本地DNS就把请求发至13台根DNS,根DNS服务器收到请求后会判断这个域名(.com)是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收到IP信息后,将会联系负责.com域的这台服务器。这台负责.com域的服务器收到请求后,如果自己无法解析,它就会找一个管理.com域的下一级DNS服务器地址(magedu.com)给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找magedu.com域服务器,重复上面的动作,进行查询,直至找到www.magedu.com主机。
6、如果用的是转发模式,此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把转请求转至上上级,以此循环。不管是本地DNS服务器用是是转发,还是根提示,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。
从客户端到本地DNS服务器是属于递归查询,而DNS服务器之间就是的交互查询就是迭代查询。
DNS服务器的类型
主DNS服务器:维护所负责解析的域内的解析库的服务器,解析库由管理员维护;
辅助DNS服务器:从主DNS服务器或者其他的从DNS服务器那里“复制”(区域传递)一分解析库
缓存名称服务器
转发器
主DNS服务器
从DNS服务器
序列号:解析库的版本号:前提:主服务器解析库内容发生变化,其序列递增:
区域传送:
辅助DNS服务器从主DNS服务器或其他的辅助DNS服务器请求数据传输过程
完全区域传送:传送区域的所有数据,AXFR
增量区域传送:传送区域中改变的数据部分,IXFR
刷新时间:从服务器从主服务器请求同步解析库的时间间隔:
重试时间:从服务器从主服务器请求同步解析库失败时,再次尝试的时间间隔
过期时长:从服务器始终联系不到主服务器时候,多久放弃从服务器角色,停止服务。
DNS的数据库文件(区域数据文件,区域自身有名字):文本文件,只能包含资源记录或宏定义,每行一个
资源记录的格式:
name [ttl(缓存时间)] IN 资源记录类型(RRtype) Value
注意:(1)TTL可从全局继承
(2)@可用于引用当前区域的名字
(3)同一个名字可以通过多条记录定义多个不同的值;此时DNS服务器会以轮询方式响应:
(4)同一个值可以有多个不同的定义名字:通过多个不同的名字指向同一个值定义:
例子:
www 600 IN A 1.2.3.4
www.magedu.com. 600 IN A 1.2.3.4
SOA:
name:只能是区域名称,通常可以简写为@,例如:magedu.com.
value:有n个数值,最主要的是主DNS服务器的FQDN,点不可省略
注意:SOA必须是区域数据库文件第一条记录
value:有多部分组成
(1)当前区域的主DNS服务器的FQDN,也可以使用当前区域的名字:
(2)当前区域的管理员的邮箱地址:但地址中不能使用@符号,一般用.替换,例如linuxedu.magedu.com;
(3)(主从服务协调属性的定义以及否定的答案的统一的TTL)
例如:
magedu.com. 86400 IN SOA ns.mageedu.com. nsadmin.mageedu.com.(20150914002 ;序列号
2H ;刷新时间
10M ;重试时间
1w ;过期时间
1D ;否定答案的TTL值
)
例子:
@ 600 IN SOA na.magedu.com. 管理员邮箱(dnsadmin.magedu.com.)(
序列号(serial number) ;注释内容,十进制数据,不能超过10位,通常使用日期,例如2014031001
刷新时间(refresh time) ;即每隔多久到主服务器检查一次
重试时间(retry time) ;应该小于refresh time
过期时间(expire time)
netgative answer ttl ;否定答案的ttl
)
NS:可以有多条
name:区域名称,通常可以简写为@
value:当前区域的某DNS服务器的名字,例如ns.magedu.com.:
一个区域可以有多个NS记录:
例如:
magedu.com. IN NS ns1.magedu.com.
IN NS ns2.magedu.com.
注意:(1)相邻的两个资源记录的name相同时,后续的可省略;
(2)对NS记录而言,任何一个ns记录后面的服务器名字,都应该在后续有一个A记录:
A:只能定义在正向区域数据文件中
name:某主机的FQDN,例如:www.magedu.com
value:IP
例如;
www.magedu.com. IN A 1.1.1.1
IN A 1.1.1.2
mx1.magedu.com. IN A 1.1.1.3
mx2.magedu.com. IN A 1.1.1.3
注意:
*.magedu.com. IN A 1.1.1.4
magedu.com. IN A 1.1.1.4
避免用户写错名称时给错误答案,可通过泛域名解析进行解析至某特定地址:
例子:
www 600(单位s) IN A 1.2.3.4
www 600(单位s) IN A 1.2.3.5
可做轮询
www 600(单位s) IN A 1.2.3.4
ftp 600(单位s) IN A 1.2.3.4
但凡以FQDN做为其值的记录,应该给这个值做一条A记录
MX:可以有多个
name:区域名称,用于标识smtp服务器
value:当前区域的某邮件服务器(SMTP)的主机名:
一个区域内,MX记录可以有多个:但每个记录的value之前应该有一个数字
(0-99)表示此服务器的优先级,数字越小,级别越高,
例如:
magedu.com. IN MX 10 mx1.magedu.com.
IN MX 20 mx2.magedu.com.
注意(1)对MX记录而言,任何一个MX记录后面的服务器名字,都应该在后续有一个A记录:
CNAME:
name :别名的FQDN
value :正式的FQDN
例子:
web.magedu.com. IN CNAME www.magedu.com.
PTR:IP --> FQDN,只能定义在反向区域数据文件中,反向区域名称为逆向网络地址加.in-addr.arpa.后缀组成
name:IP,逆向的主机地址,例如172.16.100.7的name为7.100,完全格式为7.100.16.172.in-addr-arpa.
value:FQDN
例子:
4.3.2.1.in-addr.arpa. IN PTR www.magedu.com
简写成: 4 IN PTR www.magedu.com.
注意:网络地址及后缀可省略:主机地址依然需要反着写:
子域授权:每个域的名称服务器,都是通过其上级名称服务器在解析库进行授权:
类似根域授权tld:
.com IN NS ns1.com.
.com IN NS ns2.com.
ns1.com. IN A 2.2.2.1
ns2.com. IN A 2.2.2.2
magedu.com.在.com的名称服务器上,解析库中添加资源记录:
magedu.com. IN NS ns1.magedu.com.
magedu.com. IN NS ns2.magedu.com.
magedu.com. IN NS ns3.magedu.com.
ns1.magedu.com. IN A 3.3.3.1
ns2.magedu.com. IN A 3.3.3.2
ns3.magedu.com. IN A 3.3.3.3
bind:服务脚本:/etc/rc.d/init.d/named
主配置文件:定义区域 /etc/named.conf, /etc/named.rfc1912.zones,/etc/rndc.key
解析库文件:/var/namedZONE_NAME.ZONE
注意:(1)一台物理服务器可同时为多个区域提供解析;
(2)必须要有根区域文件:named.ca
(3)应该有两个(如果包括ipv6的,应该更多)实现localhost和本地回环地址的解析库:
rndc:remote name domain controller:远程名称控制器
默认于blind安装在同一主机,且只能通过127.0.0.1来连接named进程:提供辅助性的管理功能: 953/tcp
主配置文件:
options{
//全局选项
}
zone "zone name" {
//定于区域
}
logging{
//日志文件
}
include:加载别的文件
自定义
optins{
directory "/var/named";
};
zone "." IN{
type{hint(根)|master(主)|slave(从)|forward(转发)}
file "named.ca"
}
注意:任何服务程序如果期望其能够通过网络被其他主机访问,至少应该监听在一个能与外部主机通信的IP地址上
缓存名称服务器的配置:监听外部地址即可:
dnssec:关闭dnssec
主DNS名称服务器:
(1)在主配置文件配置区域
这个文件的配置在/etc/named.rfc1912.zones
zone "." IN{
type{hint(根)|master(主)|slave(从)|forward(转发)}
file "你要配置的区域文件的名称,这个名称一般指向/var/named"
}
(2)然后在/var/named文件中定义区域解析文件
定义区域解析库文件
出现的内容:
宏定义;
资源记录;
定义区域解析文件中会用到几个命令
named-checkzone "magedu.com" /var/named/magedu.com.zone 检查区域文件是否有错误
named-checkconf:检查主配置文件
service named restart:重启服务
service named reload:重读服务
rndc reload:重读服务
例子:$TTL 600
$ORIGIN magedu.com.
@ IN SOA ns.magedu.com. lirui.magedu.com. (
20150915 ; serial
1D ; refresh
1H ; retry
1W ; expire
1D
)
IN NS ns1.magedu.com.
IN NS ns2.magedu.com.
IN MX 10 mx1.magedu.com.
IN MX 20 mx2.magedu.com.
ns1.magedu.com. IN A 192.168.1.1
ns2.magedu.com. IN A 192.168.1.3
mx1.magedu.com. IN A 192.168.1.4
mx2.magedu.com. IN A 192.168.1.5
www.magedu.com. IN A 192.168.1.111
www.magedu.com. IN A 192.168.1.112
ftp.magedu.com. IN CNAME www.magedu.com.
测试命令:dig的使用
dig [-t type] name [@SERVER] [query options]
dig用于测试dns系统,因此,不会查询hosts文件进行解析;
查询选项:
+[no]trace:跟踪解析过程
+[no]recurse:进行递归解析
测试反向解析:
dig -x IP @SERVER
模拟区域传送:
dig -t axfr ZONE_NAME @SERVER
例如:dig -t axfr magedu.com @172.16.100.11
host命令
host [-t type] name [server]
例如:host -t A www.magedu.com @192.168.1.111
nslookup命令:
nslookup [-option] [name | -] [server]
交互式模式:
nslookup>
server IP:指明使用哪个DNS server进行查询;
set q=RR_TYPE 指明查询的资源记录类型;
NAME:要查询的名称:
反向区域:
区域名称:网络地址反写 .in-addr.arpa.
172.16.100. --> 100.16.172.in-addr.arpa.
(1)定义区域
zone “ZONE_NAME” IN {
type {master| slave |forward}
file "网络地址.zone"
};
(2)区域解析库文件
注意:不需要MX和A,以及AAAA,以PTR为主
示例:$TTL 600
$ORIGIN 1.168.192.in-addr.arpa.
@ IN SOA ns.magedu.com. lirui.magedu.com. (
20150915 ; serial
1D ; refresh
1H ; retry
1W ; expire
1D
)
IN NS ns1.magedu.com.
IN NS ns2.magedu.com.
3 IN PTR mx1.magedu.com.
4 IN PTR mx2.magedu.com.
111 IN PTR www.magedu.com.
112 IN PTR www.magedu.com.
主从复制;
1.应该为一台独立的名称服务器;
2,主服务器的区域解析库文件中必须有一条NS记录是指向从服务器;
3.从服务器只需要定义区域,而无需提供解析库文件;解析库文件放置于/var/named/slaves/目录中;
4.主服务器的允许从服务器区域传送;
5.主从服务器时间应该同步,可通过ntp进行;
6.bind程序的版本应该保持一致;否则,应该从高,主低
定义从区域的方法:
zone“ZONE_NAME" IN {
type slave;
masters {master ip;}
file "slaves/ZONE_NAME.zone"‘
};
rndc:
rndc -->rndc (953/tcp)
rndc COMMAND:
reload:重新配置主文件和区域解析库文件
reload zone:重载区域解析文件
retransfer zone:手动启动区域传送过程,而不管序列号是否增加
notify zone:重新对区域传送发通知
reconfig:重载主配置文件
querylog:开启或关闭查询日志
trace:递增debug级别
trace LEVEL:指定使用的级别
status:
子域授权:分布式数据库
正向解析区域子域的方法;
定义一个子区域:
ops.magedu.com. IN NS ns1.ops.magedu.com.
ops.magedu.com. IN NS ns2.ops.magedu.com.
ns1.ops.magedu.com. IN A 1.1.1.1
ns2.ops.magedu.com. IN A 1.1.1.2
fin.magedu.com. IN NS ns1.fin.magedu.com.
fin.magedu.com. IN NS ns2.fin.magedu.com.
ns1.fin.magedu.com. IN A 3.1.1.1
ns2.fin.magedu.com. IN A 3.1.1.2
定义转发服务器:
注意:被转发的服务器需要能够为请求者做递归,否则,转发请求不予进行;
(1)全部转发:凡是对非本地所负责解析的区域的请求,统统转发给指定的服务器;
options {
forward{first }
forwarders
}
(2)区域转发:仅转发对特定的区域的请求只某服务器
zone ”ZONE_NAME" IN {
type forward;
foreard {only }
forwards
}
注意:关闭dnssec功能;
dnssec-enable no;
dnssec-validation no;
接下来我给大家演示一下,主从服务器的配置过程:
第一步先配置主服务器:
首先在主配置文件中及/etc/named.conf中做如下操作
然后在主配置文件:定义区域/etc/named.rfc1912.zones
zone "magedu.com" IN { type master; file "magedu.com.zone"; }; |
接下来在/var/named中定义解析库文件
这样主服务器就配置好了。
这样,我们就可以配置从服务器了,从服务器的配置在192.168.1.108这台主机中配置
监听端口的设置和主服务器的都相同,只不过从服务器,只需要配置区域文件,不需要配置解析库文件而已,因为它的解析库文件是从主服务器上面同步而来的。
区域配置如下
zone "magedu.com" IN { type slave; masters {192.168.1.110;}; file "slaves/magedu.com.zone"; }; |
这样主从服务器就配置好了,我这个是之前配置好的,我在主服务器的配置文件中增加一条信息,然后给序列号加1。
接下来我们来看看从服务器的解析库文件
这样一个主从服务器就配置好了,这是主从服务器的正向解析配置,接下来我们来配置一下主从服务器的反向解析配置
我们先来配置主服务器的区域配置
zone "1.168.192.in-addr.arpa" IN { type master; file "192.168.1.zone"; }; |
接下来,配置在192.168.1.108上面配置从服务器
从服务器的区域配置
zone "1.168.192.in-addr.arpa" { type slave; masters {192.168.1.110;}; file "slaves/1.168.in-addr.arpa"; |
这样反向的也配置好了。
我们在主服务器上修改消息,然后查看日志
这样反向解析也配置好了。
接下来我们要做的是子域授权的操作,我们现在192.168.1.110这台主机中配置父域的解析库
接下来我们在192.168.1.108这太主机中配置子域。
我们先配置区域:
zone "ops.magedu.com" IN { type master; file "ops.magedu.com.zone"; }; |
zone "magedu.com" IN { type forward; forward only; #####仅转发特定区域的解析请求到某服务器 forwarders {192.168.1.110;}; |
然后配置解析库文件
$TTL 600 $ORIGIN ops.magedu.com. @ IN SOA ns.ops.magedu.com. lirui.ops.magedu.com. ( 20150915 ; serial 1D ; refresh 1H ; retry 1W ; expire 1D ) IN NS ns1.ops.magedu.com. IN NS ns2.ops.magedu.com. ns1.ops.magedu.com. IN A 192.168.1.108 ns2.ops.magedu.com. IN A 192.168.1.120 www IN A 192.168.1.119 www IN A 192.168.1.110 ftp CNAME www ~ |
这样的我们的子域授权的部分也配置好了,我们来验证一下我们的配置是否正确和时候能解析地址
上面是在子域的主机上解析www.magedu.com,可以看到解析是成功的
接下来我们在父域的主机上解析www.ops.magedu.com看时候能解析成功
解析也是成功的
好了接下来,让我们来学习学习view视图的知识(未完待续)
本文出自 “空白格” 博客,请务必保留此出处http://lirui213.blog.51cto.com/4449582/1698409
原文地址:http://lirui213.blog.51cto.com/4449582/1698409