04-RIP配置
本章节下载: 04-RIP配置 ()
目 录
1.9.5 配置control报文双向检测(非直连邻居control报文双向检测)
1.9.6 配置control报文双向检测(直连邻居control报文双向检测)
1.10.4 配置RIP快速重路由支持BFD检测功能(Ctrl方式)
RIP(Routing Information Protocol,路由信息协议)是一种基于距离矢量(Distance-Vector)算法的内部网关协议(Interior Gateway Protocol,IGP),它通过UDP报文进行路由信息的交换,使用的端口号为520。RIP适用于小型网络。
RIP使用跳数来衡量到达目的地址的距离,跳数称为度量值。在RIP中,路由器到与它直接相连网络的跳数为0,通过一个路由器可达的网络的跳数为1,其余依此类推。为限制收敛时间,RIP规定度量值取0~15之间的整数,大于或等于16的跳数被定义为无穷大,即目的网络或主机不可达。由于这个限制,使得RIP不适合应用于大型网络。
每个运行RIP的路由器管理一个路由数据库,该路由数据库包含了到所有可达目的地的路由项,这些路由项包含下列信息:
· 目的地址:主机或网络的地址。
· 下一跳地址:为到达目的地,需要经过的相邻路由器的接口IP地址。
· 出接口:本路由器转发报文的出接口。
· 度量值:本路由器到达目的地的开销。
· 路由时间:从路由项最后一次被更新到现在所经过的时间,路由项每次被更新时,路由时间重置为0。
· 路由标记(Route Tag):用于标识外部路由,在路由策略中可根据路由标记对路由信息进行灵活的控制。关于路由策略的详细信息,请参见“三层技术-IP路由配置指导”中的“路由策略”。
RIP的运行过程如下:
(1) 路由器启动RIP后,便会向相邻的路由器发送请求报文(Request message),相邻的RIP路由器收到请求报文后,响应该请求,回送包含本地路由表信息的响应报文(Response message)。
(2) 路由器收到响应报文后,更新本地路由表,同时向相邻路由器发送触发更新报文,通告路由更新信息。相邻路由器收到触发更新报文后,又向其各自的相邻路由器发送触发更新报文。在一连串的触发更新广播后,各路由器都能得到并保持最新的路由信息。
(3) 路由器周期性向相邻路由器发送本地路由表,运行RIP协议的相邻路由器在收到报文后,对本地路由进行维护,选择一条最佳路由,再向其各自相邻网络发送更新信息,使更新的路由最终能达到全局有效。同时,RIP采用老化机制对超时的路由进行老化处理,以保证路由的实时性和有效性。
RIP协议向邻居通告的是自己的路由表,有可能会发生路由环路,可以通过以下机制来避免:
· 计数到无穷(Counting to infinity):将度量值等于16的路由定义为不可达(infinity)。在路由环路发生时,某条路由的度量值将会增加到16,该路由被认为不可达。
· 触发更新(Triggered Updates):RIP通过触发更新来避免在多个路由器之间形成路由环路的可能,而且可以加速网络的收敛速度。一旦某条路由的度量值发生了变化,就立刻向邻居路由器发布更新报文,而不是等到更新周期的到来。
· 水平分割(Split Horizon):RIP从某个接口学到的路由,不会从该接口再发回给邻居路由器。这样不但减少了带宽消耗,还可以防止路由环路。
· 毒性逆转(Poison Reverse):RIP从某个接口学到路由后,将该路由的度量值设置为16(不可达),并从原接口发回邻居路由器。利用这种方式,可以清除对方路由表中的无用信息。
RIP有两个版本:RIP-1和RIP-2。
RIP-1是有类别路由协议(Classful Routing Protocol),它只支持以广播方式发布协议报文。RIP-1的协议报文无法携带掩码信息,它只能识别A、B、C类这样的自然网段的路由,因此RIP-1不支持不连续子网(Discontiguous Subnet)。
RIP-2是一种无类别路由协议(Classless Routing Protocol),与RIP-1相比,它有以下优势:
· 支持路由标记,在路由策略中可根据路由标记对路由进行灵活的控制。
· 报文中携带掩码信息,支持路由聚合和CIDR(Classless Inter-Domain Routing,无类域间路由)。
· 支持指定下一跳,在广播网上可以选择到最优下一跳地址。
· 支持组播路由发送更新报文,只有RIP-2路由器才能收到更新报文,减少资源消耗。
· 支持对协议报文进行验证,并提供明文验证和MD5验证两种方式,增强安全性。
RIP-2有两种报文传送方式:广播方式和组播方式,缺省将采用组播方式发送报文,使用的组播地址为224.0.0.9。当接口运行RIP-2广播方式时,也可接收RIP-1的报文。
与RIP相关的协议规范有:
· RFC 1058:Routing Information Protocol
· RFC 1723:RIP Version 2 - Carrying Additional Information
· RFC 1721:RIP Version 2 Protocol Analysis
· RFC 1722:RIP Version 2 Protocol Applicability Statement
· RFC 1724:RIP Version 2 MIB Extension
· RFC 2082:RIP-2 MD5 Authentication
· RFC 2091:Triggered Extensions to RIP to Support Demand Circuits
· RFC 2453:RIP Version 2
RIP配置任务如下:
(1) 配置RIP的基本功能
a. 启动RIP
b. (可选)配置接口的工作状态
c. (可选)配置RIP版本
d. 配置RIP邻居
如果在不支持广播或组播报文的链路上运行RIP,则必须手工指定RIP的邻居。
(2) (可选)配置RIP的路由信息控制
(3) (可选)调整和优化RIP网络
¡ 配置RIP定时器
(4) (可选)配置RIP网管功能
(5) (可选)提高RIP的可靠性
¡ 配置RIP GR
(6) (可选)提高RIP的安全性
¡ 配置源地址检查
目前,系统支持RIP多进程。当在一台路由器上启动多个RIP进程时,需要指定不同的进程号。RIP进程号是本地概念,不影响与其它路由器之间的报文交换。因此,不同的路由器之间,即使进程号不同也可以进行报文交换。
RIP只在指定网段的接口上运行,指定网段的同时可以配置反码;对于不在指定网段上的接口,RIP既不在它上面接收和发送路由,也不将它的接口路由发布出去。因此,RIP启动后必须指定其工作网段。
· 启动RIP前在接口视图下配置了RIP相关命令,这些配置只有在RIP启动后才会生效。
· RIP不支持将同一物理接口下的不同网段使能到不同的RIP进程中。
· RIP不支持在同一物理接口下使能多个RIP进程。
· 在指定接口上使能RIP的优先级高于在指定网段上使能RIP。
(1) 进入系统视图。
system-view
(2) 启动RIP,并进入RIP视图。
rip [ process-id ] [ vpn-instance vpn-instance-name ]
缺省情况下,系统没有启动RIP。
(3) 在指定网段上使能RIP。
network network-address [ wildcard-mask ]
缺省情况下,没有网段使能RIP。
在单进程情况下,可以使用network 0.0.0.0命令在所有接口上使能RIP。在多进程情况下,无法使用network 0.0.0.0命令。
(1) 进入系统视图。
system-view
(2) 启动RIP,并进入RIP视图。
rip [ process-id ] [ vpn-instance vpn-instance-name ]
缺省情况下,系统没有启动RIP。
(3) 退回系统视图。
quit
(4) 进入接口视图。
interface interface-type interface-number
(5) 在指定接口上使能RIP。
rip process-id enable [ exclude-subip ]
缺省情况下,接口上没有使能RIP。
可对接口的工作状态进行配置,具体包括:
· 配置接口工作在抑制状态,即接口只接收RIP报文而不发送RIP报文。
· 配置禁止接口接收RIP报文。
· 配置禁止接口发送RIP报文。
silent-interface命令用来抑制接口,使其只接收RIP报文,更新自己的路由表,但不发送RIP报文。命令silent-interface比命令rip input和rip output的优先级都高。silent-interface all表示抑制所有接口,在配置该命令后,所有接口都被抑制,rip input和rip output将不会生效。
(1) 进入系统视图。
system-view
(2) 进入RIP视图。
rip [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 配置抑制接口。
silent-interface { interface-type interface-number | all }
缺省情况下,允许所有接口发送路由更新报文。
若抑制接口收到非知名端口的单播请求,会发送响应报文。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置禁止接口接收RIP报文。
undo rip input
缺省情况下,允许接口接收RIP报文。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置禁止接口发送RIP报文。
undo rip output
缺省情况下,允许接口发送RIP报文。
用户可以在RIP视图下配置RIP版本,也可在接口上配置RIP版本:
· 当全局和接口都没有进行RIP版本配置时,接口发送RIP-1广播报文,可以接收RIP-1广播/单播报文、RIP-2广播/组播/单播报文。
· 如果接口上配置了RIP版本,以接口配置的为准;如果接口没有进行RIP版本配置,接口运行的RIP版本将以全局配置的版本为准。
(1) 进入系统视图。
system-view
(2) 配置RIP版本。
¡ 请依次执行以下命令在RIP视图下配置RIP版本。
rip [ process-id ] [ vpn-instance vpn-instance-name ]
version { 1 | 2 }
缺省情况下,未配置全局RIP版本。接口只能发送RIP-1广播报文,可以接收RIP-1广播/单播报文、RIP-2广播/组播/单播报文。
¡ 请依次执行以下命令在接口视图下配置RIP版本。
interface interface-type interface-number
rip version { 1 | 2 [ broadcast | multicast ] }
缺省情况下,未配置接口运行的RIP版本。接口只能发送RIP-1广播报文,可以接收RIP-1广播/单播报文、RIP-2广播/组播/单播报文。
通常情况下,RIP使用广播或组播地址发送报文,如果在不支持广播或组播报文的链路上运行RIP,则必须手工指定RIP的邻居。
当RIP邻居与当前设备直连时不推荐使用peer ip-address命令,因为这样可能会造成对端同时收到同一路由信息的组播(或广播)和单播两种形式的报文。
(1) 进入系统视图。
system-view
(2) 进入RIP视图。
rip [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 配置RIP邻居。
peer ip-address
缺省情况下,RIP不向任何定点地址发送单播更新报文。
(4) 关闭对接收到的RIP路由更新报文进行源IP地址检查的功能。
undo validate-source-address
缺省情况下,对接收到的RIP路由更新报文进行源IP地址检查的功能处于使能状态。
当指定的邻居和本地路由器非直接连接,则必须关闭对更新报文的源地址进行检查的功能。
附加度量值是在RIP路由原来度量值的基础上所增加的度量值(跳数),包括发送附加度量值和接收附加度量值。
· 发送附加度量值:不会改变路由表中的路由度量值,仅当接口发送RIP路由信息时才会添加到发送路由上。
· 接收附加度量值:会影响接收到的路由度量值,接口接收到一条合法的RIP路由时,在将其加入路由表前会把度量值附加到该路由上,当附加度量值与原路由度量值之和大于16时,该条路由的度量值取16。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置接口接收RIP路由时的附加度量值。
rip metricin [ route-policy route-policy-name ] value
缺省情况下,接口接收RIP路由时的附加路由度量值为0。
(4) 配置接口发送RIP路由时的附加度量值。
rip metricout [ route-policy route-policy-name ] value
缺省情况下,接口发送RIP路由时的附加路由度量值为1。
路由聚合是指路由器把同一自然网段内的连续子网的路由聚合成一条路由向外发送,如路由表里有10.1.1.0/24、10.1.2.0/24、10.1.3.0/24三条路由,可以通过配置把它们聚合成一条路由10.1.0.0/16向外发送,这样邻居路由器只接收到一条路由10.1.0.0/16,从而减少了路由表的规模,以及网络上的传输流量。
通过配置路由聚合,可以提高网络的可扩展性以及路由器的处理速度。
RIP-2将多条路由聚合成一条路由时,聚合路由的Metric值将取所有路由Metric的最小值。
在RIP-2中,有两种路由聚合方式:自动路由聚合和手工配置聚合路由。
· 自动路由聚合是指RIP-2将同一自然网段内的不同子网的路由聚合成一条自然掩码的路由向外发送,例如,假设路由表里有10.1.1.0/24、10.1.2.0/24、10.1.3.0/24三条路由,使能RIP-2自动路由聚合功能后,这三条路由聚合成一条自然掩码的路由10.0.0.0/8向外发送。
· 手工路由聚合是指用户可在指定接口配置RIP-2发布一条聚合路由。如果路由落入聚合路由网段内,则RIP-2不发布该路由,只发布配置的聚合路由。例如,假设路由表里有10.1.1.0/24、10.1.2.0/24、10.1.3.0/24三条子网连续的路由,在接口GigabitEthernet1/0/1配置发布一条聚合路由10.1.0.0/16后,这三条路由聚合成一条路由10.1.0.0/16向外发送。缺省情况下,RIP-2的路由将按照自然掩码自动聚合,如果用户在指定接口配置发布一条聚合路由,则必须先关闭自动聚合功能。
路由聚合在某些情况会产生路由环路,所以在路由聚合时需要配置出接口为NULL0的黑洞路由。报文匹配到黑洞路由时,直接丢弃该报文,避免产生环路。
(1) 进入系统视图。
system-view
(2) 进入RIP视图。
rip [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 使能RIP-2自动路由聚合功能。
summary
缺省情况下,RIP-2自动路由聚合功能处于使能状态。
如果路由表里的路由子网不连续,则需要取消自动路由聚合功能,使得RIP-2能够向外发布子网路由和主机路由。
(1) 进入系统视图。
system-view
(2) 进入RIP视图。
rip [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 关闭RIP-2自动路由聚合功能。
undo summary
缺省情况下,RIP-2自动路由聚合功能处于使能状态。
(4) 退回系统视图。
quit
(5) 进入接口视图。
interface interface-type interface-number
(6) 配置发布一条聚合路由。
rip summary-address ip-address { mask-length | mask }
缺省情况下,未配置聚合路由。
在某些特殊情况下,路由器会收到大量来自同一网段的主机路由。这些路由对于路由寻址没有多少作用,却占用了大量的资源,此时可配置RIP禁止接收主机路由,以节省网络资源。功能仅对RIPv2报文携带的路由有效,对RIPv1报文携带的路由无效。
(1) 进入系统视图。
system-view
(2) 进入RIP视图。
rip [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 禁止RIP接收主机路由。
undo host-route
缺省情况下,允许RIP接收主机路由。
用户可以配置RIP以指定度量值向邻居发布一条缺省路由。
· 用户可以在RIP视图下配置RIP进程的所有接口向邻居发布缺省路由,也可以在接口下配置指定RIP接口向邻居发布缺省路由。
· 如果接口没有进行发布缺省路由的相关配置,则以RIP进程下的配置为准,否则将以接口配置为准。
· 如果RIP进程配置了发布缺省路由,但希望该进程下的某个接口不发送缺省路由(只发布普通路由),可以通过在接口下配置rip default-route no-originate命令实现。
配置发布缺省路由的RIP路由器不接收来自RIP邻居的缺省路由。
(1) 进入系统视图。
system-view
(2) 配置RIP发布缺省路由。
¡ 请依次执行以下命令在RIP视图下配置发布缺省路由。
rip [ process-id ] [ vpn-instance vpn-instance-name ]
default-route { only | originate } [ cost cost-value | route-policy route-policy-name ] *
缺省情况下,RIP不向邻居发送缺省路由。
¡ 请依次执行以下命令在接口视图下配置发布缺省路由。
interface interface-type interface-number
rip default-route { { only | originate } [ cost cost-value | route-policy route-policy-name ] * | no-originate }
缺省情况下,RIP接口是否发布缺省路由以RIP进程配置的为准。
路由过滤就是通过指定访问控制列表或IP地址前缀列表,配置入口或出口过滤策略,对接收和发布的路由进行过滤。
(1) 进入系统视图。
system-view
(2) 进入RIP视图。
rip [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 对接收的路由信息进行过滤。
filter-policy { ipv4-acl-number | gateway prefix-list-name | prefix-list prefix-list-name [ gateway prefix-list-name ] } import [ interface-type interface-number ]
缺省情况下,RIP不对接收的路由信息进行过滤。
本命令对从邻居收到的RIP路由进行过滤,没有通过过滤的路由将不被加入路由表,也不向邻居发布该路由。
(4) 对发布的路由信息进行过滤。
filter-policy { ipv4-acl-number | prefix-list prefix-list-name } export [ interface-type interface-number | bgp | direct | [ isis | ospf | rip ] [ process-id ] | static ]
缺省情况下,RIP不对发布的路由信息进行过滤。
本命令对本机所有路由的发布进行过滤,包括使用import-route引入的路由和从邻居学到的RIP路由。
在路由器中可能会运行多个IGP路由协议,如果想让RIP路由具有比从其它路由协议学来的路由更高的优先级,需要配置小的优先级值。优先级的高低将最后决定IP路由表中的路由是通过哪种路由算法获取的最佳路由。
(1) 进入系统视图。
system-view
(2) 进入RIP视图。
rip [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 配置RIP路由的优先级。
preference { preference | route-policy route-policy-name } *
缺省情况下,RIP路由的优先级为100。
如果在路由器上不仅运行RIP,还运行着其它路由协议,可以配置RIP引入其它协议生成的路由,如OSPF、IS-IS、BGP、静态路由或者直连路由。
(1) 进入系统视图。
system-view
(2) 进入RIP视图。
rip [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 引入外部路由。
¡ 配置RIP引入BGP协议的路由。
import-route bgp [ as-number ] [ allow-ibgp ] [ cost cost-value | route-policy route-policy-name | tag tag ] *
¡ 配置RIP引入直连或静态路由。
import-route { direct | static } [ cost cost-value | route-policy route-policy-name | tag tag ] *
¡ 配置RIP引入isis、ospf协议或其他rip进程的路由。
import-route { isis | ospf | rip } [ process-id | all-processes ] [ allow-direct | cost cost-value | route-policy route-policy-name | tag tag ] *
缺省情况下,RIP不引入其它路由。
只能引入路由表中状态为active的路由,是否为active状态可以通过display ip routing-table protocol命令来查看。
(4) (可选)配置引入路由的缺省度量值。
default cost cost-value
缺省情况下,引入路由的缺省度量值为0。
通过调整RIP定时器可以改变RIP网络的收敛速度。
RIP受四个定时器的控制,分别是Update、Timeout、Suppress和Garbage-Collect。
· Update定时器:定义了发送路由更新的时间间隔。
· Timeout定时器:定义了路由老化时间。如果在老化时间内没有收到关于某条路由的更新报文,则该条路由在路由表中的度量值将会被设置为16。
· Suppress定时器:定义了RIP路由处于抑制状态的时长。当一条路由的度量值变为16时,该路由将进入抑制状态。在被抑制状态,只有来自同一邻居且度量值小于16的路由更新才会被路由器接收,取代不可达路由。
· Garbage-Collect定时器:定义了一条路由从度量值变为16开始,直到它从路由表里被删除所经过的时间。在Garbage-Collect时间内,RIP以16作为度量值向外发送这条路由的更新,如果Garbage-Collect超时,该路由仍没有得到更新,则该路由将从路由表中被彻底删除。
定时器值的调整应考虑网络的性能,并在所有运行RIP的路由器上进行统一配置,以免增加不必要的网络流量或引起网络路由震荡。
(1) 进入系统视图。
system-view
(2) 进入RIP视图。
rip [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 配置RIP定时器的值。
timers { garbage-collect garbage-collect-value | suppress suppress-value | timeout timeout-value | update update-value } *
缺省情况下,Garbage-collect定时器的值为120秒,Suppress定时器的值为120秒,Timeout定时器的值为180秒,Update定时器的值为30秒。
通过配置水平分割或毒性逆转功能可以防止路由环路。
· 配置水平分割可以使得从一个接口学到的路由不能通过此接口向外发布,用于避免相邻路由器间的路由环路。
· 配置毒性逆转后,从一个接口学到的路由还可以从这个接口向外发布,但这些路由的度量值会设置为16(即不可达),可以用于避免相邻路由器间的路由环路。
如果同时配置了水平分割和毒性逆转,则只有毒性逆转功能生效。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 使能水平分割功能。
rip split-horizon
缺省情况下,水平分割功能处于使能状态。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 使能毒性逆转功能。
rip poison-reverse
缺省情况下,毒性逆转功能处于关闭状态。
通过配置RIP最大等价路由条数,可以使用多条等价路由对RIP网络进行负载分担。
(1) 进入系统视图。
system-view
(2) 进入RIP视图。
rip [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 配置RIP最大等价路由条数。
maximum load-balancing number
缺省情况下,RIP支持的等价路由的最大条数与系统支持最大等价路由的条数相同。
RIP路由信息变化后将以触发更新的方式通知邻居设备,加速邻居设备的路由收敛。如果路由信息频繁变化,且每次变化都立即发送触发更新,将会占用大量系统资源,并影响路由器的效率。通过调节触发更新的时间间隔,可以抑制由于路由信息频繁变化带来的影响。本命令在路由信息变化不频繁的情况下将连续触发更新的时间间隔缩小到minimum-interval,而在路由信息变化频繁的情况下可以进行相应惩罚,增加incremental-interval×2n-2(n为连续触发更新的次数),将等待时间按照配置的惩罚增量延长,最大不超过maximum-interval。
(1) 进入系统视图。
system-view
(2) 进入RIP视图。
rip [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 配置RIP触发更新的时间间隔。
timer triggered maximum-interval [ minimum-interval [ incremental-interval ] ]
缺省情况下,发送触发更新的最大时间间隔为5秒,最小间隔为50毫秒,增量惩罚间隔为200毫秒。
RIP周期性地将路由信息放在RIP报文中向邻居发送。
如果路由表里的路由条目数量很多,同时发送大量RIP协议报文有可能会对当前设备和网络带宽带来冲击;因此,路由器将RIP协议报文分为多个批次进行发送,并且对RIP接口每次允许发送的RIP协议报文最大个数做出限制。
用户可根据需要配置接口发送RIP报文的时间间隔以及接口一次发送RIP报文的最大个数。
(1) 进入系统视图。
system-view
(2) 配置RIP报文的发送速率。
¡ 请依次执行以下命令在RIP视图下配置所有接口的RIP报文发送速率。
rip [ process-id ] [ vpn-instance vpn-instance-name ]
配置RIP报文的发送速率。
output-delay time count count
缺省情况下,接口发送RIP报文的时间间隔为20毫秒,一次最多发送3个RIP报文。
¡ 请依次执行以下命令在接口视图下配置某个接口的RIP报文发送速率。
interface interface-type interface-number
配置RIP报文的发送速率。
rip output-delay time count count
缺省情况下,接口发送RIP报文的速率以RIP进程配置的为准。
RIP周期性地将路由信息放在RIP报文中向邻居发送,根据RIP报文的最大长度来计算报文中发送的最大路由数。通过设置RIP报文的最大长度,可以合理利用链路带宽。
在配置认证的情况下,如果配置不当可能会造成报文无法发送,建议用户按照下面进行配置:
· 简单验证方式时,RIP报文的最大长度不小于52字节;
· MD5验证方式(使用RFC 2453规定的报文格式)时,RIP报文的最大长度不小于56字节;
· MD5验证方式(使用RFC 2082规定的报文格式)时,RIP报文的最大长度不小于72字节。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置RIP报文的最大长度。
rip max-packet-length value
缺省情况下,接口发送RIP报文的最大长度为512字节。
配置RIP进程绑定MIB功能后,可以通过网管软件对指定的RIP进程进行管理。
(1) 进入系统视图。
system-view
(2) 配置RIP进程绑定MIB。
rip mib-binding process-id
缺省情况下,MIB绑定在进程号最小的RIP进程上。
GR(Graceful Restart,平滑重启)是一种在协议重启或主备倒换时RIP进行平滑重启,保证转发业务不中断的机制。
GR有两个角色:
· GR Restarter:发生协议重启或主备倒换事件且具有GR能力的设备。
· GR Helper:和GR Restarter具有邻居关系,协助完成GR流程的设备。
在普通的路由协议重启的情况下,路由器需要重新学习RIP路由,并更新FIB表,此时会引起网络暂时的中断,基于RIP的GR可以解决这个问题。
应用了GR特性的设备向外发送RIP全部路由表请求报文,重新从邻居处学习RIP路由,在此期间FIB表不变化。在路由协议重启完毕后,设备将重新学到的RIP路由下刷给FIB表,使该设备的路由信息恢复到重启前的状态。
本配置在GR Restarter上进行,启动了RIP的设备缺省就是GR Helper。
设备充当GR Restarter后不能再配置RIP NSR功能。
(1) 进入系统视图。
system-view
(2) 进入RIP视图。
rip [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 使能RIP协议的GR能力。
graceful-restart
缺省情况下,RIP协议的GR能力处于关闭状态。
(4) (可选)配置RIP协议的GR重启间隔时间。
graceful-restart interval interval
缺省情况下,RIP协议的GR重启间隔时间为60秒。
NSR(Nonstop Routing,不间断路由)通过将RIP路由信息从主进程备份到备进程,使设备在发生主备倒换时新主进程可以无缝完成路由的重新生成、下刷,邻接关系不会发生中断,从而避免了主备倒换对转发业务的影响。
GR特性需要周边设备配合才能完成路由信息的恢复,在网络应用中有一定的限制。NSR特性不需要周边设备的配合,网络应用更加广泛。
设备配置了RIP NSR功能后不能再充当GR Restarter。
(1) 进入系统视图。
system-view
(2) 进入RIP视图。
rip [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 使能RIP NSR功能。
non-stop-routing
缺省情况下,RIP NSR功能处于关闭状态。
各个进程的NSR功能是相互独立的,只对本进程生效。如果存在多个RIP进程,建议在各个进程下使能RIP NSR功能。
RIP协议依赖周期性发送路由更新请求作为检测机制,当在指定时间内没有收到路由更新回应时,认为此条路由不再生效,这种方式不能快速响应链路故障。使用BFD(Bidirectional Forwarding Detection,双向转发检测)检测到链路故障时,RIP能快速撤销失效路由,减少对其他业务的影响。关于BFD的介绍和基本功能配置,请参见“网络管理和监控配置指导”中的“BFD”。
目前RIP支持BFD提供了下面几种检测方式:
· echo报文单跳检测方式:直连邻居使用。在对端有RIP路由发送时才能建立BFD会话。
· 指定目的地址的echo报文单跳检测方式:直连邻居使用,并且在接口上直接指定RIP邻居的IP地址。当该接口使能了RIP功能,会建立到指定目的IP地址的BFD会话。在链路出现单通故障时,本特性可以加快路由收敛速度。链路出现故障时,本端设备不再从该接口收发任何RIP报文,链路恢复后,接口将继续发送RIP报文。
· control报文双向检测方式:直连邻居和非直连邻居均可以使用。当两端互有RIP路由发送时,且使能BFD的接口与接收接口为同一接口,邻居之间才能建立BFD会话。
在RIP视图下配置了bfd all-interfaces enable后,如果某接口的链路状态不稳定,可能会导致BFD会话震荡,继而影响网络的稳定性。这种情况下,如需在该接口上关闭RIP的BFD功能,减少对网络稳定性的影响,必须执行rip bfd disable命令。
rip bfd enable命令与rip bfd enable destination命令互斥,不能同时使用。
(1) 进入系统视图。
system-view
(2) 配置echo报文源地址。
bfd echo-source-ip ip-address
缺省情况下,未配置echo报文源地址。
echo报文的源IP地址用户可以任意指定。为了避免对端发送大量的ICMP重定向报文造成网络拥塞,建议配置echo报文的源IP地址不属于该设备任何一个接口所在网段。
本命令的详细情况请参见“可靠性命令参考”中的“BFD”。
(3) 使能BFD功能。请选择其中一项进行配置。
¡ 请依次执行以下命令在RIP视图下使能BFD。
rip [ process-id ] [ vpn-instance vpn-instance-name ]
bfd all-interfaces enable
¡ 请依次执行以下命令在接口视图下使能BFD。
interface interface-type interface-number
rip bfd enable
缺省情况下,RIP的BFD功能处于关闭状态。
本特性只检测本端到RIP直连邻居的链路的连通状况。配置本特性时,指定的目的地址只能是RIP直连邻居的IP地址。
(1) 进入系统视图。
system-view
(2) 配置echo报文源地址。
bfd echo-source-ip ip-address
缺省情况下,未配置echo报文源地址。
echo报文的源IP地址用户可以任意指定。为了避免对端发送大量的ICMP重定向报文造成网络拥塞,建议配置echo报文的源IP地址不属于该设备任何一个接口所在网段。
本命令的详细情况请参见“可靠性命令参考”中的“BFD”。
(3) 进入接口视图。
interface interface-type interface-number
(4) 使能RIP指定目的地址的BFD功能。
rip bfd enable destination ip-address
缺省情况下,RIP的BFD功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 进入RIP视图。
rip [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 配置RIP邻居。
peer ip-address
缺省情况下,RIP不向任何定点地址发送更新报文。
由于peer命令与邻居之间没有对应关系,undo peer操作并不能立刻删除邻居,因此不能立刻删除BFD会话。
(4) 使能BFD功能。请选择其中一项进行配置。
¡ 在运行当前RIP进程的所有接口上使能BFD功能。
bfd all-interfaces enable
¡ 请依次执行以下命令在指定接口上使能BFD功能。
interface interface-type interface-number
rip bfd enable
缺省情况下,RIP的BFD功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 使能BFD功能。请选择其中一项进行配置。
¡ 请依次执行以下命令在RIP视图下使能BFD。
rip [ process-id ] [ vpn-instance vpn-instance-name ]
bfd all-interfaces enable ctrl
¡ 请依次执行以下命令在接口视图下使能BFD。
interface interface-type interface-number
rip bfd enable ctrl
缺省情况下,RIP的BFD功能处于关闭状态。
当RIP网络中的链路或某台路由器发生故障时,数据流量将会被中断,直到RIP根据新的拓扑网络路由收敛完毕后,被中断的流量才能恢复正常的传输。
为了尽可能缩短网络故障导致的流量中断时间,网络管理员可以根据需要配置RIP快速重路由功能。
图1-1 RIP快速重路由功能示意图
如图1-1所示,通过在Router B上配置快速重路由功能,RIP可以为路由指定备份下一跳,当Router B检测到网络故障时,RIP会使用事先获取好的备份下一跳替换失效下一跳,通过备份下一跳来指导报文的转发,从而大大缩短了流量中断时间。在使用备份下一跳指导报文转发的同时,RIP会根据变化后的网络拓扑重新计算路由,网络收敛完毕后,使用新计算出来的最优路由来指导报文转发。
本功能只适合在主链路三层接口up,主链路由双通变为单通或者不通的情况下使用。在主链路三层接口down的情况下,本功能不可用。
单通现象,即一条链路上的两端,有且只有一端可以收到另一端发来的报文,此链路称为单向链路。
RIP快速重路由功能仅对非迭代RIP路由(即从直连邻居学到RIP路由)有效。
等价路由不支持快速重路由功能。
(1) 进入系统视图。
system-view
(2) 配置路由策略。
在路由策略中通过apply fast-reroute backup-interface命令在路由策略中指定备份下一跳。
详细配置请参见“三层技术-IP路由配置指导”中的“路由策略”。
(3) 进入RIP视图。
rip [ process-id ] [ vpn-instance vpn-instance-name ]
(4) 开启RIP快速重路由功能。
fast-reroute route-policy route-policy-name
缺省情况下,RIP快速重路由功能处于关闭状态。
RIP协议的快速重路由特性中,主用链路缺省不使用BFD进行链路故障检测。配置本功能后,将使用BFD进行检测,可以加快RIP协议的收敛速度。
本端使用control报文双向检测方式时,需要对端也使用control报文双向检测方式,才能正常工作。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 使能RIP协议中主用链路的BFD(Ctrl方式)检测功能。
rip primary-path-detect bfd ctrl
缺省情况下,RIP协议中主用链路的BFD(Ctrl方式)检测功能处于关闭状态。
RIP协议的快速重路由特性中,主用链路缺省不使用BFD进行链路故障检测。配置本功能后,将使用BFD进行检测,可以加快RIP协议的收敛速度。
(1) 进入系统视图。
system-view
(2) 配置BFD Echo报文源地址。
bfd echo-source-ip ip-address
缺省情况下,未配置BFD Echo报文源地址。
echo报文的源IP地址用户可以任意指定。建议配置echo报文的源IP地址不属于该设备任何一个接口所在网段。
本命令的详细情况请参见“网络管理和监控命令参考”中的“BFD”。
(3) 进入接口视图。
interface interface-type interface-number
(4) 使能RIP协议中主用链路的BFD(Echo方式)检测功能。
rip primary-path-detect bfd echo
缺省情况下,RIP协议中主用链路的BFD(Echo方式)检测功能处于关闭状态。
RIP-1报文中的有些字段必须为零,称之为零域。用户可配置RIP-1在接收报文时对零域进行检查,零域值不为零的RIP-1报文将不被处理。如果用户能确保所有报文都是可信任的,则可以不进行该项检查,以节省CPU处理时间。
由于RIP-2的报文没有零域,此项配置对RIP-2无效。
(1) 进入系统视图。
system-view
(2) 进入RIP视图。
rip [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 使能RIP-1报文的零域检查功能。
checkzero
缺省情况下,RIP-1报文的零域检查功能处于使能状态。
通过配置对接收到的RIP路由更新报文进行源IP地址检查:
· 对于在接口上接收的报文,RIP将检查该报文源地址和接收接口的IP地址是否处于同一网段,如果不在同一网段则丢弃该报文。
· 对于PPP接口上接收的报文,RIP检查该报文的源地址是否是对端接口的IP地址,如果不是则丢弃该报文。
(1) 进入系统视图。
system-view
(2) 进入RIP视图。
rip [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 使能对接收到的RIP路由更新报文进行源IP地址检查功能。
validate-source-address
缺省情况下,对接收到的RIP路由更新报文进行源IP地址检查功能处于使能状态。
在安全性要求较高的网络环境中,可以通过配置报文的认证方式来对RIP-2报文进行有效性检查和验证。
RIP-2支持三种认证方式:简单认证、MD5认证和keychain认证。关于keychain功能的介绍,请参见“安全配置指导”中的“keychain”。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置RIP-2报文的验证方式。
rip authentication-mode { md5 { rfc2082 { cipher | plain } string key-id | rfc2453 { cipher | plain } string } | simple { cipher | plain } string }
缺省情况下,未配置RIP-2的验证方式。
当RIP的版本为RIP-1时,虽然在接口视图下仍然可以配置验证方式,但由于RIP-1不支持认证,因此该配置不会生效。
在完成上述配置后,在任意视图下执行display命令可以显示配置后RIP的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以重启RIP进程或清除指定RIP进程的统计信息。
表1-1 RIP显示和维护
命令 |
|
显示RIP的当前运行状态及配置信息 |
display rip [ process-id ] |
显示RIP进程的GR状态信息 |
display rip [ process-id ] graceful-restart |
显示RIP进程的NSR状态信息 |
display rip [ process-id ] non-stop-routing |
显示RIP数据库的激活路由 |
display rip process-id database [ ip-address { mask-length | mask } ] |
显示RIP的接口信息 |
display rip process-id interface [ interface-type interface-number ] |
显示RIP进程的邻居信息 |
display rip process-id neighbor [ interface-type interface-number ] |
显示RIP的路由信息 |
display rip process-id route [ ip-address { mask-length | mask } [ verbose ] | peer ip-address | statistics ] |
重启指定RIP进程 |
reset rip process-id process |
清除RIP进程的统计信息 |
reset rip process-id statistics |
· Device A与2.2.2.0/24网段相连,Device B与3.3.3.0/24网段相连。
· Device A与Device B使用RIP-2进行互联,2.2.2.0/24网段内的主机与3.3.3.0/24网段内的主机可以相互通信。
图1-2 RIP基本功能配置组网图
(1) 配置接口IP地址
# 根据组网图中规划的信息,配置各接口的IP地址,具体配置步骤如下。
<DeviceA> system-view
[DeviceA] interface gigabitethernet 1/0/1
[DeviceA-GigabitEthernet1/0/1] ip address 1.1.1.1 255.255.255.0
[DeviceA-GigabitEthernet1/0/1] quit
请参考以上步骤配置其他接口的IP地址,具体配置步骤略。
(2) 配置接口加入安全域
# 根据组网图中规划的信息,将接口加入对应的安全域,具体配置步骤如下。
[DeviceA] security-zone name untrust
[DeviceA-security-zone-Untrust] import interface gigabitethernet 1/0/1
[DeviceA-security-zone-Untrust] quit
[DeviceA] security-zone name trust
[DeviceA-security-zone-Trust] import interface gigabitethernet 1/0/2
[DeviceA-security-zone-Trust] quit
(3) 配置安全策略
a. 配置安全策略放行Untrust与Local安全域之间的流量,用于设备之间可以建立RIP邻居关系。
# 配置名称为riplocalin的安全策略规则,让Device A可以接收Device B发送的RIP协议报文,具体配置步骤如下。
[DeviceA] security-policy ip
[DeviceA-security-policy-ip] rule name riplocalin
[DeviceA-security-policy-ip-0-riplocalin] source-zone untrust
[DeviceA-security-policy-ip-0-riplocalin] destination-zone local
[DeviceA-security-policy-ip-0-riplocalin] service rip
[DeviceA-security-policy-ip-0-riplocalin] action pass
[DeviceA-security-policy-ip-0-riplocalin] quit
# 配置名称为riplocalout的安全策略规则,让Device A可以向Device B发送RIP协议报文,具体配置步骤如下。
[DeviceA-security-policy-ip] rule name riplocalout
[DeviceA-security-policy-ip-1-riplocalout] source-zone local
[DeviceA-security-policy-ip-1-riplocalout] destination-zone untrust
[DeviceA-security-policy-ip-1-riplocalout] service rip
[DeviceA-security-policy-ip-1-riplocalout] action pass
[DeviceA-security-policy-ip-1-riplocalout] quit
b. 配置安全策略放行Trust与Untrust安全域之间的流量,使得2.2.2.0/24网段内的主机与3.3.3.0/24网段内的主机互通。
# 配置名称为trust-untrust的安全策略规则,让2.2.2.0/24网段的主机能够访问3.3.3.0/24网段内的主机。
[DeviceA-security-policy-ip] rule name trust-untrust
[DeviceA-security-policy-ip-2-trust-untrust] source-zone trust
[DeviceA-security-policy-ip-2-trust-untrust] destination-zone untrust
[DeviceA-security-policy-ip-2-trust-untrust] source-ip-subnet 2.2.2.0 24
[DeviceA-security-policy-ip-2-trust-untrust] destination-ip-subnet 3.3.3.0 24
[DeviceA-security-policy-ip-2-trust-untrust] action pass
[DeviceA-security-policy-ip-2-trust-untrust] quit
# 配置名称为untrust-trust的安全策略规则,让3.3.3.0/24网段的主机能够访问2.2.2.0/24网段内的主机。
[DeviceA-security-policy-ip] rule name untrust-trust
[DeviceA-security-policy-ip-3-untrust-trust] source-zone untrust
[DeviceA-security-policy-ip-3-untrust-trust] destination-zone trust
[DeviceA-security-policy-ip-3-untrust-trust] source-ip-subnet 3.3.3.0 24
[DeviceA-security-policy-ip-3-trust-untrust] destination-ip-subnet 2.2.2.0 24
[DeviceA-security-policy-ip-3-untrust-trust] action pass
[DeviceA-security-policy-ip-3-untrust-trust] quit
[DeviceA-security-policy-ip-3] quit
(4) 配置RIP基本功能
[DeviceA] rip
[DeviceA-rip-1] network 1.1.1.0
[DeviceA-rip-1] network 2.2.2.0
[DeviceA-rip-1] version 2
[DeviceA-rip-1] undo summary
[DeviceA-rip-1] quit
(1) 配置接口IP地址
# 根据组网图中规划的信息,配置各接口的IP地址,具体配置步骤如下。
<DeviceB> system-view
[DeviceB] interface gigabitethernet 1/0/1
[DeviceB-GigabitEthernet1/0/1] ip address 1.1.1.2 255.255.255.0
[DeviceB-GigabitEthernet1/0/1] quit
请参考以上步骤配置其他接口的IP地址,具体配置步骤略。
(2) 配置接口加入安全域
# 根据组网图中规划的信息,将接口加入对应的安全域,具体配置步骤如下。
[DeviceB] security-zone name untrust
[DeviceB-security-zone-Untrust] import interface gigabitethernet 1/0/1
[DeviceB-security-zone-Untrust] quit
[DeviceB] security-zone name trust
[DeviceB-security-zone-Trust] import interface gigabitethernet 1/0/2
[DeviceB-security-zone-Trust] quit
(3) 配置安全策略
a. 配置安全策略放行Untrust与Local安全域之间的流量,用于设备之间可以建立RIP邻居关系。
# 配置名称为riplocalin的安全策略规则,让Device B可以接收Device A发送的RIP协议报文,具体配置步骤如下。
[DeviceB] security-policy ip
[DeviceB-security-policy-ip] rule name riplocalin
[DeviceB-security-policy-ip-0-riplocalin] source-zone untrust
[DeviceB-security-policy-ip-0-riplocalin] destination-zone local
[DeviceB-security-policy-ip-0-riplocalin] service rip
[DeviceB-security-policy-ip-0-riplocalin] action pass
[DeviceB-security-policy-ip-0-riplocalin] quit
# 配置名称为riplocalout的安全策略规则,让Device B可以向Device A发送RIP协议报文,具体配置步骤如下。
[DeviceB-security-policy-ip] rule name riplocalout
[DeviceB-security-policy-ip-1-riplocalout] source-zone local
[DeviceB-security-policy-ip-1-riplocalout] destination-zone untrust
[DeviceB-security-policy-ip-1-riplocalout] service rip
[DeviceB-security-policy-ip-1-riplocalout] action pass
[DeviceB-security-policy-ip-1-riplocalout] quit
b. 配置安全策略放行Trust与Untrust安全域之间的流量,使得3.3.3.0/24网段内的主机与2.2.2.0/24网段内的主机互通。
# 配置名称为trust-untrust的安全策略规则,让3.3.3.0/24网段的主机能够访问2.2.2.0/24网段内的主机。
[DeviceB-security-policy-ip] rule name trust-untrust
[DeviceB-security-policy-ip-2-trust-untrust] source-zone trust
[DeviceB-security-policy-ip-2-trust-untrust] destination-zone untrust
[DeviceB-security-policy-ip-2-trust-untrust] source-ip-subnet 3.3.3.0 24
[DeviceB-security-policy-ip-2-trust-untrust] destination-ip-subnet 2.2.2.0 24
[DeviceB-security-policy-ip-2-trust-untrust] action pass
[DeviceB-security-policy-ip-2-trust-untrust] quit
# 配置名称为untrust-trust的安全策略规则,让2.2.2.0/24网段的主机能够访问3.3.3.0/24网段内的主机。
[DeviceB-security-policy-ip] rule name untrust-trust
[DeviceB-security-policy-ip-3-untrust-trust] source-zone untrust
[DeviceB-security-policy-ip-3-untrust-trust] destination-zone trust
[DeviceB-security-policy-ip-3-untrust-trust] source-ip-subnet 2.2.2.0 24
[DeviceB-security-policy-ip-3-untrust-trust] destination-ip-subnet 3.3.3.0 24
[DeviceB-security-policy-ip-3-untrust-trust] action pass
[DeviceB-security-policy-ip-3-untrust-trust] quit
[DeviceB-security-policy-ip-3] quit
(4) 配置RIP基本功能
[DeviceB] rip
[DeviceB-rip-1] version 2
[DeviceB-rip-1] undo summary
[DeviceB-rip-1] quit
[DeviceB] interface gigabitethernet 1/0/1
[DeviceB-GigabitEthernet1/0/1] rip 1 enable
[DeviceB-GigabitEthernet1/0/1] quit
[DeviceB] interface GigabitEthernet1/0/2
[DeviceB-GigabitEthernet1/0/2] rip 1 enable
[DeviceB-GigabitEthernet1/0/2] quit
# 查看Device A的RIP路由表。
[Device A] display rip 1 route
Route Flags: R - RIP
P - Permanent, A - Aging, S - Suppressed, G - Garbage-collect
D - Direct, O - Optimal, F - Flush to RIB
----------------------------------------------------------------------------
Peer 1.1.1.2 on GigabitEthernet1/0/1
Destination/Mask Nexthop Cost Tag Flags Sec
3.3.3.0/24 1.1.1.1 1 0 RAOF 10
Local route
Destination/Mask Nexthop Cost Tag Flags Sec
2.2.2.0/24 0.0.0.0 0 0 RDOF -
1.1.1.0/24 0.0.0.0 0 0 RDOF -
# 2.2.2.0/24网段内的主机与3.3.3.0/24网段内的主机能够互通。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!