SOA资源记录是一个常常让大家困惑的问题,现在我来详细对它进行说明。
SOA(start of authority)记录定义了DNS授权区域的起始点。
下面先给出一个具体的例子:
@ IN SOA server.lpicn.org. admin.lpicn.org. (
2003062201 ; Serial
28800 ; Refresh
7200 ; Retry
604800 ; Expire
86400) ; Minimum TTL
2003062201 ; Serial
28800 ; Refresh
7200 ; Retry
604800 ; Expire
86400) ; Minimum TTL
例子第一行的“@”表示当前起始点。起始点的含义是,数据文件是为哪个区域创建的,该区域就是当前的起始点。这样的话,这个数据文件中的所有记录都遵从这里的SOA规定,除非它们另有说明(比如ttl说明)。对于其他类型的记录,这里的@也可换成一个主机名如aa,但SOA记录只能用@。因为SOA记录中定义了区传送的时间参数,这必须对应于整个数据文件而不是某条记录。
第一行中的“IN SOA”说明这是一条SOA记录。
第一行中的“server.lpicn.org.”表示该数据文件记录在哪一台主机中,如果这台主机是本区域的,那么必须在该区域文件中定义这台主机。注意这里的最后一个“.”是有意义的,假设这个数据文件是为"lpicn.org."区域创建的话,那么,如果不写点,而写成”server.lpicn.org",则相当于写成"server.lpicn.org.lpicn.org.",这里的内容可参考dns数据文件的语法规定。
第一行中的“admin.lpicn.org.”给出了负责维护域名服务器的管理员的邮件地址,它相当于“[email]admin@lpicn.org[/email]”,这里把“@”换成了“.”;
我们可以注意到,在第2至5行的数字外面还套了一对括号。其实是这样的,本来这里所有的数字都是应该写在同一行的,然而,为了看上去方便,我们将之分为5行。使用括号,可以将跨越多行的数据定义在一起,视为一个整行数据处理。
5行数据的前四行都是针对主辅服务器间的区传送而言的。
数据的第一行是序列号,进行区传送时,检查主服务器上的序列号有无变大(比较的方法是辅服务器利用上次从主服务器获得的数据和这次的进行比较),如果变大了,就进行传送,否则不传送。这个序列号可以是小数,如果是小数,也必须按一定的规则转变为整数进行比较。规则是这样的:小数点右边的乘以1000,然后直接把小数点右边的连接到前面乘法运算后的结果之后,如200.1相当于2000001,100.01相当于10000001,这样200.1倒反而比100.01来得小了,所以这种方法很不直观,不推荐使用,但要看的懂,有时还是有用的,因为它可以缩短数字的长度。一种我们推荐的方法是使用如下形式:“年月日第几次”,如2003年6月22日第1次修改用“2003062201”,第二次修改用2003062202,…。当序列号变得很大,需要重新变小时,为了能让区传送继续,一种方法是删除所有辅服务器上的对应区域文件并重启服务,这样来强制执行区传送。
数据的第二行是辅服务器检查主服务器是否同步的间隔时间。
数据的第三行是辅服务器在区传送失败后,等待再次进行区传送的时间间隔。
数据的第四行规定,如果不能保证辅服务器与主服务器同步,最长可以使用辅服务器数据的时间,时间到了之后,仍不能进行传送的话,辅服务器将丢弃对应的数据。
数据的第五行是最小TTL(time-to-live)时间,这是针对缓存而言的,与区传送没有关系。 生存期(TTL)为所容许的名字服务器对数据缓存的时间长度,一旦生存期到了,名字服务器必须丢弃缓存数据并从授权的名字服务器中重新获取新的数据。这样可以确保域数据在整个网络上的一致性。
缓存不仅保存成功查询信息,也保存失败查询信息。我们常有体验,在访问一个叫abcd.efg.com的站点时,如果查询失败,那么,在短时间内重新访问这个站点,会立刻返回这个主机不存在的信息,就是这个道理。在BIND8.2以前的版本中,两种缓存的生存期使用同一个值,而新版本中分别设定值。对于老版本,名字服务器的数据库文件的SOA最后一项就是TTL;而新版本(Bind8.2及以后版本)数据库文件的SOA最后一项是失败信息缓存的生存期,文件的第一行则多了个$TTL,为成功信息的缓存生存期。
最后一点说明,上面的时间在较老的版本都是以秒为单位,新版本中默认以秒为单位,也可根据需要自己指定单位,具体请查阅相关文档。但需注意,对于区传送的时间参数,如果设定为很短时间,比如两秒,则不一定能按照该时间进行,一般会比设定的长一点。
希望上面的内容能够对大家有所帮助。
0
收藏
推荐专栏更多
猜你喜欢
我的友情链接
基于Linux 的PC 集群
DNS域名系统
DNS原理及其解析过程【精彩剖析】
linux下DNS解析(nslookup、dig、host)
呕心沥血之作:DNS and BIND配置指南
DDNS配置实例(DHCP+DNS=DDNS)
详解DNS的常用记录(上):DNS系列之二
CentOS 7.3 搭建DNS服务器
清空DNS缓存和重置TCP/IP堆栈的命令
centos 修改DNS,网关,IP地址
我们不得不面对的中年职场危机
简述centOS 7系统用户和组的管理及配置
解析DELL R710服务器迁移操作内容
开学季出大事:某教育局丢失3台虚拟机
EVA4400存储虚拟机+数据库数据恢复成功案例
服务器数据恢复通用方法+服务器分区丢失恢复案例
在CentOS7上部署squid缓存服务器及代理功能
EMC 5400服务器raid阵列瘫痪数据恢复成功案例
服务器数据恢复案例 / raid5阵列多块硬盘离线处理方法
扫一扫,领取大礼包
转载于:https://blog.51cto.com/wangshibo1010/42654
Ctrl+Enter 发布
发布
取消