支持IPv6地址聚合和重编号的DNS扩展( 二 )


查找一个IPv6地址的应用程序通常让DNS解析器访问多条A6记录,即使要查找的域名只对应一条A6记录,也可能返回多个IPv6地址 。DNS安全[DNSSEC]并不直接认证返回地址的合法性 。假如作了标记,自然可以认证返回地址的A6记录 。
实现必须限制解析器对应一个客户请求所需的工作量 。这个原则必须扩展到限制DNS请求的产生,这些DNS请求对应域名到地址(或地址到域名)查找 。
2.2 反向查找的根本机制
本部分描述本文档使用的DNS新特性 。本部分是概述,不是这些特性的详述 。更具体的细节读者可以参考对应的参考文档 。
2.2.1 专用边界的授权
这种反向查找新机制取决于一种被称为“位串标记”[BITLBL]的新DNS标记类型 。这种标记简洁地表示一种专用位串,这些位被当作一种分层次有序的单个位域标记 。因此,资源记录能存储为专用位边界 。
第五部分的例子将配置后文描述的位串标记,它是[BITLBL]中定义的语法的子集 。“[“ and ”]”间包括了十六进制的基本表示“x”和有序的十六进制位 。这些用数字表示的位对应了一个有序的重要性递减的单个位域标记 。(假如一次只列出一位,这是它们出现的反序,但它似乎是更方便的符号 。)这种位串后面有一个斜线“/”和一个十进制数 。若省略十进制数部分,表明十进制位数是十六进制位数的四倍 。
连续的位串标记和单个位串标记一样(就位数字段大小限制而言)都包含了一定次序的所有连续的标记位 。例如,下面的域名可以用一个“QCLASS=IN, QTYPE=PT”的查询来查找IPv6地址为3ffe:7c0:40:9:a00:20ff:fe81:2b32节点的域名 。
[x3FFE07C0004000090A0020FFFE812B32/128].IP6.ARPA.
[x0A0020FFFE812B32/64].[x0009/16].[x3FFE07C00040/48].IP6.ARPA.
2.2.2 可重用区域
DNS地址空间授权不是通过区域分割和NS记录来实现,而是通过一种类似于CNAME的记录,称为DNAME资源记录[DNAME] 。DNAME记录为域名空间的整个子树而不是为单个节点提供替代命名 。这导致用DNAME记录的RDATA中的名字来取代一些要查询域名的后缀 。
例如,当一个提供递归查询的域名解析器或服务器查找一个a.b.c.d.e.f的QNAME时,可能会得到一条将其指向a.b.c.w.xy的DNAME记录:
d.e.f. DNAME w.xy.
3. 特性
3.1 A6记录类型
A6记录类型是指IN(互联网)类型和类型编号为38(十进制)的类型 。
3.1.1 格式
A6记录的RDATA部分包括两个或三个字段 。
----------- ------------------ -------------------
前缀长度地址后缀名字前缀
(1 octet)(0..16 octets)(0..255 octets)
----------- ------------------ -------------------
前缀长度,用取值范围为0-128的8位无符号整数编码 。
IPv6地址后缀,按网络序号(前面的高位字节)编码 。这个字段必须有足够的字节数可设置128位的前缀长度,包括0-7位填充位以使这个字段具有完整的字节数 。假如出现填充位,当装载区域文件时必须置位为0,并且接收时不予处理(SIG[DNSSEC]认证除外) 。
名字前缀,编码成域名 。根据[DNSIS]规则,这个名字不能被压缩 。
假如前缀长度为0,域名部分将不会出现 。假如前缀长度为128,名字后缀部分将不会出现 。
建议把要用作其它A6记录前缀的A6记录地址后缀中所有可以忽略的末位都设为0 。
3.1.2 处理
一个QTYPE为A6的查询产生对名字前缀的A6类型和NS类型附加处理开销,假如产生的话,这些名字前缀在结果部分A6记录的RDATA字段中 。这个处理过程应该将A6记录名字前缀作为附加数据进行递归处理 。假如应答包的大小有限制,A6记录的附加部分具有比NS记录更高的优先级 。

推荐阅读