维护Internet域名数据的方法和装置的制作方法

文档序号:7877966阅读:280来源:国知局
专利名称:维护Internet域名数据的方法和装置的制作方法
技术领域
本发明涉及Internet的使用,尤其涉及Internet上使用的域名数据库的维护。
背景技术
在21世纪后半叶,开始了被称为信息革命的现象。虽然信息革命是广度超过任何一个事件或机器的历史发展,然而没有任何单独的设备能够比数字电子计算机更能代表信息革命。计算机系统的开发肯定是一次革命。逐年地,计算机系统快速增长,存储更多的数据,并且为其用户提供更多的应用。同时,计算资源的成本持续下降,使得若干年前收集、存储和处理代价高昂的信息,在今天可以通过计算机经济可行地处理。信息处理的低成本促使滚雪球般地提高生产率,因为产品设计、制造工艺、资源调度、管理工作和许多其它方面均可以高效进行。
计算的低成本和数字设备的通用性带来了这种设备中存储的信息量的爆炸。由于以数字形式存储如此多的信息,自然期望通过计算机系统得到更广泛的访问。信息量远远超过了任何一个设备的存储能力。为了改进信息访问,已经开发出各种允许计算设备彼此传送和交换信息的技术。这种分布计算的最具代表性的例子或许是万维网(通常简称为″Web″),这是可使用Internet在世界各地进行访问的资源集合。人们从学童到老人均在学习使用Web,并且从其家里或工作场所找到种类几乎无穷无尽的信息。企业、政府、组织、甚至是普通个人均在Web上提供信息,以致达到了任何值得知道的事情均可在Web上的某处得到的地步。
为Web,电子邮件和其它形式的多个数字系统中间的通信和分布处理提供支持的Internet是通过多个链路连接的数字设备(节点)异构网络,这使得在网络的任何两个节点之间,通常都存在多个路径,从而为Internet提供某种程度的冗余。为了支持任何两个被连接到Internet的节点之间的通信,一个全局命名约定被用来向每个节点分配唯一名字。这种命名约定被称作域名系统或DNS。
连接到Internet、只具有目标节点的全局DNS名字的源节点可以向目标发送数据分组,从而允许Internet上的各种路由器、服务器和其它设备确定数据分组的路径和最终目的节点。作为这个路由处理的一部分,必须将DNS中的全局名字转换成通信链路层使用的目标节点接口地址。通过一或多个连接到Internet的域名服务器完成名字-地址转换。每个域名服务器为相应区域内的节点提供名字-地址转换。具体地,这意味着每个域名服务器均维护名字和地址的数据库,域名服务器使用数据库响应请求名字-地址转换信息的外部查询。
随着Internet的演变,维护域名服务器中数据库的任务的范围和复杂度相应增加。最初,人们预料域名服务器数据库会是通过人工编辑来维护的相对静态的数据库。节点数量及其应用领域的巨大增长为基础Internet协议带来了变化。最近的协议,即Internet协议版本6(IPv6)支持具有有限生命周期的接口地址,其中当指定生命周期结束时,这些接口地址便超过其自己的期限。由于这些和其它变化,预计每个节点的接口地址数量会显著增加,并且当前有效地址设置会频繁改变。维护域名服务器数据库的负担相应增加。
已经定义一组允许授权客户在域名服务器数据库中增加、删除或编辑记录的应用接口。由某种被称为DHCP服务器的特殊配置服务器使用这些应用接口。通过定义一组节点的接口地址,并且为域名服务器提供名字和地址,DHCP服务器协助完成配置过程。虽然这些DHCP服务器很有用,然而它们只为维护域名服务器数据库的问题提供了不完整的解决方案。必须针对某个节点组建立单独的DHCP服务器实体,其本身必须被定义、构造和维护。这种DHCP服务器不会始终可用。
IPv6的出现和Internet的继续成长与成熟很可能压倒用于维护域名服务器数据库的传统方法。因此,需要改进用于维护域名服务器数据的技术,尤其是考虑到经常过期和改变的接口地址。此外,不同于范围略微有限的环境中使用的许多数据库,不可能,或至少很难修改数据库的外部行为参数,因为任何域名服务器均必须根据各种适用的Internet协议,并且在假定至少某些请求服务的设备可以根据旧级别的协议进行操作的前提下连续提供服务。因此,任何用于维护域名服务器数据库的技术应当与现有Internet协议一致。

发明内容
根据本发明,连接到Internet的主机节点自动为其本身产生一或多个Internet接口地址,并且自动产生针对Internet域名服务器的请求,以便用其产生的Internet接口地址更新域名服务器数据库。
在优选实施例中,节点使用IPv6的草案标准无状态地址自动配置功能产生本地链路地址,并且验证这个本地链路地址在本地链路机构内的唯一性。节点接着根据路由器通告确定路由器的存在,并且通过将本地链路地址附加到与路由器相关的前缀上,产生全局地址。
最好是,在产生Internet地址之后,通过使用基于Internet协议的在制订草案修订本的″Stateless DNS Discovery″中描述的过程确定本地域名服务器的身份,并且从本地DNS服务器得到主DNS服务器的身份,节点自动确定其主域名服务器的身份。节点最好从本地DNS服务器得到用于对与主DNS服务器的通信进行加密的加密密钥,并且可以通过产生其自身的身份密钥来提供额外的安全性。
最好并行支持IPv6和IPv4中地址的人工配置(″状态配置(stateful configuration)″),以作为针对缺乏这里描述的自动配置能力的设备,或其它特殊情况的替代方案。
通过使用任何识别出的协议,尤其是使用用于改变域名服务器数据库的资源记录的″BIND 8″或″BIND 9″(或后续版本)API协议,可以完成域名服务器数据库的更新。即,已产生一或多个Internet地址并且确定其域名服务器的节点使用一组诸如BIND 8或BIND 9的API更新域名服务器数据库,以反映节点的域名和对应Internet接口地址。
当Internet地址过期或新地址被分配给一个节点时,不同节点(其域名服务器维护域名信息,所述域名信息用于访问域名服务器并且修改服务器中其自己的记录)的能力还可以被用来修改记录。
通过为各个节点提供在域名服务器数据库中维护其自身记录的手段,大大降低了人工数据库维护的数量,和/或对诸如DHCP服务器的特殊服务器的需要。具体地,新节点可以自动产生和验证Internet地址,发现域名服务器,并且更新域名服务器数据库,而无需任何外部干预。类似地,可以自动地象在地址过期时那样对记录进行后续改变。同时,这种技术与现有Internet协议兼容,并且根据各种传统实践中的任何实践(无论是整体还是部分),不防止旧设备(可能缺乏自配置或其它必要能力)在域名服务器中被配置。


