09-RIPng配置
本章节下载: 09-RIPng配置 (413.41 KB)
RIPng(RIP next generation,下一代RIP协议)是对原来的IPv4网络中RIP-2协议的扩展。大多数RIP的概念都可以用于RIPng。
为了在IPv6网络中应用,RIPng对原有的RIP协议进行了如下修改:
· UDP端口号:使用UDP的521端口发送和接收路由信息。
· 组播地址:使用FF02::9作为链路本地范围内的RIPng路由器组播地址。
· 前缀长度:目的地址使用128比特的前缀长度。
· 下一跳地址:使用128比特的IPv6地址。
· 源地址:使用链路本地地址FE80::/10作为源地址发送RIPng路由信息更新报文。
RIPng协议是基于距离矢量(Distance-Vector)算法的协议。它通过UDP报文交换路由信息,使用的端口号为521。
RIPng使用跳数来衡量到达目的地址的距离(也称为度量值或开销)。在RIPng中,从一个路由器到其直连网络的跳数为0,通过与其相连的路由器到达另一个网络的跳数为1,其余以此类推。当跳数大于或等于16时,目的网络或主机就被定义为不可达。
RIPng每30秒发送一次路由更新报文。如果在180秒内没有收到网络邻居的路由更新报文,RIPng将从邻居学到的所有路由标识为不可达。如果再过120秒内仍没有收到邻居的路由更新报文,RIPng将从路由表中删除这些路由。
为了提高性能并避免形成路由环路,RIPng既支持水平分割也支持毒性逆转。此外,RIPng还可以从其它的路由协议引入路由。
每个运行RIPng的路由器都管理一个路由数据库,该路由数据库包含了到所有可达目的地的路由项,这些路由项包含下列信息:
· 目的地址:主机或网络的IPv6地址。
· 下一跳地址:为到达目的地,需要经过的相邻路由器的接口IPv6地址。
· 出接口:转发IPv6报文通过的出接口。
· 度量值:本路由器到达目的地的开销。
· 路由时间:从路由项最后一次被更新到现在所经过的时间,路由项每次被更新时,路由时间重置为0。
· 路由标记(Route Tag):用于标识外部路由,以便在路由策略中根据Tag对路由进行灵活的控制。关于路由策略的详细信息,请参见“三层技术-IP路由配置指导”中的“路由策略”。
RIPng有两种报文:Request报文和Response报文。
当RIPng路由器启动后或者需要更新部分路由表项时,便会发出Request报文,向邻居请求需要的路由信息。通常情况下以组播方式发送Request报文。
Response报文包含本地路由表的信息,一般在下列情况下产生:
· 对某个Request报文进行响应
· 作为更新报文周期性地发出
· 在路由发生变化时触发更新
收到Request报文的RIPng路由器会以Response报文形式发回给请求路由器。
收到Response报文的路由器会更新自己的RIPng路由表。为了保证路由的准确性,RIPng路由器会对收到的Response报文进行有效性检查,比如源IPv6地址是否是链路本地地址,端口号是否正确等,没有通过检查的报文会被忽略。
与RIPng相关的规范有:
· RFC 2080:RIPng for IPv6
· RFC 2081:RIPng Protocol Applicability Statement
表1-1 RIPng配置任务简介
配置任务 |
说明 |
详细配置 |
|
配置RIPng的基本功能 |
必选 |
||
配置RIPng路由特性 |
配置接口附加度量值 |
可选 |
|
配置RIPng路由聚合 |
可选 |
||
配置RIPng发布缺省路由 |
可选 |
||
配置RIPng对接收/发布的路由进行过滤 |
可选 |
||
配置RIPng协议优先级 |
可选 |
||
配置RIPng引入外部路由 |
可选 |
||
调整和优化RIPng网络 |
配置RIPng定时器 |
可选 |
|
配置水平分割和毒性逆转 |
可选 |
||
配置RIPng报文的零域检查 |
可选 |
||
配置最大等价路由条数 |
可选 |
||
配置RIPng报文的发送速率 |
可选 |
||
配置RIPng触发更新的时间间隔 |
可选 |
||
配置RIPng GR |
可选 |
||
配置RIPng NSR |
可选 |
||
配置RIPng快速重路由 |
可选 |
||
配置RIPng IPsec安全框架 |
可选 |
在配置RIPng基本功能之前,需要配置接口的网络层地址,使相邻节点的网络层可达。
表1-2 配置RIPng的基本功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
启动RIPng,并进入RIPng视图 |
ripng [ process-id ] [ vpn-instance vpn-instance-name ] |
缺省情况下,系统没有运行RIPng |
退回系统视图 |
quit |
- |
进入接口视图 |
interface interface-type interface-number |
- |
在接口上使能RIPng路由协议 |
ripng process-id enable |
缺省情况下,接口上的RIPng功能处于关闭状态 如果接口没有使能RIPng,那么RIPng进程在该接口上既不发送也不接收RIPng路由 |
在配置RIPng的路由特性之前,需完成以下任务:
· 配置接口的网络层地址,使相邻节点的网络层可达
· 配置RIPng的基本功能
附加度量值是在RIPng路由原来度量值的基础上所增加的度量值(跳数),包括发送附加度量值和接收附加度量值。
· 发送附加度量值:不会改变路由表中的路由度量值,仅当接口发送RIPng路由信息时才会添加到发送路由上。
· 接收附加度量值:会影响接收到的路由度量值,接口接收到一条合法的RIPng路由时,在将其加入路由表前会把附加度量值加到该路由上。
表1-3 配置接口附加度量值
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
设置接口接收RIPng路由时的附加度量值 |
ripng metricin value |
缺省情况下,接口接收RIPng路由时的附加度量值为0 |
设置接口发送RIPng路由时的附加度量值 |
ripng metricout value |
缺省情况下,接口发送RIPng路由时的附加度量值为1 |
RIPng的路由聚合是在接口上实现的,在接口上配置路由聚合,此时可以将RIPng要在这个接口上发布出去的路由按最长匹配原则聚合后发布出去。
RIPng路由聚合可提高网络的可扩展性和效率,缩减路由表。
RIPng将多条路由聚合成一条路由时,聚合路由的Metric值将取所有路由Metric的最小值。
例如,RIPng从接口发布出去的路由有两条:11:11:11::24 Metric=2 和11:11:12::34 Metric=3,在此接口上配置的聚合路由为11::0/16,则最终发布出去的路由为11::0/16 Metric=2。
表1-4 配置RIPng路由聚合
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置RIPng在接口发布聚合的IPv6地址,并指定被聚合的路由的IPv6前缀 |
ripng summary-address ipv6-address prefix-length |
缺省情况下,未配置RIPng在接口发布聚合的IPv6地址 |
用户可以配置RIP以指定度量值向邻居发布一条缺省路由。
表1-5 配置RIPng发布缺省路由
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置RIPng发布缺省路由 |
ripng default-route { only | originate } [ cost cost-value | route-policy route-policy-name ] * |
缺省情况下,RIPng进程不发布缺省路由 缺省路由将被强制通过指定接口的路由更新报文发布出去,该路由的发布不考虑其是否已经存在于本设备的IPv6路由表中 |
用户可通过使用IPv6 ACL和IPv6前缀列表对接收到的路由信息进行过滤,只有通过过滤的路由才能被加入到RIPng路由表;此外,还可对本机所有要发布的路由进行过滤,包括从其它路由协议引入的路由和从邻居学到的RIPng路由,只有通过过滤的路由才能被发布给RIPng邻居。
表1-6 配置RIPng对接收/发布的路由进行过滤
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIPng视图 |
ripng [ process-id ] [ vpn-instance vpn-instance-name ] |
- |
对接收的路由信息进行过滤 |
filter-policy { ipv6-acl-number | prefix-list prefix-list-name } import |
缺省情况下,RIPng不对接收的路由信息进行过滤 |
对发布的路由信息进行过滤 |
filter-policy { ipv6-acl-number | prefix-list prefix-list-name } export [ protocol [ process-id ] ] |
缺省情况下,RIPng不对发布的路由信息进行过滤 |
任何路由协议都具备特有的协议优先级,在设备进行路由选择时能够在不同的协议中选择最佳路由。可以手工设置RIPng协议的优先级,设置的值越小,其优先级越高。
表1-7 配置RIPng协议优先级
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIPng视图 |
ripng [ process-id ] [ vpn-instance vpn-instance-name ] |
- |
配置RIPng路由的优先级 |
preference { preference | route-policy route-policy-name } * |
缺省情况下,RIPng路由的优先级为100 |
表1-8 配置RIPng引入外部路由
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIPng视图 |
ripng [ process-id ] [ vpn-instance vpn-instance-name ] |
- |
引入外部路由 |
· 配置RIPng引入BGP4+协议的路由 · 配置RIPng引入直连或静态路由 · 配置RIPng引入isisv6、ospfv3协议或其他ripng进程的路由 |
缺省情况下,RIPng不引入其它路由 |
(可选)配置引入路由的缺省度量值 |
default cost cost-value |
缺省情况下,引入路由的缺省度量值为0 |
本节将介绍如何调整和优化RIPng网络的性能,以及在特殊网络环境中某些RIPng特性的应用,在调整和优化RIPng网络之前,需完成以下任务:
· 配置RIPng的基本功能
用户可通过调节RIPng定时器来调整RIPng路由协议的性能,以满足网络需要。
在配置RIPng定时器时需要注意,定时器值的调整应考虑网络的性能,并在所有运行RIPng的路由器上进行统一配置,避免增加不必要的网络流量。
表1-9 配置RIPng定时器
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIPng视图 |
ripng [ process-id ] [ vpn-instance vpn-instance-name ] |
- |
配置RIPng定时器的值 |
timers { garbage-collect garbage-collect-value | suppress suppress-value | timeout timeout-value | update update-value } * |
缺省情况下,Update定时器的值为30秒,Timeout定时器的值为180秒,Suppress定时器的值为120秒,Garbage-collect定时器的值为120秒 |
如果同时配置了水平分割和毒性逆转,则只有毒性逆转功能生效。
通常情况下,为了防止路由环路的出现,水平分割都是必要的,因此,建议不要关闭水平分割。
配置水平分割可以使得从一个接口学到的路由不能通过此接口向外发布,用于避免相邻路由器间的路由环路。
表1-10 配置水平分割
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
使能水平分割功能 |
ripng split-horizon |
缺省情况下,水平分割功能处于使能状态 |
配置毒性逆转可以使得从一个接口学到的路由还可以从这个接口向外发布,但此时这些路由的度量值已设置为16,即不可达。
表1-11 配置毒性逆转
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
使能毒性逆转功能 |
ripng poison-reverse |
缺省情况下,毒性逆转功能处于关闭状态 |
RIPng报文头部中的一些字段必须配置为0,也称为零域。使能RIPng报文的零域检查功能后,如果报文头部零域中的值不为零,这些报文将被丢弃,不做处理。如果能确保所有报文都是可信任的,则不需要进行该项检查,以节省CPU处理时间。
表1-12 配置RIPng-1报文的零域检查
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
启动RIPng并进入RIPng视图 |
ripng [ process-id ] [ vpn-instance vpn-instance-name ] |
- |
使能对RIPng报文头部的零域检查功能 |
checkzero |
缺省情况下,RIPng报文的零域检查功能处于使能状态 |
表1-13 配置最大等价路由条数
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
启动RIPng并进入RIPng视图 |
ripng [ process-id ] [ vpn-instance vpn-instance-name ] |
- |
配置RIPng最大等价路由条数 |
maximum load-balancing number |
缺省情况下,RIPng支持的等价路由的最大条数与系统支持最大等价路由的条数相同 |
RIPng周期性地将路由信息放在RIPng报文中向邻居发送。
如果路由表里的路由条目数量很多,同时发送大量RIPng协议报文有可能会对当前设备和网络带宽带来冲击;因此,路由器将RIPng协议报文分为多个批次进行发送,并且对RIPng接口每次允许发送的RIPng协议报文最大个数做出限制。
用户可根据需要配置接口发送RIPng报文的时间间隔以及接口一次发送RIPng报文的最大个数。
表1-14 配置RIPng报文的发送速率
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIPng视图 |
ripng [ process-id ] [ vpn-instance vpn-instance-name ] |
- |
配置RIPng报文的发送速率 |
output-delay time count count |
缺省情况下,接口发送RIPng报文的时间间隔为20毫秒,一次最多发送3个RIPng报文 |
退回系统视图 |
quit |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置RIPng报文的发送速率 |
ripng output-delay time count count |
缺省情况下,接口发送RIPng报文的速率以RIPng进程配置的为准 |
RIPng路由信息变化后将以触发更新的方式通知邻居设备,加速邻居设备的路由收敛。如果路由信息频繁变化,且每次变化都立即发送触发更新,将会占用大量系统资源,并影响路由器的效率。通过调节触发更新的时间间隔,可以抑制由于路由信息频繁变化带来的影响。本命令在路由信息变化不频繁的情况下将连续触发更新的时间间隔缩小到minimum-interval,而在路由信息变化频繁的情况下可以进行相应惩罚,增加incremental-interval×2n-2(n为连续触发更新的次数),将等待时间按照配置的惩罚增量延长,最大不超过maximum-interval。
表1-15 配置RIPng触发更新的时间间隔
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIPng视图 |
ripng [ process-id ] [ vpn-instance vpn-instance-name ] |
- |
配置RIPng触发更新的时间间隔 |
timer triggered maximum-interval [ minimum-interval [ incremental-interval ] ] |
缺省情况下,发送触发更新的最大时间间隔为5秒,最小间隔为50毫秒,增量惩罚间隔为200毫秒 |
设备充当GR Restarter后不能再配置RIPng NSR功能。
GR(Graceful Restart,平滑重启)是一种在协议重启或主备倒换时RIPng进行平滑重启,保证转发业务不中断的机制。
GR有两个角色:
· GR Restarter:发生协议重启或主备倒换事件且具有GR能力的设备。
· GR Helper:和GR Restarter具有邻居关系,协助完成GR流程的设备。
在普通的路由协议重启的情况下,路由器需要重新学习RIPng路由,并更新FIB表,此时会引起网络暂时的中断,基于RIPng的GR可以解决这个问题。
应用了GR特性的设备向外发送RIPng全部路由表请求报文,重新从邻居处学习RIPng路由,在此期间FIB表不变化。在路由协议重启完毕后,设备将重新学到的RIPng路由下刷给FIB表,使该设备的路由信息恢复到重启前的状态。
在作为GR Restarter的设备上进行以下配置。启动了RIPng的设备缺省就是GR Helper。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
启动RIPng并进入RIPng视图 |
ripng [ process-id ] [ vpn-instance vpn-instance-name ] |
- |
使能RIPng协议的GR能力 |
graceful-restart |
缺省情况下,RIPng协议的GR能力处于关闭状态 |
(可选)配置RIPng协议的GR重启间隔时间 |
graceful-restart interval interval |
缺省情况下,RIPng协议的GR重启间隔时间为60秒 |
设备配置了RIPng NSR功能后不能再充当GR Restarter。
NSR(Nonstop Routing,不间断路由)通过将RIPng路由信息从主进程备份到备进程,使设备在发生主备倒换时新主进程可以无缝完成路由的重新生成、下刷,邻接关系不会发生中断,从而避免了主备倒换对转发业务的影响。
GR特性需要周边设备配合才能完成路由信息的恢复,在网络应用中有一定的限制。NSR特性不需要周边设备的配合,网络应用更加广泛。
表1-17 配置RIPng NSR
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIPng视图 |
ripng [ process-id ] [ vpn-instance vpn-instance-name ] |
- |
使能RIPng NSR功能 |
non-stop-routing |
缺省情况下,RIPng NSR功能处于关闭状态 各个进程的NSR功能是相互独立的,只对本进程生效。如果存在多个RIPng进程,建议在各个进程下使能RIPng NSR功能 |
· RIPng快速重路由功能仅对非迭代RIPng路由(即从直连邻居学到RIPng路由)有效。
· 等价路由不支持快速重路由功能。
在部署了备份链路的RIPng网络中,当主用链路发生故障时,RIPng会对路由进行重新计算,在路由收敛完成后,流量可以通过备份链路进行传输。在路由收敛期间,数据流量将会被中断。
为了尽可能缩短网络故障导致的流量中断时间,网络管理员可以根据需要配置RIPng快速重路由功能。
图1-1 RIPng快速重路由功能示意图
如图1-1所示,通过在Router B上配置快速重路由功能,RIPng可以为路由指定备份下一跳,当Router B检测到主用下一跳地址无法到达时,会直接使用备份下一跳地址来指导报文的转发,从而大大缩短了流量路径切换的时间。在快速切换流量传输路径的同时,RIPng会根据变化后的网络拓扑重新计算路由,在路由收敛完毕后,使用新计算出来的最优路由来指导报文转发。
本功能只适合在主链路三层接口up,主链路由双通变为单通或者不通的情况下使用。在主链路三层接口down的情况下,本功能不可用。
单通现象,即一条链路上的两端,有且只有一端可以收到另一端发来的报文,此链路称为单向链路。
要配置快速重路由功能,网络管理员需要配置路由策略,通过apply ipv6 fast-reroute backup-interface命令在路由策略中指定备份下一跳;关于apply ipv6 fast-reroute backup-interface命令以及路由策略的相关配置,请参见“三层技术-IP路由配置指导”中的“路由策略”。
表1-18 配置RIPng快速重路由功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIPng视图 |
ripng [ process-id ] [ vpn-instance vpn-instance-name ] |
- |
配置RIPng快速重路由功能 |
fast-reroute route-policy route-policy-name |
缺省情况下,RIPng快速重路由功能处于关闭状态 |
RIPng协议的快速重路由特性中,主用链路缺省不使用BFD进行链路故障检测。配置本功能后,将使用BFD(Echo方式)进行检测,可以加快RIPng协议的收敛速度。
表1-19 使用BFD检测主用链路状态
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置BFD Echo报文源地址 |
bfd echo-source-ipv6 ipv6-address |
缺省情况下,未配置BFD Echo报文源地址 echo报文的源IPv6地址用户可以任意指定。建议配置echo报文的源IPv6地址不属于该设备任何一个接口所在网段 本命令的详细情况请参见“可靠性命令参考”中的“BFD” |
进入接口视图 |
interface interface-type interface-number |
- |
使能RIPng协议中主用链路的BFD(Echo方式)检测功能 |
ripng primary-path-detect bfd echo |
缺省情况下,RIPng协议中主用链路的BFD(Echo方式)检测功能处于关闭状态 |
在安全性要求较高的网络环境中,可以通过配置基于IPsec安全框架的认证方式来对RIPng报文进行有效性检查和验证。IPsec安全框架的具体情况请参见“安全配置指导”中的“IPsec”。
设备在发送的报文中会携带配置好的IPsec安全框架的SPI(Security Parameter Index,安全参数索引)值,接收报文时通过SPI值进行IPsec安全框架匹配:只有安全框架匹配的报文才能接收;否则将不会接收报文,从而不能正常建立邻居和学习路由。
RIPng支持在进程和接口下配置IPsec安全框架。进程下配置的IPsec安全框架对该进程下的所有报文有效,接口下的IPsec安全框架只对接口下的报文有效。当接口和接口所在进程均配置了IPsec安全框架时,接口下的配置生效。
表1-20 配置RIPng IPsec安全框架(RIPng进程)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIPng视图 |
ripng [ process-id ] [ vpn-instance vpn-instance-name ] |
- |
配置RIPng进程应用IPsec安全框架 |
enable ipsec-profile profile-name |
缺省情况下,RIPng进程没有应用IPsec安全框架 |
表1-21 配置RIPng IPsec安全框架(接口)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置使能了RIPng的接口上应用IPsec安全框架 |
ripng ipsec-profile profile-name |
缺省情况下,RIPng接口没有应用IPsec安全框架 |
在完成上述配置后,在任意视图下执行display命令可以显示配置后RIPng的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以重启RIPng进程或清除指定RIPng进程的统计信息。
表1-22 RIPng显示和维护
操作 |
命令 |
显示RIPng进程的配置信息 |
display ripng [ process-id] |
显示RIPng发布数据库中的路由 |
display ripng process-id database [ ipv6-address prefix-length ] |
显示RIPng进程的GR状态信息 |
display ripng [ process-id ] graceful-restart |
显示指定RIPng进程的接口信息 |
display ripng process-id interface [ interface-type interface-number ] |
显示RIPng进程的邻居信息 |
display ripng process-id neighbor [ interface-type interface-number ] |
显示RIPng进程的NSR状态信息 |
display ripng [ process-id ] non-stop-routing |
显示指定RIPng进程的路由信息 |
display ripng process-id route [ ipv6-address prefix-length [ verbose ] | peer ipv6-address | statistics ] |
重启指定RIPng进程 |
reset ripng process-id process |
清除RIPng进程的统计信息 |
reset ripng process-id statistics |
· Switch A、Switch B和Switch C相连并通过RIPng来学习网络中的IPv6路由信息。
· 在Switch B上对接收的Switch A的路由(2::/64)进行过滤,使其不加入到Switch B的RIPng进程的路由表中,发布给Switch A的路由只有(4::/64)。
图1-2 RIPng基本功能配置组网图
(1) 配置各接口的IPv6地址(略)
(2) 配置RIPng的基本功能
# 配置Switch A。
<SwitchA> system-view
[SwitchA] ripng 1
[SwitchA-ripng-1] quit
[SwitchA] interface vlan-interface 100
[SwitchA-Vlan-interface100] ripng 1 enable
[SwitchA-Vlan-interface100] quit
[SwitchA] interface vlan-interface 400
[SwitchA-Vlan-interface400] ripng 1 enable
[SwitchA-Vlan-interface400] quit
# 配置Switch B。
<SwitchB> system-view
[SwitchB] ripng 1
[SwitchB-ripng-1] quit
[SwitchB] interface vlan-interface 200
[SwitchB-Vlan-interface200] ripng 1 enable
[SwitchB-Vlan-interface200] quit
[SwitchB] interface vlan-interface 100
[SwitchB-Vlan-interface100] ripng 1 enable
[SwitchB-Vlan-interface100] quit
# 配置Switch C。
<SwitchC> system-view
[SwitchC] ripng 1
[SwitchC-ripng-1] quit
[SwitchC] interface vlan-interface 200
[SwitchC-Vlan-interface200] ripng 1 enable
[SwitchC-Vlan-interface200] quit
[SwitchC] interface vlan-interface 500
[SwitchC-Vlan-interface500] ripng 1 enable
[SwitchC-Vlan-interface500] quit
[SwitchC] interface vlan-interface 600
[SwitchC-Vlan-interface600] ripng 1 enable
[SwitchC-Vlan-interface600] quit
# 查看Switch B的RIPng路由表。
[SwitchB] display ripng 1 route
Route Flags: A - Aging, S - Suppressed, G - Garbage-collect, D – Direct
O - Optimal, F - Flush to RIB
----------------------------------------------------------------
Peer FE80::20F:E2FF:FE23:82F5 on Vlan-interface100
Destination 2::/64,
via FE80::20F:E2FF:FE23:82F5, cost 1, tag 0, AOF, 6 secs
Peer FE80::20F:E2FF:FE00:100 on Vlan-interface200
Destination 4::/64,
via FE80::20F:E2FF:FE00:100, cost 1, tag 0, AOF, 11 secs
Destination 5::/64,
via FE80::20F:E2FF:FE00:100, cost 1, tag 0, AOF, 11
Local route
Destination 1::/64,
via ::, cost 0, tag 0, DOF
Destination 3::/64,
via ::, cost 0, tag 0, DOF
# 查看Switch A的RIPng路由表。
[SwitchA] display ripng 1 route
Route Flags: A - Aging, S - Suppressed, G - Garbage-collect, D – Direct
O - Optimal, F - Flush to RIB
----------------------------------------------------------------
Peer FE80::200:2FF:FE64:8904 on Vlan-interface100
Destination 3::/64,
via FE80::200:2FF:FE64:8904, cost 1, tag 0, AOF, 31 secs
Destination 4::/64,
via FE80::200:2FF:FE64:8904, cost 2, tag 0, AOF, 31 secs
Destination 5::/64,
via FE80::200:2FF:FE64:8904, cost 2, tag 0, AOF, 31 secs
Local route
Destination 2::/64,
via ::, cost 0, tag 0, DOF
Destination 1::/64,
via ::, cost 0, tag 0, DOF
(3) 配置Switch B对接收和发布的路由进行过滤
[SwitchB] ipv6 prefix-list aaa permit 4:: 64
[SwitchB] ipv6 prefix-list bbb deny 2:: 64
[SwitchB] ipv6 prefix-list bbb permit :: 0 less-equal 128
[SwitchB] ripng 1
[SwitchB-ripng-1] filter-policy prefix-list aaa export
[SwitchB-ripng-1] filter-policy prefix-list bbb import
[SwitchB-ripng-1] quit
# 查看Switch B和Switch A的RIPng路由表。
[SwitchB] display ripng 1 route
Route Flags: A - Aging, S - Suppressed, G - Garbage-collect, D – Direct
O - Optimal, F - Flush to RIB
----------------------------------------------------------------
Peer FE80::1:100 on Vlan-interface100
Peer FE80::3:200 on Vlan-interface200
Destination 4::/64,
via FE80::2:200, cost 1, tag 0, AOF, 11 secs
Destination 5::/64,
via FE80::2:200, cost 1, tag 0, AOF, 11 secs
Local route
Destination 1::/64,
via ::, cost 0, tag 0, DOF
Destination 3::/64,
via ::, cost 0, tag 0, DOF
[SwitchA] display ripng 1 route
Route Flags: A - Aging, S - Suppressed, G - Garbage-collect, D – Direct
O - Optimal, F - Flush to RIB
----------------------------------------------------------------
Peer FE80::2:100 on Vlan-interface100
Destination 4::/64,
via FE80::1:100, cost 2, tag 0, AOF, 2 secs
· Switch B上运行两个RIPng进程:RIPng100和RIPng200。Switch B通过RIPng100和Switch A交换路由信息,通过RIPng200和Switch C交换路由信息。
· 要求在Switch B上配置路由引入,将两个不同进程的RIPng路由相互引入到对方的RIPng进程中。
图1-3 RIPng引入外部路由配置组网图
(1) 配置各接口的IPv6地址(略)
(2) 配置RIPng
# 在Switch A上启动RIPng进程100。
<SwitchA> system-view
[SwitchA] ripng 100
[SwitchA-ripng-100] quit
[SwitchA] interface vlan-interface 100
[SwitchA-Vlan-interface100] ripng 100 enable
[SwitchA-Vlan-interface100] quit
[SwitchA] interface vlan-interface 200
[SwitchA-Vlan-interface200] ripng 100 enable
[SwitchA-Vlan-interface200] quit
# 在Switch B上启动两个RIPng进程,进程号分别为100和200。
<SwitchB> system-view
[SwitchB] ripng 100
[SwitchB-ripng-100] quit
[SwitchB] interface vlan-interface 100
[SwitchB-Vlan-interface100] ripng 100 enable
[SwitchB-Vlan-interface100] quit
[SwitchB] ripng 200
[SwitchB-ripng-200] quit
[SwitchB] interface vlan-interface 300
[SwitchB-Vlan-interface300] ripng 200 enable
[SwitchB-Vlan-interface300] quit
# 在Switch C上启动RIPng进程200。
<SwitchC> system-view
[SwitchC] ripng 200
[SwitchC] interface vlan-interface 300
[SwitchC-Vlan-interface300] ripng 200 enable
[SwitchC-Vlan-interface300] quit
[SwitchC] interface vlan-interface 400
[SwitchC-Vlan-interface400] ripng 200 enable
[SwitchC-Vlan-interface400] quit
# 查看Switch A的路由表信息。
[SwitchA] display ipv6 routing-table
Destinations : 7 Routes : 7
Destination: ::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 1::/64 Protocol : Direct
NextHop : :: Preference: 0
Interface : Vlan100 Cost : 0
Destination: 1::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2::/64 Protocol : Direct
NextHop : :: Preference: 0
Interface : Vlan200 Cost : 0
Destination: 2::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: FE80::/10 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
Destination: FF00::/8 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
(3) 配置RIPng引入外部路由
# 在Switch B上将两个不同RIPng进程的路由相互引入到对方的路由表中。
[SwitchB] ripng 100
[SwitchB-ripng-100] import-route ripng 200
[SwitchB-ripng-100] quit
[SwitchB] ripng 200
[SwitchB-ripng-200] import-route ripng 100
[SwitchB-ripng-200] quit
# 查看路由引入后Switch A的路由表信息。
[SwitchA] display ipv6 routing-table
Destinations : 8 Routes : 8
Destination: ::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 1::/64 Protocol : Direct
NextHop : :: Preference: 0
Interface : Vlan100 Cost : 0
Destination: 1::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2::/64 Protocol : Direct
NextHop : :: Preference: 0
Interface : Vlan200 Cost : 0
Destination: 2::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 4::/64 Protocol : RIPng
NextHop : FE80::200:BFF:FE01:1C02 Preference: 100
Interface : Vlan100 Cost : 1
Destination: FE80::/10 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
Destination: FF00::/8 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
· Switch A、Switch B和Switch C通过RIPng协议实现网络互连。
· Switch A作为GR Restarter,Switch B和Switch C作为GR Helper并且通过GR机制与Switch A保持同步。
图1-4 RIPng GR配置组网图
(1) 配置各路由器接口的IPv6地址和RIPng协议
请按照上面组网图配置各接口的IPv6地址,具体配置过程略。
配置各路由器之间采用RIPng协议进行互连,确保Router A、Router B和Router C之间能够在网络层互通,并且各路由器之间能够借助RIPng协议实现动态路由更新。
(2) 配置RIPng GR
# 使能Switch A的RIPng GR功能。
<SwitchA> system-view
[SwitchA] ripng 1
[SwitchA-ripng-1] graceful-restart
# 在Switch A上以GR方式重启RIP进程。
[SwitchA-rip-1] return
<SwitchA> reset ripng 1 process
Reset RIPng process? [Y/N]:y
# 查看Switch A上RIPng的GR状态。
<SwitchA> display ripng 1 graceful-restart
RIPng process: 1
Graceful Restart capability : Enabled
Current GR state : Normal
Graceful Restart period : 60 seconds
Graceful Restart remaining time: 0 seconds
Switch S、Switch A、Switch B通过RIPng协议实现网络互连。要求对Switch S进行主备倒换时,Switch A和Switch B到Switch S的邻居没有中断,Switch A到Switch B的流量没有中断。
图1-5 RIPng NSR配置组网图
(1) 配置各接口的IPv6地址和RIPng协议
请按照上面组网图配置各接口的IPv6地址,具体配置过程略。
配置各交换机之间采用RIPng协议进行互连,确保Switch S、Switch A和Switch D之间能够在网络层互通,并且各路由器之间能够借助RIPng协议实现动态路由更新。
(2) 配置RIPng NSR
# 使能Switch S的RIPng NSR功能。
<SwitchS> system-view
[SwitchS] ripng 1
[SwitchS-ripng-1] non-stop-routing
[SwitchS-ripng-1] quit
# Switch S进行主备倒换。
[SwitchS] placement reoptimize
Predicted changes to the placement
Program Current location New location
---------------------------------------------------------------------
lb 0/0 0/0
lsm 0/0 0/0
slsp 0/0 0/0
rib6 0/0 0/0
routepolicy 0/0 0/0
rib 0/0 0/0
staticroute6 0/0 0/0
staticroute 0/0 0/0
ospf 0/0 1/0
Continue? [y/n]:y
Re-optimization of the placement start. You will be notified on completion
Re-optimization of the placement complete. Use 'display placement' to view the new placement
# 查看Switch A上RIPng协议的邻居和路由。
[SwitchA] display ripng 1 neighbor
Neighbor Address: FE80::AE45:5CE7:422E:2867
Interface : Vlan-interface100
Version : RIPng version 1 Last update: 00h00m23s
Bad packets: 0 Bad routes : 0
[SwitchA] display ripng 1 route
Route Flags: A - Aging, S - Suppressed, G - Garbage-collect, D - Direct
O - Optimal, F - Flush to RIB
----------------------------------------------------------------
Peer FE80::AE45:5CE7:422E:2867 on Vlan-interface100
Destination 1400:1::/64,
via FE80::AE45:5CE7:422E:2867, cost 1, tag 0, AOF, 1 secs
Destination 4004::4/128,
via FE80::AE45:5CE7:422E:2867, cost 2, tag 0, AOF, 1 secs
Local route
Destination 2002::2/128,
via ::, cost 0, tag 0, DOF
Destination 1200:1::/64,
via ::, cost 0, tag 0, DOF
# 查看Switch B上RIPng协议的邻居和路由。
[SwitchB] display ripng 1 neighbor
Neighbor Address: FE80::20C:29FF:FECE:6277
Interface : Vlan-interface200
Version : RIPng version 1 Last update: 00h00m18s
Bad packets: 0 Bad routes : 0
[SwitchB] display ripng 1 route
Route Flags: A - Aging, S - Suppressed, G - Garbage-collect, D - Direct
O - Optimal, F - Flush to RIB
----------------------------------------------------------------
Peer FE80::20C:29FF:FECE:6277 on Vlan-interface200
Destination 2002::2/128,
via FE80::20C:29FF:FECE:6277, cost 2, tag 0, AOF, 24 secs
Destination 1200:1::/64,
via FE80::20C:29FF:FECE:6277, cost 1, tag 0, AOF, 24 secs
Local route
Destination 4004::4/128,
via ::, cost 0, tag 0, DOF
Destination 1400:1::/64,
via ::, cost 0, tag 0, DOF
通过上面信息可以看出在Switch S发生主备倒换的时候,Switch A和Switch B的邻居和路由信息保持不变,从Switch A到Switch B的流量转发没有受到主备倒换的影响。
Switch A、Switch B和Switch C通过RIPng协议实现网络互连。要求当Switch A和Switch B之间的链路出现单通故障时,业务可以快速切换到链路B上。
图1-6 RIPng快速重路由配置组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
Switch A |
Vlan-int100 |
1::1/64 |
Switch B |
Vlan-int101 |
3::1/64 |
|
Vlan-int200 |
2::1/64 |
|
Vlan-int200 |
2::2/64 |
|
Loop0 |
10::1/128 |
|
Loop0 |
20::1/128 |
Switch C |
Vlan-int100 |
1::2/64 |
|
|
|
|
Vlan-int101 |
3::2/64 |
|
|
|
(1) 配置各路由器接口的IPv6地址和RIPng协议
请按照上面组网图配置各接口的IP地址和子网掩码,具体配置过程略。
配置各交换机之间采用RIPng协议进行互连,确保Switch A、Switch B和Switch C之间能够在网络层互通,并且各交换机之间能够借助RIPng协议实现动态路由更新。
具体配置过程略。
(2) 配置RIPng快速重路由
# 配置Switch A。
<SwitchA> system-view
[SwitchA] ipv6 prefix-list abc index 10 permit 20::1 128
[SwitchA] route-policy frr permit node 10
[SwitchA-route-policy-frr-10] if-match ipv6 address prefix-list abc
[SwitchA-route-policy-frr-10] apply ipv6 fast-reroute backup-interface vlan-interface 100 backup-nexthop 1::2
[SwitchA-route-policy-frr-10] quit
[SwitchA] ripng 1
[SwitchA-ripng-1] fast-reroute route-policy frr
[SwitchA-ripng-1] quit
# 配置Switch B。
<SwitchB> system-view
[SwitchB] ipv6 prefix-list abc index 10 permit 10::1 128
[SwitchB] route-policy frr permit node 10
[SwitchB-route-policy-frr-10] if-match ipv6 address prefix-list abc
[SwitchB-route-policy-frr-10] apply ipv6 fast-reroute backup-interface vlan-interface 101 backup-nexthop 3::2
[SwitchB-route-policy-frr-10] quit
[SwitchB] ripng 1
[SwitchB-ripng-1] fast-reroute route-policy frr
[SwitchB-ripng-1] quit
# 在Switch A上查看20::1/128的路由信息,可以看到备份下一跳信息。
[SwitchA] display ipv6 routing-table 20::1 128 verbose
Summary count : 1
Destination: 20::1/128
Protocol: RIPng
Process ID: 1
SubProtID: 0x0 Age: 00h17m42s
Cost: 1 Preference: 100
IpPre: N/A QosLocalID: N/A
Tag: 0 State: Inactive Adv
OrigTblID: 0x0 OrigVrf: default-vrf
TableID: 0xa OrigAs: 0
NibID: 0x22000003 LastAs: 0
AttrID: 0xffffffff Neighbor: FE80::34CD:9FF:FE2F:D02
Flags: 0x41 OrigNextHop: FE80::34CD:9FF:FE2F:D02
Label: NULL RealNextHop: FE80::34CD:9FF:FE2F:D02
BkLabel: NULL BkNextHop: FE80::7685:45FF:FEAD:102
Tunnel ID: Invalid Interface: Vlan-interface200
BkTunnel ID: Invalid BkInterface: Vlan-interface100
FtnIndex: 0x0 TrafficIndex: N/A
Connector: N/A PathID: 0x0
# 在Switch B上查看10::1/128的路由信息,可以看到备份下一跳信息。
[SwitchB] display ipv6 routing-table 10::1 128 verbose
Summary count : 1
Destination: 10::1/128
Protocol: RIPng
Process ID: 1
SubProtID: 0x0 Age: 00h22m34s
Cost: 1 Preference: 100
IpPre: N/A QosLocalID: N/A
Tag: 0 State: Inactive Adv
OrigTblID: 0x0 OrigVrf: default-vrf
TableID: 0xa OrigAs: 0
NibID: 0x22000001 LastAs: 0
AttrID: 0xffffffff Neighbor: FE80::34CC:E8FF:FE5B:C02
Flags: 0x41 OrigNextHop: FE80::34CC:E8FF:FE5B:C02
Label: NULL RealNextHop: FE80::34CC:E8FF:FE5B:C02
BkLabel: NULL BkNextHop: FE80::7685:45FF:FEAD:102
Tunnel ID: Invalid Interface: Vlan-interface200
BkTunnel ID: Invalid BkInterface: Vlan-interface101
FtnIndex: 0x0 TrafficIndex: N/A
Connector: N/A PathID: 0x0
· Switch A、Switch B和Switch C相连并通过RIPng来学习网络中的IPv6路由信息。
· 要求配置IPsec安全框架对Switch A、Switch B和Switch C之间的RIPng报文进行有效性检查和验证。
图1-7 RIPng IPsec安全框架配置组网图
(1) 配置各接口的IPv6地址(略)
(2) 配置RIPng基本功能
# 配置Switch A。
<SwitchA> system-view
[SwitchA] ripng 1
[SwitchA-ripng-1] quit
[SwitchA] interface vlan-interface 100
[SwitchA-Vlan-interface100] ripng 1 enable
[SwitchA-Vlan-interface100] quit
# 配置Switch B。
<SwitchB> system-view
[SwitchB] ripng 1
[SwitchB-ripng-1] quit
[SwitchB] interface vlan-interface 200
[SwitchB-Vlan-interface200] ripng 1 enable
[SwitchB-Vlan-interface200] quit
[SwitchB] interface vlan-interface 100
[SwitchB-Vlan-interface100] ripng 1 enable
[SwitchB-Vlan-interface100] quit
# 配置Switch C。
<SwitchC> system-view
[SwitchC] ripng 1
[SwitchC-ripng-1] quit
[SwitchC] interface vlan-interface 200
[SwitchC-Vlan-interface200] ripng 1 enable
[SwitchC-Vlan-interface200] quit
(3) 配置RIPng IPsec安全框架
# 配置Switch A。创建名为protrf1的安全提议,报文封装形式采用传输模式,安全协议采用ESP协议。创建一条安全框架profile001,协商方式为manual,配置SPI和密钥。
[SwitchA] ipsec transform-set protrf1
[SwitchA-ipsec-transform-set-protrf1] esp encryption-algorithm 3des-cbc
[SwitchA-ipsec-transform-set-protrf1] esp authentication-algorithm md5
[SwitchA-ipsec-transform-set-protrf1] encapsulation-mode transport
[SwitchA-ipsec-transform-set-protrf1] quit
[SwitchA] ipsec profile profile001 manual
[SwitchA-ipsec-profile-profile001-manual] transform-set protrf1
[SwitchA-ipsec-profile-profile001-manual] sa spi inbound esp 256
[SwitchA-ipsec-profile-profile001-manual] sa spi outbound esp 256
[SwitchA-ipsec-profile-profile001-manual] sa string-key inbound esp simple abc
[SwitchA-ipsec-profile-profile001-manual] sa string-key outbound esp simple abc
[SwitchA-ipsec-profile-profile001-manual] quit
# 配置Switch B。创建名为protrf1的安全提议,报文封装形式采用传输模式,安全协议采用ESP协议。创建一条安全框架profile001,协商方式为manual,配置SPI和密钥。
[SwitchB] ipsec transform-set protrf1
[SwitchB-ipsec-transform-set-protrf1] esp encryption-algorithm 3des-cbc
[SwitchB-ipsec-transform-set-protrf1] esp authentication-algorithm md5
[SwitchB-ipsec-transform-set-protrf1] encapsulation-mode transport
[SwitchB-ipsec-transform-set-protrf1] quit
[SwitchB] ipsec profile profile001 manual
[SwitchB-ipsec-profile-profile001-manual] transform-set protrf1
[SwitchB-ipsec-profile-profile001-manual] sa spi inbound esp 256
[SwitchB-ipsec-profile-profile001-manual] sa spi outbound esp 256
[SwitchB-ipsec-profile-profile001-manual] sa string-key inbound esp simple abc
[SwitchB-ipsec-profile-profile001-manual] sa string-key outbound esp simple abc
[SwitchB-ipsec-profile-profile001-manual] quit
# 配置Switch C。创建名为protrf1的安全提议,报文封装形式采用传输模式,安全协议采用ESP协议。创建一条安全框架profile001,协商方式为manual,配置SPI和密钥。
[SwitchC] ipsec transform-set protrf1
[SwitchC-ipsec-transform-set-protrf1] esp encryption-algorithm 3des-cbc
[SwitchC-ipsec-transform-set-protrf1] esp authentication-algorithm md5
[SwitchC-ipsec-transform-set-protrf1] encapsulation-mode transport
[SwitchC-ipsec-transform-set-protrf1] quit
[SwitchC] ipsec profile profile001 manual
[SwitchC-ipsec-profile-profile001-manual] transform-set protrf1
[SwitchC-ipsec-profile-profile001-manual] sa spi inbound esp 256
[SwitchC-ipsec-profile-profile001-manual] sa spi outbound esp 256
[SwitchC-ipsec-profile-profile001-manual] sa string-key inbound esp simple abc
[SwitchC-ipsec-profile-profile001-manual] sa string-key outbound esp simple abc
[SwitchC-ipsec-profile-profile001-manual] quit
(4) RIPng进程上应用IPsec安全框架
# 配置Switch A。
[SwitchA] ripng 1
[SwitchA-ripng-1] enable ipsec-profile profile001
[SwitchA-ripng-1] quit
# 配置Switch B。
[SwitchB] ripng 1
[SwitchB-ripng-1] enable ipsec-profile profile001
[SwitchB-ripng-1] quit
# 配置Switch C。
[SwitchC] ripng 1
[SwitchC-ripng-1] enable ipsec-profile profile001
[SwitchC-ripng-1] quit
以上配置完成后,Switch A、Switch B和Switch C之间的RIPng报文将被加密传输。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!