基于IPv6的域名动态更新技术的实现
基于IPv6的域名动态更新技术的实现1 引言随着IP 业务的迅速增长和 IP 网络上应用的不断增加,目前的IPv4网络地址匮乏日益严重,IP 网络正在向下一代IPv6网络演进,我国下一代互联网示范工程
基于IPv6的域名动态更新技术的实现
1 引言
随着IP 业务的迅速增长和 IP 网络上应用的不断增加,目前的IPv4网络地址匮乏日益严重,IP 网络正在向下一代IPv6网络演进,我国下一代互联网示范工程(CNGI )也已经启动。然而,IPv6虽然理论上已经成熟并且可以支持移动、安全等很多特性,但是与目前IPv4网络已经推出的丰富多彩的应用服务相比,我国针对IPv6实际应用的相关技术的研发却尚处在起步阶段,运营商和设备提供方能够给用户提供的服务较之IPv4还有不小差距,这就极大地限制IPv6网络在我国的发展和普及,也将造成IPv6网络资源的极大浪费。 所以,研发基于IPv6的应用技术是我国发展IPv6网络的迫切要求。
随着IPv6网络的推广和移动用户的增加,尤其是未来移动网络的发展,很多目前固定的网络节点都将移动起来,其IPv6地址将随着网络环境的改变而经常地变化,域名将成为用户身份的重要标志,这就需要基于IPv6的域名动态更新技术来保障正确可靠的域名解析服务。域名动态更新技术是一种面向用户的应用技术。通过DHCP (动态主机配置协议)与 DNS (域名系统)两个进程的交互,实时地对DNS 服务器上的用户域名和IP 地址之间的正向和反向映射记录进行更新,从而最大限度地解决由于用户IP 地址的改变而造成的域名解析无法得到用户实际IP 地址的问题。
目前,IETF 组织关于基于IPv6的域名动态更新理论的讨论尚处在草案阶段,主要有三个草案与此相关,这些草案主要针对目前的网络情况 规定,规定DHCP 客户端和服务器都可以向DNS 服务器进行域名更新,通过它们之间的报文交互来处理域名冲突的问题,这在未来网络可能大量出现域名更新操作的情况下势必加重DNS 服务器的负担,也增加了安全隐患。目前IETF 草案讨论的重点就是在解决域名冲突的问题时如何提高效率,减少不必要的步骤。本文提出了一种新的基于IPv6的域名动态更新理论,相对于IETF 草案,本文将实现过程划分为三个阶段,各个阶段功能明确,易于实现;提出了更新代理的概念,更新过程更加可靠;设计了域名协商机制,减轻了DNS 服务器的负担,提高了效率。 2 域名动态更新技术的工作原理
,域名动态更新技术涉及到DNS 与DHCP 两个协议。
DNS 最初由RFC882和RFC883定义,后来 分别被RFC1034和RFC1035代替。实际上,DNS 是一个分布式数据库,它允许对整个数据库的各个部分进行本地控制。而且,通过DNS 特有的查询机制,查询方可以得到异地远端服务器的数据。DNS 将整个网络分成了若干个顶级域名,每个顶级域名再分成若干个二级域名,这样下去整个网络就形成了一个类似于树型的结构。
DNS 树上的每一个节点都有一个标识,根节点的标识是“空”(即长度为0),其他节点的标识的长度在1到63byte 之间。一个节点的域名是由从这个节点到根节点的路径上的所有标识从左到右顺序排列组成的,标识之间用“.”分隔,例如:每个域都是其上级域的子域,比如“.edu.cn”是“.cn”的子域,而 “bjtu.edu.cn”既是“.edu.cn”的子域,同时也是“.cn”的子域。 DHCP 的目的是为了减轻IPv4网络地址的规划、管理和维护的负担,对IPv4地址和本网络中的其他配置参数进行集中的分配和管理。运行DHCP 的服务器和客户端通过报文的交互达成一致,服务器向客户端分配IP 地址并且通告其他配置参数,从而实现了网络资源的集中式管理。DHCPv6是基于I Pv6的动态主机配置协议(DHCP for I Pv6),由DHCP 协议发展而来,其功能有较大的提升,支持标识集合(即分配给一个客户端的某种特定类型的地址的集合,一个客户端可以有多个标识集合)、快速处理、接力代理等新的特性。目前随着I Pv6网络各种应用的增加,DHCPv6协议内容还在不断的扩充之中。
3 基于IPv6的域名动态更新技术的实现
基于IPv6的域名动态更新技术是一种基于IPv6的应用技术,本文将它的实现分为三部分,第一部分为DHCP v6服务器与客户端主机交互分配地址阶段,第二部分为DHCPv6服务器与客户端主机交互协商域名阶段,第三部分为DHC Pv6服务器与DNS 服务器交互更新域名记录阶段,如图2所示。
,域名动态更新(DNS update )又称动态域名系统(dynamic DNS ),其基本工作原理如下:在每次用户连接网络的时候,如果希望获取本网络内的可用的IP 地址和其他网络配置参数(如 DNS 服务器的地址等),则启动DHCP 客户端程序寻找DHCP 服务器,通过报文的交互,服务器将所管理的IP 地址动态分配给客户端并向客户端通告本地网络的其他配置参数,同时客户端将自己的域名告知服务器,服务器获得对客户端域名进行动态更新的授,然后DHCP 服务器发送报文把该客户端的域名和IP 地址之间的正向和反向映射传送给本域内的DNS 服务器,DNS 服务器收到后进行数据更新,将IP 地址和客户端主机域名绑定,这样就完成了域名的动态更新。其他主机也就可以通过解析域名得到客户端主机当前所使用的IP 地址了。当客户端主机下线时,DNS 要停止该域名的解析服务,以免因为同一个IP 地址的重复利用引起混乱,如图1所示。
3.1 服务器与客户端主机交互分配地址阶段
这一阶段通过DHCP v6客户端与服务器的交互机制,服务器给客户端分配地址,同时DHCPv6客户端向服务器传递用户自己定义的客户端主机名称,DHCP v6服务器则向客户端传递DHC Pv6服务器所在域的本地域名。
根据EFC3315的规定,DHCPv6协议的报文格式为:首部4byte ,包括1byte 的报文类型(msg-type )和3byte 的传输标识符(transaction-id ),剩下的部分全部由不同类型的选项(option )字段组成。目前根据不同的功能已经被确定下来的选项类型一共有29种。本文在这一阶段提出了两种DHCPv6协议报文选项类型: 客户主机名称选项(client hostname option ),本地域名选项(local domain name option)。
本阶段的交互机制和这两种选项的使用具体描述如下:
客户端主机接入网络后,如果需要一个或者多个IPv6地址,首先会发送一个请求(solicit )报文给所有的DHCPv6服务器和中继代理,寻求可用的DHCPv6服务器。
所有收到solicit 报文的DHCPv6服务器都会回复一个通告(advertise )报文,此advertise 报文用服务器标识符(server identifier)选项标识此DHCPv6服务器,用客户端标识符(client identifier )选项标识此客户端主机。
客户端从中选择一个服务器并发送申请(request )报文申请地址和本网络配置参数。在此,本文提出如果DHCP v6客户端希望和服务器对域名进行协商,就要在这个request 报文中加入本文上面所提出的客户主机名称选项,此选项的内容为客户端主机上由用户自己定义的客户端主机名称(例如hostname1),并且在request 报文中的配置信息请求(option request)选项中加入前面提出的本地域名选项,即意味着希望得到本地域名。
被选中的DHCPv6服务器会发送一个应答 (reply )报文提供地址和请求的配置信息,并且在reply 报文中携带本地域名选项,此选项的内容为客户端主机此时所在域的本地域名(例如rk.educity.cn )。
,这一阶段原本是DHCPv6协议中规定的地址分配的主要过程,本文对DHCPv6协议理论进行了扩展,设计了域名信息交互机制,为下一部分域名的协商做准备。
3.2 DHCP v6服务器与客户端主机交互协商域名阶段
此时,地址分配的工作已经完成,而且客户端与服务器都知道了对方和域名有关的信息,双方开始协商域名。本文在这一阶段提出一种DHCPv6协议报文类型:DNS 更新报文(DNS-UP-DATE )。
DHCPv6客户端如果对前面收到的reply 报文中的本地域名表示同意,则将该服务器作为自己的域名动态更新代理,并向其发送 DNS-UPDATE 报文,该报文将携带上面的客户主机名称选项和本地域名选项,而且状态码(state code)选项中的status-code 字段设为成功(success )。客户端也有可能不同意,因为此时客户端有可能移动到了外地网络,而其又不愿意改变以前所在域的本地域名。此时,客户端可以选择执行以下的操作:停止进行域名的动态更新工作;重新寻找新的DHCPv6服务器作为自己的域名动态更新代理;自己进行远程域名更新操作,即向自己移动以前的家乡域中的DNS 服务器发送DNS-UPDATE 报文,如图3所示。