分享

IPv6 RIPng 路由协议

 海漩涡 2016-06-23
 

2.1      IPv6 RIPng

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

2.1.1 RIPng报文格式

RIPng是基于UDP的协议,并且使用端口号521发送和接收数据报。其更新组播地址为FF02::9RIPng报文大致可分为两类:选路信息报文和用于请求信息的报文。它们都使用相同的格式,由固定的首部和路由表项RTERoute Table Entry)组成,其中路由表项可以有多个。
首部包括命令字段和版本号字段。同RIP一样,命令字段用来区分报文要实现的各种操作。其中命令号1表示请求部分或全部选路信息,命令号2表示响应,其中包含一个或多个RTE。如下图所示,报文的具体格式。
 
其各个字段的含义:
  Command:定义报文的类型。0x01表示Request报文,0x02表示Response报文。
  VersionRIPng的版本,目前其值只能为0x01
  RTERoute Table Entry):路由表项,每项的长度为20字节。
路由器或主机可以通过发送请求命令向另一个路由器请求选路信息。路由器使用响应命令回答。版本号字段包含了协议的版本号(目前的版本号值为1),接收方会检测该字段,以确定对方运行的RIPng协议本地是否能进行正确的解释。
报文的剩余部分是一个RTE序列,在RIPng里有两类RTE,分别是
  下一跳RTE:位于一组具有相同下一跳的“IPv6前缀RTE”的前面,它定义了下一跳的IPv6地址。
  IPv6前缀RTE:位于某个“下一跳RTE”的后面。同一个“下一跳RTE”的后面可以有多个不同的“IPv6前缀RTE”。它描述了RIPng路由表中的目的IPv6地址、路由标记、前缀长度以及度量值。
IPv6前缀RTE如下图所示。
  IPv6 prefix:目的IPv6地址的前缀。
  route tag:路由标记。
  prefix lenIPv6地址的前缀长度。
  metric:路由的度量值。
IPv6的地址为128bit,因此在RTE中占用16字节。
路由标记字段是从RIP中保留下来的,其最主要的用途是用来对外部路由做标志,以区分内部路由和外部路由,供外部网关路由协议(如EGPBGP)使用。该字段也可用于其他目的,只要网络内所有运行RIPng的路由器对其解释是一致的。
前缀长度字段指明了前缀中有效位的长度,IPv6中使用了前缀长度的概念代替了IPv4中的子网掩码。由于IPv6地址的意义很明确,因此RIPng中不再区分网络路由、子网路由或主机路由。
路由开销字段指明到目的网络的开销,由于RIPng的最大工作直径为15跳,因此该字段可以为115之间的任意值,16即意味着目的地不可达。RIPng中仍然使用固定的度量方式,即该字段的含义只能是跳数,路由器不能对其进行其他的解释。
RIPng并没有限制报文的大小,RIPng报文所能携带的最大RTE的数目是由物理介质的MTU所决定的,计算公式如下:
报文长度 = RTE数目×20 + 4
其中RTE数目的计算公式如下:
RTE数目=INT[MTU - IPv6首部长度 - UDP首部长度 - RIPng首部长度) / RTE长度]
下一跳RTE格式,如下图所示其格式。
IPv6 next hop address表示下一跳的IPv6地址
RIPv2不同的是,RIPng的下一跳字段是由一个单独的RTE指定的。RIPng使用单独的RTE表示下一跳的原因是IPv6的地址多达128bit,若将下一跳字段与目的网络地址放在同一个RTE中,则RTE的大小几乎将会增加一倍,因此RIPng中采取目的网络地址和下一跳分开的方法来减小RTE的长度。在表示下一跳的RTE中,路由标记和前缀长度字段必须为零,而度量字段为0xFF
Request报文
RIPng路由器启动后或者需要更新部分路由表项时,便会发出Request报文,向邻居请求需要的路由信息。通常情况下以组播方式发送Request报文。
收到Request报文的RIPng路由器会对其中的RTE进行处理。如果Request报文中只有一项RTE,且IPv6前缀和前缀长度都为0,度量值为16,则表示请求邻居发送全部路由信息,被请求路由器收到后会把当前路由表中的全部路由信息,以Response报文形式发回给请求路由器。如果Request报文中有多项RTE,被请求路由器将对RTE逐项处理,更新每条路由的度量值,最后以Response报文形式返回给请求路由器。下图为采集到的报文。
如下图所示:
 
