面向IPv6局部无伺服器DNS名称解析
时间:2007-10-27 来源:不详 作者:林仙
被赋予该主机名称的主机将侦听经请求的名称多播地址,而尝试对以该主机名称开头的FQDN进行名称解析的主机将使用经请求的名称多播地址作为DNS Name Query Request消息的目标地址。
LSLDNS的运作原理
在启动期间,支持LSLDNS的节点将计算它自己的经请求的名称多播地址,并指示IPv6侦听发送到该地址的数据包。
当应用程序使用getaddrinfo()Windows Sockets函数调用来将一个FQDN或不合格的名称解析为一个地址时,支持LSLDNS的节点将提取出主机名称,计算该主机名称的MD5 hash值,并把结果的高序32位附加到FF02::2:0:0/96前缀,以形成经请求的名称多播地址。
然后查询节点将构造并发送一条具有以下内容的DNS Name Query Request消息;
IPv6报头
“Source Address”(源地址)字段被设置为查询节点的接口的链路局部地址
“Destination Address”(目标地址)字段被设置为经请求的名称多播地址
“Hop Limit”(跳限制)字段被设置为255
UDP报头
“Source Port”(源端口)字段被设置为5353
“Destination Port”(目标端口)字段被设置为5353
DNS报头 内容来自dedecms
“Recursion Desired”(需要递归,RD)标记被设置为0
Question部分包含应用程序最初指定的完整名称和一个对getaddrinfo()函数调用中指定的记录类型的请求。
注意IPv6报头中的“Hop Limit”被设置为255。接收器将在对消息执行进一步的处理之前检验“Hop Limit”字段是否被设置为255。这种检查类似于对“Neighbor Discovery”(邻居发现)消息进行处理,其中接收器检验消息是否来自一个连接到局部链路的节点。如果该节点不在链路上,“Hop Limit”字段将被设置为一个小于255的值。
注意DNS报头中的RD标记被设置为0,表示请求器不希望接收器代表其执行递归查询。
多播“DNS Name Query Request”消息由正在侦听指定的经请求的名称多播地址(通常只有一个这样的地址)的节点接收。 它们首先检验“Hop Limit”字段是否被设置为255。如果不是,消息将自动被丢弃。
copyright dedecms
然后接收主机检查它对于消息中的“Question”部分中的名称是否具有权威性。与常规DNS行为相反,LSLDNS节点对于已分配给它们的特定名称(而不是对以分配的名称开头的名称空间的某个部分)具有权威性。使用传统DNS服务器术语来说,LSLDNS节点仅对与分配给它们的名称相对应的区域根(zone root)具有权威性(这里不严格地使用了区域,因为LSLDNS节点不是存储区域的DNS服务器)。例如,已被赋予名称ffice.example.com的LSLDNS节点对所有以ffice.example.com开头的名称也不具有权威性。
上一篇:妙用DNS解析实现防火墙客户的重定向(图) 下一篇:局域网内妙用DNS控制学生上网
文章评论
共有位Admini5网友发表了评论 查看完整内容