您的位置:首页 > 职场人生

IPv6 RIPng 路由协议 推荐

2009-09-09 19:57 211 查看
[align=left]IPv6 RIPng 路由协议[/align][align=left] [/align]

2.1 IPv6 RIPng

[align=left]下一代路由选择信息协议(RIPng,应用于 IPv6)是一种基于 IPv6 网络协议和算法的协议。在国际性网络中,如因特网,拥有很多应用于整个网络的路由选择协议。形成网络的每一个自治系统(AS),都有属于自己的路由选择技术,不同的自治系统,路由选择技术也不同。自治系统内部的路由选择协议称为内部网关协议(IGP)。外部网关协议(EGP)是一种用于在自治系统之间传输路由选择信息的协议。 RIPng 在中等规模的 AS 中被用作 IGP 协议。对于较复杂的网络环境, RIPng 不适用。 [/align][align=left]  RIPng 是一种距离向量(Distance Vector)算法。此协议所用的算法早在 1969 年, ARPANET 就用其来计算路由。然而该协议最初属于 XEROX 网络协议。 PUP 协议通过网关信息协议交换路由选择信息,而 XNS 则采用该协议的更新版本,命名为路由选择信息协议(RIP)实现路由选择信息交换。 Berkeley 的路由协议很大程度上与 RIP 相同,即能够处理 IPV4 及其它地址类型的通用地址格式取代了 XNS 地址,同时路由选择每隔 30 秒更新一次。正是因为这种相似性, RIP 既适用于 XNS 协议,也适用于路由类协议。[/align][align=left] [/align]

2.1.1 RIPng报文格式

[align=left]RIPng是基于UDP的协议,并且使用端口号521发送和接收数据报。其更新组播地址为FF02::9,RIPng报文大致可分为两类:选路信息报文和用于请求信息的报文。它们都使用相同的格式,由固定的首部和路由表项RTE(Route Table Entry)组成,其中路由表项可以有多个。[/align][align=left]首部包括命令字段和版本号字段。同RIP一样,命令字段用来区分报文要实现的各种操作。其中命令号1表示请求部分或全部选路信息,命令号2表示响应,其中包含一个或多个RTE。如下图所示,报文的具体格式。[/align][align=left] [/align]

[align=left]其各个字段的含义:[/align][align=left]Ø Command:定义报文的类型。0x01表示Request报文,0x02表示Response报文。[/align][align=left]Ø Version:RIPng的版本,目前其值只能为0x01。[/align][align=left]Ø RTE(Route Table Entry):路由表项,每项的长度为20字节。[/align][align=left]路由器或主机可以通过发送请求命令向另一个路由器请求选路信息。路由器使用响应命令回答。版本号字段包含了协议的版本号(目前的版本号值为1),接收方会检测该字段,以确定对方运行的RIPng协议本地是否能进行正确的解释。[/align][align=left]报文的剩余部分是一个RTE序列,在RIPng里有两类RTE,分别是[/align][align=left]Ø 下一跳RTE:位于一组具有相同下一跳的“IPv6前缀RTE”的前面,它定义了下一跳的IPv6地址。[/align][align=left]Ø IPv6前缀RTE:位于某个“下一跳RTE”的后面。同一个“下一跳RTE”的后面可以有多个不同的“IPv6前缀RTE”。它描述了RIPng路由表中的目的IPv6地址、路由标记、前缀长度以及度量值。[/align][align=left]IPv6前缀RTE如下图所示。[/align]

[align=left]Ø IPv6 prefix:目的IPv6地址的前缀。[/align][align=left]Ø route tag:路由标记。[/align][align=left]Ø prefix len:IPv6地址的前缀长度。[/align][align=left]Ø metric:路由的度量值。[/align][align=left]IPv6的地址为128bit,因此在RTE中占用16字节。[/align][align=left]路由标记字段是从RIP中保留下来的,其最主要的用途是用来对外部路由做标志,以区分内部路由和外部路由,供外部网关路由协议(如EGP或BGP)使用。该字段也可用于其他目的,只要网络内所有运行RIPng的路由器对其解释是一致的。[/align][align=left]前缀长度字段指明了前缀中有效位的长度,IPv6中使用了前缀长度的概念代替了IPv4中的子网掩码。由于IPv6地址的意义很明确,因此RIPng中不再区分网络路由、子网路由或主机路由。[/align][align=left]路由开销字段指明到目的网络的开销,由于RIPng的最大工作直径为15跳,因此该字段可以为1和15之间的任意值,16即意味着目的地不可达。RIPng中仍然使用固定的度量方式,即该字段的含义只能是跳数,路由器不能对其进行其他的解释。[/align][align=left]RIPng并没有限制报文的大小,RIPng报文所能携带的最大RTE的数目是由物理介质的MTU所决定的,计算公式如下:[/align][align=left]报文长度 = RTE数目×20 + 4[/align][align=left]其中RTE数目的计算公式如下:[/align]

[align=left]RTE数目=INT[(MTU - IPv6首部长度 - UDP首部长度 - RIPng首部长度) / RTE长度][/align][align=left]下一跳RTE格式,如下图所示其格式。[/align]

[align=left]IPv6 next hop address表示下一跳的IPv6地址[/align][align=left]与RIPv2不同的是,RIPng的下一跳字段是由一个单独的RTE指定的。RIPng使用单独的RTE表示下一跳的原因是IPv6的地址多达128bit,若将下一跳字段与目的网络地址放在同一个RTE中,则RTE的大小几乎将会增加一倍,因此RIPng中采取目的网络地址和下一跳分开的方法来减小RTE的长度。在表示下一跳的RTE中,路由标记和前缀长度字段必须为零,而度量字段为0xFF。[/align][align=left]Request报文[/align][align=left]当RIPng路由器启动后或者需要更新部分路由表项时,便会发出Request报文,向邻居请求需要的路由信息。通常情况下以组播方式发送Request报文。[/align][align=left]收到Request报文的RIPng路由器会对其中的RTE进行处理。如果Request报文中只有一项RTE,且IPv6前缀和前缀长度都为0,度量值为16,则表示请求邻居发送全部路由信息,被请求路由器收到后会把当前路由表中的全部路由信息,以Response报文形式发回给请求路由器。如果Request报文中有多项RTE,被请求路由器将对RTE逐项处理,更新每条路由的度量值,最后以Response报文形式返回给请求路由器。下图为采集到的报文。[/align][align=left]如下图所示:[/align]

[align=left] [/align][align=left]Response报文[/align][align=left]Response报文包含本地路由表的信息,一般在下列情况下产生:[/align][align=left]Ø 对某个Request报文进行响应[/align][align=left]Ø 作为更新报文周期性地发出[/align][align=left]Ø 在路由发生变化时触发更新[/align][align=left]收到Response报文的路由器会更新自己的RIPng路由表。为了保证路由的准确性,RIPng路由器会对收到的Response报文进行有效性检查,比如源IPv6地址是否是链路本地地址,端口号是否正确等,没有通过检查的报文会被忽略。下图为采集到的报文。[/align][align=left]如下图所示:[/align]

[align=left] [/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  职场 路由 IPV6 休闲