03-RIP配置
本章节下载: 03-RIP配置 (558.16 KB)
本文所指的路由器代表运行了路由协议的三层设备。
RIP(Routing Information Protocol,路由信息协议)是一种较为简单的内部网关协议(Interior Gateway Protocol,IGP),主要用于规模较小的网络中,比如校园网以及结构较简单的地区性网络。对于更为复杂的环境和大型网络,一般不使用RIP。
由于RIP的实现较为简单,在配置和维护管理方面也远比OSPF和IS-IS容易,因此在实际组网中仍有广泛的应用。
RIP是一种基于距离矢量(Distance-Vector,D-V)算法的协议,它通过UDP报文进行路由信息的交换,使用的端口号为520。
RIP使用跳数来衡量到达目的地址的距离,跳数称为度量值。在RIP中,路由器到与它直接相连网络的跳数为0,通过一个路由器可达的网络的跳数为1,其余依此类推。为限制收敛时间,RIP规定度量值取0~15之间的整数,大于或等于16的跳数被定义为无穷大,即目的网络或主机不可达。由于这个限制,使得RIP不适合应用于大型网络。
为提高性能,防止产生路由环路,RIP支持水平分割(Split Horizon)和毒性逆转(Poison Reverse)功能。
每个运行RIP的路由器管理一个路由数据库,该路由数据库包含了到所有可达目的地的路由项,这些路由项包含下列信息:
l 目的地址:主机或网络的地址。
l 下一跳地址:为到达目的地,需要经过的相邻路由器的接口IP地址。
l 出接口:本路由器转发报文的出接口。
l 度量值:本路由器到达目的地的开销。
l 路由时间:从路由项最后一次被更新到现在所经过的时间,路由项每次被更新时,路由时间重置为0。
l 路由标记(Route Tag):用于标识外部路由,在路由策略中可根据路由标记对路由信息进行灵活的控制。关于路由策略的详细信息,请参见“三层技术-IP路由配置指导”中的“路由策略”。
RIP受四个定时器的控制,分别是Update、Timeout、Suppress和Garbage-Collect。
l Update定时器,定义了发送路由更新的时间间隔。
l Timeout定时器,定义了路由老化时间。如果在老化时间内没有收到关于某条路由的更新报文,则该条路由在路由表中的度量值将会被设置为16。
l Suppress定时器,定义了RIP路由处于抑制状态的时长。当一条路由的度量值变为16时,该路由将进入抑制状态。在被抑制状态,只有来自同一邻居且度量值小于16的路由更新才会被路由器接收,取代不可达路由。
l Garbage-Collect定时器,定义了一条路由从度量值变为16开始,直到它从路由表里被删除所经过的时间。在Garbage-Collect时间内,RIP以16作为度量值向外发送这条路由的更新,如果Garbage-Collect超时,该路由仍没有得到更新,则该路由将从路由表中被彻底删除。
RIP是一种基于D-V算法的路由协议,由于它向邻居通告的是自己的路由表,存在发生路由环路的可能性。
RIP通过以下机制来避免路由环路的产生:
l 计数到无穷(Counting to infinity):将度量值等于16的路由定义为不可达(infinity)。在路由环路发生时,某条路由的度量值将会增加到16,该路由被认为不可达。
l 水平分割(Split Horizon):RIP从某个接口学到的路由,不会从该接口再发回给邻居路由器。这样不但减少了带宽消耗,还可以防止路由环路。
l 毒性逆转(Poison Reverse):RIP从某个接口学到路由后,将该路由的度量值设置为16(不可达),并从原接口发回邻居路由器。利用这种方式,可以清除对方路由表中的无用信息。
l 触发更新(Triggered Updates):RIP通过触发更新来避免在多个路由器之间形成路由环路的可能,而且可以加速网络的收敛速度。一旦某条路由的度量值发生了变化,就立刻向邻居路由器发布更新报文,而不是等到更新周期的到来。
RIP启动和运行的整个过程可描述如下:
l 路由器启动RIP后,便会向相邻的路由器发送请求报文(Request message),相邻的RIP路由器收到请求报文后,响应该请求,回送包含本地路由表信息的响应报文(Response message)。
l 路由器收到响应报文后,更新本地路由表,同时向相邻路由器发送触发更新报文,通告路由更新信息。相邻路由器收到触发更新报文后,又向其各自的相邻路由器发送触发更新报文。在一连串的触发更新广播后,各路由器都能得到并保持最新的路由信息。
l RIP在缺省情况下每隔30秒向相邻路由器发送本地路由表,运行RIP协议的相邻路由器在收到报文后,对本地路由进行维护,选择一条最佳路由,再向其各自相邻网络发送更新信息,使更新的路由最终能达到全局有效。同时,RIP采用老化机制对超时的路由进行老化处理,以保证路由的实时性和有效性。
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相比,它有以下优势:
l 支持路由标记,在路由策略中可根据路由标记对路由进行灵活的控制。
l 报文中携带掩码信息,支持路由聚合和CIDR(Classless Inter-Domain Routing,无类域间路由)。
l 支持指定下一跳,在广播网上可以选择到最优下一跳地址。
l 支持组播路由发送更新报文,只有RIP-2路由器才能收到更新报文,减少资源消耗。
l 支持对协议报文进行验证,并提供明文验证和MD5验证两种方式,增强安全性。
RIP-2有两种报文传送方式:广播方式和组播方式,缺省将采用组播方式发送报文,使用的组播地址为224.0.0.9。当接口运行RIP-2广播方式时,也可接收RIP-1的报文。
RIP报文由头部(Header)和多个路由表项(Route Entries)部分组成。在一个RIP报文中,最多可以有25个路由表项(如果是RIP-2的验证报文,由于第一个路由表项作为验证项,所以最多可以有24个路由表项)。
RIP-1的报文格式如图1-1所示。
图1-1 RIP-1的报文格式
各字段的解释如下:
l Command:标识报文的类型。值为1时表示Request报文,向邻居请求全部或部分路由信息;值为2表示Response报文,发送全部或部分路由信息,1个Response报文中最多包含25个路由表项。
l Version:RIP的版本号。对于RIP-1来说其值为0x01。
l Must be zero:必须为0字段。
l AFI(Address Family Identifier):地址族标识,其值为2时表示IP协议。
l IP Address:该路由的目的IP地址,可以是自然网段地址、子网地址或主机地址。
l Metric:路由的度量值。
RIP-2的报文格式与RIP-1类似,如图1-2所示。
图1-2 RIP-2的报文格式
其中,与RIP-1不同的字段有:
l Version:RIP的版本号。对于RIP-2来说其值为0x02。
l Route Tag:路由标记。
l IP Address:该路由的目的IP地址,可以是自然网段地址、子网地址或主机地址。
l Subnet Mask:目的地址的掩码。
l Next Hop:如果为0.0.0.0,则表示发布此条路由信息的路由器地址就是最优下一跳地址,否则表示提供了一个比发布此条路由信息的路由器地址更优的下一条地址。
RIP-2为了支持报文验证,使用第一个路由表项(Route Entry)作为验证项,并将AFI字段的值设为0xFFFF标识报文携带认证信息,如图1-3所示。
图1-3 RIP-2的验证报文格式
各字段的解释如下:
l Authentication Type:验证类型。值为2时表示明文验证,值为3时表示MD5验证。
l Authentication:验证字。当使用明文验证时包含了密码信息;当使用MD5验证时包含了Key ID、MD5验证数据长度和序列号的信息。
l RFC 1723中只定义了明文验证方式,关于MD5验证的详细信息,请参见RFC 2453“RIP Version 2”。
l 当RIP的版本为RIP-1时,虽然在接口视图下仍然可以配置验证方式,但由于RIP-1不支持认证,因此该配置不会生效。
目前设备支持以下RIP特性:
l 支持RIP-1和RIP-2
l 支持RIP多实例
它可以作为VPN内部路由协议,在BGP/MPLS VPN网络中的CE和PE之间运行,相关概念及应用请参见“MPLS配置指导”中的“MPLS L3VPN”。
l RIP快速重路由
l RIP与BFD联动
RIP协议依赖周期性发送路由更新请求作为检测机制,当在指定时间内没有收到路由更新回应时,认为此条路由不再生效,这种方式不能快速响应链路故障。使用BFD(Bidirectional Forwarding Detection,双向转发检测)检测到链路故障时,RIP能快速撤销失效路由,减少对其他业务的影响。
与RIP相关的协议规范有:
l RFC 1058:Routing Information Protocol
l RFC 1723:RIP Version 2 - Carrying Additional Information
l RFC 1721:RIP Version 2 Protocol Analysis
l RFC 1722:RIP Version 2 Protocol Applicability Statement
l RFC 1724:RIP Version 2 MIB Extension
l RFC 2082:RIP-2 MD5 Authentication
l RFC 2453:RIP Version 2
表1-1 RIP配置任务简介
配置任务 |
说明 |
详细配置 |
|
配置RIP的基本功能 |
必选 |
||
配置RIP路由特性 |
配置接口附加度量值 |
可选 |
|
配置RIP-2路由聚合 |
可选 |
||
禁止RIP接收主机路由 |
可选 |
||
配置RIP发布缺省路由 |
可选 |
||
配置RIP对接收/发布的路由进行过滤 |
可选 |
||
配置RIP协议优先级 |
可选 |
||
配置RIP引入外部路由 |
可选 |
||
调整和优化RIP网络 |
配置RIP定时器 |
可选 |
|
配置水平分割和毒性逆转 |
可选 |
||
配置最大等价路由条数 |
可选 |
||
配置RIP-1报文的零域检查 |
可选 |
||
配置源地址检查 |
可选 |
||
配置RIP-2报文的认证方式 |
可选 |
||
配置RIP邻居 |
可选 |
||
配置RIP和MIB绑定 |
可选 |
||
配置RIP报文的发送速率 |
可选 |
||
配置RIP快速重路由功能 |
可选 |
||
配置RIP与BFD联动 |
echo报文单跳检测 |
可选 |
|
control报文双向检测 |
可选 |
在配置RIP的基本功能之前,需完成以下任务:
l 配置链路层协议
l 配置接口的网络层地址,使相邻节点的网络层可达
表1-2 启动RIP,配置指定的接口运行RIP
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
创建RIP进程并进入RIP视图 |
rip [ process-id ] [ vpn-instance vpn-instance-name ] |
必选 缺省情况下,RIP进程处于关闭状态 |
在指定网段接口上使能RIP |
network network-address |
必选 缺省情况下,接口上的RIP功能处于关闭状态 |
l 如果在启动RIP前在接口视图下配置了RIP相关命令,这些配置只有在RIP启动后才会生效。
l RIP只在指定网段的接口上运行;对于不在指定网段上的接口,RIP既不在它上面接收和发送路由,也不将它的接口路由转发出去。因此,RIP启动后必须指定其工作网段。
l network 0.0.0.0命令用来在所有接口上使能RIP。
l RIP不支持将同一物理接口下的不同网段使能到不同的RIP进程中。
用户可对接口的工作状态进行配置:
l 配置接口工作在抑制状态,即接口只接收路由更新报文而不发送路由更新报文
l 配置接口接收RIP报文
l 配置接口发送RIP报文
表1-3 配置接口的工作状态
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIP视图 |
rip [ process-id ] [ vpn-instance vpn-instance-name ] |
- |
配置接口工作在抑制状态 |
silent-interface { interface-type interface-number | all } |
可选 缺省情况下,所有使能RIP的接口发送路由更新报文 |
退回系统视图 |
quit |
- |
进入接口视图 |
interface interface-type interface-number |
- |
允许接口接收RIP报文 |
rip input |
可选 缺省情况下,所有使能RIP的接口接收RIP报文 |
允许接口发送RIP报文 |
rip output |
可选 缺省情况下,所有使能RIP的接口发送RIP报文 |
用户可以在RIP视图下配置RIP版本,也可在接口上配置RIP版本:
l 当全局和接口都没有进行RIP版本配置时,接口发送RIP-1广播报文,可以接收RIP-1广播/单播报文、RIP-2广播/组播/单播报文。
l 如果接口没有进行RIP版本配置,接口运行的RIP版本将以全局配置的版本为准,如果希望接口配置的RIP版本与全局配置的不一样,则进入接口视图配置接口运行的RIP版本。
l 当接口运行的RIP版本为RIP-1时,发送RIP-1广播报文,可以接收RIP-1广播/单播报文。
l 当接口运行的RIP版本为RIP-2且工作在组播方式时,发送RIP-2组播报文,可以接收RIP-2广播/组播/单播报文。
l 当接口运行的RIP版本为RIP-2且工作在广播方式时,发送RIP-2广播报文,可以接收RIP-1广播/单播报文、RIP-2广播/组播/单播报文。
表1-4 配置RIP版本号
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIP视图 |
rip [ process-id ] [ vpn-instance vpn-instance-name ] |
- |
配置全局RIP版本 |
version { 1 | 2 } |
可选 缺省情况下,如果接口配置了RIP版本,以接口配置的为准,如果接口也没有配置,接口只能发送RIP-1广播报文,可以接收RIP-1广播/单播报文、RIP-2广播/组播/单播报文 |
退回系统视图 |
quit |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置接口运行的RIP版本 |
rip version { 1 | 2 [ broadcast | multicast ] } |
可选 缺省情况下,如果没有配置接口运行的RIP版本,接口运行的RIP版本以全局配置的为准;如果也没有进行全局RIP版本的配置,接口只能发送RIP-1广播报文,可以接收RIP-1广播/单播报文、RIP-2广播/组播/单播报文 |
在实际应用中,有时候需要对RIP路由信息进行更为精确的控制以满足复杂网络环境的需要。
在配置之前,需完成以下任务:
l 配置接口的网络层地址,使相邻节点网络层可达
l 配置RIP基本功能
附加度量值是在RIP路由原来度量值的基础上所增加的度量值(跳数),包括发送附加度量值和接收附加度量值。发送附加度量值不会改变路由表中的路由度量值,仅当接口发送RIP路由信息时才会添加到发送路由上;接收附加度量值会影响接收到的路由度量值,接口接收到一条合法的RIP路由时,在将其加入路由表前会把度量值附加到该路由上,当附加度量值与原路由度量值之和大于16,该条路由的度量值取16。
表1-5 配置接口附加度量值
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置接口接收RIP路由时的附加度量值 |
rip metricin [ route-policy route-policy-name ] value |
可选 缺省情况下,接口接收RIP路由时的附加度量值为0 |
配置接口发送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向外发送。
表1-6 配置自动路由聚合
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIP视图 |
rip [ process-id ] [ vpn-instance vpn-instance-name ] |
- |
使能RIP-2自动路由聚合功能 |
summary |
可选 缺省情况下,RIP-2自动路由聚合功能处于使能状态 如果路由表里的路由子网不连续,则需要取消自动路由聚合功能,使得RIP-2能够向外发布子网路由和主机路由 |
用户可在指定接口配置RIP-2发布一条聚合路由。
聚合路由的目的地址和掩码进行与运算到一个网络地址,RIP-2将对落入该网段内的路由进行聚合,接口只发布聚合后的路由。
例如,假设路由表里有10.1.1.0/24、10.1.2.0/24、10.1.3.0/24三条子网连续的路由,在接口Vlan-interface11配置发布一条聚合路由10.1.0.0/16后,这三条路由聚合成一条路由10.1.0.0/16向外发送。
缺省情况下,RIP-2的路由将按照自然掩码自动聚合,如果用户在指定接口配置发布一条聚合路由,则必须先关闭自动聚合功能。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIP视图 |
rip [ process-id ] [ vpn-instance vpn-instance-name ] |
- |
关闭RIP-2自动路由聚合功能 |
undo summary |
必选 缺省情况下,RIP-2自动路由聚合功能处于使能状态 |
退至系统视图 |
quit |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置发布一条聚合路由 |
rip summary-address ip-address { mask | mask-length } |
必选 |
在某些特殊情况下,路由器会收到大量来自同一网段的主机路由。这些路由对于路由寻址没有多少作用,却占用了大量的资源,此时可配置RIP禁止接收主机路由,以节省网络资源。
表1-8 禁止RIP接收主机路由
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIP视图 |
rip [ process-id ] [ vpn-instance vpn-instance-name ] |
- |
禁止RIP接收主机路由 |
undo host-route |
必选 缺省情况下,允许RIP接收主机路由 |
禁止接收主机路由仅对RIPv2有效,对RIPv1无效。
用户可以配置RIP以指定度量值向邻居发布一条缺省路由。
l 用户可以在RIP视图下配置RIP进程的所有接口向邻居发布缺省路由,也可以在接口下配置指定RIP接口向邻居发布缺省路由。
l 如果接口没有进行发布缺省路由的相关配置,则以RIP进程下的配置为准,否则将以接口配置为准。
l 如果RIP进程配置了发布缺省路由,但希望该进程下的某个接口不发送缺省路由(只发布普通路由),可以通过在接口下配置rip default-route no-originate命令实现。
表1-9 配置RIP发布缺省路由
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIP视图 |
rip [ process-id ] [ vpn-instance vpn-instance-name ] |
- |
配置RIP发布缺省路由 |
default-route { only | originate } [ cost cost ] |
可选 缺省情况下,RIP不向邻居发送缺省路由 |
退回系统视图 |
quit |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置RIP接口发布缺省路由 |
rip default-route { { only | originate } [ cost cost ] | no-originate } |
可选 缺省情况下,RIP接口是否发布缺省路由以RIP进程配置为准 |
配置发布缺省路由的RIP路由器不接收来自RIP邻居的缺省路由。
路由器提供路由信息过滤功能,通过指定访问控制列表和地址前缀列表,可以配置入口或出口过滤策略,对接收和发布的路由进行过滤。在接收路由时,还可以指定只接收来自某个邻居的RIP报文。
表1-10 配置RIP对接收/发布的路由进行过滤
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIP视图 |
rip [ process-id ] [ vpn-instance vpn-instance-name ] |
- |
对接收的路由信息进行过滤 |
filter-policy { acl-number | gateway ip-prefix-name | ip-prefix ip-prefix-name [ gateway ip-prefix-name ] } import [ interface-type interface-number ] |
必选 缺省情况下,RIP不对接收的路由信息进行过滤 |
对发布的路由信息进行过滤 |
filter-policy { acl-number | ip-prefix ip-prefix-name } export [ protocol [ process-id ] | interface-type interface-number ] |
必选 缺省情况下,RIP不对发布的路由信息进行过滤 |
l filter-policy import命令对从邻居收到的RIP路由进行过滤,没有通过过滤的路由将不被加入路由表,也不向邻居发布该路由。
l filter-policy export命令对本机所有路由的发布进行过滤,包括使用import-route引入的路由和从邻居学到的RIP路由。
在路由器中可能会运行多个IGP路由协议,如果想让RIP路由具有比从其它路由协议学来的路由更高的优先级,需要配置小的优先级值。优先级的高低将最后决定IP路由表中的路由是通过哪种路由算法获取的最佳路由。
表1-11 配置RIP协议优先级
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIP视图 |
rip [ process-id ] [ vpn-instance vpn-instance-name ] |
- |
配置RIP路由的优先级 |
preference [ route-policy route-policy-name ] value |
可选 缺省情况下,RIP路由的优先级为100 |
如果在路由器上不仅运行RIP,还运行着其它路由协议,可以配置RIP引入其它协议生成的路由,如OSPF、ISIS、BGP、静态路由或者直连路由。
表1-12 配置RIP引入外部路由
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIP视图 |
rip [ process-id ] [ vpn-instance vpn-instance-name ] |
- |
配置引入路由的缺省度量值 |
default cost value |
可选 缺省情况下,引入路由的缺省度量值为0 |
引入外部路由 |
import-route protocol [ process-id | all-processes | allow-ibgp ] [ cost cost | route-policy route-policy-name | tag tag ] * |
必选 缺省情况下,RIP不引入其它路由 |
只能引入路由表中状态为active的路由,是否为active状态可以通过display ip routing-table protocol命令来查看。
在某些特殊的网络环境中,需要对RIP网络的性能进行调整和优化,在调整和优化RIP网络之前,需完成以下任务:
l 配置接口的网络层地址,使相邻节点网络层可达
l 配置RIP基本功能
通过调整RIP定时器可以改变RIP网络的收敛速度。
表1-13 配置RIP定时器
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIP视图 |
rip [ process-id ] [ vpn-instance vpn-instance-name ] |
- |
配置RIP定时器的值 |
timers { garbage-collect garbage-collect-value | suppress suppress-value | timeout timeout-value | update update-value } * |
可选 缺省情况下: l Update定时器的值为30秒 l Timeout定时器的值为180秒 l Suppress定时器的值为120秒 l Garbage-collect定时器的值为120秒 |
在配置RIP定时器时需要注意,定时器值的调整应考虑网络的性能,并在所有运行RIP的路由器上进行统一配置,以免增加不必要的网络流量或引起网络路由震荡。
如果同时配置了水平分割和毒性逆转,则只有毒性逆转功能生效。
通过配置水平分割或毒性逆转功能可以防止路由环路。
配置水平分割可以使得从一个接口学到的路由不能通过此接口向外发布,用于避免相邻路由器间的路由环路。
表1-14 配置水平分割
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
使能水平分割功能 |
rip split-horizon |
可选 缺省情况下,水平分割功能处于使能状态 |
配置毒性逆转后,从一个接口学到的路由还可以从这个接口向外发布,但这些路由的度量值会设置为16(即不可达),可以用于避免相邻路由器间的路由环路。
表1-15 配置毒性逆转
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
使能毒性逆转功能 |
rip poison-reverse |
必选 缺省情况下,毒性逆转功能处于关闭状态 |
通过配置最大等价路由跳数,可以使用多条等价路由对RIP网络进行负载分担。
表1-16 配置最大等价路由条数
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIP视图 |
rip [ process-id ] [ vpn-instance vpn-instance-name ] |
- |
配置RIP最大等价路由条数 |
maximum load-balancing number |
可选 缺省值为8 |
RIP-1报文中的有些字段必须为零,称之为零域。用户可配置RIP-1在接收报文时对零域进行检查,零域值不为零的RIP-1报文将不被处理。如果用户能确保所有报文都是可信任的,则可以不进行该项检查,以节省CPU处理时间。
由于RIP-2的报文没有零域,此项配置对RIP-2无效。
表1-17 配置RIP-1报文的零域检查
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIP视图 |
rip [ process-id ] [ vpn-instance vpn-instance-name ] |
- |
使能RIP-1报文的零域检查功能 |
checkzero |
可选 缺省情况下,RIP-1报文的零域检查功能处于使能状态 |
通过配置对接收到的RIP路由更新报文进行源IP地址检查:对于在接口上接收的报文,RIP将检查该报文源地址和接收接口的IP地址是否处于同一网段,如果不在同一网段则丢弃该报文。
表1-18 配置源地址检查
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIP视图 |
rip [ process-id ] [ vpn-instance vpn-instance-name ] |
- |
使能对接收到的RIP路由更新报文进行源IP地址检查功能 |
validate-source-address |
可选 缺省情况下,对接收到的RIP路由更新报文进行源IP地址检查功能处于使能状态 |
当存在RIP非直连的邻居时,应该取消源地址检查。
在安全性要求较高的网络环境中,可以通过配置报文的认证方式来对RIP-2报文进行有效性检查和验证。
RIP-2支持两种认证方式:明文认证和MD5密文认证。
明文认证不能提供安全保障,未加密的认证字随报文一同传送,所以明文认证不能用于安全性要求较高的情况。
表1-19 配置RIP-2报文的认证方式
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置RIP-2报文的认证方式 |
rip authentication-mode { md5 { rfc2082 key-string key-id | rfc2453 key-string } | simple password } |
必选 |
当RIP的版本为RIP-1时,虽然在接口视图下仍然可以配置验证方式,但由于RIP-1不支持认证,因此该配置不会生效。
通常情况下,RIP使用广播或组播地址发送报文,如果在不支持广播或组播报文的链路上运行RIP,则必须手工指定RIP的邻居。
表1-20 配置RIP邻居
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIP视图 |
rip [ process-id ] [ vpn-instance vpn-instance-name ] |
- |
配置RIP邻居 |
peer ip-address |
必选 |
取消对接收到的RIP路由更新报文进行源IP地址检查操作 |
undo validate-source-address |
必选 缺省情况下,对接收到的RIP路由更新报文进行源IP地址检查 |
l 当RIP邻居与当前设备直连时不推荐使用peer ip-address命令,因为这样可能会造成对端同时收到同一路由信息的组播(或广播)和单播两种形式的报文。
l 当指定的邻居和本地路由器非直接连接,则必须取消对更新报文的源地址进行检查。
通过将MIB操作绑定在指定的RIP进程上,可以让指定的RIP进程接收SNMP请求。
表1-21 配置RIP和MIB绑定
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置RIP和MIB绑定 |
rip mib-binding process-id |
可选 缺省情况下,MIB操作绑定在RIP进程1上 |
RIP周期性地将路由信息放在RIP报文中向邻居发送。
如果路由表里的路由条目数量很多,同时发送大量RIP协议报文有可能会对当前设备和网络带宽带来冲击;因此,路由器将RIP协议报文分为多个批次进行发送,并且对RIP接口每次允许发送的RIP协议报文最大个数做出限制。
用户可根据需要配置接口发送RIP报文的时间间隔以及接口一次发送RIP报文的最大个数。
表1-22 配置RIP报文的发送速率
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
启动RIP并进入RIP视图 |
rip [ process-id ] [ vpn-instance vpn-instance-name ] |
- |
配置RIP报文的发送速率 |
output-delay time count count |
可选 缺省情况下,接口发送RIP报文的时间间隔为20毫秒,一次最多发送3个RIP报文 |
l RIP支持快速重路由功能仅对非迭代RIP路由(即从直连邻居学到RIP路由)有效。
l RIP支持快速重路由功能不能与RIP支持BFD监测同时使用,否则可能导致快速重路由功能失效。
当RIP网络中的链路或某台路由器发生故障时,数据流量将会被中断,直到RIP根据新的拓扑网络路由收敛完毕后,被中断的流量才能恢复正常的传输。
为了尽可能缩短网络故障导致的流量中断时间,网络管理员可以根据需要配置RIP快速重路由功能。
图1-4 RIP快速重路由功能示意图
如图1-4所示,通过在Router B上配置快速重路由功能,RIP可以为路由指定备份下一跳,当Router B探测到网络故障时,RIP会使用事先获取好的备份下一跳替换失效下一跳,通过备份下一跳来指导报文的转发,从而大大缩短了流量中断时间。在使用备份下一跳指导报文转发的同时,RIP会根据变化后的网络拓扑重新计算路由,网络收敛完毕后,使用新计算出来的最优路由来指导报文转发。
要配置快速重路由功能,网络管理员需要配置路由策略,通过apply fast-reroute backup-interface命令在路由策略中指定备份下一跳;关于apply fast-reroute backup-interface命令以及路由策略的相关配置,请参见“三层技术-IP路由配置指导”中的“路由策略”。
表1-23 配置RIP快速重路由功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置BFD Echo报文源地址 |
bfd echo-source-ip ip-address |
必选 缺省情况下,没有配置BFD Echo报文源地址 |
进入RIP视图 |
rip [ process-id ] [ vpn-instance vpn-instance-name ] |
- |
配置RIP快速重路由功能 |
fast-reroute route-policy route-policy-name |
必选 缺省情况下,RIP快速重路由功能处于关闭状态 |
关于BFD的介绍和基本功能配置,请参见“可靠性配置指导”中的“BFD”。
RIP支持BFD提供了两种检测方式:
l 直连邻居采用echo报文单跳检测方式,在对端有路由发送时才能建立BFD会话。
l 非直连邻居采用control报文双向检测方式,当两端互有路由发送时,且使能BFD的接口与接收接口为同一接口,邻居之间才能建立BFD会话。
表1-24 配置RIP与BFD联动(echo报文单跳检测)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置echo报文源地址 |
bfd echo-source-ip ip-address |
必选 缺省情况下,没有配置echo报文源地址 |
进入接口视图 |
interface interface-type interface-number |
- |
使能BFD功能 |
rip bfd enable |
必选 缺省情况下,BFD功能处于关闭状态 |
表1-25 配置RIP与BFD联动(control报文双向检测)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建RIP进程并进入RIP视图 |
rip [ process-id ] [ vpn-instance vpn-instance-name ] |
必选 缺省情况下,RIP进程处于关闭状态 |
配置RIP邻居 |
peer ip-address |
必选 缺省情况下,RIP不向任何定点地址发送更新报文 |
进入接口视图 |
interface interface-type interface-number |
- |
使能BFD功能 |
rip bfd enable |
必选 缺省情况下,BFD功能处于关闭状态 |
l 当检测RIP的会话两端在直连网段(即IP报文的一跳),适合采用BFD的echo单向检测方式,但是,经过多跳到达邻居时echo方式则会失效。
l 由于peer命令与邻居之间没有对应关系,undo peer操作并不能立刻删除邻居,因此不能立刻删除BFD会话。
在完成上述配置后,在任意视图下执行display命令可以显示配置后RIP的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以重启RIP进程或清除指定RIP进程的统计信息。
表1-26 RIP显示和维护
命令 |
|
显示RIP的当前运行状态及配置信息 |
display rip [ process-id | vpn-instance vpn-instance-name ] [ | { begin | exclude | include } regular-expression ] |
显示RIP发布数据库的所有激活路由 |
display rip process-id database [ | { begin | exclude | include } regular-expression ] |
显示RIP的接口信息 |
display rip process-id interface [ interface-type interface-number ] [ | { begin | exclude | include } regular-expression ] |
显示指定RIP进程的路由信息 |
display rip process-id route [ ip-address { mask | mask-length } | peer ip-address | statistics ] [ | { begin | exclude | include } regular-expression ] |
重启RIP进程 |
reset rip process-id process |
清除指定RIP进程的统计信息 |
reset rip process-id statistics |
如图1-5所示,要求在Switch A和Switch B的所有接口上使能RIP,并使用RIP-2进行网络互连。
图1-5 配置RIP的版本
(1) 配置各接口的IP地址(略)
(2) 配置RIP基本功能
# 配置Switch A。
[SwitchA] rip
[SwitchA-rip-1] network 192.168.1.0
[SwitchA-rip-1] network 172.16.0.0
[SwitchA-rip-1] network 172.17.0.0
# 配置Switch B。
[SwitchB] rip
[SwitchB-rip-1] network 192.168.1.0
[SwitchB-rip-1] network 10.0.0.0
# 查看Switch A的RIP路由表。
[SwitchA] display rip 1 route
Route Flags: R - RIP, T - TRIP
P - Permanent, A - Aging, S - Suppressed, G - Garbage-collect
----------------------------------------------------------------------------
Peer 192.168.1.2 on Vlan-interface100
Destination/Mask Nexthop Cost Tag Flags Sec
10.0.0.0/8 192.168.1.2 1 0 RA 11
从路由表中可以看出,RIP-1发布的路由信息使用的是自然掩码。
(3) 配置RIP的版本
# 在Switch A上配置RIP-2。
[SwitchA] rip
[SwitchA-rip-1] version 2
[SwitchA-rip-1] undo summary
# 在Switch B上配置RIP-2。
[SwitchB] rip
[SwitchB-rip-1] version 2
[SwitchB-rip-1] undo summary
# 查看Switch A的RIP路由表。
[SwitchA] display rip 1 route
Route Flags: R - RIP, T - TRIP
P - Permanent, A - Aging, S - Suppressed, G - Garbage-collect
----------------------------------------------------------------------------
Peer 192.168.1.2 on Vlan-interface100
Destination/Mask Nexthop Cost Tag Flags Sec
10.0.0.0/8 192.168.1.2 1 0 RA 50
10.2.1.0/24 192.168.1.2 1 0 RA 16
10.1.1.0/24 192.168.1.2 1 0 RA 16
从路由表中可以看出,RIP-2发布的路由中带有更为精确的子网掩码信息。
由于RIP路由信息的老化时间较长,所以在配置RIP-2版本后的一段时间里,路由表中可能还会存在RIP-1的路由信息。
l Switch B上运行两个RIP进程:RIP 100和RIP 200。Switch B通过RIP 100和Switch A交换路由信息,通过RIP 200和Switch C交换路由信息。
l 在Switch B上配置RIP进程200引入外部路由,引入直连路由和RIP进程100的路由,使得Switch C能够学习到达10.2.1.0/24和11.1.1.0/24的路由,但Switch A不能学习到达12.3.1.0/24和16.4.1.0/24的路由。
l 在Switch B配置过滤策略,对引入的RIP 100的一条路由(10.2.1.1/24)进行过滤,使其不发布给Switch C。
图1-6 配置RIP引入外部路由组网图
(1) 配置各接口的IP地址(略)
(2) 配置RIP基本功能
# 在Switch A上启动RIP进程100,并配置RIP版本号为2。
<SwitchA> system-view
[SwitchA] rip 100
[SwitchA-rip-100] network 10.0.0.0
[SwitchA-rip-100] network 11.0.0.0
[SwitchA-rip-100] version 2
[SwitchA-rip-100] undo summary
[SwitchA-rip-100] quit
# 在Switch B上启动两个RIP进程,进程号分别为100和200,并配置RIP版本号为2。
<SwitchB> system-view
[SwitchB] rip 100
[SwitchB-rip-100] network 11.0.0.0
[SwitchB-rip-100] version 2
[SwitchB-rip-100] undo summary
[SwitchB-rip-100] quit
[SwitchB] rip 200
[SwitchB-rip-200] network 12.0.0.0
[SwitchB-rip-200] version 2
[SwitchB-rip-200] undo summary
[SwitchB-rip-200] quit
# 在Switch C上启动RIP进程200,并配置RIP版本号为2。
<SwitchC> system-view
[SwitchC] rip 200
[SwitchC-rip-200] network 12.0.0.0
[SwitchC-rip-200] network 16.0.0.0
[SwitchC-rip-200] version 2
[SwitchC-rip-200] undo summary
# 查看Switch C的路由表信息。
[SwitchC] display ip routing-table
Routing Tables: Public
Destinations : 6 Routes : 6
Destination/Mask Proto Pre Cost NextHop Interface
12.3.1.0/24 Direct 0 0 12.3.1.2 Vlan200
12.3.1.2/32 Direct 0 0 127.0.0.1 InLoop0
16.4.1.0/24 Direct 0 0 16.4.1.1 Vlan400
16.4.1.1/32 Direct 0 0 127.0.0.1 InLoop0
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
(3) 配置RIP引入外部路由
# 在Switch B配置RIP进程200引入外部路由,引入直连路由和RIP进程100的路由。
[SwitchB] rip 200
[SwitchB-rip-200] import-route rip 100
[SwitchB-rip-200] import-route direct
[SwitchB-rip-200] quit
# 查看路由引入后Switch C的路由表信息。
[SwitchC] display ip routing-table
Routing Tables: Public
Destinations : 8 Routes : 8
Destination/Mask Proto Pre Cost NextHop Interface
10.2.1.0/24 RIP 100 1 12.3.1.1 Vlan200
11.1.1.0/24 RIP 100 1 12.3.1.1 Vlan200
12.3.1.0/24 Direct 0 0 12.3.1.2 Vlan200
12.3.1.2/32 Direct 0 0 127.0.0.1 InLoop0
16.4.1.0/24 Direct 0 0 16.4.1.1 Vlan400
16.4.1.1/32 Direct 0 0 127.0.0.1 InLoop0
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
(4) 配置RIP对引入的路由进行过滤
# 在Switch B上配置ACL,并对引入的RIP进程100的路由进行过滤,使其不发布给Switch C。
[SwitchB] acl number 2000
[SwitchB-acl-basic-2000] rule deny source 10.2.1.1 0.0.0.255
[SwitchB-acl-basic-2000] rule permit
[SwitchB-acl-basic-2000] quit
[SwitchB] rip 200
[SwitchB-rip-200] filter-policy 2000 export rip 100
# 查看过滤后Switch C的路由表。
[SwitchC] display ip routing-table
Routing Tables: Public
Destinations : 7 Routes : 7
Destination/Mask Proto Pre Cost NextHop Interface
11.1.1.0/24 RIP 100 1 12.3.1.1 Vlan200
12.3.1.0/24 Direct 0 0 12.3.1.2 Vlan200
12.3.1.2/32 Direct 0 0 127.0.0.1 InLoop0
16.4.1.0/24 Direct 0 0 16.4.1.1 Vlan400
16.4.1.1/32 Direct 0 0 127.0.0.1 InLoop0
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
l 在Switch A、Switch B、Switch C、Switch D和Switch E的所有接口上使能RIP,并使用RIP-2进行网络互连。
l Switch A有两条链路可以到达Switch D,其中,通过Switch B到达Switch D的链路比通过Switch C到达Switch D的链路更加稳定。通过在Switch A的Vlan-interface200上配置接口接收RIP路由的附加度量值,使得Switch A优选从Switch B学到的1.1.5.0/24网段的路由。
图1-7 配置RIP接口附加度量值
(1) 配置各接口的地址(略)
(2) 配置RIP基本功能
# 配置Switch A。
<SwitchA> system-view
[SwitchA] rip 1
[SwitchA-rip-1] network 1.0.0.0
[SwitchA-rip-1] version 2
[SwitchA-rip-1] undo summary
[SwitchA-rip-1] quit
# 配置Switch B。
<SwitchB> system-view
[SwitchB] rip 1
[SwitchB-rip-1] network 1.0.0.0
[SwitchB-rip-1] version 2
[SwitchB-rip-1] undo summary
# 配置Switch C。
<SwitchC> system-view
[SwitchB] rip 1
[SwitchC-rip-1] network 1.0.0.0
[SwitchC-rip-1] version 2
[SwitchC-rip-1] undo summary
# 配置Switch D。
<SwitchD> system-view
[SwitchD] rip 1
[SwitchD-rip-1] network 1.0.0.0
[SwitchD-rip-1] version 2
[SwitchD-rip-1] undo summary
# 配置Switch E。
<SwitchE> system-view
[SwitchE] rip 1
[SwitchE-rip-1] network 1.0.0.0
[SwitchE-rip-1] version 2
[SwitchE-rip-1] undo summary
# 查看Switch A的IP路由表。
[SwitchA] display rip 1 database
1.0.0.0/8, cost 0, ClassfulSumm
1.1.1.0/24, cost 0, nexthop 1.1.1.1, Rip-interface
1.1.2.0/24, cost 0, nexthop 1.1.2.1, Rip-interface
1.1.3.0/24, cost 1, nexthop 1.1.1.2
1.1.4.0/24, cost 1, nexthop 1.1.2.2
1.1.5.0/24, cost 2, nexthop 1.1.1.2
1.1.5.0/24, cost 2, nexthop 1.1.2.2
可以看到,到达网段1.1.5.0/24有两条RIP路由,下一跳分别是Switch B(IP地址为1.1.1.2)和Switch C(IP地址为1.1.2.2),cost值都是2;到达网段1.1.4.0/24的下一跳是Switch B,cost为1。
(3) 配置RIP接口附加度量值
# 在Switch A上配置接口Vlan-interface200的接口附加度量值为3。
[SwitchA] interface vlan-interface 200
[SwitchA-Vlan-interface200] rip metricin 3
[SwitchA-Vlan-interface200] display rip 1 database
1.0.0.0/8, cost 0, ClassfulSumm
1.1.1.0/24, cost 0, nexthop 1.1.1.1, Rip-interface
1.1.2.0/24, cost 0, nexthop 1.1.2.1, Rip-interface
1.1.3.0/24, cost 1, nexthop 1.1.1.2
1.1.4.0/24, cost 2, nexthop 1.1.1.2
1.1.5.0/24, cost 2, nexthop 1.1.1.2
可以看到,到达网段1.1.5.0/24的RIP路由仅有一条,下一跳是Switch B(IP地址为1.1.1.2),cost值为2。
l Switch A、Switch B运行OSPF,Switch D运行RIP,Switch C同时运行OSPF和RIP。
l 在Switch C上配置RIP进程引入OSPF路由,使Switch D有到达10.1.1.0/24、10.2.1.0/24、10.5.1.0/24和10.6.1.0/24网段的路由。
l 为了减小Switch D的路由表规模,在Switch C上配置路由聚合,只发布聚合后的路由10.0.0.0/8。
图1-8 配置RIP发布聚合路由
(1) 配置各接口的地址(略)
(2) 配置OSPF基本功能
# 配置Switch A。
<SwitchA> system-view
[SwitchA] ospf
[SwitchA-ospf-1] area 0
[SwitchA-ospf-1-area-0.0.0.0] network 10.5.1.0 0.0.0.255
[SwitchA-ospf-1-area-0.0.0.0] network 10.2.1.0 0.0.0.255
[SwitchA-ospf-1-area-0.0.0.0] quit
# 配置Switch B。
<SwitchB> system-view
[SwitchB] ospf
[SwitchB-ospf-1] area 0
[SwitchB-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255
[SwitchB-ospf-1-area-0.0.0.0] network 10.6.1.0 0.0.0.255
[SwitchB-ospf-1-area-0.0.0.0] quit
# 配置Switch C。
<SwitchC> system-view
[SwitchC] ospf
[SwitchC-ospf-1] area 0
[SwitchC-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255
[SwitchC-ospf-1-area-0.0.0.0] network 10.2.1.0 0.0.0.255
[SwitchC-ospf-1-area-0.0.0.0] quit
(3) 配置RIP基本功能
# 配置Switch C。
<SwitchC> system-view
[SwitchC] rip 1
[SwitchC-rip-1] network 11.3.1.0
[SwitchC-rip-1] version 2
[SwitchC-rip-1] undo summary
# 配置Switch D。
<SwitchD> system-view
[SwitchD] rip 1
[SwitchD-rip-1] network 11.0.0.0
[SwitchD-rip-1] version 2
[SwitchD-rip-1] undo summary
[SwitchD-rip-1] quit
# 在Switch C上配置RIP引入外部路由,引入OSPF进程1的路由和直连路由。
[SwitchC-rip-1] import-route direct
[SwitchC-rip-1] import-route ospf 1
# 查看Switch D的路由表信息。
[SwitchD] display ip routing-table
Routing Tables: Public
Destinations : 10 Routes : 10
Destination/Mask Proto Pre Cost NextHop Interface
10.1.1.0/24 RIP 100 1 11.3.1.1 Vlan300
10.2.1.0/24 RIP 100 1 11.3.1.1 Vlan300
10.5.1.0/24 RIP 100 1 11.3.1.1 Vlan300
10.6.1.0/24 RIP 100 1 11.3.1.1 Vlan300
11.3.1.0/24 Direct 0 0 11.3.1.2 Vlan300
11.3.1.2/32 Direct 0 0 127.0.0.1 InLoop0
11.4.1.0/24 Direct 0 0 11.4.1.2 Vlan400
11.4.1.2/32 Direct 0 0 127.0.0.1 InLoop0
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
(4) 在Switch C上配置路由聚合,只发布聚合路由10.0.0.0/8。
[SwitchC] interface vlan-interface 300
[SwitchC-Vlan-interface300] rip summary-address 10.0.0.0 8
# 查看Switch D的路由表信息。
[SwitchD] display ip routing-table
Routing Tables: Public
Destinations : 7 Routes : 7
Destination/Mask Proto Pre Cost NextHop Interface
10.0.0.0/8 RIP 100 1 11.3.1.1 Vlan300
11.3.1.0/24 Direct 0 0 11.3.1.2 Vlan300
11.3.1.2/32 Direct 0 0 127.0.0.1 InLoop0
11.4.1.0/24 Direct 0 0 11.4.1.2 Vlan400
11.4.1.2/32 Direct 0 0 127.0.0.1 InLoop0
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
如图1-9所示,Switch S 、Switch A和Switch D通过RIPv2协议实现网络互连。要求当Switch S和Switch D之间的链路出现故障时,业务可以快速切换到链路B上。
图1-9 配置RIP快速重路由
(1) 配置各交换机接口的IP地址和RIPv2协议
请按照上面组网图配置各接口的IP地址和子网掩码,具体配置过程略。
配置各路由器之间采用RIPv2协议进行互连,确保Switch S、Switch A和Switch D之间能够在网络层互通,并且各路由器之间能够借助RIPv2协议实现动态路由更新。
具体配置过程略。
(2) 配置RIP 快速重路由
# 配置Switch S。
<SwitchS> system-view
[SwitchS] bfd echo-source-ip 1.1.1.1
[SwitchS] ip ip-prefix abc index 10 permit 4.4.4.4 32
[SwitchS] route-policy frr permit node 10
[SwitchS-route-policy] if-match ip-prefix abc
[SwitchS-route-policy] apply fast-reroute backup-interface vlan-interface 100 backup-nexthop 12.12.12.2
[SwitchS-route-policy] quit
[SwitchS] rip 1
[SwitchS-rip-1] fast-reroute route-policy frr
[SwitchS-rip-1] quit
# 配置Switch D。
<SwitchD> system-view
[SwitchD] bfd echo-source-ip 4.4.4.4
[SwitchD] ip ip-prefix abc index 10 permit 1.1.1.1 32
[SwitchD] route-policy frr permit node 10
[SwitchD-route-policy] if-match ip-prefix abc
[SwitchD-route-policy] apply fast-reroute backup-interface vlan-interface 101 backup-nexthop 24.24.24.2
[SwitchD-route-policy] quit
[SwitchD] rip 1
[SwitchD-rip-1] fast-reroute route-policy frr
[SwitchD-rip-1] quit
(3) 检验配置效果
# 在Switch S上查看4.4.4.4/32路由,可以看到备份下一跳信息:
[SwitchS] display ip routing-table 4.4.4.4 verbose
Routing Table : Public
Summary Count : 1
Destination: 4.4.4.4/32
Protocol: RIP Process ID: 1
Preference: 100 Cost: 1
IpPrecedence: QosLcId:
NextHop: 13.13.13.2 Interface: vlan200
BkNextHop: 12.12.12.2 BkInterface: vlan100
RelyNextHop: 0.0.0.0 Neighbor : 0.0.0.0
Tunnel ID: 0x0 Label: NULL
BKTunnel ID: 0x0 BKLabel: NULL
State: Active Adv Age: 00h01m27s
Tag: 0
# 在Switch D上查看1.1.1.1/32路由,可以看到备份下一跳信息:
[SwitchD] display ip routing-table 1.1.1.1 verbose
Routing Table : Public
Summary Count : 1
Destination: 1.1.1.1/32
Protocol: RIP Process ID: 1
Preference: 100 Cost: 1
IpPrecedence: QosLcId:
NextHop: 13.13.13.1 Interface: vlan200
BkNextHop: 24.24.24.2 BkInterface: vlan101
RelyNextHop: 0.0.0.0 Neighbor : 0.0.0.0
Tunnel ID: 0x0 Label: NULL
BKTunnel ID: 0x0 BKLabel: NULL
State: Active Adv Age: 00h01m27s
Tag: 0
l Switch A、Switch C通过二层交换机互连,它们的接口Vlan-interface100都运行RIP进程1。并且Switch A的接口Vlan-interface100上还使能了BFD检测功能。
l Switch A通过Switch B与Switch C互连,Switch A的接口Vlan-interface200运行RIP进程2。Switch C的接口Vlan-interface300、Switch B的接口Vlan-interface200和Vlan-interface300上都运行RIP进程1。
l Switch C上配置静态路由,并且将静态路由引入在RIP进程中,使Switch C有路由发送至Switch A。Switch A上学习到Switch C发送的静态路由,出接口为与二层交换机相连的接口。
l 在Switch C和二层交换机之间的链路发生故障后,BFD能够快速检测链路中断并通告RIP协议。RIP协议响应BFD会话down,删除与Switch C的邻居,并删除从Switch C学习的路由。Switch A上学习到Switch C上发送的静态路由,出接口为与Switch B相连的接口。
图1-10 配置RIP运行BFD特性组网图(echo报文单跳检测)
(1) 配置各接口的IP地址(略)
(2) 配置RIP基本功能
# 配置Switch A。
[SwitchA] rip 1
[SwitchA-rip-1] network 192.168.1.0
[SwitchA-rip-1] quit
[SwitchA] interface vlan-interface 100
[SwitchA-Vlan-interface100] rip bfd enable
[SwitchA-Vlan-interface100] quit
[SwitchA] rip 2
[SwitchA-rip-2] network 192.168.2.0
# 配置Switch B。
[SwitchB] rip 1
[SwitchB-rip-1] network 192.168.2.0
[SwitchB-rip-1] network 192.168.3.0
[SwitchB-rip-1] quit
# 配置Switch C。
[SwitchC] rip 1
[SwitchC-rip-1] network 192.168.1.0
[SwitchC-rip-1] network 192.168.3.0
[SwitchC-rip-1] import-route static
[SwitchC-rip-1] quit
(3) 配置BFD参数
# 配置Switch A。
[SwitchA] bfd session init-mode active
[SwitchA] bfd echo-source-ip 11.11.11.11
[SwitchA] interface vlan-interface 100
[SwitchA-Vlan-interface100] bfd min-transmit-interval 500
[SwitchA-Vlan-interface100] bfd min-receive-interval 500
[SwitchA-Vlan-interface100] bfd detect-multiplier 7
[SwitchA-Vlan-interface100] quit
[SwitchA] quit
(4) Switch C配置静态路由
[SwitchC] ip route-static 100.1.1.1 24 null 0
(5) 检查配置结果
# 显示Switch A的BFD信息。
<SwitchA> display bfd session
Total Session Num: 1 Init Mode: Active
Session Working Under Echo Mode:
LD SourceAddr DestAddr State Holdtime Interface
5 192.168.1.1 192.168.1.2 Up 2000ms Vlan100
# 显示Switch A学到的路由100.1.1.0/24。
<SwitchA> display ip routing-table 100.1.1.0 24 verbose
Routing Table : Public
Summary Count : 2
Destination: 100.1.1.0/24
Protocol: RIP Process ID: 1
Preference: 100 Cost: 1
IpPrecedence: QosLcId:
NextHop: 192.168.1.2 Interface: vlan-interface 100
BkNextHop: 0.0.0.0 BkInterface:
RelyNextHop: 0.0.0.0 Neighbor : 192.168.1.2
Tunnel ID: 0x0 Label: NULL
BKTunnel ID: 0x0 BKLabel: NULL
State: Active Adv Age: 00h00m47s
Tag: 0
Destination: 100.1.1.0/24
Protocol: RIP Process ID: 2
Preference: 100 Cost: 2
IpPrecedence: QosLcId:
NextHop: 192.168.2.2 Interface: vlan-interface 200
BkNextHop: 0.0.0.0 BkInterface:
RelyNextHop: 0.0.0.0 Neighbor : 192.168.2.2
Tunnel ID: 0x0 Label: NULL
BKTunnel ID: 0x0 BKLabel: NULL
State: Inactive Adv Age: 00h12m50s
Tag: 0
# 打开Switch A的调试开关
<SwitchA> debugging rip 1 event
<SwitchA> terminal debugging
# Switch C和二层交换机之间的链路发生故障时,可以看到Switch A能够快速感知Switch C的变化。
%Jan 19 10:41:51:203 2008 SwitchA BFD/4/LOG:Sess[192.168.1.1/192.168.1.2, Vlan-interface 100,Ctrl], Sta: UP->DOWN, Diag: 1
*Jan 19 10:33:12:813 2008 SwitchA RM/6/RMDEBUG: RIP-BFD: Message Type Disable, Connect Type Direct-connect, Pkt Type Echo, Src IP Address 192.168.1.1, Src IFIndex4, Nbr IP Address 192.168.1.2.
# 显示Switch A的BFD信息。
查看Switch A的BFD信息,Switch A已取消与Switch C的邻居关系,没有任何输出信息。
<SwitchA> display bfd session
# 显示Switch A的RIP进程1的路由信息。
查看Switch A的RIP进程1的路由信息,没有从Switch C学到的RIP路由。
<SwitchA> display rip 1 route
Route Flags: R - RIP, T - TRIP
P - Permanent, A - Aging, S - Suppressed, G - Garbage-collect
----------------------------------------------------------------------------
# 显示Switch A上学到的路由100.1.1.0/24。
<SwitchA> display ip routing-table 100.1.1.0 24 verbose
Routing Table : Public
Summary Count : 1
Destination: 100.1.1.0/24
Protocol: RIP Process ID: 2
Preference: 100 Cost: 2
IpPrecedence: QosLcId:
NextHop: 192.168.2.2 Interface: vlan-interface 200
BkNextHop: 0.0.0.0 BkInterface:
RelyNextHop: 0.0.0.0 Neighbor : 192.168.2.2
Tunnel ID: 0x0 Label: NULL
BKTunnel ID: 0x0 BKLabel: NULL
State: Active Adv Age: 00h18m40s
Tag: 0
l Switch A、Switch B与Switch C互连。Switch A的接口Vlan-interface100、Switch C的接口Vlan-interface200、Switch B的接口Vlan-interface100和Vlan-interface200上都运行RIP进程1。
l 分别在Switch A和Switch C上配置到达对端的静态路由,并在Switch A的接口Vlan-interface100和Switch C的接口Vlan-interface200上并使能BFD检测功能。
l Switch A通过Switch D与Switch C互连。Switch A的接口Vlan-interface300运行RIP进程2。Switch C的接口Vlan-interface400、Switch D的接口Vlan-interface300和Vlan-interface400上运行RIP进程1。
l 为使Switch A与Switch C互有路由发送,在Switch A与Switch C上将到达对端的静态路由引入RIP协议中。Switch A与Switch C之间建立BFD会话。Switch A上学习到Switch C发送的静态路由,出接口为与Switch B连接的接口。
l 在Switch B与Switch C之间的链路发生故障后,BFD能够快速检测链路中断并通告RIP协议。RIP协议响应BFD会话down,删除与Switch C的邻居,并删除从Switch C学习的路由。Switch A上学习到Switch C发送的静态路由,出接口为与Switch D连接的接口。
图1-11 配置RIP运行BFD特性组网图(control报文双向检测)
(1) 配置各接口的IP地址(略)
(2) 配置RIP基本功能,并引入静态路由,使Switch A与Switch C互有路由发送
# 配置Switch A。
[SwitchA] rip 1
[SwitchA-rip-1] network 192.168.1.0
[SwitchA-rip-1] peer 192.168.2.2
[SwitchA-rip-1] undo validate-source-address
[SwitchA-rip-1] import-route static
[SwitchA-rip-1] quit
[SwitchA] interface vlan-interface 100
[SwitchA-Vlan-interface100] rip bfd enable
[SwitchA-Vlan-interface100] quit
[SwitchA] rip 2
[SwitchA-rip-2] network 192.168.3.0
[SwitchA-rip-2] quit
# 配置Switch C。
[SwitchC] rip 1
[SwitchC-rip-1] network 192.168.2.0
[SwitchC-rip-1] network 192.168.4.0
[SwitchC-rip-1] peer 192.168.1.1
[SwitchC-rip-1] undo validate-source-address
[SwitchC-rip-1] import-route static
[SwitchC-rip-1] quit
[SwitchC] interface vlan-interface 200
[SwitchC-Vlan-interface200] rip bfd enable
[SwitchC-Vlan-interface200] quit
# 配置Switch D。
<SwitchD> system-view
[SwitchD] rip 1
[SwitchD-rip-1] network 192.168.3.0
[SwitchD-rip-1] network 192.168.4.0
(3) 配置BFD参数
# 配置Switch A。
[SwitchA] bfd session init-mode active
[SwitchA] interface vlan-interface 100
[SwitchA-Vlan-interface100] bfd min-transmit-interval 500
[SwitchA-Vlan-interface100] bfd min-receive-interval 500
[SwitchA-Vlan-interface100] bfd detect-multiplier 7
[SwitchA-Vlan-interface100] quit
# 配置Switch C。
[SwitchC] bfd session init-mode active
[SwitchC] interface vlan-interface 200
[SwitchC-Vlan-interface200] bfd min-transmit-interval 500
[SwitchC-Vlan-interface200] bfd min-receive-interval 500
[SwitchC-Vlan-interface200] bfd detect-multiplier 7
[SwitchC-Vlan-interface200] quit
(4) 配置静态路由
# 配置Switch A。
[SwitchA] ip route-static 192.168.2.0 24 vlan-interface 100 192.168.1.2
[SwitchA] ip route-static 101.1.1.0 24 null 0
[SwitchA] quit
# 配置Switch C。
[SwitchC] ip route-static 192.168.1.0 24 vlan-interface 200 192.168.2.1
[SwitchC] ip route-static 100.1.1.0 24 null 0
出接口为Null0的静态路由,目的IP地址不能为直连网段的IP地址。
(5) 检查配置结果
# 显示Switch A的BFD信息。
<SwitchA> display bfd session
Total Session Num: 1 Init Mode: Active
Session Working Under Ctrl Mode:
LD/RD SourceAddr DestAddr State Holdtime Interface
6/3 192.168.1.1 192.168.2.2 Up 1700ms vlan100
# 显示Switch A上学到的路由100.1.1.0/24。
<SwitchA> display ip routing-table 100.1.1.0 24 verbose
Routing Table : Public
Summary Count : 2
Destination: 100.1.1.0/24
Protocol: RIP Process ID: 1
Preference: 100 Cost: 1
IpPrecedence: QosLcId:
NextHop: 192.168.1.2 Interface: vlan-interface 100
BkNextHop: 0.0.0.0 BkInterface:
RelyNextHop: 0.0.0.0 Neighbor : 192.168.1.2
Tunnel ID: 0x0 Label: NULL
BKTunnel ID: 0x0 BKLabel: NULL
State: Active Adv Age: 00h00m47s
Tag: 0
Destination: 100.1.1.0/24
Protocol: RIP Process ID: 2
Preference: 100 Cost: 2
IpPrecedence: QosLcId:
NextHop: 192.168.3.2 Interface: vlan-interface 300
BkNextHop: 0.0.0.0 BkInterface:
RelyNextHop: 0.0.0.0 Neighbor : 192.168.3.2
Tunnel ID: 0x0 Label: NULL
BKTunnel ID: 0x0 BKLabel: NULL
State: Inactive Adv Age: 00h12m50s
Tag: 0
# 打开Switch A的调试开关。
<SwitchA> debugging rip 1 event
<SwitchA> terminal debugging
# Switch B和Switch C之间的链路发生故障后。可以看到Switch A能够快速检测到链路的变化。
%Jan 19 10:41:51:203 2008 SwitchA BFD/4/LOG:Sess[192.168.1.1/192.168.2.2, Vlan-interface 100, Ctrl], Sta: UP->DOWN, Diag: 1
*Jan 19 10:41:51:203 2008 SwitchA RM/6/RMDEBUG: RIP-BFD: Message Type Disable, Connect Type Indirect-connect, Pkt Type Control, Src IP Address 192.168.1.1, Src IFIndex 4, Nbr IP Address 192.168.2.2.
# 显示Switch A的BFD信息。
查看Switch A的BFD信息,Switch A已取消与Switch C的邻居关系,没有任何输出信息。
<SwitchA> display bfd session
# 显示Switch A的RIP进程1的路由信息。
查看Switch A的RIP进程1的路由信息,没有从Switch C学到的RIP路由。
<SwitchA> display rip 1 route
Route Flags: R - RIP, T - TRIP
P - Permanent, A - Aging, S - Suppressed, G - Garbage-collect
----------------------------------------------------------------------------
# 显示Switch A上学到的路由100.1.1.0/24。
<SwitchA> display ip routing-table 100.1.1.0 24 verbose
Routing Table : Public
Summary Count : 1
Destination: 100.1.1.0/24
Protocol: RIP Process ID: 2
Preference: 100 Cost: 2
IpPrecedence: QosLcId:
NextHop: 192.168.3.2 Interface: vlan-interface 300
BkNextHop: 0.0.0.0 BkInterface:
RelyNextHop: 0.0.0.0 Neighbor : 192.168.3.2
Tunnel ID: 0x0 Label: NULL
BKTunnel ID: 0x0 BKLabel: NULL
State: Active Adv Age: 00h18m40s
Tag: 0
在链路正常的情况下收不到邻居的RIP更新报文。
RIP启动后,必须使用network命令使能相应的接口。如果对接口的工作状态单独进行了配置,应确认没有抑制相关接口或禁止其收发RIP报文。
如果在对端路由器上配置的是组播方式发送RIP报文,在本地路由器上也应该配置为组播方式。
(1) 执行display current-configuration命令,检查RIP的配置。
(2) 执行display rip命令,检查是否抑制了相关RIP接口。
在链路正常的情况下,运行RIP的网络发生路由振荡,查看路由表时发现部分路由时有时无。
在RIP网络中,应确保全网定时器的配置一致,且各定时器之间的关系合理,如Timeout定时器的值应大于Update定时器的值。
(1) 使用display rip命令查看RIP定时器的配置。
(2) 使用timers将全网的定时器配置一致。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!