Response报文
Response报文包含本地路由表的信息,一般在下列情况下产生:
  对某个Request报文进行响应
  作为更新报文周期性地发出
  在路由发生变化时触发更新
收到Response报文的路由器会更新自己的RIPng路由表。为了保证路由的准确性,RIPng路由器会对收到的Response报文进行有效性检查,比如源IPv6地址是否是链路本地地址,端口号是否正确等,没有通过检查的报文会被忽略。下图为采集到的报文。
如下图所示:




2.1.2 RIPng的工作机制

(1) 路由器启动RIP后,便会向相邻的路由器发送请求报文。接着,路由器将不断侦听来自其它路由器的RIP请求消息或响应消息。
(2) 当发出请求的路由器收到响应报文后,路由器将处理响应报文中的路由更新消息并对自己的路由表进行更新,同时向相邻路由器发送触发更新报文,通告路由更新信息。
 (3)相邻路由器收到触发更新报文后,又向其各自的相邻路由器发送触发更新报文。在一连串的触发更新广播后,各路由器都能得到并保持最新的路由信息。
如下所示,当一台路由器加入到RIPng网络中,采用debug ipv6 rip采集到的路由器更新信息。
R2#
*Sep  3 20:52:30.991: RIPng: response received from FE80::C800:4FF:FE2C:1C on Ethernet1/0 for ripng
*Sep  3 20:52:30.991:        src=FE80::C800:4FF:FE2C:1C (Ethernet1/0)
*Sep  3 20:52:30.991:        dst=FF02::9
*Sep  3 20:52:30.991:        sport=521, dport=521, length=52
*Sep  3 20:52:30.995:        command=2, version=1, mbz=0, #rte=2
*Sep  3 20:52:30.995:        tag=0, metric=1, prefix=2001:1:DB2::/64
*Sep  3 20:52:30.995:        tag=0, metric=1, prefix=2001:2:DB2::/64
*Sep  3 20:52:30.995: RIPng: Added neighbor FE80::C800:4FF:FE2C:1C/Ethernet1/0
*Sep  3 20:52:30.999: RIPng: Inserted 2001:1:DB2::/64, nexthop FE80::C800:4FF:FE2C:1C, metric 2, tag 0
*Sep  3 20:52:30.999: RIPng: Inserted 2001:2:DB2::/64, nexthop FE80::C800:4FF:FE2C:1C, metric 2, tag 0
*Sep  3 20:52:31.003: RIPng: Triggered update requested
*Sep  3 20:52:31.003: RIPng: request received from FE80::C800:4FF:FE2C:1C on Ethernet1/0 for ripng
*Sep  3 20:52:31.003:        src=FE80::C800:4FF:FE2C:1C (Ethernet1/0)
*Sep  3 20:52:31.003:        dst=FF02::9
*Sep  3 20:52:31.007:        sport=521, dport=521, length=32
*Sep  3 20:52:31.007:        command=1, version=1, mbz=0, #rte=1
*Sep  3 20:52:31.007:        tag=0, metric=16, prefix=::/0
*Sep  3 20:52:31.007: RIPng: Sending unicast update to FE80::C800:4FF:FE2C:1C for ripng
*Sep  3 20:52:31.011:        src=FE80::C800:3FF:FE04:1C
*Sep  3 20:52:31.011:        dst=FE80::C800:4FF:FE2C:1C (Ethernet1/0)
*Sep  3 20:52:31.011:        sport=521, dport=521, length=132
*Sep  3 20:52:31.011:        command=2, version=1, mbz=0, #rte=6
*Sep  3 20:52:31.015:        tag=0, metric=1, prefix=2001:2:DB2::/64
*Sep  3 20:52:31.015:        tag=0, metric=1, prefix=2001:3:DB2::/64
*Sep  3 20:52:31.015:        tag=0, metric=1, prefix=2001:4:DB2::/64
*Sep  3 20:52:31.015:        tag=0, metric=2, prefix=2001:5:DB2::/64
*Sep  3 20:52:31.019:        tag=0, metric=2, prefix=2001:6:DB2::/64
*Sep  3 20:52:31.019:        tag=0, metric=1, prefix=2001:7:DB2::/64
*Sep  3 20:52:32.003: RIPng: generating triggered update for ripng
*Sep  3 20:52:32.003: RIPng: Suppressed null multicast update on Serial2/0 for ripng
*Sep  3 20:52:32.007: RIPng: Suppressed null multicast update on Ethernet1/1 for ripng
*Sep  3 20:52:32.007: RIPng: Suppressed null multicast update on Ethernet1/0 for ripng
*Sep  3 20:52:32.007: RIPng: Suppressed null multicast update on FastEthernet0/0 for ripng
*Sep  3 20:52:35.279: RIPng: response received from FE80::C800:2FF:FE8C:1C on Ethernet1/1 for ripng
*Sep  3 20:52:35.279:        src=FE80::C800:2FF:FE8C:1C (Ethernet1/1)
*Sep  3 20:52:35.283:        dst=FF02::9
*Sep  3 20:52:35.283:        sport=521, dport=521, length=52
*Sep  3 20:52:35.283:        command=2, version=1, mbz=0, #rte=2
*Sep  3 20:52:35.283:        tag=0, metric=1, prefix=2001:3:DB2::/64
*Sep  3 20:52:35.283:        tag=0, metric=1, prefix=2001:5:DB2::/64
*Sep  3 20:52:40.715: RIPng: Sending multicast update on Serial2/0 for ripng
*Sep  3 20:52:40.715:        src=FE80::C800:3FF:FE04:0
*Sep  3 20:52:40.719:        dst=FF02::9 (Serial2/0)
*Sep  3 20:52:40.719:        sport=521, dport=521, length=132
*Sep  3 20:52:40.719:        command=2, version=1, mbz=0, #rte=6
*Sep  3 20:52:40.719:        tag=0, metric=1, prefix=2001:2:DB2::/64
*Sep  3 20:52:40.719:        tag=0, metric=1, prefix=2001:3:DB2::/64
*Sep  3 20:52:40.723:        tag=0, metric=1, prefix=2001:4:DB2::/64
*Sep  3 20:52:40.723:        tag=0, metric=1, prefix=2001:7:DB2::/64
*Sep  3 20:52:40.723:        tag=0, metric=2, prefix=2001:5:DB2::/64
*Sep  3 20:52:40.723:        tag=0, metric=2, prefix=2001:1:DB2::/64
*Sep  3 20:52:40.727: RIPng: Sending multicast update on Ethernet1/1 for ripng
*Sep  3 20:52:40.727:        src=FE80::C800:3FF:FE04:1D
*Sep  3 20:52:40.731:        dst=FF02::9 (Ethernet1/1)
*Sep  3 20:52:40.731:        sport=521, dport=521, length=132
*Sep  3 20:52:40.731:        command=2, version=1, mbz=0, #rte=6
*Sep  3 20:52:40.731:        tag=0, metric=1, prefix=2001:2:DB2::/64
*Sep  3 20:52:40.731:        tag=0, metric=1, prefix=2001:3:DB2::/64
*Sep  3 20:52:40.735:        tag=0, metric=1, prefix=2001:4:DB2::/64
*Sep  3 20:52:40.735:        tag=0, metric=1, prefix=2001:7:DB2::/64
*Sep  3 20:52:40.735:        tag=0, metric=2, prefix=2001:6:DB2::/64
*Sep  3 20:52:40.735:        tag=0, metric=2, prefix=2001:1:DB2::/64
*Sep  3 20:52:40.739: RIPng: Sending multicast update on Ethernet1/0 for ripng
*Sep  3 20:52:40.739:        src=FE80::C800:3FF:FE04:1C
*Sep  3 20:52:40.739:        dst=FF02::9 (Ethernet1/0)
*Sep  3 20:52:40.743:        sport=521, dport=521, length=132
*Sep  3 20:52:40.743:        command=2, version=1, mbz=0, #rte=6
*Sep  3 20:52:40.743:        tag=0, metric=1, prefix=2001:2:DB2::/64
*Sep  3 20:52:40.743:        tag=0, metric=1, prefix=2001:3:DB2::/64
*Sep  3 20:52:40.747:        tag=0, metric=1, prefix=2001:4:DB2::/64
*Sep  3 20:52:40.747:        tag=0, metric=1, prefix=2001:7:DB2::/64
*Sep  3 20:52:40.747:        tag=0, metric=2, prefix=2001:5:DB2::/64
*Sep  3 20:52:40.747:        tag=0, metric=2, prefix=2001:6:DB2::/64
*Sep  3 20:52:40.751: RIPng: Sending multicast update on FastEthernet0/0 for ripng
*Sep  3 20:52:40.751:        src=FE80::C800:3FF:FE04:0
*Sep  3 20:52:40.751:        dst=FF02::9 (FastEthernet0/0)
*Sep  3 20:52:40.755:        sport=521, dport=521, length=152
*Sep  3 20:52:40.755:        command=2, version=1, mbz=0, #rte=7
*Sep  3 20:52:40.755:        tag=0, metric=1, prefix=2001:2:DB2::/64
*Sep  3 20:52:40.755:        tag=0, metric=1, prefix=2001:3:DB2::/64
*Sep  3 20:52:40.755:        tag=0, metric=1, prefix=2001:4:DB2::/64
*Sep  3 20:52:40.759:        tag=0, metric=1, prefix=2001:7:DB2::/64
*Sep  3 20:52:40.759:        tag=0, metric=2, prefix=2001:5:DB2::/64
*Sep  3 20:52:40.759:        tag=0, metric=2, prefix=2001:6:DB2::/64
*Sep  3 20:52:40.759:        tag=0, metric=2, prefix=2001:1:DB2::/64
*Sep  3 20:52:49.323: RIPng: response received from FE80::C800:6FF:FE24:0 on Serial2/0 for ripng
*Sep  3 20:52:49.323:        src=FE80::C800:6FF:FE24:0 (Serial2/0)
*Sep  3 20:52:49.327:        dst=FF02::9
*Sep  3 20:52:49.327:        sport=521, dport=521, length=52
*Sep  3 20:52:49.327:        command=2, version=1, mbz=0, #rte=2
*Sep  3 20:52:49.327:        tag=0, metric=1, prefix=2001:4:DB2::/64
*Sep  3 20:52:49.327:        tag=0, metric=1, prefix=2001:6:DB2::/64
*Sep  3 20:52:57.711: RIPng: response received from FE80::C800:4FF:FE2C:1C on Ethernet1/0 for ripng
*Sep  3 20:52:57.711:        src=FE80::C800:4FF:FE2C:1C (Ethernet1/0)
*Sep  3 20:52:57.715:        dst=FF02::9
*Sep  3 20:52:57.715:        sport=521, dport=521, length=52
*Sep  3 20:52:57.715:        command=2, version=1, mbz=0, #rte=2
*Sep  3 20:52:57.715:        tag=0, metric=1, prefix=2001:1:DB2::/64
*Sep  3 20:52:57.715:        tag=0, metric=1, prefix=2001:2:DB2::/64
 
