DHCPv6服务器与DNS服务器交互更新域名记录阶段
DHCPv6服务器得到客户端域名更新的授权后,将开始构造向本区域内的DNS服务器的更新报文。本文在这一阶段提出一种DHCPv6协议报文类型:DNS更新延长报文(DNS-UP=DATE-RENEW)。
DHCPv6服务器首先向DNS服务器转发在前面第二部分收到的 DNS-UPDATE报文
DNS 服务器收到 DNS-UPDATE报文后,根据其所携带的本地域名选项确定所要更新的区 (bjtu.edu.cn),这里注意一个DNS服务器上可能有多个区的记录,如果找到选项中所指的区 DNS服务器根据本地域名选项和客户主机名称选项组成客户端主机的域名(hostname1.bjtu.edu.cn)然后将域名到IP地址的正向和反向映射写入区数据文件,成为新的记录。同时 DNS 服务器根据该域名和报文中的客户端标识符选项生成动态主机配置标识符(DHCID)记录,并且根据报文中 IP地址的生存时间确定这些记录的生存时间,生存时间到期后DNS服务器将删除它们。更新成功后,DNS 服务器向DHCPv6服务器发送reply报文加以确认。DHCPv6服务器将转发该确认给客户端。
如果 DNS 服务器发现在区数据文件中已经存在一个相同的客户端主机名称的记录(hostname1.bjtu.edu.cn)到某个IPv6地址的正向和反向映射),这种情况属于其他的用户给自己的客户端主机起了相同的名字,并且通过其他的DHCPv6服务器对DNS 服务器进行了更新(同一域内DHCPv6服务器可能有多个)。这时,DNS 服务器则向DHCPv6服务器发送符合HCPv6协议的reply 报文,其选项的类型与 DNS-UPDATE报文一致,但是客户主机名称选项的内容为空,而且state code选项中的status-code字段为 unspecfail。
HCPv6服务器收到这种reply 报文后即知道了该域名已有人使用,这时HCPv6服务器将该reply报文直接转发给客户端,并填入推荐使用的名称。客户端此时可以选择停止进行域名的动态更新或使用推荐的名称或更换主机名称并重新发送DNS-UPDATE报文,此时就回到了第二部分的实现过程。
如果客户端主机在地址生存时间到期之前向 DHCPv6服务器发送更(renew)报文请求延长地址的生存时间并更新其他的配置参数。服务器则向刚才的DNS 服务器发出DNS-UPDATE-RENEW报文,并写入新的地址生存时间。
DNS 服务器收到DNS-UPDATE-RENEW报文后,将相应地延长这条记录的生存时间。成功后,DNS服务器向DHCPv6服务器发送reply 报文,内容与其收到的DNS-UPDATE-RENEW报文完全一样,只是IP地址选项中地址的生存时间为总时间,意味着DNS服务器已经收到了用来延长记录生存时间的DNS-UPDATE-RENEW报文,并且记录生存时间延长成功。
如果客户端主机向服务器发送释放(release) 报文表示在地址生存时间到期之前不再需要分配的IPv6地址。DHCPv6服务器会向 DNS 服务器发出DNS-UPDATE报文,并将该地址的生存时间置为0。DNS服务器收到该报文,查到相应的记录加以删除,并且回复reply报文。
这一阶段本文对DHCPv6和DNS协议进行了扩展,设计了两者的交互机制,利用这个机制对DNS服务器上的域名记录进行动态的维护、管理,完成了域名动态解析的工作。此外,本文提出使用符合DHCPv6协议的报文进行更新操作, 比RFC2136所规定的报文更加简单明确,通用性更强,减小了实现的难度。
以上就是本文的三个实现部分的过程。根据此过程最终实现了基于IPv6的域名动态更新,为在IPv6网络环境中实现域名正确可靠的动态解析提供了保障。
责任编辑:小草