参照附图可以更好地理解本发明在结构和操作方面的细节,附图中类似附图标记表示类似部件,其中图1是Internet的高层概念视图。
图2是根据优选实施例说明Internet环境的用于维护Internet域名的主要部件的高层图解。
图3是根据优选实施例说明域名服务器计算机系统的高层模块图。
图4是根据优选实施例说明域名服务器计算机系统中主要软件构件的概念图解。
图5是根据优选实施例说明自配置主机节点的主要部件的高层模块图。
图6是根据优选实施例说明配置附加到Internet的主机节点的过程的高层流程图。
图7的流程图根据优选实施例更详细地示出了在主机节点中自动产生IP地址的过程。
图8的流程图根据优选实施例更详细地示出了在主机节点中自动识别主域名服务器的过程。
图9的流程图根据优选实施例更详细地示出了自动产生更新请求并且向主域名服务器发送更新请求的过程。
具体实施例方式
综述在讨论本发明实施例的操作之前,提供对Internet的简要综述。
术语″Internet″是″Internet网络″的简称,通常指利用计算机网络领域众所周知的TCP/IP协议族的计算机网络的集合。TCP/IP是″传送控制协议/网际协议″的缩写,它是利于计算机之间的通信的软件协议。
图1是Internet的高层概念视图。Internet没有预定的拓扑,并且可通过增加新节点和链路来无限扩展。节点可以具有任何数量的、将其连接到其它节点的链路,这些链路可以使用任何通信技术(具有不同数据容量和其它特性)。因此,Internet的拓扑变成非常复杂的互连网络,其中在任何两个节点之间通常存在大量的可能路径。
网络的中央部分(有时被称作″主干″)含有多个高速路由器101,这些路由器接收数据分组并且向网络中的其它节点传递这些数据分组。通常,每个路由器具有多个到其它路由器的连接,并且这些连接具有高数据容量。例如,在高速路由器101之间通常使用光纤链路。连接到高速路由器的是充当高速路由器的Internet″主干″的接入点的节点,所述接入点在图1中被图解为节点102。接入节点102也是路由器,因为它们的功能是在高速路由器101和其它网络节点之间路由数据分组,但是它们通常使用低速连接。例如,接入节点可以是通过电话线或其它收费连接提供Internet接入的公共Internet服务提供商,也可以是大型公司用于其内部系统的接入节点。通常,每个接入节点102连接到多个高速路由器101以提供冗余,虽然这不是必需的。每个接入节点通常提供对多个主机计算系统103A、103B(通常表示成附图标记103)的接入,其中图1只图解了两个。主机103是计算机系统,连接到Internet,并且作为源产生通过Internet发送的数据分组,或者作为最终目的地接收所述数据分组。主机103可以是从大型主机系统到PC、手持便携设备的任意类型的计算机系统。通常,主机只有一个被其用来接入Internet的接入节点102(在这种情况下,它是非冗余的),虽然可以具有多个这样的接入节点以提供冗余。主机和接入节点之间的连接通常具有相对较低的速度(例如电话线或射频链路),但是也可以是高速链路。对于某些计算机系统,例如其功能主要是通过Internet提供信息的大型Internet服务器,主机可以直接连接到高速路由器101,并因此充当其自身的接入节点。
应当理解,图1只是用于对Internet进行概念性图解,实际上Internet上节点和连接的数量远大于图1所图解的情况,并且连接的拓扑可以互不相同。此外应当理解,可以有其它层次的连接类型和接入形式,虽然图1中为了图解的清楚没有示出。即,可以有多个类型或类别的接入节点102,其中主机通过所述接入节点102连接到主干的高速路由器101,并且不同主机可以在不同层次的接入节点上连接。严格地讲,Internet包括所有与其相连的设备,并且当诸如PC的小型计算机系统登录到Internet时,它成为Internet的一部分,也就是说它变成了Internet节点,并且具有地址(虽然地址可以仅仅是临时的)。通常,Internet主干的路由器和连接,以及接入节点被称作Internet,即相对于计算机系统的分布处理网络,Internet被视作通信介质。根据上下文,可以使用任一种用法。
为了允许在任意网络中从一个任意节点向另一个节点传送数据,发送节点必须指定接收节点的目的地。对于非常小的网络,例如局域以太网,可以向网络中的所有节点广播数据,从而用简单的寻址方案标识出期望的接收方。Internet的规模使得这种方案不切实际。发送方仍然需要指定目的地,但是向每个节点发送数据直到找到目的地的方式是不切实际的。这意味着发送方和路径中发送方与接收方之间的每个节点必须能够确定向哪里路由数据以便其能够到达其目的地。通常会存在多个可能的路径,并且路由器可以根据各种因素决定要使用的路径。
在路由器硬件的层次上,为Internet目的节点指定被称作IP地址的多位数字地址。最初的Internet寻址系统使用32位IP地址,此IP地址被分成4个部分或″八元组″,每个部分有8位。通常以句点分隔的方式书写这些八元组,例如IP地址可以被写成90.4.63.18。八元组是分层形式的寻址,并且任何单独的路由器不必知道所有Internet地址的最终目的地。传递远程地址的数据分组会被路由到最近的路由器,因此路由器能够进一步细化地址,诸如此类,直到数据分组到达其最终目的地。虽然最初的寻址系统使用32位IP地址,然而近年来Internet地址空间已经变得有限,已经针对互联网IP地址采用了被称为IPv6的新标准。IPv6支持128位的IP地址。IPv6当前正被逐步采用,并且许多Internet设备仍然使用旧的32位IP寻址协议。
IP地址允许发送节点向接收节点路由数据分组,但是对于使用Internet的高层进程间通信,使用数字IP地址会存在缺点。首先,数字地址对于人们是难以记忆的。另外,某些IP地址可以在多个节点中间共享,也可能因网络配置的变化而发生改变。基于这些和其它原因,现有用于Internet节点的被称作域名系统(DNS)的高层命名约定。Internet节点被指定DNS中具有任意字母数字字符的名字,这些名字被转换成IP地址。于是,节点的DNS名字可以易于记忆,并且不需要单纯因某些硬件的变化而被改变。例如,人们可以建立具有易于被客户记忆的类似DNS名字的Web服务器,并且即使Web服务器的实际IP地址因硬件升级等等因素而发生改变,也可以保持相同的DNS名字。
由于Internet的规模和动态性质,几乎不可能维护有关所有DNS名字及其对应IP地址的单独大型记录。因此,Internet的DNS使用分布形式的地址记录存储,其中DNS名字是分层的。DNS名字包括多个文本字符部分,每个部分由句点分隔,各个部分表示命名层次,该层次从左至右代表从具体到抽象。于是,最右边的名字部分为名字的根部而保留,并且可以含有例如″com″、″edit″、″org″、″net″、″gov″等等的数值。这些是作为类似的统一资源定位符(URL)和电子邮件地址的一部分的名字,虽然统一资源定位符和电子邮件地址可以具有指定其它数据的额外字段。各个名字被转换成IP地址。例如,名字″www.ibm.com″表示万维网上IBM公司主页的Web服务器。当源节点,例如执行Internet浏览器应用程序的PC试图向域名″www.ibm.com″发送数据时,调用一或多个域名服务器将这个域名转换成IP地址,接着IP地址被用来通过Internet的路由器将数据分组路由到IBM的Web服务器。
名字被解析成分层方式的地址,其中可以采取多个步骤。发送方首先访问其自身的DNS名字服务器以请求转换名字(每个节点至少必须具有其名字服务器的IP地址,因此这个服务器始终可用,而无需转换地址)。如果假定将从头开始转换名字,名字服务器首先访问针对目的地名字的根部的DNS服务器。例如对于″www.ibm.com″,访问针对″com″的DNS服务器。这个DNS服务器应当能够识别名字的下一层,即找到针对″ibm″的DNS服务器。接着访问针对″ibm″的DNS服务器,该DNS服务器应当能够识别″www.ibm.com″的IP地址。步骤数量可以有所不同,因为名字部分的数量可以有所不同,并且可以在分层服务器中维护针对名字的任何部分的DNS数据库自身。实际上,多数DNS服务器高速缓存大量名字和IP地址,所以它不总是需要从根DNS服务器向下执行所有如上所述的转换步骤。
对于任意指定节点,始终存在至少一个维护层次结构最低级的域名和地址的DNS服务器。当在遍历维护名字的各个部分的各种DNS服务器期间到达这个DNS服务器时,可以得到与该节点相关的IP地址列表。由这种低级DNS服务器维护其名字和IP地址的节点组被称作服务器的区域。通常每个区域会有多个以某种方式同步其记录的多个DNS服务器,例如一个服务器维护域名数据库的主复本,而其它服务器具有数据库的影像复本。使用多个DNS服务器提供了冗余,以及多个服务器的额外处理能力。
详细描述参照附图(其中类似编号表示若干视图中的类似部分),图2是Internet环境的高层图解,其中根据本发明的优选实施例示出了自动维护某种域名数据库信息的系统中包括的某些主要部件。如图2所示,针对一个Internet节点区域的主域名服务器201被连接到Internet 100。路由器202还被连接到Internet,并且充当主机计算机203A-203D(通常被表示成附图标记203)的接入节点。主机计算机203和路由器202通过通信介质204彼此通信,通信介质204最好是局域网(LAN)。本地域名服务器205还被连接到LAN 204,并且为连接到LAN的主机203提供域名转换。在技术上严格地说,本地DNS 205也是″主机″,但是为了清楚将其与主机203分别标识。路由器202、主机203和本地DNS 205处于域名服务器201的区域内。在优选实施例中,如这里更加全面地解释的,主机节点203是自配置节点,它产生其自身的IP地址,并且识别其自身的域的路由器和域名服务器。如前所述,主域名服务器201象路由器202、主机203和本地DNS 205那样是具有IP地址的Internet节点,并且因此它们实际是Internet的一部分。然而为了图解的目的,图2中分别示出了这些节点。
介质204可以是允许主机203和本地DNS 205与路由器202通信的任意通信介质。例如,介质204可以是以太网或令牌环局域网,在具有多个彼此通信的内部结点的商业企业中通常会如此,所述内部结点具有通过路由器202到Internet的外部连接。虽然这里在示例性实施例中将介质204描述成局域网,但不必是局域网,可以采取某些其它形式。例如,通信介质可以是电话系统,射频传输介质,或各种其它通信介质中的任何一种。介质204最好支持任何主机203A-203D或本地DNS 205中间的直接通信,虽然也可以只支持主机203或本地DNS 205与路由器202之间的通信,在这种情况下任何从主机203中的一个发送到另一个的数据均必须通过路由器。
虽然在图2的简化图解中示出了单独的主域名服务器201,单独的路由器202,单独的本地DNS服务器205,和4个主机计算系统203A-203D,然而应当理解,这些部件的实际数量和类型可以有所不同。如前所述,通常会有多个冗余域名服务器,其中一个是主域名服务器。可以有针对主机203的区域的附加从域名服务器(未示出)。服务器201和205还可以在同一处,即针对主机203的区域的主域名服务器在LAN 204上,虽然这里为了一般性而假定如此。LAN 204可以连接到提供Internet的多个接入节点的多个路由器(因此提供冗余)。连接到LAN 204的主机203的数量可以有所不同,并且通常大于4个。此外,虽然台式工作站被图解成主机203,然而应当理解,主机可以是具有Internet地址、从大型计算机系统到小型便携设备(例如个人数字助理(PDA)和膝上型电脑)的设备(路由器除外,可以具有DNS名字和地址,除此之外则不认为是″主机″)。
域名服务器201、205最好是被适当编程以便维护域名数据库和响应数据库访问请求的高性能通用计算机系统。图3根据优选实施例示出了域名服务器计算机系统201的高层模块图,计算机系统201充当域名数据库信息的中央库,应当理解,系统205可以是类似的。DNS服务器系统201包括中央处理单元(CPU)301,主存储器302,终端接口303,数据存储设备304和Internet接口305。各种设备通过内部通信总线310彼此通信。CPU 301是执行存储器302中存储的指令的通用可编程处理器;虽然图3示出了单独的CPU,然而应当理解,可以使用具有多个CPU的计算机系统。存储器302是用于存储数据和程序的随机访问半导体存储器;虽然存储器被概念性地示出为单独的单片实体,然而应当理解,存储器经常被组织为高速缓存层次结构和其它存储器设备。终端接口303为附接单独或多个终端而提供连接,并且可以通过各种方式实现。许多大型服务器计算机系统(主机)通过通常在一或多个电子电路卡上的终端接口I/O处理器支持多个终端的直接附接。可选地,接口303可以提供到达终端所连接的局域网的连接。可以使用各种其它替代方案。数据存储设备304最好包括一或多个旋转磁性硬盘驱动器单元,虽然可以使用其它类型的数据存储设备。Internet接口305为针对Internet的数据传输提供物理连接,并且可以使用任何可用技术。通信总线310支持不同设备之间数据、命令和其它信息的传送;虽然图中以简化形式被示出为单独总线,然而它通常被构造为多个总线,并且可以被组织成分层形式。图3示出的DNS服务器系统是简化形式有,然而应当理解,除了这里具体提到的之外,系统配置可以有许多变化。虽然域名服务器系统可以被假定为各种数字系统中的任何一种,然而Internet传输的容量通常意味着应当在诸如IBM zSerieTM系统的相对大型的计算机系统上支持主DNS服务器201。本地DNS服务器205可以是较小的系统。
图4是DNS服务器系统201中存储器302的主要软件构件的概念性图解。如本领域众所周知的,操作系统401是提供各种低级软件功能(例如设备接口,存储器页面管理,多任务管理等等)的可执行代码和状态数据。由DNS系统201维护的DNS数据库402包含Internet区域内节点的域名数据、IP地址数据和其它数据,根据该数据可以将区域内节点的任何指定域名转换成节点的对应IP地址。如这里所全面描述地,DNS数据库402是以连续方式更新的动态数据库。数据库服务器403是通过外部(即Internet)请求提供数据库402的访问和维护的可执行程序。维护实用程序408提供数据库维护的可选形式。
请求队列406临时存储访问数据库402的请求,其中通过Internet(通过Internet接口硬件305)从被连接到Internet的各个客户端节点接收请求。通常由数据库服务器403服务来自请求队列406的请求。数据库服务器203产生的响应信息被放到响应队列407上,以便通过Internet传输到请求客户端。响应可以是从数据库402得到或导出的信息,也可以是表明接收到消息或执行某种操作的确认。图4的虚线箭头表示各个软件和数据部件中间的信息流。
可以由服务器201服务各种请求,所述请求具体包含地址转换请求和数据库更新请求。地址转换请求是将域名(或一部分域名)转换成一组IP地址的请求。在这里描述的示例性实施例中,主DNS服务器201是将域名转换成目的节点的具体IP地址的低级域名服务器。然而,DNS服务器也可以是将一部分域名转换成低级DNS服务器的地址的高级域名服务器,其中低级DNS服务器具有更加具体的信息。如这里所全面描述的,数据库更新请求是通过Internet发送的、用于更新数据库402中一或多个记录的请求。如图4所示,分立的地址转换功能404和数据库更新功能405被包含在数据库服务器403中。虽然在图4中将数据库服务器403示出为具有多个所包含的功能的单独程序,但应当理解,数据库服务器403执行的功能事实上可以由多个软件模块执行,并且图4的图示的意图不是将数据库服务器功能的实施例限于任何具体结构。
数据库维护实用程序408根据各个传统方法中的任何一种为数据库提供直接维护能力。即,不是响应通过Internet接收的请求而执行实用程序408提供的维护,而是从连接到DNS系统201的终端或其它设备执行。例如,使用直接连接的终端的系统管理员可以使用实用程序408人工编辑DNS数据库402。除了人工编辑之外,可以有通过实用程序408或连接到系统201,例如DHCP服务器的其它设备执行的自动或部分自动的维护。这种实用程序的使用为不具有如这里所全面描述的自配置和域名维护能力,因此必须使用常规方法进行域名维护的Internet节点提供了可选的数据库维护能力。它还为某些类型的操作提供了可能更加安全的数据库访问形式,因为直接连接的终端等等可以保持在安全环境中。
虽然图4的软件部件在概念上被示出为驻留在存储器中,然而应当理解,计算机系统的存储器通常过小以致不能同时保存所有程序和数据,并且信息通常被存储在包括一或多个大容量存储设备,例如旋转磁盘驱动器的数据存储设备304中,其中操作系统401根据需要将信息换页到存储器中。
图5是根据优选实施例说明自配置主机节点203的主要部件的模块图。主机节点203包含CPU 501,主存储器502,各种设备适配器和接口503-508,和通信总线510。CPU 501是执行存储器502中存储的指令的通用可编程处理器;虽然图5示出了单独的CPU,然而应当理解,可以使用具有多个CPU的计算机系统。存储器是用于存储数据和程序的随机访问半导体存储器;虽然存储器被概念性地示出为单独的单片实体,然而应当理解,存储器经常被组织为高速缓存层次结构和其它存储器设备。通信总线510支持不同设备之间数据、命令和其它信息的传送;虽然图中以简化形式被示出为单独总线,然而它通常被构造为多个总线,并且可以被组织成分层形式。显示适配器503支持视频显示器511,视频显示器511通常是阴极射线管显示器,虽然可以使用其它显示技术。键盘/指针适配器504支持键盘512和如鼠标所示的点击设备513,然而应当理解,可以使用其它形式的输入设备。存储适配器505支持一或多个数据存储设备514,数据存储设备514通常是旋转磁性硬盘驱动器,虽然可以使用其它数据存储设备。打印机适配器506支持打印机515。适配器507可以支持各种附加设备,例如CD-ROM驱动器、音频设备等等中的任何一种。网络接口508提供针对外部网络的物理接口,外部网络最终被连接到Internet。在示例性实施例中,网络接口508被连接到LAN 204,然而应当理解,可以使用其它形式的网络连接。
如图5所示,操作系统521和Internet接入程序522驻留在存储器502中。如本领域众所周知的,操作系统521提供各种低级软件功能,例如设备接口,存储器页面管理,多任务管理等等。Internet接入程序522是通过网络接口508与Internet通信的软件。Internet接入程序522最好被集成到操作系统521内的TCP/IP堆栈中。如这里所全面描述的,Internet接入程序522包含配置实用程序525,配置实用程序525处理主机节点203到各种Internet设备的配置,尤其是产生节点203的IP地址,并且更新DNS名字服务器中的信息。Internet接入程序522通常代表其它应用处理Internet通信。具体地,浏览器应用程序是Web浏览器,该Web浏览器访问Web服务器,为用户将Web页面(例如具有HTML格式的页面)呈现为可显示格式,维护″收藏″URL列表,并且执行其它通常与Web浏览器相关的传统功能。电子邮件应用程序524是发送、接收和显示电子邮件,并且执行通常与电子邮件应用程序相关的其它传统功能的应用程序。浏览器523和电子邮件应用程序524均调用Internet接入程序522以便通过Internet处理数据通信。虽然图5中描述了两个使用Internet接入程序522的应用程序(浏览器523和电子邮件524),然而应当理解,这些应用程序仅仅是例子,并且主机103可以具有其它或附加的、使用Internet接入程序522的应用程序。还应当理解,虽然在图5中为了图解的目的将操作系统521、浏览器523和电子邮件应用程序524描述成分立的程序实体,然而某些或所有这些程序可以被组合成单独的程序模块,或者Internet接入程序522和/或配置实用程序525可以是分立的模块。最终应当理解,虽然图5的软件部件在概念上被示出为驻留在存储器502中,然而计算机系统的存储器通常过小,以致不能同时保存所有程序和数据,因此信息通常被存储在数据存储设备514或类似设备中,并且根据需要被操作系统521换页到存储器中。
图5中主机节点系统203被示出为被称为″个人计算机″或″工作站″的单用户桌面计算机系统。图5的图示是简化形式的例子,然而应当理解,除了这里具体提到的之外,系统配置可以有许多变化。此外,根据本发明访问Internet的主机节点不必是单用户个人计算机系统,而是可以是大型计算机系统、笔记本膝上型计算机。这种系统经常主要或单纯充当服务器系统,以响应来自远程客户端的请求。最终,这种主机节点根本不必是通用计算机系统,而是可以是访问Internet的专用设备,例如电视机的Internet接入盒,或便携无线Web接入设备。
根据本发明的优选实施例,通过使用无状态自动配置为其自身自动产生Internet地址,自动确定其域名服务器的身份并且/或者针对域名服务器数据库中的主机节点自动产生或更新名字记录,连接到Internet的主机节点配置其自身(作为初始配置或对前面配置的修改)。这种处理使得能够自动配置连接到Internet的主机节点,并且不需或只需最小的人工干预。
图6是根据优选实施例说明配置附加到Internet的主机节点的过程的高层流程图。相同的通用处理可以被用于新主机系统的初始配置,以便在网络拓扑发生改变的情况下进行重新配置,或者进行只涉及地址或名字变化的配置改变,然而应当理解,可以根据具体处理的需要来修改或省略某些步骤。
参照图6,针对主机节点确定按照DNS命名约定的域名的主机部分(步骤601)。主机部分是在主域名服务器201的区域内标识主机节点,并且必须在区域内唯一的域名部分;在这个阶段不必确定域名的其余部分,因为如这里描述的,将自动得到其余部分。可以根据各种已知常规方法中的任何一种,或根据以后提出的任何方法来确定主机域名。具体地,通过交互式地请求用户输入域名,可以确定域名。在优选实施例中,配置实用程序525具有在没有预先输入域名的主机部分的情况下提示用户输入域名的主机部分,并且保存这个数据的能力。对于例如可能包括改变IP地址但不必改变域名的重新配置,配置实用程序525使用前面的域名。然而用户会有机会使用任何传统的编辑技术编辑前面的域名。可选地,可以通过某些其它方式得到域名。例如,可以由连接到LAN 204的公司服务器(未示出)分配域名;可以从磁盘、CD-ROM或其它计算机可读介质上记录的简表或类似类型的文件得到域名;可以根据某种预先建立的公式由用户的名字、公司名称、部门或主机节点203可得到的其它信息自动导出域名。
虽然在图6中将步骤601图解成在建立互联网连接之前和产生IP地址之前执行,然而事实上可以按照不同顺序执行这些步骤,并且域名的指定可以在步骤602、603和/或604之后进行。
使用各种通信技术和约定(当前已知或以后开发的)中的任何一种建立与Internet的通信连接(步骤602)。通常这意味着主机节点203被物理安装在期望位置并且被连接到通信介质,借此它可以和连接到Internet的路由器202通信。在示例性实施例中,主机是具有固定位置的台式工作站,而通信介质是局域网204,例如以太网或令牌环网络。然而如前所述,主机可以是没有固定位置的移动设备。此外,可以使用其它通信介质,并且介质不必是物理设备,但是可以是射频或类似广播介质。在图6中示出了步骤602,以表明在可以进行某些自动步骤之前必须与Internet建立连接。对于初始配置,安装或涉及改变互联网连接的重新配置,通常在配置过程的其余步骤之前立即执行步骤602。然而可以更早地执行步骤602,尤其在不涉及物理连接改变的配置改变的情况下。例如,在新用户被分配给不会改变其物理位置的工作站的情况下,可以选择新域名并产生新IP地址,而无需改变硬件连接。在这种情况下,在重新配置的其余步骤之前数月或数年可能已经执行了步骤602。
在主机节点203上执行的配置实用程序525自动产生和验证主机节点的IP地址。这个处理在图6中被高层表示成步骤603,并且在图7中有更详细的示出。通常,图7的过程遵循S.Thomson & T.Narten于1998年12月提出的RFC 2462中描述的″IPv6无状态地址自动配置″草案标准Internet团体协议(在附录I中完整包含)。可选地,可以使用这个草案标准协议的任何等价过程,任何后续修改或修订。
参照图7,初始化或重新初始化主机节点的Internet接口(步骤701)。象在初始化(启动)主机系统,或在预先禁止之后又逻辑使能接口时那样,这可以通过若干方式中的任何一种进行,并且可以和物理连接的建立同时进行(步骤601),或可以随后进行。主机系统的配置实用程序接着自动产生本地链路地址,本地链路地址可以具有某些与之相关的诸如生命周期的属性(步骤702)。通过组合定长预定前缀(例如FE80∷0,其中最右的比特位是零)和专用于本地连接或链路形式的接口地址,产生本地链路地址。即,在图2的示例性实施例中,通过主机节点203连接到的LAN 204的类型规定接口地址的形式。N位接口标识符替换预定前缀的最右N个零比特位,以产生固定长度的本地链路地址。接口标识符可以和接口的链路层地址相同。
主机节点接着验证本地链路(例如局域网204)上本地链路地址的唯一性。本地链路地址在本地链路通信机构内必须是唯一的,使得该链路内的消息被路由到正确节点;然而本地链路地址不必是全局唯一的(在Internet上唯一),因为以后会附加前缀以保证全局唯一性。因为由接口地址导出本地链路地址,所以足以验证接口地址的唯一性。通过在本地链路上发送邻居请求来验证唯一性(步骤703)。邻居请求是针对链路(例如LAN 204)中所有其它节点的消息,并且在这种情况下被用来通知其它节点发送方主机节点试图验证本地链路(或接口)地址。如果检测到地址冲突(duplicate address),则冲突节点向初始主机节点发送消息,而该节点接收此消息。如果检测到这种消息(步骤704),则主机节点知道地址不唯一,因此不能使用此地址。在这种情况下,通常需要进行人工配置(步骤710)。
如果没有检测到地址冲突(来自步骤704的″N″分支),则主机节点发送路由器请求(步骤705)。路由器请求是使本地链路上任何路由器发送路由器通告的请求。主机节点接着接收任何作为响应的路由器通告(步骤706)。路由器通告包含关于路由器(例如路由器202)的信息,尤其包含路由器的IP地址前缀和地址属性信息。在有效性检查之后,以和根据固定本地链路前缀构造本地链路地址相同的方式,主机节点使用这个前缀和接口地址构造全局IP地址(步骤707)。也可以根据接口地址属性和路由器地址属性导出属性。主机节点存储IP地址和地址属性(例如生命周期)信息。
在产生IP地址之后,配置实用程序525接着自动确定其区域的主DNS服务器的身份。这个处理在图6中被高层表示成步骤604,并且在图8中有更详细的示出。
参照图8,主机节点203首先发现本地DNS服务器205的身份。为此,主机节点203生成并发送查询到一或多个预先分配的本地地址,所述本地地址被保留用于本地DNS服务器(步骤801)。本地DNS服务器205用包含其自身地址的属性信息作出响应(步骤802)。通常,步骤801和802的执行遵循D.Thaler & J.Hagino于2002年3月1日提出的Internet草案″IPv6无状态DNS发现″中描述的在制订″IPv6无状态DNS发现″(在附录II中完整包含)。可选地,可以使用这个草案协议的任何等价过程,任何后续修改或修订,以及任何发现本地DNS服务器的等价过程。应当注意,上述草案协议是已经超过其期限的在制订协议,并没有权威效力,但是这里仅被包含为(许多可能的不同方法中的)一个示例性方法以用于发现本地DNS服务器。
在识别出本地DNS 205之后,主机接着发送另一个查询,以请求本地DNS 205识别适用区域的主DNS 201(步骤803)。本地DNS 205必须维护这个信息。本地DNS 205响应以主DNS的身份(即IP地址)(步骤804)。本地DNS 205还提供(DNS系统中的)区域域名,即区域中每个节点共同的域名高层部分,在与区域内唯一的域名连接时,该区域域名产生在Internet上唯一的全局DNS域名。虽然在图8中将识别本地DNS的查询和识别主DNS的查询示出为两个分立的步骤(801、803)和两个分立的响应(802、804),然而应当理解,这些可以被组合起来,使得本地DNS针对第一个查询自动响应以主DNS的身份和其自身的身份。
在步骤803的请求和在步骤804的对应响应也可以包含用于和主DNS服务器通信的安全信息,例如加密密钥、令牌或类似数据。在优选实施例中,假定LAN 204是安全网络,例如公司内部的网络。因此,假定LAN 204内的通信可避免被LAN外部探听,并且没有从LAN自身内部发起的恶意行为。因此,主机节点和本地DNS服务器205之间的通信不需要特定的安全防范。然而与主DNS服务器的通信在Internet上进行,必须假定任何人均可以侦听。收听通过Internet发送的DNS服务器更新请求可允许恶意设备通过假装是其服务被拒绝的主机节点,来启动所谓的拒绝服务攻击,其中DNS记录被修改,以便将寻址到特定DNS名字的消息重新路由到某些其它地址,从数据库删除DNS名字或正确地址,反之亦然。为此,如这里所进一步讨论的,期望使用安全形式的与主DNS服务器之间的通信。
在识别了主机的区域的主DNS服务器(以及本地DNS服务器)之后,配置实用程序525接着自动使主DNS服务器更新其涉及主机的域名记录,并且执行某些相关功能。这个处理在图6中被高层表示为步骤605,并且在图9中被更详细地示出。
参照图9,配置实用程序525用其当前可用的信息构造主机节点的完整DNS域名(步骤901),即完整DNS域名是在步骤601确定的主机名字部分(应当在区域内唯一)和区域部分(在步骤804从本地DNS服务器得到)。
主机节点203最好更新本地DNS服务器205的域记录以存储主机的DNS名字和本地链路地址(步骤902)。虽然步骤902不必更新主DNS服务器记录(为此,步骤902可以被认为是可选的),然而这是期望的,因为LAN 204上的其它节点可能试图使用其DNS名字与主机节点通信,而无需其本地链路地址。在这种情况下,本地DNS服务器205可以提供LAN 204上目的主机的本地链路地址以允许这种通信,而不必从其它Internet服务器得到地址转换(实际上,在没有来自其它Internet服务器的地址转换的情况下)。任何预先建立的协议可以被用于从主机向本地DNS服务器传送必要的更新信息。尤其是,可以使用与被用来和主DNS服务器通信的协议相同的协议,虽然加密或类似安全措施在与本地DNS通信时通常可能被认为是不必要的。本地DNS假定LAN 204内发起的任何更新请求均是正当的,并且会遵从该请求。
主机节点203接着使用其当前可用的信息建立动态更新记录以传输到主DNS服务器(步骤903)。具体地,主机节点现在具有其自身的完整DNS域名(以步骤901所述的方式导出),其自身的完整全局IP地址(在步骤707中导出),地址的相关属性,例如生命周期(在步骤706从路由器接收,或者当在步骤702产生时接口地址中固有的),主DNS服务器的地址(在步骤804得到),和用于和主DNS服务器通信的安全数据(在步骤804得到)。
主DNS服务器201最好是不仅响应转换DNS地址的请求,而且响应更新其DNS数据库402的请求的服务器。通过非安全信道在Internet上接收这些数据库更新请求。如果DNS服务器简单执行未经验证便接收的所有请求,则恶意主机设备可以改变DNS数据库402中的记录以中断Internet上的信息流,并且拒绝对其它主机服务。在优选实施例中,主DNS服务器201根据任何请求方设备均可以产生新DNS名字的DNS名字记录(假定其符合传统命名规则)的原则进行操作。然而一旦产生,则只有最初的请求方设备,或某些可以被用于Internet管理的授权和受信设备被允许更新DNS名字记录。
因此,使更新请求安全的问题变成(a)验证DNS名字更新请求来自最初请求方设备;(b)隐藏来自Internet上其它设备的通信以防止另一个设备复制识别信息并假装是最初请求方设备的问题中的一个。使通信安全的处理在图9中被描述成步骤904,并且在下面有更详细的描述。
可以使用各种加密技术中的任何一种来完成隐藏DNS更新通信的处理。最好使用公开/私有密钥加密技术。本地DNS服务器为主机提供主DNS服务器的公开密钥。本地主机使用这个密钥加密至少部分请求,而主DNS服务器使用其私有密钥解密该请求,其中其它设备不可得到上述私有密钥。
可以通过下述方式完成对请求方身份的验证,然而应当理解,可以使用如这里描述的验证技术的许多可能变化。主机节点203产生其自身的身份密钥,身份密钥最好是具有足够长度的随机数,虽然可以是与某些其它数值,例如机器序号等等相结合的随机数。(从数学角度看,不必保证随机数是唯一的,但是足够长的随机数使得意外复制极不可能,于是实际上可以被认为是唯一的)。在新DNS域名的最初请求中,请求方主机设备包含其身份密钥。请求方主机还包含时间/日期标签,当然还包含用于产生新记录的数据。可以使用主DNS服务器的公开密钥加密整个请求,也可以只加密包含身份密钥,时间/日期标签和某些来自请求的数据的″签名″(例如记录的杂凑)。只加密身份密钥是不足够的,因为加密密钥可以被简单复制。当接收时,DNS服务器解密所有加密信息,并且验证密钥。DNS服务器还检查日期/时间标签(如果日期/时间标签过旧,则应当拒绝)。对于新DNS名字(不在数据库中),密钥被简单地假定为有效,但是相同密钥必须被用于所有后续请求。在这种情况下,DNS服务器产生新记录,并且用此记录存储身份密钥。从不同于少数受信主机中的一个的主机接收的任何更新记录的后续请求(即涉及相同DNS域名的后续请求,例如向与DNS域名相关的地址列表增加IP地址)必须包含相同的身份密钥,否则不接受请求。因此,当主机203产生其身份密钥时,它必须保存密钥以用于后续DNS更新请求。
由于LAN 204上的设备被本地DNS服务器205信任,因此可选地,本地DNS服务器205可以产生被LAN 204上所有设备使用的身份密钥,并且向主机节点203发送此密钥以用于其请求。
主机节点接着向主DNS服务器发送更新请求(步骤905)。主DNS服务器解密请求,如上所述地验证请求,并且执行数据库的适当更新(步骤906)。即,对于新域名(不在数据库中),主DNS服务器在数据库中产生新的域名记录,从而将域名与请求中包含的IP地址关联,并且存储任何所需的附加参数。对于现有域名,请求中的IP地址与数据库中的现有域名记录相关,并且存储任何附加的所需参数。
用于更新数据库记录的协议可以遵循DHCP服务器通常使用的协议,这些协议定义了发送的信息的类型等等。可以使用已知的BIND 8协议,或最近版本的BIND 9(或这个协议的任何后续更新版本)。可选地,可以使用任何提供用于更新的必要信息的协议。例如但不限于,在P.Vixie,S.Thomson,Y.Rekhter & J.Bound于1997年12月提出的″域名系统中的动态更新(DNS更新)″草案标准Internet团体协议中描述了这种协议,这里参考引用了该文献。
在上述描述中,为了理解的清楚,假定单独主DNS服务器201维护适用区域的域名记录,该区域包含主机,并且主机与该区域通信以更新记录。然而区域的主DNS服务器不必遵守任何特定配置。它可以是单独的系统,也可以是多个系统。如果是多个系统,则这种系统可以是不相同的,可以具有多个地址,并且/或者可以具有域名记录的多个复本(和用于同步复本的处理)。如这里和权利要求中所使用的,″主域名服务器″或″主DNS服务器″应当被理解成包含可权威地维护适用区域的域名记录的任何系统或系统聚集。
应当理解,在任何现有Internet标准下不必需要这里在优选实施例中描述的、支持本发明所需的对传统主机和DNS服务器行为进行的某些修改,虽然它们没有与那些标准不一致。在这里提到的各种草案标准中考虑到了某些这样的修改(或类似性质的修改),虽然其它是对现有标准或草案标准的扩展。然而为了实施如这里描述的本发明,不必采用新Internet标准并且在所有连接到Internet的设备上实现。例如如果所有本地设备(LAN 204上)遵从这里描述的行为,主机节点可以自动产生其地址,确定其路由器,找到其本地和主DNS服务器,并且向主DNS服务器发送更新请求。事实上,如果对LAN及其连接的设备的完整性有足够的置信度,则不必使所有本地设备遵循所描述的用于验证主机节点的本地链路地址的协议,并且只有被配置的主机节点和本地DNS服务器需要修改以支持这里描述的技术。
应当理解,这里公开的是用于自动维护DNS数据的技术的优选实施例,在图6-9中示出并且如上所述的方法步骤中可以存在除了这里具体讨论的以外的许多变化。具体地,应当认识到,可以改变执行某些步骤的顺序,某些步骤可以是可选的,或者可以按照与这里描述的不同的方式被执行,并且某些步骤可以被组合,等等。尤其是,图6-9中图解的执行步骤的顺序是新连接的Internet设备中所常见的,其中Internet设备必须获得所有需要的信息(虽然对于新连接的设备,某些步骤的顺序可以发生某些变化)。在现有主机节点正简单更新其某些配置信息的情况下,象通过产生新IP地址那样,执行步骤的顺序通常会显著不同,例如路由器、DNS名字服务器和完整DNS域名的确定可以在产生新IP地址之前若干月或若干年便已进行,其中在此期间必要信息已经被保存在主机节点中。
应当认识到,在某些配置中,相同本地链路204上会没有本地DNS服务器205,其中这个本地链路上的设备通过路由器202访问DNS服务器。然而,应当存在某些相对本地的DNS服务器,被连接到作为解码Internet域名的初始地址的路由器202的设备所使用。
在优选实施例中,通过首先发现本地域名服务器,并且接着从本地服务器得到身份来发现适用主域名服务器的身份。然而应当认识到,可以使用确定主域名服务器身份的可选方法。这种方法不必依赖作为主机节点的相同本地链路上的本地域名服务器的存在或支持。例如,路由器可以被构造成存储主DNS服务器或相对本地的DNS服务器的IP地址,并且发送这个数据以作为路由器通告的一部分,虽然这会假定需要修改现有路由协议。可选地,这个数据可以是简表数据文件的一部分,其中当主机最初被配置时,所述分布数据文件被加载到主机上。此外,未来可以开发其它或可选的协议以用于发现这个信息。
在优选实施例中,涉及无状态自动配置的草案标准被用来产生主机节点的IP地址,其中主机产生其自身的本地链路地址,并且从路由器得到IP地址的全局部分。然而应当理解,可以使用可选过程,并且由于无状态自动配置仅仅是草案,人们可以期待在其成为最终标准之前会出现对标准的修改。另外,人们不必遵循任何所识别的标准协议以便根据本发明产生IP地址。
通常,无论被实现成操作系统的一部分,或具体应用,程序,对象,模块或指令序列,被执行以实现本发明的图解实施例的例程在这里被称作″计算机程序″。计算机程序通常包括当被符合本发明的计算机系统中的设备或系统的一或多个处理器读取和执行时,导致那些设备或系统实施为执行基于本发明各个方面的步骤,或产生基于本发明各个方面的单元所需的步骤的指令。此外,虽然已经并且此后仍将在功能完全的计算机系统的背景下描述了本发明,然而本发明的各个实施例能够被分布为各种形式的程序产品,并且无论何种特定类型的信号承载介质被用来实际执行分布,本发明均同等适用。信号承载介质的例子包含但不限于例如易失和非易失存储器器件的可记录类型介质,软盘,硬盘驱动器,CD-ROM,DVD,磁带,和例如数字和模拟通信链路(包含无线通信链路)的传输类型介质。信号承载介质的例子在图3中被图解为存储器302和数据存储设备304,并且在图5中被图解为存储器502和存储器514。
虽然已经公开了本发明的具体实施例和某些可选实施例,然而本领域的技术人员应当认识到,在附录之后的权利要求的范围内,可以进行形式和细节上的附加变化。
附录IIPv6无状态地址自动配置草案标准网络工作组 S.Thomson评价请求2462 Bellcore废止1971 T.Narten类别标准跟踪 IBM1998年12月IPV6无状态地址自动配置关于本文的说明这个文档说明了一个针对Internet团体通信的Internet标准跟踪协议,而且请求讨论和建议以进行改进。请参考″Internet正式协议标准″(标准1)的当前版本来得到本协议的标准化陈述。本文的分发不受限制。
版权声明版权所有归Internet协会(1998)。保留所有权利。
摘要本文档详细说明了在IPv6下,一台主机决定如何自动配置它的接口的具体步骤。自动配置过程包括创建本地链路地址并验证它在链路上的唯一性,决定哪些信息应当被自动配置(地址,其它信息,或两者兼有),并且对于地址而言,还必须决定它是通过无状态机制,还是通过状态机制来获取,或两者兼有。本文档定义了产生本地链路地址的过程,通过无状态地址自动配置产生本地站点地址和全局地址的过程,以及地址冲突检测过程。使用状态协议的自动配置的细节不属于本文档的范围。
目录1.简介2.术语3.设计目标4.协议概览4.1站点重编号5.协议规范5.1节点配置变量5.2自动配置相关变量5.3本地链路地址的创建5.4地址冲突检测5.4.1消息验证5.4.2发送邻居请求消息5.4.3接收邻居请求消息5.4.4接收邻居通告消息5.4.5地址冲突检测失败时5.5全局和本地站点地址的创建5.5.1请求路由器通告5.5.2无路由器通告的情形5.5.3路由器通告处理5.5.4地址生命周期终止5.6配置一致性6.安全考虑7.参考文献
8.致谢和作者地址9.附录A回返抑制&地址冲突检测10.附录B自RFC 1971以来的改变11.完整版权声明1.简介本文档详细说明了在IPv6下,一台主机决定如何自动配置它的接口的具体步骤。自动配置过程包括创建本地链路地址,验证它在链路上的唯一性,决定哪些信息应当自动配置(地址,其它信息,或两者兼有),并且对于地址而言,还必须决定它应当通过无状态机制,还是通过状态机制来获取,或两者兼有。本文档定义了产生本地链路地址的过程,通过无状态地址自动配置产生本地站点地址和全局(唯一)地址的过程,以及地址冲突检测过程。使用状态协议的自动配置的细节不属于本文档的范围。
IPv6同时定义了无状态与状态自动配置机制。无状态自动配置不需要对主机进行任何手动的配置,对路由器的配置也是最少的(如果有的话),也不需要任何额外的服务器。无状态机制可以使主机把本地可得到的信息同路由器发出的通告消息结合来产生其自身的地址。路由器通告前缀,此前缀标识关联到链路的子网,而主机则产生“接口标识符”,这个“接口标识符”在本子网上唯一标识一接口。地址就是这两部分的结合。如果没有路由器,主机只能产生本地链路地址。但是本地链路地址已经足以允许在与本地链路连接的节点中间进行通信。
在状态自动配置模型里,主机从服务器获取接口地址和/或其它配置信息与参数。服务器维护数据库,该数据库跟踪哪些地址已经被指派给哪些主机。状态自动配置协议允许主机从服务器获取地址,其它配置信息,或两者兼有。无状态自动配置和状态自动配置互补不足。譬如,主机可以用无状态自动配置来配置它的地址,便通过状态自动配置来获取其它信息。IPv6下的状态自动配置是将来的一个工作主题[DHCPV6]。
无状态方案用在不太关心主机的确切地址的站点上,只须地址唯一且可以被正确路由即可。而状态方案则用在需要比较严格地控制地址分配的站点。无状态和状态地址自动配置可以同时运用。站点管理员通过设置路由器通告消息里的相关字段,可以指定使用何种自动配置类型[DISCOVERY]。
接口借用IPv6地址一段固定长度(可能是无限长)的时间。每个地址都有一个相关联的生命周期显示它将被绑定到某个接口上多久。当生命周期结束时,绑定变成无效,这时这个地址可能被重新指派给Internet上其它的接口。为了适当地处理地址绑定的过期,地址被指派到某个接口上时,经历了两个阶段。最初,地址是“优先”的,意味着它可以被用于任何通信而不受限制。然后,地址可以变成“反对”(deprecated)的,以预期它的当前绑定即将失效。处于被“反对”状态时,使用这个地址是不被提倡的,虽然并不严格禁止。新的通信(例如打开新的TCP连接)应该尽可能使用“优先”地址。被反对的地址只应该被用于那些已经使用该地址,但难以在不造成服务中断的情况下转换到另一个地址的应用程序。
为确保所有被配置的地址在给定的链路上是唯一的,节点在把地址指派给接口之前,都要运行“地址冲突检测”算法。所有的地址分配都执行地址冲突检测算法,不管它是无状态自动配置还是状态自动配置分配。
本文档说明的自动配置过程只应用于主机而非路由器。路由器必须通过其它手段进行配置,因为主机自动配置使用了路由器通告的信息。不过,本文档描述的机制也可以用于路由器产生本地链路地址。另外,在所有的地址被分配到接口之前,路由器还必须对所有地址通过本文档中描述的地址冲突检测过程。
章节2提供了本文档中使用到的一些定义和术语。章节3描述了当前自动配置过程的设计目标。章节4是协议的概览。章节5详细描述了协议的细节。
2.术语IP-Internet协议版本6。术语IPv4只用于上下文不能清楚分辨的地方以避免歧义。
节点(Node)-实现IP的设备。
路由器(router)-转发IP分组的节点,这些IP分组的目的地不是该节点。
主机(host)-任何不是路由器的节点。
上层(upper layer)-紧临IP之上的协议层。例如传输协议TCP和UDP,控制协议ICMP,路由协议OSPF,以及被“隧道化”(即封装)在诸如IPX,AppleTalk,或IP协议本身的网际或更低层协议。
链路(link)-通信设备或介质,通过它,节点能在链路层上相互通信,链路层是紧临IP之下的协议层。例如以太网(简单的或桥接的);PPP连接;X.25,帧中继,或ATM网络;以及网际(或更高)的协议层隧道”,譬如通过IPv4或IPv6本身的隧道。
接口(interface)-节点到链路的连接。
分组(packet)-IP头加有效负载。
地址(address)-针对一个接口或一组接口的IP层标识符。
单播地址(unicast address)-单个接口的标识符。被送到一个单播地址的分组被传送到这个地址所标识的接口。
组播地址(multicast address)-一组接口(通常属于不同节点)的标识符。一个被送到该地址的分组会被传送到该地址所标识的所有接口。
任意点播地址(anycast address)-一组接口(通常属于不同节点)的标识符。一个被送到该地址的分组将被送到该地址所标识的接口之一(“最接近”的接口,根据路由协议距离测量)。详见[ADDR-ARCH]。
被请求节点的组播地址(solicited-node multicast address)-邻居请求消息被发送到的组播地址,在[DISCOVERY]里有计算该地址的具体算法。
链路层地址(link-layer address)-接口的链路层标识符。例如以太网链路的IEEE802地址和ISDN链路的E.164地址。
本地链路地址(link-local address)-一个工作仅在本地链路范围内有效的地址(address),可以用来与连接在同一链路上的邻居节点通信。所有的接口都有一个本地链路的单播地址。
本地站点地址(site-local address)-一个有效范围限于本地站点的地址。
全局地址(global address)-一个无范围限制的地址(全局有效)。
通信(communication)-节点间的任意分组交换,要求交换中每个节点的地址保持不变。例如TCP连接或UDP请求-响应。
试探地址(tentative address)-一个还未指派给接口,正被验证链路上唯一性的地址。一般来说,不认为试探地址已经被指派给接口。接口若收到发往试探地址的分组,会丢弃它,除非这个分组是涉及试探地址的地址冲突检测的邻居发现分组。
优先地址(preferred address)-指派给接口的一个地址,可以不受限制地被上层协议使用。优先地址可以被用于从接口上发送(或接收)的分组的源(或目的)地址。
反对地址(deprecated address)-指派给接口的一个地址,不提倡使用它,但也没有严格禁止它的使用。一个反对地址不应该被用于新的通信的源地址,但发往或发自反对地址的的分组还是如常处理。反对地址在切换到优先地址有困难的上层活动中可能被继续用做通信的源地址(例如一个已存在的TCP连接)。
有效地址(valid address)-一个优先或否决地址。一个有效地址可以以分组的源或目的地址出现,网际路由系统应该将发往有效地址的分组传送给它们想到达的接收方。
无效地址(invalid address)-没被指派给任何接口的地址。一个有效地址当它的有效生命周期终止时,就变成一个无效地址。无效地址不应该作为分组的源或目的地址出现。当它作为分组的源地址时,接收方无法回应,当作为目的地址时,路由器无法转发。
优先生命周期(preferred lifetime)-一个有效地址作为优先地址的时间,即直到被反对的时间。当该时间到期时,地址变成反对地址。
有效生命周期(valid lifetime)-地址有效的时间(即直到地址失效的时间)。该时间必须大于或等于优先生命周期。当该时间到期时,地址变成无效。
接口标识符(interface identifier)-用于在每个链路(至少)唯一的接口的链路相关标识符[ADDR-ARCH]。无状态地址自动配置组合接口标识符和前缀以形成一个地址。从地址自动配置的角度看,一个接口标识符是一个已知长度的位串。接口标识符的确切长度及其产生方式在另外单独的特定链接型文档中定义,这些文档涉及在特定链路类型上进行IP传输的各种问题(例如[IPv6-ETHER])。在许多情况下,接口标识符和接口的链路层地址是一样的。
2.1需求当关键字必须,不准,需要,应该,不应该,应当,不应当,建议,可以和可选出现在本文档时,其解释如[KEYWORDS]中所述。
3.设计目标无状态自动配置的设计有如下几个需要达到的目标o每台机器在联入网络前不需要任何的手动配置。因此,需要一种机制能让主机为它的每个接口获取或创建具有唯一性的地址。地址自动配置假设每个接口都能提供该接口的一个唯一标识符(即一个“接口标识符”)。最简单的情况下,接口标识符由接口的链路层地址构成。接口标识符和前缀组成一个地址。
o由一组连接到同一链路上的机器组成的小型站点不需要有状态服务器或路由器就可以相互通信。通过使用本地链路地址实现即插即用通信。本地链路地址具有众所周知的、标识一组节点所连接的(单独)共享链路的前缀。主机通过将其接口标识符附加到本地链路前缀上来构成本地链路地址。
o一个由多个网络和路由器组成的大型站点不应当需要状态地址配置服务器。为了产生本地站点地址或全局地址,主机必须确定标识该主机所连接到的子网的前缀。路由器周期性地产生路由器通告,通告里有一些选项列出了链路上活跃前缀的集合。
o地址配置应当方便站点机器的合理重编号。例如,当一个站点换了一家新的网络服务提供商时,也许就需要对它的所有节点重新编号。重编号通过借用地址给接口和将多个地址指派给同一接口即可实现。借用周期提供了被站点用来逐渐淘汰旧前缀的机制。多个地址分配给同一接口提供了一个过渡时期,期间新地址和正在淘汰的旧地址可以同时工作。
o系统管理员需要能够指定是应当用无状态自动配置,还是状态自动配置,或者两者同时使用。路由器通告里有标志以指定主机应当用何种机制。
4.协议概览本章节提供了进行接口自动配置时执行的典型步骤的概览。只在具有组播能力的链路上进行自动配置,并且在具有组播能力的接口被启用时,例如当系统启动时,自动配置开始执行。节点(包括主机和路由器)通过为接口产生本地链路地址来开始自动配置过程。通过将接口标识符追加在众所周知的本地链路前缀上,就形成了一个本地链路地址。
但在本地链路地址可以被指派给接口并且使用之前,节点必须尝试验证这个“试探”地址是否已经被链路上的其它节点所使用。具体一点说,它发送一个邻居请求消息,此消息以这个“试探”地址为目标地址。如果另一个节点已经在使用这个地址,它会回应一个邻居通告以报告此情况。如果另一个节点也在尝试使用相同地址,它也会发送一样的邻居请求,即以试探地址为分组的目标地址。邻居请求被(重新)发送的次数以及连续请求之间的延迟时间和具体链路有关,也可以由系统管理设定。
如果一个节点确定其本地链路试探地址不唯一,自动配置就会停止,这时需要手动对接口进行配置。为了简化这种情况下的恢复,管理员应当可以提供一个覆盖缺省标识符的备选接口标识符,使得自动配置机制可以使用这个新(可假定唯一)的接口标识符。否则,就要手动配置本地链路地址和其它地址。
一旦节点确定它的本地链路试探地址是唯一的,它就把它指派给接口。这时,这个节点就具备了在IP层上与邻居节点进行连接的能力。其它自动配置步骤仅由主机执行;路由器的(自动)配置不在本文档的范围之内。
自动配置的下一个阶段涉及获取路由器通告,或确定没有路由器存在。如果路由器存在,它们会发送路由器通告,指定主机要用何种自动配置。如果没有路由器,就应该启用状态自动配置。
路由器周期性地发送路由器通告,但是连续路由器通告之间的时延通常超过执行自动配置的主机所希望等待的时延[DISCOVERY]。为了尽快得到路由器通告,主机发送一个或多个路由器请求给所有路由器组播群。路由器通告包含了两个标志,表示主机应执行何种状态自动配置(如果有)。“管理地址配置”标志表示主机是否应当用状态自动配置获取地址。“其它状态配置”标志表示主机是否应当使用状态自动配置获取其它信息(除地址外)。
路由器通告也包含零或更多个的前缀信息选项,含有被无状态地址自动配置用来产生本地站点和全局地址的信息。值得注意的是,路由器通告中的无状态和状态地址自动配置字段被彼此单独处理,并且主机可以同时使用无状态和状态地址自动配置。一个前缀信息选项字段,“自治地址配置标志”,表示这个前缀信息选项是否适用于无状态自动配置。如果是,则附加选项字段包含子网前缀及生命周期值,生命周期值指示由这个前缀所创建的地址保持优先和有效的时间。
由于路由器周期性地产生路由器通告,主机会持续地收到新的通告。主机以如上所述的方式处理每个通告所包含的信息,添加和刷新从以前的通告里获取的信息。
安全起见,所有地址在被指派给接口前都应该先验证它们的唯一性。对于通过无状态自动配置产生的地址来说,地址的唯一性基本上取决于地址中由接口标识符形成的那部分。所以,如果一个节点已经验证了本地链路地址的唯一性,由相同接口标识符创建的附加地址就不需要单独进行验证。相反,所有手动配置或通过状态地址自动配置获取的地址应当分别验证唯一性。为适应有些觉得地址冲突检测不必要的站点,地址冲突检测也可以被禁用,这通过对一个每接口配置字段的管理设置来实现。
为加速自动配置过程,主机一边产生其本地链路地址(并验证它的唯一性),一边等待路由器通告。因为路由器对路由请求的回应可能会有几秒的延迟,如果串行处理这两个步骤,则完成自动配置的总时间加起来会明显地长。
4.1站点重编号地址借用提供了一种机制,使被指派给接口的地址可以在一定时间内失效,这方便了站点重编号。目前,上层协议如TCP还不支持在打开的连接上改变端点地址。如果一个端点地址变成无效,现有连接中断,所有到无效地址的通信会失败。即应用使用UDP作为传输协议,通常在分组交换过程中地址也不能变动。
将有效地址分为优先和反对地址两种提供了一种方式以向上层指示一个有效地址很快要变成无效,未来使用这个地址的通信将会失败,如果在通信结束前地址的有效生命周期终止。为了避免这种情况,高层协议应使用优先地址(假设该地址的作用范围足够)以便在通信过程中地址仍然有效的可能性比较大。由系统管理员负责设定适当的前缀生命周期,以尽量减小重编号时通信失败带来的影响。地址处于反对状态的时间应该足够长,以使大部分(如果没办法做到全部的话)通信在旧地址失效时正在使用新地址。
给定一个具体目标地址或可能的其它限制,IP层应该能够提供手段使上层(包括应用程序)能选择最为适当的源地址。在开始新通信之前,应用程序可以自己选定源地址或不指定地址,让上面的网络层使用IP层提供的机制来替它选择一个适当的地址。
具体的地址选择规则不在本文档的讨论范围中。
5.协议规范自动配置在有组播功能的接口上逐个接口地执行。对于多归属主机,自动配置独立地在每个接口上进行。自动配置主要是用于主机,但有两个例外。路由器也应该按下面列出的步骤产生本地链路地址。另外,路由器在把所有地址指派给接口前,都要对地址进行地址冲突检测。
5.1节点配置变量一个节点必须允许通过系统管理对每个组播接口设置如下的自动配置相关变量DupAddrDetectTransmits在对一个试探地址进行地址冲突检测时发送的连续邻居请求消息的数目。0表示不对试探地址进行地址冲突检测,1表示只发一个邻居请求消息,没有后续传输。
默认值1,但可被关于在特定链路类型上进行IP传输的问题的文档所指定的特定于链路类型的值所覆盖(例如[IPv6-ETHER])。
自动配置还假设变量RetransTimer是存在的,这个变量在[DISCOVERY]里有详细定义。为进行自动配置,RetransTimer指定了地址冲突检测期间进行的连续邻居请求传输之间的延时,以及发送最后的邻居请求之后、结束地址冲突检测过程之前节点所等待的时间。
5.2自动配置相关变量主机维护一些和自动配置相关的数据结构与标志。下面,我们提出几个概念性的变量,并指出它们在自动配置过程中是如何被运用的。具体的变量仅供示范,具体实现不一定要有这些变量,只要其外部行为和本文所描述的相一致就可以。
除本地链路地址的形成和地址冲突检测之外,路由器如何(自动)配置它们的接口不在本文档的讨论范围之内。
主机逐个接口地维护下列变量ManagedFlag 复制自最近收到的路由器通告消息里的M标志字段(即“管理地址配置”标志)。这个标志表示是否使用状态自动配置机制配置地址。初始状态为FALSE。
OtherConfigFlag复制自最近收到的路由器通告消息里的O标志字段(即“其它状态配置”标志)。这个标志变量表示是否要使用状态自动配置机制来获取除地址以外的其它信息。初始状态为FALSE。另外,当ManagedFlag的值为TRUE时,OtherConfigFlag的值则隐含为TRUE。对于主机只通过状态地址自动配置请求地址,而不接收其它配置信息,这不是一种有效配置。
主机也维护一张地址与其对应生命周期的列表。地址列表里包括了自动配置和手动配置的地址。
5.3本地链路地址的创建当一个接口启用时,节点就形成一个本地链路地址。一个接口的启用可以发生于下列任何事件之后-接口在系统启动时被初始化。
-接口在暂时性的接口失效或被系统暂时禁用后,重新初始化。
-接口第一次接入到链路上。
-接口在出于管理目的而禁用后又通过系统管理被重新启用。
本地链路地址由众所周知的本地链路前缀FE80∷0[ADDR-ARCH](具有适当长度)和接口标识符组合而成。假如接口标识符为N个比特位长,则用它来替代本地链路前缀最右边的N个0比特位。如果接口标识符长于118比特位,自动配置失败,需要手动配置。注意,接口标识符通常是64比特位长,并且基于EUI-64标识符。EUI-64标识符的描述详见[ADDR-ARCH]。
本地链路地址具有无限的优先和有效生命周期;它永不超时。
5.4地址冲突检测如果一个接口的DupAddrDetectTransmits变量大于0,在指派单播地址到该接口之前要对所述地址执行地址冲突检测。不管是通过状态自动配置、无状态自动配置,还是手动配置获得单播地址,都要对所有单播地址进行地址冲突检测,除了以下几种情况以外-对任意点播地址不准进行地址冲突检测-每个单独的单播地址都应当测试其唯一性。但是,当使用无状态地址自动配置时,假设子网前缀的分配正确的话,那么地址的唯一性只取决于接口标识符(就是说,如果接口的所有地址是从同一个标识符产生的,则要么全部都不冲突,要么全部冲突)。因此,对于由同一接口标识符形成的一组地址而言,只要检查由该标识符形成的本地链路地址在链路上的唯一性就足够了。在这种情况下,本地链路地址必须检测其唯一性,如果没有检测到地址冲突,具体实现时可以选择略过由同一接口标识符派生而来的其它地址的地址冲突检测。
地址冲突检测的过程使用如下描述的邻居请求与通告消息。如果检测过程中发现地址冲突,地址就不能被指派给接口。如果这个地址是从一个接口标识符派生出来的,则需要指派一个新的标识符给这个接口,否则这个接口的所有地址均需要手动配置。值得注意的是,这个检测冲突的方法并不是完全可靠的,地址冲突依然可能存在(例如,如果在进行地址冲突检测时链路被分段)。
被执行地址冲突检测过程的地址被称为“试探”的,直到检测过程成功结束。一般而言,试探地址不被认为已经指派给接口。这意味着接口必须接收邻居请求和通告消息,这些消息在目标地址中包含试探地址,但对这些消息分组采取的处理,不同于对其目标地址和为接口分配的地址匹配的分组进行的处理。其它送往试探地址的分组应当被悄悄丢弃。
应当注意,在指派地址给接口之前,必须进行地址冲突检测,以避免同一时间内多个节点使用一样的地址。如果节点开始与地址冲突检测并行地使用一个地址,而此时另一节点已经在使用这个地址,则执行地址冲突检测的这个节点将会错误地处理本来送往另一个节点的通信数据,从而可能造成不良的后果,如重置一个已经打开的TCP连接。
接下来的小节描述了一个节点验证地址唯一性的具体测试。如果发送完DupAddrDetectTransmits次的邻居请求之后的RetransTimer毫秒内没有检测到地址冲突,这个地址就被认为具有唯一性。这时就可以把地址指派给接口。
5.4.1消息验证节点必须悄悄地丢弃任何未通过[DISCOVERY]中规定的有效性检查的邻居请求或通告消息。通过这些有效性检查的请求或通告消息被称为有效请求或有效通告。
5.4.2发送邻居请求消息在发送邻居请求前,接口必须加入全节点组播地址和试探地址的被请求节点组播地址。前者确保节点从已使用该地址的其它节点接收到邻居通告;后者确保两个都在尝试使用同一个地址的节点检测到对方的存在。
为检查地址,节点发送了DupAddrDetectTransmits个邻居请求,每个发送之间间隔RetransTimer毫秒。请求的目标地址被设置成检查的地址,IP源地址设成未指定的地址,IP目的地址被设成目标地址的被请求节点的组播地址。
如果邻居请求是接口(重新)初始化后发送的第一个分组,节点应将消息延迟一个介于0和[DISCOVERY]中规定的MAX_RTR_SOLICITATION_DELAY之间的随机延迟。这是出于减轻拥塞的目的,特别是当停电又来电后,许多在同一链路上的节点同时启动时。这样做也有助于避免由多于一个的节点同时尝试请求使用同一个地址时带来的竞争情况。为提高地址冲突检测算法的健壮性,接口在延迟发送初始邻居请求时,必须接收并处理发送到全节点组播地址或试探地址的被请求节点组播地址的数据报。
5.4.3接收邻居请求消息当在接口上接收到一个有效的邻居请求消息时,节点的行为取决于目标地址是否是试探地址。如果目标地址不是试探地址(即它是已经指派给接收接口的地址),请求的处理如[DISCOVERY]中所述。如果目标地址是试探地址,并且源地址是单播地址,则请求的发送方正在对目标地址进行地址解析;这样的请求应当被悄悄忽略。否则,按如下描述进行处理。在任何情况下,节点都不准回复试探地址的邻居请求。
如果邻居请求的源地址是未指定的地址,则请求是从一个正在进行地址冲突检测的节点发出来的。如果这个请求是从另一个节点发出的,这个试探地址就是冲突的,不应当被(任一节点)使用。如果这个请求是从节点自身发出的(因为节点回返组播分组),则请求不表示有地址冲突。
实现者要注意很多接口允许上层协议有选择地启用和禁用组播分组的回返。如何实现此设施的细节会影响地址冲突检测的正常工作。附录A有进一步的阐述。
下面的测试列出了什么情形下试探地址是不唯一的-如果在发送某个试探地址的邻居请求前就收到这个试探地址的邻居请求,则这个地址就是冲突的。当两个节点同时进行地址冲突检测,但在不同时间发送初始请求时(例如在发送请求前选择不同的随机延迟值),发生这种情况。
-如果收到的邻居请求的实际数目超过了根据回返定义应该收到的数目(例如接口不回返分组,却收到了一或多个请求),试探地址是冲突的。当两个节点同时进行地址冲突检测,而且几乎同时发送请求时,出现这种情况。
5.4.4接收邻居通告消息接口收到一个有效的邻居通告消息时,节点的行为取决于目标地址是试探地址,或匹配于分配给本接口的单播或任意点播地址。如果目标地址被指派给接收接口,请求的处理根据[DISCOVERY]里的描述进行。如果目标地址是试探地址,那这个试探地址就是重复的。
5.4.5地址冲突检测失败一个试探地址如果经过检测,确定是冲突的,它就不准被指派给接口,节点应当记录一个系统管理错误。如果这个地址是一个根据接口标识符形成的本地链路地址,这个接口应当被禁用。
5.5全局和本地站点地址的创建全局和本地站点地址通过追加接口标识符到一定长度的前缀来形成。前缀从路由器通告里的前缀信息选项里获取。在本章节详述的全局和本地站点地址,以及其它参数的配置,都应当是本地可配置的。但是下面描述的过程必须默认启用。
5.5.1请求路由器通告路由器通告周期性地被送往全节点组播地址。主机发送路由器请求,以更快地获取路由器通告。(详见[DISCOVERY])5.5.2无路由器通告的情形如果一个链路上没有路由器,主机必须尝试用状态自动配置去获取地址和其它配置信息。在这种情况下,具体实现可以提供禁止状态自动配置启动的选项,但默认值应当是可以启动。从自动配置的角度来看,如果在发送少量路由器请求后,还是没有收到任何路由器通告,就认为链路上没有路由器(详见[DISCOVERY])。
5.5.3路由器通告处理当收到一个有效的路由器通告时(详见[DISCOVERY]),主机把通告里的M个位的值复制到ManagedFlag变量里。如果ManagedFlag变量的值从FALSE变为TRUE,并且主机还没有运行状态自动配置协议,主机应启用状态地址自动配置协议以请求地址信息及其它信息。如果是从TRUE变为FALSE,则主机应当继续运行状态地址自动配置,也就是说这个变化没带来任何影响。如果ManagedFlag的值没有变化,就无需特别的动作。特别要说的是,如果之前的通告已经使主机参与了状态协议,则主机就不准再次调用状态自动配置。
通告的O标志字段也是以类似的方式处理。主机把O标志的值复制到OtherConfigFlag变量里。如果OtherConfigFlag的值从FLASE变为TRUE,主机应当调用状态自动配置以请求信息(不包括地址,若ManagedFlag被设为FALSE)。如果是从TRUE变为FALSE,则主机应当继续运行状态地址自动配置协议,即所述值的改变没有作用。如果标志的值不变,则无需特别的动作。特别要说的是,如果之前的通告已经使主机参与了状态协议,则主机就不准再次调用状态自动配置。
对于路由器通告里的每一个前缀信息选项a)如果自治标志没有设置,就悄悄忽略这个前缀信息选项。
b)如果前缀是本地链路前缀,也悄悄忽略这个前缀信息选项。
c)如果优先生命周期比有效生命周期大,则悄悄忽略这个前缀信息选项。这种情况下,节点可以记录一个系统管理错误到日志里。
d)如果通告的前缀和列表中地址的前缀不匹配,并且有效生命周期不为0,则通过以下如下方式组合所通告的前缀和链路的接口标识符,产生一个地址(并把它加入到列表里)