根据上面所示,当路由收到网络中的一台路由器请求时,在回复更新时会采用单播的方式,主要是为节省网络资源。当收到了新加入路由器的路由条目后,会更新自己的路由表,并以触发更新的模式向路由器的其它接口进行组播其路由表。
RIPng把参与通信的机器分为主动和被动两种方式。主动路由器向其他路由器通告路由,而被动路由器接收通告并更新其路由,被动路由器自己并不通告路由。只有路由器以主动方式使用RIPng,主机只能使用被动方式,因为主机并不了解路由信息。
运行RIPng的路由器维持一个到所有可能目的网络的路由表,路由器周期性地(RFC推荐为30s)向邻居节点发送该路由器的路由表,接收方通过接收邻居路由器的周期性通告更新自己的路由表。这种周期性的路由信息的交换使得每个路由器形成对网络拓扑结构的局部的认识。RIPng使用到达目的站点所经过的链路数,即跳数来度量路由花费,同时RFC规定RIPng的工作范围为15跳,数值16表示无穷大,即意味着路由不可达。
路由器通常不会主动发出请求报文来进行路由请求,路由请求通常只是在路由器刚启动或是路由器正在寻找路由信息时才会发出请求报文以获得响应。
路由器在查询响应、周期更新、触发更新三种情况下会收到响应报文。路由器根据响应报文判断是否对本地路由表进行更新。由于响应报文可能对本地路由表进行改动,因此对报文的来源必须进行严格的检查,以确认报文的合法性。
基于距离矢量算法的路由协议会产生慢收敛和无限计数问题,这样就引发了路由的不一致。RIPng使用水平分割技术、毒性逆转技术、触发更新技术来解决这些问题,但是这些技术的引入,同时又带来了另一些问题,如采用触发更新技术后,如果不对产生的报文进行合理的控制,很容易产生广播风暴。
路由器周期性的报文广播和触发更新给网络造成很多额外的负载,为减少路由信息的数量,RIPng可以采用多播技术发送更新报文,同时利用一个小的随机时延对触发更新报文进行抑制。
定时器在RIPng中起着非常重要的作用,RIPng使用定时器来实现路由表的更新、报文的发送。周期性的报文广播是由定时器实现的,另外为防止路由表长时间未更新而失效,每个路由表项有两个定时器与之相联系,超时的路由表项最终将会被删除,以防止路由器广播和使用已经失效的路由。RIPng中使用的定时器主要有以下三个:
  更新定时器:此定时器被设置成25s35s之间的任一随机数。这样设置的目的是为了避免网络上所有路由器以相同的定时发送更新报文,利用随机间隔可以均衡通信量,从而减少路由器之间发生冲突的可能性。
  期满定时器:路由器只要收到通往特定信宿路由,就对通往该信宿的期满定时器初始化。期满定时器被设定为180s,如果一条路由在期满定时器超时前未得到相关报文的更新,则该条路由不再有效,但仍保留在路由表中,以便通知其他路由器这条路由已经失效。
  垃圾收集定时器:路由器对无效路由打上尺度为无穷大的无效标记并将垃圾收集定时器初始化。此时,定时器被设置为120s,在这段时间内这些路由仍然会被路由器周期性地广播,这样相邻路由器就能迅速从路由表中删除该路由。
 
