11-IPv4路由操作
本章节下载 (439.73 KB)
& 说明:
本章所指的路由器代表了一般意义下的路由器,以及运行了路由协议的三层交换机。为提高可读性,在手册的描述中将不另行说明。
静态路由是一种特殊的路由,由管理员手工配置。在组网结构比较简单的网络中,只需配置静态路由就可以实现网络互通。恰当地设置和使用静态路由可以改善网络的性能,并可为重要的网络应用保证带宽。
静态路由的缺点在于:不能自动适应网络拓扑结构的变化,当网络发生故障或者拓扑发生变化后,可能会出现路由不可达,导致网络中断,此时必须由网络管理员手工修改静态路由的配置。
缺省路由是在路由器没有找到匹配的路由表入口项时才使用的路由:
l 如果报文的目的地址不能与路由表的任何入口项相匹配,那么该报文将选取缺省路由;
l 如果没有缺省路由且报文的目的地不在路由表中,那么该报文将被丢弃,将向源端返回一个ICMP报文报告该目的地址或网络不可达。
缺省路由可以通过静态路由配置,以到网络0.0.0.0(掩码也为0.0.0.0)的形式在路由表中出现,也可以由某些动态路由协议生成,如OSPF、IS-IS和RIP。
配置静态路由时,需要了解以下内容:
(1) 目的地址与掩码
在ip route-static命令中,IPv4地址为点分十进制格式,掩码可以用点分十进制表示,也可用掩码长度(即掩码中连续‘1’的位数)表示。
(2) 出接口和下一跳地址
在配置静态路由时,可指定出接口interface-type interface-number,也可指定下一跳地址。指定出接口还是指定下一跳地址要视具体情况而定,下一跳地址不能为本地接口IP地址,否则路由不会生效。
实际上,所有的路由项都必须明确下一跳地址。在发送报文时,首先根据报文的目的地址寻找路由表中与之匹配的路由。只有指定了下一跳地址,链路层才能找到对应的链路层地址,并转发报文。
指定出接口时需要注意:
l 对于NULL0接口,配置了出接口就不再配置下一跳地址。
l 在配置静态路由时,建议不要直接指定广播类型接口作出接口(如VLAN接口等)。因为广播类型的接口,会导致出现多个下一跳,无法唯一确定下一跳。在某些特殊应用中,如果必须配置广播接口(如VLAN接口等)为出接口,则必须同时指定其对应的下一跳地址。
(3) 其它属性
对于不同的静态路由,可以为它们配置不同的优先级,从而更灵活地应用路由管理策略。例如:配置到达相同目的地的多条路由,如果指定相同优先级,则可实现负载分担,如果指定不同优先级,则可实现路由备份。
在配置静态路由之前,需配置相关接口的IP地址。
表1-1 配置静态路由
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置静态路由 |
ip route-static dest-address { mask | mask-length } { next-hop-address | interface-type interface-number [ next-hop-address ] } [ preference preference-value ] [ tag tag-value ] [ description description-text ] |
必选 缺省情况下,静态路由的优先级preference为60,静态路由tag值为0,未配置描述信息 |
配置静态路由的缺省优先级 |
ip route-static default-preference default-preference-value |
可选 缺省情况下,静态路由的缺省优先级为60 |
& 说明:
l 在配置静态路由时,如果先指定下一跳地址,然后将该地址配置为本地接口(如VLAN接口等)的IP地址,静态路由不会生效。
l 如果在配置静态路由时没有指定优先级,就会使用缺省优先级。重新设置缺省优先级后,新设置的缺省优先级仅对新增的静态路由有效。
l 设置静态路由的Tag值,可以在路由策略中根据Tag值对路由进行灵活的控制。
l 在使用ip route-static配置静态路由时,如果将目的地址与掩码配置为全零(0.0.0.0 0.0.0.0),则表示配置的是缺省路由。
当网络发生故障或者拓扑发生变化后,可能会出现路由不可达,导致网络中断,因此为了提升现有网络的稳定性,需要对静态路由下一跳的可达性进行快速检测,当下一跳不可达时可以快速切换到备份路由。
如果在配置静态路由时只指定了下一跳而没有指定出接口,可以通过将静态路由与Track项相关联,利用Track项的状态来控制静态路由有效性。当Track项状态为positive时,静态路由的下一跳可达,配置的静态路由将生效;当Track项状态为negative时,静态路由的下一跳可不达,配置的静态路由无效。关于Track的详细介绍,请参考“Track”部分。
通过配置Track项检测静态路由下一跳是否可达,则需要创建Track项,具体配置过程请参考“Track”部分。
表1-2 配置静态路由与Track项相关联检测下一跳是否可达
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置静态路由与Track项相关联检测下一跳是否可达 |
ip route-static dest-address { mask | mask-length } next-hop-address track track-entry-number [ preference preference-value ] [ tag tag-value ] [ description description-text ] |
必选 缺省情况下,没有为静态路由下一跳指定指定Track项序号 |
& 说明:
l 配置静态路由支持Track监测功能,该条静态路由可以是已经创建的,也可以是未创建的。对于已经创建的静态路由,只是将静态路由与Track项关联,并根据Track项的状态来判断静态路由的有效性;对于未创建的静态路由,首先要生成该静态路由,然后将其与Track项关联。
l 需要注意在静态路由进行迭代时,Track项监测的应该是静态路由真正的下一跳,而不是配置的下一跳。否则,可能导致错误地将有效路由判断为无效路由。
在完成上述配置后,在任意视图下执行display命令查看静态路由配置的运行情况并检验配置结果。
在系统视图下执行delete命令可以删除配置的所有静态路由。
表1-3 静态路由显示和维护
操作 |
命令 |
查看当前的配置文件信息 |
display current-configuration |
查看IP路由表摘要信息 |
display ip routing-table |
查看IP路由表详细信息 |
display ip routing-table verbose |
查看静态路由表信息 |
display ip routing-table protocol static [ inactive | verbose ] |
删除所有静态路由 |
delete static-routes all |
路由器各接口及主机的IP地址和掩码如下图所示。要求采用静态路由,使图中任意两台主机之间都能互通。
图1-1 静态路由配置组网图
(1) 配置各接口的IP地址(略)
(2) 配置静态路由
# 在Switch A上配置缺省路由。
<SwitchA> system-view
[SwitchA] ip route-static 0.0.0.0 0.0.0.0 1.1.4.2
# 在Switch B上配置两条静态路由。
<SwitchB> system-view
[SwitchB] ip route-static 1.1.2.0 255.255.255.0 1.1.4.1
[SwitchB] ip route-static 1.1.3.0 255.255.255.0 1.1.5.6
# 在Switch C上配置缺省路由。
<SwitchC> system-view
[SwitchC] ip route-static 0.0.0.0 0.0.0.0 1.1.5.5
(3) 配置主机
配置Host A的缺省网关为1.1.2.3,Host B的缺省网关为1.1.6.1,Host C的缺省网关为1.1.3.1,具体配置过程略。
(4) 查看配置结果
# 显示Switch A的IP路由表。
[SwitchA] display ip routing-table
Routing Tables: Public
Destinations : 7 Routes : 7
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/0 Static 60 0 1.1.4.2 Vlan500
1.1.2.0/24 Direct 0 0 1.1.2.3 Vlan300
1.1.2.3/32 Direct 0 0 127.0.0.1 InLoop0
1.1.4.0/30 Direct 0 0 1.1.4.1 Vlan500
1.1.4.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
# 显示Switch B的IP路由表。
[SwitchB] display ip routing-table
Routing Tables: Public
Destinations : 10 Routes : 10
Destination/Mask Proto Pre Cost NextHop Interface
1.1.2.0/24 Static 60 0 1.1.4.1 Vlan500
1.1.3.0/24 Static 60 0 1.1.5.6 Vlan600
1.1.4.0/30 Direct 0 0 1.1.4.2 Vlan500
1.1.4.2/32 Direct 0 0 127.0.0.1 InLoop0
1.1.5.0/30 Direct 0 0 1.1.5.5 Vlan600
1.1.5.5/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.1.6.0/24 Direct 0 0 1.1.6.1 Vlan100
1.1.6.1/32 Direct 0 0 127.0.0.1 InLoop0
# 在Host A使用ping命令验证Host A与Host B、Host C之间的网络层是否互通。
& 说明:
l 本章所指的路由器代表了一般意义下的路由器,以及运行了路由协议的三层交换机。为提高可读性,在手册的描述中将不另行说明。
l 该系列交换机仅支持RIP单进程。
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):用于标识外部路由,在路由策略中可根据路由标记对路由信息进行灵活的控制。关于路由策略的详细信息,请参见“路由策略配置”。
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 支持组播路由发送更新报文,减少资源消耗。
l 支持对协议报文进行验证,并提供明文验证和MD5验证两种方式,增强安全性。
& 说明:
RIP-2有两种报文传送方式:广播方式和组播方式,缺省将采用组播方式发送报文,使用的组播地址为224.0.0.9。当接口运行RIP-2广播方式时,也可接收RIP-1的报文。
RIP报文由头部(Header)和多个路由表项(Route Entries)部分组成。在一个RIP报文中,最多可以有25个路由表项。
RIP-1的报文格式如图2-1所示。
图2-1 RIP-1的报文格式
各字段的解释如下:
l Command:标识报文的类型。值为1时表示Request报文,值为2表示Response报文。
l Version:RIP的版本号。对于RIP-1来说其值为0x01。
l AFI(Address Family Identifier):地址族标识,其值为2时表示IP协议。
l IP Address:该路由的目的IP地址,可以是自然网段地址、子网地址或主机地址。
l Metric:路由的度量值。
RIP-2的报文格式与RIP-1类似,如图2-2所示。
图2-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标识报文携带认证信息,如图2-3所示。
图2-3 RIP-2的验证报文格式
各字段的解释如下:
l Authentication Type:验证类型。值为2时表示明文验证,值为3时表示MD5验证。
l Authentication:验证字,当使用明文验证时包含了密码信息;当使用MD5验证时包含了Key ID、MD5验证数据长度和序列号的信息。
& 说明:
l RFC1723中只定义了明文验证方式,关于MD5验证的详细信息,请参考RFC2082“RIP-2 MD5 Authentication”。
l 当RIP的版本为RIP-1时,虽然在接口视图下仍然可以配置验证方式,但由于RIP-1不支持认证,因此该配置不会生效。
目前设备支持以下RIP特性:
l 支持RIP-1。
l 支持RIP-2。
与RIP相关的协议规范有:
l RFC1058:Routing Information Protocol
l RFC1723:RIP Version 2 - Carrying Additional Information
l RFC1721:RIP Version 2 Protocol Analysis
l RFC1722:RIP Version 2 Protocol Applicability Statement
l RFC1724:RIP Version 2 MIB Extension
l RFC2082:RIP-2 MD5 Authentication
在配置RIP的基本功能之前,需配置接口的网络层地址,使相邻节点的网络层可达。
表2-1 启动RIP,配置指定的接口运行RIP
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
创建RIP进程并进入RIP视图 |
rip [ process-id ] |
必选 缺省情况下,RIP进程处于关闭状态 |
在指定网段接口上使能RIP |
network network-address |
必选 缺省情况下,接口上的RIP功能处于关闭状态 |
& 说明:
l 如果在启动RIP前在接口视图下配置了RIP相关命令,这些配置只有在RIP启动后才会生效。
l RIP只在指定网段的接口上运行;对于不在指定网段上的接口,RIP既不在它上面接收和发送路由,也不将它的接口路由转发出去。因此,RIP启动后必须指定其工作网段。
l network 0.0.0.0命令用来在所有接口上使能RIP。
用户可对接口的工作状态进行配置:
l 配置接口工作在抑制状态,即接口只接收路由更新报文而不发送路由更新报文。
l 配置接口接收RIP报文。
l 配置接口发送RIP报文。
表2-2 配置接口的工作状态
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIP视图 |
rip [ process-id ] |
- |
配置接口工作在抑制状态 |
silent-interface { all | interface-type interface-number } |
可选 缺省情况下,所有使能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-1单播报文、RIP-2广播报文、RIP-2组播报文、RIP-2单播报文。
l 只有在接口上没有进行RIP版本配置时,全局配置才会生效,否则将以接口配置的为准。
l 当接口运行的RIP版本为RIP-1时,发送RIP-1广播报文,可以接收RIP-1广播报文、RIP-1单播报文。
l 当接口运行的RIP版本为RIP-2且工作在组播方式时,发送RIP-2组播报文,可以接收RIP-2单播报文、RIP-2广播报文、RIP-2组播报文。
l 当接口运行的RIP版本为RIP-2且工作在广播方式时,发送RIP-2广播报文,可以接收RIP-1广播报文、RIP-1单播报文、RIP-2广播报文、RIP-2组播报文、RIP-2单播报文。
表2-3 配置RIP版本号
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIP视图 |
rip [ process-id ] |
- |
配置全局RIP版本 |
version { 1 | 2 } |
可选 缺省情况下,如果接口配置了RIP版本,以接口配置的为准;如果接口没有配置,接口只能发送RIP-1广播报文,可以接收RIP-1广播报文、RIP-1单播报文、RIP-2广播报文、RIP-2组播报文、RIP-2单播报文 |
退回系统视图 |
quit |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置接口运行的RIP版本 |
rip version { 1 | 2 [ broadcast | multicast ] } |
可选 |
在实际应用中,有时候需要对RIP路由信息进行更为精确的控制以满足复杂网络环境的需要,在配置RIP路由特性之前,需完成以下任务:
l 配置接口的网络层地址,使相邻节点网络层可达。
l 配置RIP基本功能。
附加度量值是在RIP路由原来度量值的基础上所增加的度量值,包括发送附加度量值和接收附加度量值。发送附加度量值不会改变路由表中的路由度量值,仅当接口发送RIP路由信息时才会添加到发送路由上;接收附加度量值会影响接收到的路由度量值,接口接收到一条合法的RIP路由时,在将其加入路由表前会把度量值附加到该路由上。
表2-4 配置接口附加度量值
操作 |
命令 |
说明 |
进入系统视图 |
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 |
路由聚合是指将同一自然网段内的不同子网的路由聚合成一条自然掩码的路由向外(其它网段)发送,目的是为了减小路由表的规模,从而减少网络上的流量。
RIP-2支持路由聚合。
需要注意的是,当需要将所有子网路由广播出去时,需要关闭RIP-2的自动路由聚合功能。
表2-5 配置RIP-2自动路由聚合功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIP视图 |
rip [ process-id ] |
- |
使能RIP-2自动路由聚合功能 |
summary |
可选 缺省情况下,RIP-2自动路由聚合功能处于使能状态 |
用户可在指定接口配置RIP-2发布一条聚合路由。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIP视图 |
rip [ process-id ] |
- |
关闭RIP-2自动路由聚合功能 |
undo summary |
必选 缺省情况下,RIP-2自动路由聚合功能处于使能状态 |
退至系统视图 |
quit |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置发布一条聚合路由 |
rip summary-address ip-address { mask | mask-length } |
必选 |
& 说明:
在接口配置发布一条聚合路由时必须关闭RIP-2的自动路由聚合功能。
在某些特殊情况下,路由器会收到大量来自同一网段的主机路由。这些路由对于路由寻址没有多少作用,却占用了大量的资源;此时可配置RIP禁止接收主机路由,以节省网络资源。
表2-7 禁止RIP接收主机路由
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIP视图 |
rip [ process-id ] |
- |
禁止RIP接收主机路由 |
undo host-route |
必选 缺省情况下,允许RIP接收主机路由 |
& 说明:
禁止接收主机路由仅对RIPv2有效,对RIPv1无效。
用户可以用指定度量值向RIP邻居发布一条缺省路由。
表2-8 配置RIP发布缺省路由
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIP视图 |
rip [ process-id ] |
- |
配置RIP发布缺省路由 |
default-route originate cost value |
必选 缺省情况下,不向RIP邻居发送缺省路由 |
& 说明:
配置发布缺省路由的RIP路由器不接收来自RIP邻居的缺省路由。
路由器提供路由信息过滤功能,通过指定访问控制列表和地址前缀列表,可以配置入口或出口过滤策略,对接收和发布的路由进行过滤。在接收路由时,还可以指定只接收来自某个邻居的RIP报文。
表2-9 配置RIP对接收/发布的路由进行过滤
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIP视图 |
rip [ process-id ] |
- |
对接收的路由信息进行过滤 |
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路由表中的路由是通过哪种路由算法获取的最佳路由。
表2-10 配置RIP协议优先级
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIP视图 |
rip [ process-id ] |
- |
配置RIP路由的优先级 |
preference [ route-policy route-policy-name ] value |
可选 缺省情况下,RIP路由的优先级为100 |
表2-11 配置RIP引入外部路由
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIP视图 |
rip [ process-id ] |
- |
配置引入路由的缺省度量值 |
default cost value |
可选 缺省情况下,引入路由的缺省度量值为0 |
引入外部路由 |
import-route protocol [ cost cost | route-policy route-policy-name | tag tag ] * |
必选 缺省情况下,RIP不引入其它路由 |
在某些特殊的网络环境中,需要对RIP网络的性能进行调整和优化,在调整RIP之前,需完成以下任务:
l 配置接口的网络层地址,使相邻节点网络层可达。
l 配置RIP基本功能。
表2-12 配置RIP定时器
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIP视图 |
rip [ process-id ] |
- |
配置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的路由器上进行统一配置,以免增加不必要的网络流量或引起网络路由震荡。
& 说明:
如果同时配置了水平分割和毒性逆转,则只有毒性逆转功能生效。
配置水平分割可以使得从一个接口学到的路由不能通过此接口向外发布,用于避免相邻路由器间的路由环路。
表2-13 配置水平分割
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
使能水平分割功能 |
rip split-horizon |
可选 缺省情况下,水平分割功能处于使能状态 |
& 说明:
在点到点链路上关闭水平分割功能是无效的。
配置毒性逆转可以使得从一个接口学到的路由还可以从这个接口向外发布,但这些路由的度量值已设置为16,即不可达。
表2-14 配置毒性逆转
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
使能毒性逆转功能 |
rip poison-reverse |
必选 缺省情况下,毒性逆转功能处于关闭状态 |
RIP-1报文中的有些字段必须为零,称之为零域。用户可配置RIP-1在接收报文时对零域进行检查,零域值不为零的RIP-1报文将不被处理。如果用户能确保所有报文都是可信任的,则可以不进行该项检查,以节省CPU处理时间。
表2-15 配置RIP-1报文的零域检查
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIP视图 |
rip [ process-id ] |
- |
使能对RIP-1报文的零域检查功能 |
checkzero |
可选 缺省情况下,对RIP-1报文的零域检查功能处于使能状态 |
通过配置对接收到的RIP路由更新报文进行源IP地址检查:
l 对于在接口上接收的报文,RIP将检查该报文源地址和接口的IP地址是否处于同一网段,如果不在同一网段则丢弃该报文。
l 对于串口上接收的报文,RIP检查该报文的源地址是否是对端接口的IP地址,如果不是则丢弃该报文。
表2-16 配置源地址检查
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIP视图 |
rip [ process-id ] |
- |
使能对接收到的RIP路由更新报文进行源IP地址检查功能 |
validate-source-address |
可选 缺省情况下,对接收到的RIP路由更新报文进行源IP地址检查功能处于使能状态 |
& 说明:
当存在RIP非直连的邻居时,应该取消源地址检查。
RIP-2支持两种认证方式:明文认证和MD5密文认证。
明文认证不能提供安全保障,未加密的认证字随报文一同传送,所以明文认证不能用于安全性要求较高的情况。
表2-17 配置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,则必须手工指定RIP的邻居;需要注意的是,当指定的邻居和本地路由器非直接连接,则必须取消对更新报文的源地址进行检查。
表2-18 配置RIP邻居
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIP视图 |
rip [ process-id ] |
- |
配置RIP邻居 |
peer ip-address |
必选 缺省情况下,RIP不向任何定点地址发送更新报文 |
取消对接收到的RIP路由更新报文进行源IP地址检查操作 |
undo validate-source-address |
必选 缺省情况下,对接收到的RIP路由更新报文进行源IP地址检查 |
& 说明:
需要注意的是,当RIP邻居与当前设备直连时不推荐使peer ip-address命令,因为这样可能会造成对端同时收到同一路由信息的组播(或广播)和单播两种形式的报文。
在完成上述配置后,在任意视图下执行display命令可以显示配置后RIP的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除指定RIP进程维护的计数器的统计信息。
表2-19 RIP显示和维护
命令 |
|
显示RIP的当前运行状态及配置信息 |
display rip [ process-id ] |
显示RIP发布数据库的所有激活路由 |
display rip process-id database |
显示RIP的接口信息 |
display rip process-id interface [ interface-type interface-number ] |
显示指定RIP进程的路由信息 |
display rip process-id route [ statistics | ip-address { mask | mask-length } | peer ip-address ] |
清除指定RIP进程维护的计数器的统计信息 |
reset rip process-id statistics |
如图2-4所示,要求在Switch A和Switch B的所有接口上使能RIP,并使用RIP-2进行网络互连。
图2-4 配置RIP的版本
(1) 配置各接口的IP地址(略)
(2) 配置RIP基本功能
# 配置Switch A。
<SwitchA> system-view
[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
[SwitchA-rip-1] quit
# 配置Switch B。
<SwitchB> system-view
[SwitchB] rip
[SwitchB-rip-1] network 192.168.1.0
[SwitchB-rip-1] network 10.0.0.0
[SwitchB-rip-1] quit
# 查看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.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的路由信息。
在链路正常的情况下收不到邻居的RIP更新报文。
RIP启动后,必须使用network命令使能相应的接口。如果对接口的工作状态单独进行了配置,应确认没有抑制相关接口或禁止其收发RIP报文。
如果在对端路由器上配置的是组播方式发送RIP报文,在本地路由器上也应该配置为组播方式。
(1) 执行display current-configuration命令,检查RIP的配置。
(2) 执行display rip命令,检查是否抑制了相关RIP接口。
在链路正常的情况下,运行RIP的网络发生路由振荡,查看路由表时发现部分路由时有时无。
在RIP网络中,应确保全网定时器的配置一致,且各定时器之间的关系合理,如Timeout定时器的值应大于Update定时器的值。
(1) 使用display rip命令查看RIP定时器的配置。
(2) 使用timers命令将全网的定时器配置一致。
& 说明:
本章所指的路由器代表了一般意义下的路由器,以及运行了路由协议的三层交换机。为提高可读性,在手册的描述中将不另行说明。
路由策略(Routing Policy)是为了改变网络流量所经过的途径而修改路由信息的技术,主要通过改变路由属性(包括可达性)来实现。
路由器在发布与接收路由信息时,可能需要实施一些策略,以便对路由信息进行过滤,例如只接收或发布满足一定条件的路由信息。一种路由协议可能需要引入其它的路由协议发现的路由信息,路由器在引入其它路由协议的路由信息时,可能只需要引入一部分满足条件的路由信息,并控制所引入的路由信息的某些属性,以使其满足本协议的要求。
为实现路由策略,首先要定义将要实施路由策略的路由信息的特征,即定义一组匹配规则。可以以路由信息中的不同属性作为匹配依据进行设置,如目的地址、发布路由信息的路由器地址等。匹配规则可以预先设置好,然后再将它们应用于路由的发布、接收和引入等过程的路由策略中。
路由协议可以引用访问控制列表、地址前缀列表和Route-policy几种过滤器。下面对各种过滤器逐一进行介绍。
访问控制列表针对IPv4报文的ACL。用户在定义ACL时可以指定IP(v6)地址和子网范围,用于匹配路由信息的目的网段地址或下一跳地址。ACL的有关配置请参见“ACL”部分。
地址前缀列表的作用类似于ACL,但比它更为灵活,且更易于用户理解。使用地址前缀列表过滤路由信息时,其匹配对象为路由信息的目的地址信息域;另外,用户可以指定gateway选项,指明只接收某些路由器发布的路由信息。
一个地址前缀列表由前缀列表名标识。每个前缀列表可以包含多个表项,每个表项可以独立指定一个网络前缀形式的匹配范围,并用一个索引号来标识,索引号指明了在地址前缀列表中进行匹配检查的顺序。
每个表项之间是“或”的关系,在匹配的过程中,路由器按升序依次检查由索引号标识的各个表项,只要有某一表项满足条件,就意味着通过该地址前缀列表的过滤(不再进入下一个表项的测试)。
路由策略是一种比较复杂的过滤器,它不仅可以匹配路由信息的某些属性,还可以在条件满足时改变路由信息的属性。路由策略可以使用前面几种过滤器定义自己的匹配规则。
一个路由策略可以由多个节点(node)构成,每个节点是匹配检查的一个单元,在匹配过程中,系统按节点序号升序依次检查各个节点。
每个节点可以由一组if-match和apply子句组成。if-match子句定义匹配规则,匹配对象是路由信息的一些属性。同一节点中的不同if-match子句是“与”的关系,只有满足节点内所有if-match子句指定的匹配条件,才能通过该节点的匹配测试。apply子句指定动作,也就是在通过节点的匹配后,对路由信息的一些属性进行设置。
一个路由策略的不同节点间是“或”的关系,如果通过了其中一节点,就意味着通过该路由策略,不再对其他节点进行匹配测试。
路由策略主要有两种应用方式:
l 路由协议在引入其它路由协议发现的路由时,通过路由策略只引入满足条件的路由信息。
l 路由协议在发布或接收路由信息时,通过路由策略对路由信息进行过滤,只接收或发布满足给定条件的路由信息。
在配置过滤列表之前,需要准备以下数据:
l 前缀列表名称
l 匹配的地址范围
IPv4地址前缀列表由列表名标识,每个前缀列表可以包含多个表项。各表项以网络前缀的形式,独立指定一个匹配范围,并使用索引号标识。
在匹配过程中,系统按索引号升序依次检查各个表项,只要路由信息满足一个表项,就认为通过该过滤列表,不再去匹配其他表项。
表3-1 配置IPv4地址前缀列表
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置IPv4地址前缀列表 |
ip ip-prefix ip-prefix-name [ index index-number ] { permit | deny } ip-address mask-length [ greater-equal min-mask-length ] [ less-equal max-mask-length ] |
必选 缺省情况下,没有配置IPv4地址前缀列表 |
& 说明:
如果所有表项都是deny模式,则任何路由都不能通过该过滤列表。这种情况下,建议在多条deny模式的表项后定义一条permit 0.0.0.0 0 less-equal 32表项,允许其它所有IPv4路由信息通过。
例如,按如下配置可以保证仅过滤掉10.1.0.0/16、10.2.0.0/16、10.3.0.0/16三个网段的路由,而其它网段的路由信息可以通过。
<Sysname> system-view
[Sysname] ip ip-prefix abc index 10 deny 10.1.0.0 16
[Sysname] ip ip-prefix abc index 20 deny 10.2.0.0 16
[Sysname] ip ip-prefix abc index 30 deny 10.3.0.0 16
[Sysname] ip ip-prefix abc index 40 permit 0.0.0.0 0 less-equal 32
路由策略用来根据路由信息的某些属性过滤路由信息,并改变与路由策略规则匹配的路由信息的属性。匹配条件可以使用前面几种过滤列表。
一个路由策略可由多个节点构成,每个节点又分为:
l if-match子句:定义匹配规则,即路由信息通过当前Route-policy所需满足的条件,匹配对象是路由信息的某些属性。
l apply子句:指定动作,也就是在满足由if-match子句指定的过滤条件后所执行的一些配置命令,对路由的某些属性进行修改。
在配置路由策略之前,需完成以下任务:
l 配置过滤列表。
l 配置路由协议。
在配置之前,需要准备以下数据:
l 路由策略的名称、节点序号
l 匹配条件
l 要修改的路由属性值
表3-2 创建一个路由策略
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建路由策略并进入该路由策略视图 |
route-policy route-policy-name { permit | deny } node node-number |
必选 缺省情况下,没有创建路由策略 |
& 说明:
l permit指定节点的匹配模式为允许模式。当路由信息通过该节点的过滤后,将执行该节点的apply子句,不进入下一个节点的测试;如果路由信息没有通过该节点过滤,将进入下一个节点继续测试。
l deny指定节点的匹配模式为拒绝模式(此模式下apply子句不会被执行)。当路由项满足该节点的所有if-match子句时,将不执行apply子句,不进入下一个节点的测试;如果路由项不满足该节点的if-match子句,将进入下一个节点继续测试。
l 如果路由策略中定义了一个以上的节点,则各节点中至少应该有一个节点的匹配模式是permit。当路由策略用于路由信息过滤时,如果某路由信息没有通过任一节点,则认为该路由信息没有通过该路由策略。如果路由策略的所有节点都是deny模式,则没有路由信息能通过该路由策略。
表3-3 配置if-match子句
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入路由策略视图 |
route-policy route-policy-name { permit | deny } node node-number |
- |
|
配置IPv4的路由信息的匹配条件 |
配置IPv4路由信息的目的地址范围的匹配条件 |
if-match acl acl-number |
可选 缺省情况下,没有配置IPv4路由信息的目的地址范围的匹配条件 |
if-match ip-prefix ip-prefix-name |
|||
配置IPv4的路由信息的下一跳地址或源地址的匹配条件 |
if-match ip { next-hop | route-source } { acl acl-number | ip-prefix ip-prefix-name } |
可选 缺省情况下,没有配置IPv4的路由信息的下一跳地址或源地址的匹配条件 |
|
配置路由信息的路由开销的匹配条件 |
if-match cost value |
可选 缺省情况下,没有配置路由信息的路由开销的匹配条件 |
|
配置路由信息的出接口的匹配条件 |
if-match interface { interface-type interface-number }&<1-16> |
可选 缺省情况下,没有配置路由信息的出接口的匹配条件 |
|
配置路由信息的标记域的匹配条件 |
if-match tag value |
可选 缺省情况下,没有配置路由信息的标记域的匹配条件 |
& 说明:
l 对于同一个Route-policy节点,在匹配的过程中,各个if-match子句间是“与”的关系,即路由信息必须同时满足所有匹配条件,才可以执行apply子句的动作。
l 在一个节点中,可以没有if-math子句,也可以有多个if-match子句。当不指定if-match子句时,如果该节点的匹配模式为允许模式,则所有路由信息都会通过该节点的过滤;如果该节点的匹配模式为拒绝模式,则所有路由信息都会被拒绝。
表3-4 配置apply子句
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建路由策略并进入该路由策略视图 |
route-policy route-policy-name { permit | deny } node node-number |
必选 缺省情况下,不创建路由策略 |
配置路由信息的路由开销 |
apply cost [ + | - ] value |
可选 缺省情况下,没有配置路由信息的路由开销 |
配置IPv4路由信息的下一跳地址 |
apply ip-address next-hop ip-address |
可选 缺省情况下,没有配置IPv4路由信息的下一跳地址 |
配置路由协议的优先级 |
apply preference preference |
可选 缺省情况下,没有配置路由协议的优先级 |
配置路由信息的标记域 |
apply tag value |
可选 缺省情况下,没有配置路由信息的标记域 |
& 说明:
对于引入的IPv4路由,使用apply ip-address next-hop命令设置下一跳地址无效。
在完成上述配置后,在任意视图下执行display命令可以显示配置后路由策略的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除路由策略的统计信息。
操作 |
命令 |
显示IPv4地址前缀列表的统计信息 |
display ip ip-prefix [ ip-prefix-name ] |
显示路由策略信息 |
display route-policy [ route-policy-name ] |
清除IPv4地址前缀列表的统计信息 |
reset ip ip-prefix [ ip-prefix-name ] |
如所示,Switch A和Switch B通过RIP-2实现网络层互通。Switch A上存在着到达20.0.0.0/8、30.0.0.0/8、40.0.0.0/8网段的静态路由,Switch B希望通过Switch A访问这些网络,但是Swtich A只允许Switch B访问20.0.0.0/8、40.0.0.0/8网络,禁止访问30.0.0.0/8网络。
图3-1 在IPv4路由引入中应用路由策略组网图
(1) 配置Switch A
# 配置各接口的IP地址(略)
# 配置RIP基本功能
<SwitchA> system-view
[SwitchA] rip
[SwitchA-rip-1] version 2
[SwitchA-rip-1] undo summary
[SwitchA-rip-1] network 192.168.1.0
[SwitchA-rip-1] quit
# 配置三条静态路由
[SwitchA] ip route-static 20.0.0.0 255.0.0.0 172.17.1.2
[SwitchA] ip route-static 30.0.0.0 255.0.0.0 172.17.1.2
[SwitchA] ip route-static 40.0.0.0 255.0.0.0 172.17.1.2
# 配置访问列表
[SwitchA] acl number 2000
[SwitchA-acl-basic-2000] rule deny source 30.0.0.0 0.255.255.255
[SwitchA-acl-basic-2000] rule permit source any
[SwitchA-acl-basic-2000] quit
# 引入静态路由
[SwitchA] rip
[SwitchA-rip-1] import-route static
# 对发布给Switch B的路由信息引用ACL 2000进行过滤,只有通过过滤的路由信息才发布给Switch B
[SwitchA-rip-1] filter-policy 2000 export vlan-interface 100
[SwitchA-rip-1] quit
(2) 配置Switch B
# 配置各接口的IP地址(略)
# 配置RIP基本功能
<SwitchB> system-view
[SwitchB] rip
[SwitchB-rip-1] version 2
[SwitchB-rip-1] undo summary
[SwitchB-rip-1] network 192.168.1.0
[SwitchB-rip-1] network 10.0.0.0
[SwitchB-rip-1] quit
(3) 查看Switch B的rip路由表,验证结果
[SwitchB] display rip 1 route
Route Flags: R - RIP, T - TRIP
P - Permanent, A - Aging, S - Suppressed, G - Garbage-collect ----------------------------------------------------------------------
Peer 192.168.1.3 on Vlan-interface100
Destination/Mask Nexthop Cost Tag Flags Sec
20.0.0.0/8 192.168.1.3 1 0 RA 14
40.0.0.0/8 192.168.1.3 1 0 RA 14
结果显示,上面的配置方法可以实现配置要求,Switch B只接收到了通过ACL 2000过滤后的路由信息。
路由协议运行正常的情况下无法实现路由信息过滤。
地址前缀列表的各个表项中至少应该有一个表项的匹配模式是permit模式。Route-policy的各个节点中至少应该有一个节点的匹配模式是permit模式。
(1) 使用display ip ip-prefix命令查看前缀列表的配置。
(2) 使用display route-policy命令查看路由策略的配置。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!