如果前缀长度和接口标识符长度加起来不等于128位的话,这个前缀信息选项必须被忽略。具体实现时,可以记录一个系统管理错误到日志里。系统管理员有责任确保路由器通告里前缀的长度与该链路类型决定的接口标识符长度一致。注意,接口标识符通常基于EUI-64标识符(参见[ADDR-ARCH]),有64比特位长。
如果地址成功形成,主机把它加入到指派给接口的地址列表中,从而根据前缀信息选项初始化它的优先和有效生命周期。
e)如果通告的前缀和与接口相关的地址列表中的自动配置地址(通过无状态或状态自动配置获取的地址)的前缀匹配,具体的动作取决于通告里的有效生命周期,以及和这个已经被自动配置的地址关联的生命周期(下面讨论中我们称这个值为StoredLifetime)1)如果接收到的生命周期大于两个小时或比StoredLifetime大,就更新所存储的相应地址的生命周期。
2)如果StoredLifetime小于或等于两个小时,且接收到的生命周期小于或等于StoredLifetime,则忽略前缀,除非据以获得这个前缀信息选项的路由器通告已经通过认证(例如,通过IPSec[RFC2402])。如果路由器通告通过认证,就应当把StoredLifetime设成接收的通告里的生命周期值。
3)否则,把相应地址中的StoredLifetime设成两个小时。
上面的规则解决了特定的拒绝服务攻击,其中伪造的通告可以含有带有很小的有效生命周期的前缀。没有上面的规则,一个未认证过的、带着伪造的具有极短生命周期值的前缀信息的通告可以使所有节点的地址提前过期。上面的规则确保合法的通告(周期性发送)可以在短的生命周期生效前将其“撤消”。
5.5.4地址生命周期终止当其优先生命周期终止时,优先地址变为反对地址。一个反对地址应当在现有通信里继续被用做源地址,但如果有一个可选的(非反对的)地址可以用,而且这个地址又拥有足够的作用范围的话,反对地址不应用在新建立的通信里。IP和上层协议(例如TCP,UDP)必须继续接收目标为反对地址的数据报,因为反对地址仍然还是接口的一个有效地址。具体的实现可以防止任何新的通信使用反对地址,但系统管理必须有能力禁用这个功能,这个功能必须是默认被禁用的。
当其有效生命周期终止时,地址(和它与接口的关联)变成无效。一个无效的地址不准被用作出站通信的源地址,也不准被识别成接收接口的目标地址。
5.6配置一致性主机可能同时从无状态和状态自动配置获取地址信息,因为无状态和状态自动配置可能同时启用。同样的,其它配置参数的值,如MTU大小和转发段极限也可以通过路由器通告和状态自动配置协议获得。如果同一配置信息由多个源提供,这个信息的值应当是一致的。然而,这个值如果不一致,也不认为是致命的错误。主机综合接收所有通过无状态和状态协议获取的信息。如果从不同源获得的信息不一致,最新得到的值始终优先于更早前得到的值。
6.安全考虑无状态地址自动配置允许一台主机接入网络,配置地址,开始和其它节点通信,而这一切甚至都无需在本地站点上注册或认证其自身。虽然这方便了未经授权的用户接入和使用网络,但同时也给因特网的体系结构带来内在的隐患。物理接入网络的任何节点均可以产生一个地址(用一些特别的技术)来提供连接性。
地址冲突检测的使用为拒绝服务攻击提供了可能性。任意节点都可以回复一个试探地址的邻居请求,导致其它节点认为这个地址是冲突的,进而放弃使用这个地址。这样的攻击类似于涉及邻居发现消息欺骗的攻击,可以通过要求邻居发现消息分组认证来解决[RFC2402]。
7.参考文献[RFC2402]Kent,S.and R.Atkinson,″IP AuthenticationHeader″,RFC 2402,November 1998. Crawford,M.,″A Method for the Transmissionof IPv6 Packets over Ethernet Networks″,RFC 2464,December 1998. Bradner,S.,″Key words for use in RFCs toIndicate Requirement Levels″,BCP 14,RFC 2119,March 1997. Deering,S.,″Host Extensions for IPMulticasting″,STD 5,RFC 1112,August 1989. Hinden,R.and S.Deering,″Internet ProtocolVersion(IPv6)Addressing Architecture″,RFC 2373,July 1998[DHCPv6]Bound,J.and C.Perkins,″Dynamic HostConfiguration Protocol for IPv6(DHCPv6)″,Work in Progress. Narten,T.,Nordmark,E.and W.Simpson,″Neighbor Discovery for IP Version 6(IPv6)″,RFC 2461,December1998.
8.致谢作者感谢IPNG和ADDRCONF工作组成员的帮助。特别感谢Jim Bound,Steve Deering,Richard Draves,和Erik Nordmark。还感谢John Gilmore提醒″0生命周期前缀通告″工作组拒绝服务攻击弱点;本文引入了解决此弱点的修改。
作者地址Susan ThomsonBellcore445 South StreetMorristown,NJ 07960USAPhone+1 201-829-4514EMailset@thumper.bellcore.comThomas NartenIBM CorporationP.O.Box 12195Research Triangle Park,NC 27709-2195USAPhone+1 919 254 7798EMailnarten@raleigh.ibm.com
9.附录A回返抑制&地址冲突检测决定一个接收到的组播请求是回返给发送者的,还是确实是从其它节点发送过来的,是与具体实现有关的。当两个连接到同一链路上的接口碰巧有一样的标识符和链路层地址,并且它们几乎同时发送内容一模一样的分组(例如作为地址冲突检测消息一部分的某个试探地址的邻居请求)时,麻烦就出现了。虽然接收方接收到这样的分组,然而它无法仅通过比较分组的内容(内容是一样的)来判断分组是回返的还是从其它节点发过来的。在这种特殊情况下,没有必要确切地知道分组是回返的还是其它节点发送过来的;如果节点接收的请求多于它自身发送的请求,则试探地址是冲突的。但是,情况不总是那么简单直接的。
IPv4组播规范[RFC1112]建议服务接口提供使上层协议禁止一些分组的本地传送的方式,这些分组是发送到自己也是成员之一的组播群的分组。一些应用程序知道在同一主机上不会有组播群的其它成员,并且抑制回返使其不必接收(并丢弃)它们自己发出去的分组。一个简单直接的实现是在硬件层上(如果硬件支持的话)禁用回返,其中由软件回返数据分组(如果被请求)。在硬件本身抑制回返的接口上,运行地址冲突检测的节点只是简单地计算针对某个试探地址接收的邻居请求,并且和预料的数目比较。如果不相符,试探地址就是冲突的。
然而在硬件无法抑制回返的情况下,一种过滤不需要的回返的可能软件方法是丢弃任何其链路层源地址和接收接口的地址一样的接收分组。不幸的是,这种判定标准会导致所有从使用相同链路层地址的其它节点发来的分组被丢弃。地址冲突检测在以这种方式过滤接收分组的接口上会失败o如果执行地址冲突检测的节点丢弃其链路层源地址和接收接口链路层地址一样的接收分组,那它也会丢弃从使用相同链路层源地址的其它节点上发过来的分组,包括邻居通告和邻居请求消息,而这两种消息是使地址冲突检测正常工作所必须的。在节点执行地址冲突检测时,暂时地禁用回返的软件抑制可以避免这个问题。
o如果已经在使用一个特定IP的节点丢弃其链路层源地址与接收接口链路层地址一样的分组,那它也会丢弃与地址冲突检测相关的、由其它使用相同链路层地址的节点发出的邻居请求消息。这样的后果是,地址冲突检测会失败,其它节点会配置不唯一的地址。这样的情况只有当回返的软件抑制被永远禁用时才可能避免,因为一般不可能知道什么时候其它节点要执行地址冲突检测。
因此,在两个接口使用一样的链路层地址的情况下,为了正确执行地址冲突检测,具体实现必须充分了解接口的组播回返规定,并且接口也不能只因为分组的链路层源地址和接收接口的链路层源地址一样就丢弃它。
10.附录B自RFC1971以来的改变o改变的文档使用“接口标识符”而不是“接口令牌”,以和其它的IPv6文档保持一致。
o澄清了反对地址的定义,以阐明继续使用反对地址发送和接收是没问题的。
o改写了小节5.4,使之更明晰(没有实质的变动)。
o在小节5.5.3里,对路由器通告的处理添加了一些规则,以解决当带有极短的生命周期的前缀信息被通告时所潜在的拒绝服务攻击。
o澄清了小节5.5.4里的措辞,以阐明所有上层协议必须处理(即发送和接收)送往反对地址的数据报。
11.完整的版权声明版权所有归Internet协会(1998)。保留所有版权。
本文及其译文可被复制和提供给他人,并且可以全部或部分地准备、复制、出版和发布对本文进行评述、说明或支持实施的派生物,对此没有任何限制,但所有这些复制品和派生物中均需要包含上述版权声明和本段落。然而不得以任何方式修改本文,例如删除版权声明或对Internet协会或其它Internet组织的引用,但为开发Internet标准的目的除外,其中必须遵循Internet标准过程中规定的版权过程,并且也不包括为翻译成除英语以外的文字所需的修改。
上述批准的有限许可是永久的,并且Internet协会或其继任者或授权人将不对此进行重申。
以“既定”方式提供本文和这里包含的信息,并且INTERNET协会和INTERNET工程任务组否认任何保证、明示或暗示,其中包含但不限于任何有关使用这里包含的信息不会侵犯任何权利、或特定目的的可交易性或合理性的隐含保证的保证。
附录IIIPv6无状态DNS发现草案(制订中)网络工作组Dave ThalerInternet草案Microsoft2002年3月1日Jun-ichiro itojun Hagino2002年8月过期 IIJ Research LaboratoryIPv6无状态DNS发现<draft-ietf-ipv6-dns-discovery-04.txt>
关于本文的说明这个文档是Internet草案,并且完整符合RFC2026的章节10的全部假定。
Internet草案是互联网工程任务组,其领域及其工作组的工作文档。注意,其它组织也可以发布工作文档以作为Internet草案。
Internet草案有效期最多为6个月,并且可以在任何时候通过其它文档更新、替换或废止。使用Internet草案作为参考材料或将其置为非″制订中″状态是不恰当的。
要查看Internet草案影像目录,参见http//www.ietf.org/shadow.html。
摘要本文档规定了主机在决定如何自动配置IP版本6名字解析所需的DNS服务器的地址时所采取的步骤。自动配置过程包含确定是通过无状态机制,状态机制还是二者兼有来获得这种信息。本文档定义了获得DNS服务器地址列表的过程。通过无状态机制获得域搜索路径和主机域名的方案被包含在附录中以供研究。使用状态协议的自动配置的细节不在本文范围内。
版权声明版权所有归Internet协会(2002)。保留所有权利。
1.介绍RFC 2462[ADDRCONF]规定″OtherConfigFlag″作为每个接口的变量,其中根据接收的路由器通告中的″O″(″其它状态配置″)标志的值来设置该变量。当在接口上设置OtherConfigFlag时,使用状态自动配置机制获得涉及名字解析的信息。然而,当OtherConfigFlag被设置时,没有描述如何获得这种信息。这便是本文的目的。
为了使主机有效地解析其它主机的名字,并且潜在地允许对其名字进行解析,通常需要以下参数o域名服务(DNS)[RFC 1034,RFC 1035]服务器的一或多个地址。由DNS完成IP中名字-地址解析(反之亦然)的功能,这要求至少一个DNS服务器被期望进行名字解析的设备知道并且可访问。
o主机本身的每接口(per-interface)域名,相当于[DHCP]中的域名选项。当组播DNS被启用,主机响应针对其自身名字的查询,并且DNS动态更新被启用时,可以使用这个参数。根据具体实现,每接口域名可以和主机的基本域名相同或不同。
o搜索路径。当前普遍由设备根据其域名计算搜索路径。然而,已经提出了DHCP选项[DOMSEARCH],并且搜索路径配置可能是一个普遍要求。
omDNS启用标志。这个参数控制是否应当在主机接口上启用组播DNS[MDNS]。
设计组建议[DDDT]包含需求分析和方案空间,被用作本文档的基础。这种分析的一个结果是存在一类配置/发现机制。一方面,单个协议被用来配置/发现所有类型的信息。这种方式在网络管理员希望具有中央控制点并且应用策略等等的受监管环境中效果良好。另一方面,每个协议是自配置的,而不是依赖于任何其它协议或服务器。这种方式提供了优化的命运共享,并且在诸如特别网络的零配置环境和没有网络管理员的简单网络中效果良好。前一种机制用于使用″其它状态配置″标志的情况,本草案提供后一种没有设置″其它状态配置″标志的方案的益处(限制)。
注意本文档只包含获得域名服务服务器地址的方案。获得上述其它的机制被包含在附录A中以供研究。将来可将此部分移到单独的文档中。
2.综述为DNS服务器的自动发现保留了一组3个众所周知的本地站点IPv6地址。这些地址可以被用作分配给不同服务器的单播地址。将所述地址用作任意点播地址(其中一个被分配给站点中的所有DNS服务器),或任意点播与单播地址的任何组合属于将来的研究。
在站点的路由表中传播针对这些地址的主机路径。本文档建议这三个地址为fec000ffff∷1fec000ffff∷2
fec000ffff∷3这三个地址可以被硬编码到主机中。此外,我们定义了两级功能。下面定义了级别1。级别2在附录A中描述,并且属于将来的研究。
3.级别1一致性级别1一致性(compliance)需要将上述三个地址用于实际的名字解析。它只提供基本功能。尤其是,它不提供分别配置不同子网上的主机的能力,也不为主机提供除DNS服务器授权的域名之外的域名。
3.1.DNS服务器配置级别1功能不需要除了向一个服务器接口分配众所周知的地上中的一个之外的DNS服务器配置。于是主机路径必须被引入到路由域,例如通过配置服务器的路由器上的静态主机路径,并且将其重新分布成域间路由协议。
主机路径必须被引入到站点的路由基础设施。路径引入可以通过任何方法进行,所述方法包含但不限于a)在路由器上运行服务器,并且将其配置成引入主机路径。
b)在服务器上运行路由协议,并且将其配置成引入主机路径。注意,这要求服务器及其路由器必须运行相同的路由协议,至少对于链路上路由器和服务器之间的通信。然而服务器不必完全参与路由协议,它只需要能够引入路径。
c)在相同链路上运行多个服务器,并且将其本地路由器配置成将针对众所周知的地址的主机路径引入到站点的路由基础设施。在相同链路上运行多个服务器提供了对服务器故障的健壮性,同时路由提供了对路由器和其它链路损失的健壮性。然而仍然可能存在某些故障,例如路由器接口的单向故障,没有被这个选项处理。
d)将链路上的路由器修改成周期性请求(使用邻居发现)众所周知的地址,并且根据是否接收应答引入主机路径。
3.2.主机行为主机将其DNS服务器列表设置成与上述三个地址的集合相同。搜索路由未被发现,但象实践中通常所做的那样根据主机的域名来产生搜索路径。如果需要,通过发送查询(通过递归期望(RD)位组),对众所周知的站点本地IPv6目的地址进行反向查找,并且从应答的NS记录中提取域名,可得到每接口域名。
4.安全考虑保证查询到达合法的DNS服务器取决于IPv6路由基础设施的安全性。此问题与保护基本IPv6连接性的问题相同。
当众所周知的地址被用作单播地址时,可以使用IPsec/IKE。
可以按下述方式保护有效负载。如果客户端可以预先配置众所周知的私有或公开密钥,则TSIG[TSIG]可被用于为查询提供的相同分组。如果不是如此,则必须使用[TKEY]协商TSIG密钥。在客户端得到适当密钥之后,可以执行查询。
5.IANA考虑IANA应当分配以下本地站点IPv6地址以用作被分配给DNS服务器的众所周知的地址fec000ffff∷lfec000ffff∷2fec000ffff∷3。
6.致谢IPv6 DNS发现设计组[DDDT]提供了形成本规范基础的建议。Rob Austein和IPv6工作组提供了对本机制的有价值的反馈。AaronSchrader也提供了有帮助的意见。Robert Hinden编辑了这个版本的文档。
7.参考文献[ADDRCONF]Thomson,S.,and T.Narten,″IPv6 Stateless AddressAutoconfiguration″,RFC 2462,December 1998. Hagino,Jun-ichiro itojun,and K.Ettikan,″An analysis of IPv6anycast″,draft-ietf-ipngwg-ipv6-anycast-analysis-00.txt,Work inprogress,July 2001. Thaler,D.,Editor,″Analysis of DNS Server DiscoveryMechanisms for IPv6″,draft-ietf-ipngwg-dns-discovery-analysis-00.txt[DIFFSEC]D.Eastlake,″Storage of Diffie-Hellman Keys in the DomainName System(DNS)″,RFC 2539,March 1999. D.Eastlake,″Domain Name System Security Extensions″,RFC2535,March 1999. B.Aboba,″DHCP Domain Search Option″,draft-aboba-dhc-domsearch-01.txt,December 2000. Esibov,L.,Aboba,B.,and D.Thaler,draft-ietf-dnsext-mdns-03.txt,July 2001. D.Eastlake,″Seeret Key Establishment for DNS(TKEY RR)″RFC 2930,September 2000.
Vixie,P.,Gudmundsson,O.,Eastlake,D.and B.Wellington,″Secret Key Transaction Authentication for DNS(TSIG)″,RFC 2845,May 2000.
8.作者地址Dave ThalerMicrosoftOne Microsoft WayRedmond,CA 98052,USAEmaildthaler@microsoft.comJun-ichiro itojun HAGINOResearch Laboratory,Internet Initiative Japan Inc.
Takebashi Yasuda Bldg.,3-13Kanda Nishilki-cho,Chiyoda-ku,Tokyo 101-0054,JAPANEmailitojun@iijlab.net9.附录A-级别2一致性级别2一致性允许站点管理员对所有名字解析参数具有站点范围的缺省设置,并且可选地进行特定于子网的覆盖。然而,它定义了新的DNS记录类型以保存名字解析配置信息。这样,DNS变成自配置的。
9.1.DNS服务器配置定义了新记录类型CFG,其句法如下<owner><class><ttl>CFG of<attribute name>=<attribute value>″下面描述属性名集合。这个集合可以被其它RFC扩展,但所有新属性必须专用于名字解析。
DNS服务器列表被表示成以下形式的串″dnsservers=<address>[,<address>]*″,其中属性值是文字串格式中一或多个地址(IPv4或IPv6)的逗号分隔列表,适于传递到getaddrinfo中。
使用的域名被表示成以下形式的串″domainname=<domain>″,其中属性值是客户端应当使用的域名。
域后缀搜索路径被表示成以下形式的串″searchpath=<domain>[,<domain>]*″,其中属性值是域后缀的逗号分隔的列表。
mDNS启用标志被表示成以下形式的串″mdnsenabled=<value>″,其中属性值为″true″或″false″。
名字解析信息可以被表示成对整个站点缺省的,也可以根据需要每子网地覆盖。为了表示站点缺省,使用的记录所有者是通配符,即*.local.arpa。每子网覆盖的格式在正面章节描述。
这里描述的每个属性均是可选的,并且可以使用其任意组合,除了每属性只有一个记录的情况应当表示为每所有者(站点或子网)串之外。
*.local.arpa IN CFG″dnsservers=fec001∷l,fec002∷2″*.local.arpa IN CFG″domainname=exampie.com″*.local.arpa IN CFG″searchpath=foo.example.com.bar.example.com,example.com″*.local.arpa IN CFG″mdnsenabled=true″表1配置例子DNS服务器也必须被分配众所周知的本地站点地址中的一个,并且主机路径必须被引入到站点的路由基础设施,例如通过使用章节3.1.描述的方法之一。
9.2.主机行为当接口启动并且主机确定接口上的OtherConfigFlag关闭时,它采取以下动作主机构造针对″.local.arpa.″的CFG记录的DNS查询,其中根据下述在线前缀进行构造1)确定要使用的在线前缀。如果存在,则使用任何在线本地站点前缀。否则,使用任何在线全局前缀。如果不存在其它在线前缀(例如不存在路由器),则使用本地链路前缀以作为最后的手段。
2)通过得到小写文字串表示(没有零压缩),并且用下划线替换所有冒号,将子网前缀转换成一个串。表2给出一些例子。使得这种表示,使得它只使用一个记号,对每个前缀唯一,并且可被人们阅读。
前缀串fec0001∷/64 fec0_0000_0000_0001.local.arpa3ffeffff01234∷/643ffe_ffff_0000_1234.local.arpafe80∷164 fe80_0000_0000_0000.local.arpa表2查询例子一旦形成查询,主机最初使用UDP依次向每个发现地址发出查询,直至接收到应答,或直至到达列表的结束处。为避免当整个站点在例如断电之后重新启动时导致的爆炸式问题,第一个请求应当等待应答3秒,每个后续请求的等待时间均加倍。
由于目的地址可以是任意点播地址,应答会来自不同地址。主机必须抛弃单纯因为源地址不同而接受的应答。有关此问题的更详细讨论参见[ANYCAST]。
当接收到应答时,主机分析CFG记录并操作信息如下。
如果dnsservers属性存在,从值中提取服务器地址列表。如果这种属性不存在(或没有接收到应答),则使用一个特定于实现的缺省列表。例如o实现可以使用空列表(有效禁用名字解析),o主机可以使用只含有任意点播地址、受到下面章节所述的限制的DNS服务器列表,o主机可以只使用mDNS[MDNS],或o主机可以使用上述的某种组合。
通常,使用得到的列表的方式与通过DHCP已得到列表(或无法得到)时的方式相同。
如果domainname属性存在,则从值中提取域名。域名(或不存在)被使用的方式与通过DHCP已得到列表(或无法得到)时的方式相同。
如果searchpath属性存在,则从值中提取搜索路径。如果不存在,主机使用当在使用DHCP的情况下没有得到路径时所使用的搜索路径。
如果mdnsenabled属性存在,则提取数值。如果不存在,则不启用mDNS。
10.完整的版权声明版权所有归Internet协会(2001)。保留所有版权。
本文及其译文可被复制和提供给他人,并且可以全部或部分地准备、复制、出版和发布对本文进行评述、说明或支持实施的派生物,对此没有任何限制,但所有这些复制品和派生物中均需要包含上述版权声明和本段落。然而不得以任何方式修改本文,例如删除版权声明或对Internet协会或其它Internet组织的引用,但为开发Internet标准的目的除外,其中必须遵循Internet标准过程中规定的版权过程,并且也不包括为翻译成除英语以外的文字所需的修改。
上述批准的有限许可是永久的,并且Internet协会或其继任者或授权人将不对此进行重申。
以“既定”方式提供本文和这里包含的信息,并且INTERNET协会和INTERNET工程任务组否认任何保证、明示或暗示,其中包含但不限于任何有关使用这里包含的信息不会侵犯任何权利、或特定目的的可交易性或合理性的隐含保证的保证。
权利要求
1.维护Internet域名数据的方法,包括步骤自动产生连接到Internet的主机节点的IP地址;定义所述主机节点的Internet域名;自动发送更新涉及所述主机节点的域名数据的请求,所述域名数据驻留在第一域名服务器中,所述请求被从所述主机节点发送到所述第一域名服务器,所述请求包含所述自动产生步骤产生的所述IP地址;和响应在所述第一域名服务器上对所述请求的接收自动更新所述第一域名服务器中的域名数据,所述自动更新步骤将所述自动产生步骤产生的所述IP地址与所述主机节点的所述Internet域名关联。
2.如权利要求1所述的方法,还包括步骤根据对所述主机节点产生的、发送到至少一个其它节点的至少一个查询的响应,自动发现所述第一域名服务器的身份。
3.如权利要求2所述的方法,其中自动发现所述第一域名服务器的身份的所述步骤包括自动确定本地域名服务器的身份,所述本地域名服务器连接到所述主机节点相连的局域网;和自动从所述本地域名服务器得到所述第一域名服务器的身份。
4.如权利要求1所述的方法,其中所述第一域名服务器是权威地维护Internet区域内节点的域名记录的主域名服务器,所述区域包含所述主机节点。
5.如权利要求1所述的方法,其中自动产生所述主机节点的IP地址的所述步骤包括步骤自动产生所述主机节点的、在本地链路上可识别的本地链路地址,所述自动产生本地链路地址由所述主机节点执行;自动向连接到所述本地链路的路由器请求信息;响应所述自动请求步骤,在所述主机节点中从所述路由器接收信息,所述信息包含所述主机节点的IP地址的一部分;和根据从所述路由器接收的IP地址的所述部分和所述本地链路地址自动构造所述IP地址,所述自动构造步骤由所述主机节点执行。
6.如权利要求5所述的方法,其中自动产生所述主机节点的IP地址的所述步骤还包括步骤自动验证所述本地链路地址在所述本地链路上的唯一性。
7.如权利要求1所述的方法,其中定义所述主机节点的Internet域名的所述步骤包括自动确定所述Internet域名的区域公共部分,所述区域公共部分对于Internet区域内的多个节点是共同的;定义所述Internet域名的区域唯一部分,所述区域唯一部分对于所述Internet区域内的所述主机节点是唯一的;和组合所述区域唯一部分和所述区域公共部分。
8.如权利要求7所述的方法,其中自动确定所述Internet域名的区域公共部分的所述步骤包括从域名服务器得到所述区域公共部分。
9.如权利要求1所述的方法,其中自动发送更新域名数据的请求的所述步骤包括加密所述请求的至少一部分。
10.如权利要求9所述的方法,其中自动发送更新域名数据的请求的所述步骤包括通过更新域名数据的所述请求加密请求方标识符;并且其中所述自动更新域名数据步骤包括验证所述请求方标识符,和仅在所述请求方标识符成功验证的情况下更新域名数据,所述验证和更新步骤由所述第一域名服务器执行。
11.如权利要求10所述的方法,其中自动发送更新域名数据的请求的所述步骤还包括在所述主机节点上自动产生第一请求方标识符,所述第一请求方标识符对于所述主机节点是唯一的;并且其中验证所述请求方标识符的所述步骤包括(a)如果所述域名是新域名,则产生所述域名的新域名记录,并且通过所述域名记录保存所述第一请求方标识符;和(b)如果所述域名不是新域名,则将第二请求方标识符与第一请求方标识符相比较,并且仅在第一和第二请求方标识符相同时验证请求方标识符,所述第二请求方标识符被保存在与所述域名相关的域名记录中。
12.如权利要求9所述的方法,其中加密所述请求的至少一部分包括使用所述第一域名服务器的公开密钥根据公开/私有密钥加密算法加密所述请求的所述至少一部分。
13.如权利要求1所述的方法,其中自动发送更新域名数据的请求的所述步骤包括根据包括以下项目的集合中的一个产生请求BIND8协议,BIND 9协议,和BIND协议的后续版本。
14.如权利要求1所述的方法,其中在所述第一域名服务器中自动更新数据的所述步骤包括产生所述域名的新数据库记录,所述新记录将所述IP地址与所述域名关联。
15.如权利要求1所述的方法,其中在所述第一域名服务器中自动更新数据的所述步骤包括更新所述域名的现有数据库记录,以便在所述现有记录中将所述IP地址与所述域名关联。
16.用于在连接到Internet的主机节点计算机系统中支持Internet接入的计算机程序产品,所述计算机程序产品包括记录在信号承载介质上的多个处理器可执行指令,其中当被所述主机节点中的至少一个处理器执行时,上述指令导致所述主机节点执行步骤自动产生所述主机节点的IP地址;接收定义所述主机节点的Internet域名的数据;和自动发送更新涉及所述主机节点的域名数据的请求,所述域名数据驻留在第一域名服务器中,所述请求被从所述主机节点发送到所述第一域名服务器,所述请求包含所述自动产生步骤产生的所述IP地址;其中通过将所述自动产生步骤产生的所述IP地址与所述主机节点的所述Internet域名关联,所述第一域名服务器响应所述请求的接收自动更新其域名数据。
17.如权利要求16所述的计算机程序产品,其中上述指令还导致所述主机节点执行步骤根据对所述主机节点产生的、发送到至少一个其它节点的至少一个查询的响应,自动发现所述第一域名服务器的身份。
18.如权利要求17所述的计算机程序产品,其中自动发现所述第一域名服务器的身份的所述步骤包括自动确定本地域名服务器的身份,所述本地域名服务器连接到所述主机节点相连的局域网;和自动从所述本地域名服务器得到所述第一域名服务器的身份。
19.如权利要求16所述的计算机程序产品,其中自动产生所述主机节点的IP地址的所述步骤包括步骤自动产生所述主机节点的、在本地链路上可识别的本地链路地址,所述自动产生本地链路地址由所述主机节点执行;自动向连接到所述本地链路的路由器请求信息;响应所述自动请求步骤,在所述主机节点中从所述路由器接收信息,所述信息包含所述主机节点的IP地址的一部分;和根据从所述路由器接收的IP地址的所述部分和所述本地链路地址自动构造所述IP地址,所述自动构造步骤由所述主机节点执行。
20.如权利要求16所述的计算机程序产品,其中接收定义所述主机节点的Internet域名的数据的所述步骤包括自动从域名服务器得到所述Internet域名的区域公共部分,所述区域公共部分对于Internet区域内的多个节点是共同的;定义所述Internet域名的区域唯一部分,所述区域唯一部分对于所述Internet区域内的所述主机节点是唯一的;和组合所述区域唯一部分和所述区域公共部分。
21.如权利要求16所述的计算机程序产品,其中自动发送更新域名数据的请求的所述步骤包括使用所述第一域名服务器的公开密钥根据公开/私有密钥加密算法加密所述请求的所述至少一部分。
22.如权利要求21所述的计算机程序产品,其中所述自动发送更新域名数据的请求的步骤包括在所述主机节点上自动产生请求方标识符,和通过更新域名数据的所述请求加密所述请求方标识符,其中所述请求方标识符对于所述主机节点是唯一的;和其中所述第一域名服务器自动验证所述请求方标识符,并且仅在所述请求方标识符被成功验证时更新域名数据。
23.如权利要求16所述的计算机程序产品,其中自动发送更新域名数据的请求的所述步骤包括根据包括以下项目的集合中的一个产生请求BIND 8协议,BIND 9协议,和BIND协议的后续版本。
24.连接到Internet并且构成Internet的主机节点的计算机系统,包括Internet接口;至少一个处理器;在所述至少一个处理器上可执行的Internet接入实用程序,将所述主机节点自配置到维护包含所述主机节点的多个节点的域名数据的第一域名服务器,所述Internet接入实用程序自动产生所述主机节点的IP地址,并且自动向所述第一域名服务器发送更新涉及所述主机节点的域名数据的请求,所述域名数据驻留在所述第一域名服务器中,所述请求包含所述IP地址。
25.如权利要求24所述的计算机系统,其中根据对所述主机节点产生的、发送到至少一个其它节点的至少一个查询的响应,所述Internet接入实用程序自动发现所述第一域名服务器的身份。
26.如权利要求25所述的计算机系统,其中Internet接入实用程序通过以下操作自动发现所述第一域名服务器的身份自动确定本地域名服务器的身份,所述本地域名服务器连接到所述主机节点相连的局域网;和自动从所述本地域名服务器得到所述第一域名服务器的身份。
27.如权利要求24所述的计算机系统,其中所述Internet接入实用程序通过以下操作自动产生所述主机节点的IP地址自动产生所述主机节点的、在本地链路上可识别的本地链路地址;自动向连接到所述本地链路的路由器请求信息;响应所述自动请求步骤,在所述主机节点中从所述路由器接收信息,所述信息包含所述主机节点的所述IP地址的一部分;和根据从所述路由器接收的所述IP地址的所述部分和所述本地链路地址自动构造所述IP地址。
28.如权利要求27所述的计算机系统,其中所述Internet接入实用程序通过以下操作产生所述主机节点的IP地址自动验证所述本地链路地址在所述本地链路上的唯一性。
29.如权利要求24所述的计算机系统,其中所述Internet接入实用程序通过以下操作确定所述主机节点的Internet域名自动从域名服务器得到所述Internet域名的区域公共部分,所述区域公共部分对于Internet区域内的多个节点是共同的;定义所述Internet域名的区域唯一部分,所述区域唯一部分对于所述Internet区域内的所述主机节点是唯一的;和组合所述区域唯一部分和所述区域公共部分。
30.如权利要求24所述的计算机系统,其中所述Internet接入实用程序使用所述第一域名服务器的公开密钥根据公开/私有密钥加密算法自动加密更新域名数据的所述请求的至少一部分。
31.如权利要求30所述的计算机系统,其中所述Internet接入实用程序在所述主机节点上自动产生请求方标识符,并且通过更新域名数据的所述请求加密所述请求方标识符,其中所述请求方标识符对于所述主机节点是唯一的,并且其中所述第一域名服务器自动验证所述请求方标识符,并且仅在所述请求方标识符被成功验证时更新域名数据。
32.如权利要求24所述的计算机系统,其中所述Internet接入实用程序根据包括以下项目的集合中的一个产生更新域名数据的所述请求BIND 8协议,BIND 9协议,和BIND协议的后续版本。
33.维护Internet域名数据的设备,包括连接到Internet的多个主机节点;连接到Internet的第一域名服务器,所述第一域名服务器维护Internet区域的域名数据,所述区域包含所述多个主机节点;所述多个主机节点中的每个中的相应Internet接入机构,每个所述Internet接入机构产生其主机节点的一或多个IP地址,并且从其主机节点向所述第一域名服务器自动发送在所述第一域名服务器中更新Internet区域的所述域名数据的请求,该请求包含请求方主机节点产生的IP地址和请求方主机节点的域名;和所述第一域名服务器中的域名数据库机构,所述域名数据库机构通过自动更新所述域名数据来响应从所述多个主机节点中的一个接收的更新所述域名数据的请求,通过将请求中包含的IP地址与请求方主机节点的域名关联来更新所述域名数据。
34.如权利要求33所述的设备,还包括连接到Internet的路由器;和连接到所述路由器的局域网;其中所述多个主机节点中的至少某些主机节点被连接到所述局域网,并且通过所述路由器与至少某些其它Internet节点通信。
35.如权利要求34所述的设备,其中每个所述Internet接入机构通过以下操作产生其主机节点的IP地址自动产生所述主机节点的、在所述局域网上可识别的本地链路地址;自动向所述路由器请求信息;响应所述自动请求步骤,在所述主机节点中从所述路由器接收信息,所述信息包含所述主机节点的所述IP地址的一部分;和根据从所述路由器接收的所述IP地址的所述部分和所述本地链路地址自动构造所述IP地址。
36.如权利要求34所述的设备,还包括连接到所述局域网的本地域名服务器。
37.如权利要求36所述的设备,其中每个所述Internet接入机构通过以下操作自动发现所述第一域名服务器的身份自动确定所述本地域名服务器的身份;和自动从所述本地域名服务器得到所述第一域名服务器的身份。
38.如权利要求33所述的设备,其中每个所述Internet接入实用程序使用所述第一域名服务器的公开密钥根据公开/私有密钥加密算法加密更新域名数据的所述请求的至少一部分。
39.如权利要求38的设备,其中每个所述Internet接入机构通过更新域名数据的所述请求加密请求方标识符;并且其中所述域名数据库机构验证所述请求方标识符,并且仅在所述请求方标识符被成功验证时更新所述域名数据。
40.如权利要求33所述的设备,其中每个所述Internet接入机构根据包括以下项目的集合中的一个产生更新域名数据的所述请求BIND 8协议,BIND 9协议,和BIND协议的后续版本。
41.用于服务Internet域名请求的域名服务器计算机系统,包括到Internet的连接;域名数据库,所述域名数据库包含用于Internet区域的多个域名记录,所述Internet区域包含连接到Internet的多个节点,每个记录将所述区域中相应节点的Internet域名与相应节点的至少一个IP地址关联;和数据库服务器,响应所述域名服务器计算机系统通过Internet接收的数据库请求;其中所述数据库请求包含自动域名更新请求,每个所述自动域名更新请求是来自连接到Internet的主机节点的、更新涉及请求方主机节点的域名数据库数据的请求,每个所述自动域名更新请求包含请求方主机节点产生的IP地址,和请求方主机节点的域名;其中通过自动更新所述域名数据库以便将请求中包含的IP地址与请求方主机节点的域名关联,所述数据库服务器响应所述自动域名更新请求。
42.如权利要求41所述的域名服务器,其中使用所述域名服务器的公开密钥根据公开/私有密钥加密算法加密每个所述自动域名更新请求的至少一部分,并且所述域名服务器还包括使用私有密钥解密每个所述请求的解密机构。
43.如权利要求42所述的域名服务器,其中每个所述自动域名更新请求包含加密的请求方标识符;并且其中所述数据库服务器验证所述请求方标识符,并且仅在所述请求方标识符被成功验证时响应请求而更新所述域名数据库。
44.如权利要求43所述的域名服务器,其中每个所述自动域名更新请求包含请求方主机节点产生的第一请求方标识符,所述第一请求方标识符对于请求方主机节点是唯一的;并且其中所述数据库服务器通过以下操作验证请求方标识符(a)如果请求中的域名是新域名,则在所述域名数据库中产生所述域名的新域名记录,并且通过所述新域名记录保存所述第一请求方标识符;和(b)如果请求中的域名不是新域名,则将第二请求方标识符与所述第一请求方标识符相比较,并且仅在第一和第二请求方标识符相同时验证请求方标识符,所述第二请求方标识符被保存在所述域名数据库中与所述域名相关的域名记录中。
全文摘要
连接到Internet的主机节点自动为其本身产生Internet接口地址,并且自动产生针对Internet域名服务器的请求,以便用自产生的Internet接口地址更新域名服务器数据库。节点最好使用草案标准无状态地址自动配置协议产生本地链路地址,找到路由器,从路由器得到前缀,并且根据前缀和本地链路地址产生全局地址。节点最好自动确定其主域名服务器的身份,并且使用BIND8(或后续)协议发送更新主域名服务器的数据库的请求。可以为安全而加密这种请求,并且这种请求可以包含自产生的身份密钥以进一步改进安全性。
文档编号H04L29/12GK1499396SQ200310101258
公开日2004年5月26日 申请日期2003年10月16日 优先权日2002年10月24日
发明者克里斯托弗·T·格鲁, 克里斯托弗 T 格鲁 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1