如下图所示:
 

2.1.3 RIPngRIPv1RIPv2区别

通过以上小节的学习,RIPng的目标并不是创造一个全新的协议,而是对RIP进行必要的改造以使其适应IPv6下的选路要求,因此RIPng的基本工作原理同RIP是一样的,但其与RIP也存在很区别,具体区别如下:
1)报文结构不同
n  地址版本不同
2  RIPv1RIPv2是基于IPv4的,地址域只有32bit
2  RIPng基于IPv6,使用的所有地址均为128bit
n  子网掩码和前缀长度不同
2  RIPv1被设计成用于无子网的网络,因此没有子网掩码的概念,这就决定了RIPv1不能用于传播变长的子网地址或用于CIDR的无类型地址。
2  RIPv2增加了对子网选路的支持,因此使用子网掩码区分网络路由和子网路由。
2  IPv6的地址前缀有明确的含义,因此RIPng中不再有子网掩码的概念,取而代之的是前缀长度。同样也是由于使用了IPv6地址,RIPng中也没有必要再区分网络路由、子网路由和主机路由。
n  协议的使用范围不同
2  RIPv1RIPv2的使用范围被设计成不只局限于TCP/IP协议簇,还能适应其他网络协议簇的规定,因此报文的路由表项中包含有网络协议簇字段,但实际的实现程序很少被用于其他非IP的网络,因此RIPng中去掉了对这一功能的支持。
n  对下一跳的表示不同
2  RIPv1中没有下一跳的信息,接收端路由器把报文的源IP地址作为到目的网络路由的下一跳。
2  RIPv2中明确包含了下一跳信息,便于选择最优路由和防止出现选路环路及慢收敛。
2  RIPv2不同,为防止RTE过长,同时也是为了提高路由信息的传输效率,RIPng中的下一跳字段是作为一个单独的RTE存在的。
n  报文长度不同
2  RIPv1RIPv2中对报文的长度均有限制,规定每个报文最多只能携带25RTE
2  RIPng对报文长度、RTE的数目都不作规定,报文的长度是由介质的MTU决定的。RIPng对报文长度的处理,提高了网络对路由信息的传输效率。
n  报文的发送方式不同
2  RIPv1使用广播来发送路由信息,不仅路由器会接收到分组,同一局域网内的所有主机也会接收到分组,这样做是不必要的,也是不安全的。
2  RIPv2既可以使用广播也可以使用多播发送报文,这样在支持多播的网络中就可以使用多播来发送报文,大大降低了网络中传播的路由信息的数量。
2  RIPng使用组播方式周期性地发送路由信息。
2)安全认证不同
n  RIPv1报文中并不包含验证信息,因此也是不安全的,任何通过UDP520端口发送分组的主机,都会被邻机当作一个路由器,从而很容易造成路由器欺骗。
n  RIPv2设计了验证报文来增强安全性,进行路由交换的路由器之间必须通过验证才能接收彼此的路由信息,但是RIPv2的安全性还是很不充分的。
n  RIPng自身不提供认证功能,而是通过使用IPv6提供的安全机制来保证自身报文的合法性。
3)与网络层协议的兼容性不同
n  RIP不仅能在IP网络中运行,也能在IPX网络中运行;
n  RIPng只能在IPv6网络中运行。




