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
例子第一行的“@”表示当前起始点。起始点的含义是,数据文件是为哪个区域创建的,该区域就是当前的起始点。这样的话,这个数据文件中的所有记录都遵从这里的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

收藏

51cisco

69篇文章,16W+人气,0粉丝

Ctrl+Enter 发布

发布

取消

推荐专栏更多

5366d1f50328a62facbf5db1d91c319a.png
VMware vSAN中小企业应用案例

掌握VMware超融合技术

共41章 | 王春海
¥51.00 346人订阅
9d82eccb4e3c371eaeac41193bbef757.png
基于Kubernetes企业级容器云平台落地与实践

容器私有云平台实践之路

共15章 | 李振良OK
¥51.00 596人订阅
45862f289339dc922ffda669fd74ad9b.jpg
网工2.0晋级攻略 ——零基础入门Python/Ansible

网络工程师2.0进阶指南

共30章 | 姜汁啤酒
¥51.00 1567人订阅
629650e188ddde78b213e564c2e9ebff.jpg
负载均衡高手炼成记

高并发架构之路

共15章 | sery
¥51.00 507人订阅
dc6736c5fd50474b5df8b76b040e3d03.jpg
带你玩转高可用

前百度高级工程师的架构高可用实战

共15章 | 曹林华
¥51.00 462人订阅
f92360e227f9d91cdff7ea95120630ef.png
left-qr.jpg

扫一扫,领取大礼包

0

分享
qr-url?url=https%3A%2F%2Fblog.51cto.com%2Fwangshibo1010%2F42654
51cisco
noavatar_middle.gif