首先考虑全球分布最广泛的网络—电话系统的情形。如果每次买一个新电话,都要进行配置,以便能够使用指派到家中的电话号码,那么使用这样的网络将很不方便;如果每次把一个分机从房间移动到另一个房间时,都要重新进行配置,那么使用这样的网络也将非常不 方便。很多情况下, IPv4 网络也要求如上所述的人工配置:安装一台新计算机或其他连接设备都要求有人来手工配置地址和其他网络信息。过去十年内情况有所改进,但 IP 配置仍然是个问题。
IPng 所陈述的最重要目标之一是支持“即插即用”—不需要任何人工干预,就有可能将一个节点插入 IPv6 网络并在网络中启动。此目标与计算工业的趋势一致: 1983 年,个人计算机的买主必须安装操作系统及所有需要的应用软件;1998 年,大多数新系统都预先安装了操作系统及应用软件。新系统在网络就绪方面的变化也显而易见。1983 年,如果要连接到网络,用户必须购买并安装网卡或 MODEM,然后对特定的应用进行配置; 1998 年,大多数系统都包括了已配置好、可以马上使用的内置 MODEM 及(或)网卡。
要使网络计算像使用电话一样方便,还需要改进用户友好性。在以太网网卡上设置硬件开关对工程师和科学家们可能很容易,但机械师、医生、旅行社以及其他非技术专业人士却不能忍受为使其系统运行或连接到 Internet 而浪费几小时或几天。
IPv6 使用两种不同机制来支持即插即用网络连接。第一种机制的示例是启动协议(BOOTP ),后来又设计了动态主机配置协议( DHCP ),允许 IP 节点从特殊(BOOTP 服务器或 DHCP 服务器获取配置信息。但是这些协议支持所谓的“状态自动配置”,即服务器必须保持每个节点的状态信息,并管理这些保存的信息。不论对于为许多个人用户服务的 ISP,还是雇员经常在各部门间流动的大型机构, DHCP 都是 IPv4 网络配置的重要工具。
DHCP 的问题在于,作为状态自动配置协议,它要求安装和管理 DHCP 服务器,并要求接受 DHCP 服务的每个新节点都必须在服务器上进行配置。很简单, DHCP 服务器保存着它要提供配置信息的节点列表,如果节点不在列表中,该节点就无法获得 IP 地址。DHCP 服务器还保持着使用该服务器的节点的状态,因为该服务器必须了解每个 IP 地址使用的时间,以及何时 IP 地址可以进行重新分配。
状态自动配置的问题在于,用户必须保持和管理特殊的自动配置服务器以便管理所有“状态”,即所容许的连接及当前连接的相关信息。对于有足够资源来建立和保持配置服务器的机构,该系统可以接受;但是对于没有这些资源的小型机构,工作情形较差。至少对于大 多数个人或小型机构,无状态自动配置是较好或较容易的解决方案。这种机制允许个人节点能够确定自己的 IP 配置,而不必向服务器显式请求各节点的信息。
实际上,至少在理论上且进行了某些假定的情况下,无状态自动配置规程相对容易实现。首先,如果使用 IEEE EUI-64 链路层地址(见第 6 章),用户就可以确信自己的主机 I D 是唯一的。因此,节点要完成的工作是确定自己的链路层地址并计算出 EUI-64 地址,然后确定自己的 IPv6 网络地址。向最近的路由器询问是确定网络地址的一种方法,这就是 IPv6 中无状态自动配置的实现方式(见下一节)。
最后,根据 IPv6 中的定义,状态自动配置和无状态自动配置可以共存并可一起操作。后续章节中将涉及正在制订中的 DHCP 的更新版本,称为 DHCPv6。两种类型自动配置方法的合作比单独使用其中一种更易于实现互联网络连接的即插即用。例如,使用无状态自动配置,节点可以很快确定自己的 IP 地址,而且一旦获得此信息,它就可以与 DHCP 服务器交互以获得所要求的其他网络配置值。实际上, DHCPv6 很可能要依靠 IPv6 无状态自动配置来简化某些情况下的状态配置。
如果使用无状态自动配置要简单很多,那么为什么还要使用状态自动配置呢?此问题的答案取决于构造网络的机构的要求。无状态自动配置对得到 IP 地址的节点提供最低程度的监视。任一节点可以连接到链路,通过路由器向能实现无状态自动配置的节点发出的通告来获知网络和子网信息,并构造有效的链路地址。但是,如果有 DHCP 服务器的支持,机构可以更紧密地控制网络可配置的节点。只有由网络管理员明确授权的节点才能通过 DHCP 服务器来配置。
RFC 1971(IPv6 无状态地址自动配置)中描述了 IPv6 的无状态自动配置。该 R F C 还在更新,大多数修改是对原规范的澄清或细化,例如对潜在的路由器否认服务攻击的处理方法等。无状态自动配置过程要求节点采用如下步骤:首先,进行自动配置的节点必须确定自己的链路本地地址(如 IEEE EUI-64 地址);然后,必须验证该链路本地地址在链路上的唯一性;最后,节点必须确定需要配置的信息。该信息可能是节点的 IP 地址,或者是其他配置信息,或者两者皆有。如果需要 IP 地址,节点必须确定是使用无状态自动配置过程还是使用状态自动配置过程来获得。
无状态自动配置要求本地链路支持组播,而且网络接口能够发送和接收组播。完成自动配置的节点首先将其链路本地地址(如 IEEE EUI-64 地址)追加到链路本地前缀(在第 6 章中讨论,见图 6 - 1 )之后。这样,节点就可以开始工作:它可以使用 IPv6 与同一网络链路上的其他节点通信,只要同一链路没有其他节点使用与之相同的 EUI - 6 4 地址,该节点的 IPv6 地址就是可用的。
但是,在使用该地址之前,节点必须先证实起始地址在本地链路是唯一的,即,节点必须确定同一链路上没有其他节点使用与之相同的 EUI-64 地址。大多数情况下不会出现这个问题,大多数使用网络接口卡(如以太网适配器或令牌环适配器)的节点都有唯一的 4 8 位 MAC 地址;而对于通过点到点链路连接的节点,链路上只有一个端节点。但是,其他网络媒体可能没有唯一的 MAC 地址,某些网络接口卡也可能错误地使用了它们无权使用的 MAC 地址。此时,节点必须向它打算使用的链路本地地址发送邻居请求报文。如果得到响应,试图自动配置的节点就得知该地址已为其他节点所使用,它必须以其他方式来配置。
如果没有路由器为网络上的节点服务,即,如果本地网络孤立于其他网络,则节点必须寻找配置服务器来完成其配置;否则,节点必须侦听路由器通告报文。这些报文周期性地发往所有主机的组播地址(见第 6 章),以指明诸如网络地址和子网地址等配置信息。节点可以等待路由器的通告,也可以通过发送组播请求给所有路由器的组播地址来请求路由器发送通告。一旦收到路由器的响应,节点就可以使用响应的信息来完成自动配置。
1985 年,BOOTP 首先在 RFC 951(自举协议)中描述,该协议的最初目的是允许工作站向本地服务器询问他们自己的 IP 地址、某服务器主机的地址以及自举执行文件的名称。对于某些应用,如无盘工作站从网络服务器上装入全部软件的情况, BOOTP 的功能足够了;但是对于很多其他应用,如将个人机连接到 IPv4 网络,BOOTP 的功能不足。其问题在于除 BOOTP 提供的信息之外, PC 的 TCP/IP 网络软件需要更多的信息,如主机名字、域名、子网掩码及 DNS 服务器地址等。
到 1993 年,描述 DHCP 的 RFC 1531(动态主机配置协议)得以发布。以 BOOTP 的报文结构为基础,DHCP 增加了一些机制,用于传送将主机连接到 IPv4 所需要的全部 IP 配置信息。DHCP 的功能与 IPv4 网络地址相对不足有关。例如,得到一个 C 类网络地址的机构最多有 254 个地址来分配给用户。对于某些应用,这些地址很充足,例如一个花店中,连网的计算机不太可能超过几十台。但是,对于有数百名雇员的企业,尤其如果连接到网络的计算机超过 250 台时,就可能产生地址分配的问题。
DHCP 增加了在有限时期内向节点分配地址的能力。这意味着,对于较大型网络,如果同时连接的节点数不超过 254,C 类网络是足够的。ISP 很愿意使用 DHCP,因为这样他们所服务的用户数不再受限于他们控制的地址数,只要在任一时刻只有一部分用户连接到该 IP,其他用户就不会浪费额外的未使用的 IP 地址。
当然,与处理 IP 地址的其他协议相同, DHCP 必须升级以支持 IPv6 地址。DHCPv6 正在制订中。很显然,它不仅是为支持更长地址而进行的表面更新,由于 IPv6 中增加了无状态自动配置,对于 DHCPv6,使用这个新能力将很有好处。
使用无状态自动配置,节点至少自动拥有了本地连接能力, DHCP 也不再是提供一些其他基本配置参数所必需的方法。默认路由器不是配置的一部分,因为通过侦听路由器通告,任何节点都可以自行确定自己的默认路由器。
新的 DHCP 能支持各种新特性,例如:
配置动态更新 DNS 的能力,可以反映网络当前状态。
地址非难,即地址分配即将失效的状态,该机制可用于对网络进行动态重新编号(见下节)。
一直到近期,几乎所有的网络设备都是在原地静止的。计算机,甚至个人计算机,都很大且不经常移动。近几年来,不仅是笔记本计算机,而且包括手提计算机、个人数字助手( PDA )都显著增加,甚至蜂窝电话和寻呼机也都可以支持 IP。目前的问题在于,不论设备平常是通过有线媒体或无线媒体连接到网络,当设备移动时,如果不论移动设备实际上在何处,其他设备都能够以同一个 IP 地址来访问该设备,这将是很方便的。
要实现这一点却非常困难,因为节点移动时,可能必须连接到使用不同 IP 地址的不同网络。移动 IP 在 RFC 2002(IP 移动性支持)中描述。目前,此 RFC 还在进行修改和更新以支持 IPv6。任何情况下,移动 IP 都应支持节点从一个网络向另一个网络移动,即“宏观移动性”,而不仅仅是支持“微观移动性”,例如像蜂窝电话一样,从一个蜂窝向另一个蜂窝切换无线连接。
正如 RFC 2002 中所述,移动 IP 使用移动代理的概念。为移动主机指派一个一直可达的主地址。当主机位于正常驻地时,它使用自己的主地址连接到本地网络,所有的协议都按正常方式操作;而移动代理通常是常规路由器,它作为外地代理,在移动主机离开其驻地网络时像一种邮件领取部一样使用。移动代理也可以作为主代理,处理传送给移动主机的信息。
当移动节点离开驻地时,可以按照下列方法使用移动 IP (如 IPv4 所述)来连接到网络:
如果外地网络上的移动节点要发送包,则无需进行特殊操作,这些主机将继续使用其主地址为包的源地址,对这些包也无需进行任何特殊处理。
相对而言,移动 IPv6 将更易于实现和使用。首先,在 IPv6 中,在无状态自动配置或使用 DHCPv6 的状态自动配置的支持下,获得关照地址的过程更加简单。正因如此, IPv6 中没有外地代理关照地址,而只有配置的关照地址。其次,应该有可能使用 IPv6 的各种特性来改进移动节点的操作。例如,主代理可以使用邻居发现的代理通告来截获发给移动节点的 IPv6 包。对于通过目的地选项来将地址更新与地址相捆绑的路由优化,节点也应该有基本的支持。
移动 IPv6 中包含的另一个新特性是:即使在移动节点的常规主代理不可达的情况下,移动节点也有能力和驻地网络建立联系。移动节点可以向驻地网络中为主代理保留的地址发送任意点播包,结果任何可用的主代理将把自己的选项通知移动节点。
-by 乐趣云