2.1.4 RIPng配置实例

下图为本实例的拓扑结构图:
其具体配置如下:
路由器R1配置
 
ipv6 unicast-routing
!
interface FastEthernet0/0
 no ip address
 duplex half
 ipv6 address 2001:1:DB2::1/64
 ipv6 enable
 ipv6 rip ripng enable
!
interface Ethernet1/0
 no ip address
 duplex half
 ipv6 address 2001:2:DB2::1/64
 ipv6 enable
 ipv6 rip ripng enable
!
ipv6 router rip ripng
 
路由器R2配置
ipv6 unicast-routing
interface FastEthernet0/0
 no ip address
 duplex half
 ipv6 address 2001:7:DB2::1/64
 ipv6 enable
 ipv6 rip ripng enable
!
interface Ethernet1/0
 no ip address
 duplex half
 ipv6 address 2001:2:DB2::2/64
 ipv6 enable
 ipv6 rip ripng enable
!
interface Ethernet1/1
 no ip address
 duplex half
 ipv6 address 2001:3:DB2::1/64
 ipv6 enable
 ipv6 rip ripng enable
!
interface Serial2/0
 no ip address
 ipv6 address 2001:4:DB2::1/64
 ipv6 enable
 ipv6 rip ripng enable
 serial restart-delay 0
!
ipv6 router rip ripng
 
路由器R3配置
ipv6 unicast-routing
interface FastEthernet0/0
 no ip address
 duplex half
 ipv6 address 2001:5:DB2::1/64
 ipv6 enable
 ipv6 rip ripng enable
!
interface Ethernet1/0
 no ip address
 duplex half
 ipv6 address 2001:3:DB2::2/64
 ipv6 enable
 ipv6 rip ripng enable
!
ipv6 router rip ripng
 
路由器R4配置
 
ipv6 unicast-routing
 
interface Loopback0
 no ip address
 ipv6 address 2001:6:DB2::1/64
 ipv6 enable
 ipv6 rip ripng enable
!
interface Serial2/0
 no ip address
 ipv6 address 2001:4:DB2::2/64
 ipv6 enable
 ipv6 rip ripng enable
 serial restart-delay 0
!
!
ipv6 router rip ripng
 
配置完成后,在路由器R4上使用show ipv6 route命令查看路由表,如下所示。
R4#sh ipv6 route
IPv6 Routing Table - 11 entries
Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP
       U - Per-user Static route
       I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary
       O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2
       ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2
R   2001:1:DB2::/64 [120/3]
     via FE80::C800:3FF:FE04:0, Serial2/0
R   2001:2:DB2::/64 [120/2]
     via FE80::C800:3FF:FE04:0, Serial2/0
R   2001:3:DB2::/64 [120/2]
     via FE80::C800:3FF:FE04:0, Serial2/0
C   2001:4:DB2::/64 [0/0]
     via ::, Serial2/0
L   2001:4:DB2::2/128 [0/0]
     via ::, Serial2/0
R   2001:5:DB2::/64 [120/3]
     via FE80::C800:3FF:FE04:0, Serial2/0
C   2001:6:DB2::/64 [0/0]
     via ::, Loopback0
L   2001:6:DB2::1/128 [0/0]
     via ::, Loopback0
R   2001:7:DB2::/64 [120/2]
     via FE80::C800:3FF:FE04:0, Serial2/0
L   FE80::/10 [0/0]
     via ::, Null0
L   FF00::/8 [0/0]
     via ::, Null0
 
使用命令show ipv6 rip查看RIPng协议的详细信息,如下所示:
R4#sh ipv6 rip
RIP process "ripng", port 521, multicast-group FF02::9, pid 187
     Administrative distance is 120. Maximum paths is 16
     Updates every 30 seconds, expire after 180
     Holddown lasts 0 seconds, garbage collect after 120
     Split horizon is on; poison reverse is off
     Default routes are not generated
     Periodic updates 101, trigger updates 4
  Interfaces:
    Loopback0
    Serial2/0
  Redistribution:
    None
 
使用命令show ipv6 rip database查看RIPng的本地数据库,如下所示:
R4#sh ipv6 rip database
RIP process "ripng", local RIB
 2001:1:DB2::/64, metric 3, installed
     Serial2/0/FE80::C800:3FF:FE04:0, expires in 167 secs
 2001:2:DB2::/64, metric 2, installed
     Serial2/0/FE80::C800:3FF:FE04:0, expires in 167 secs
 2001:3:DB2::/64, metric 2, installed
     Serial2/0/FE80::C800:3FF:FE04:0, expires in 167 secs
 2001:4:DB2::/64, metric 2
     Serial2/0/FE80::C800:3FF:FE04:0, expires in 167 secs
 2001:5:DB2::/64, metric 3, installed
     Serial2/0/FE80::C800:3FF:FE04:0, expires in 167 secs
 2001:7:DB2::/64, metric 2, installed
     Serial2/0/FE80::C800:3FF:FE04:0, expires in 167 secs
 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多