16-路由协议操作
本章节下载: 16-路由协议操作 (488.58 KB)
文中所述的路由器代表了一般意义下的路由器,以及运行了路由协议的以太网交换机。
在因特网中进行路由选择要使用路由器,路由器根据所收到的报文的目的地址选择一条合适的路由(通过某一网络),并将报文传送到下一个路由器。路径中最后的路由器负责将报文送交目的主机。
路由器转发分组的关键是路由表。每个路由器中都保存着一张路由表,表中每条路由项都指明分组到某子网或某主机应通过路由器的哪个物理端口发送,然后就可到达该路径的下一个路由器,或者不再经过别的路由器而传送到直接相连的网络中的目的主机。
根据来源不同,路由表中的路由通常可分为以下三类:
l 链路层协议发现的路由(也称为接口路由或直连路由)。
l 手工配置的静态路由。
l 动态路由协议发现的路由。
路由表中包含了下列关键项:
l 目的地址:用来标识IP报文的目的地址或目的网络。
l 网络掩码:与目的地址一起来标识目的主机或路由器所在的网段的地址。将目的地址和网络掩码“逻辑与”后可得到目的主机或路由器所在网段的地址。例如:目的地址为129.102.8.10,掩码为255.255.0.0的主机或路由器所在网段的地址为129.102.0.0。掩码由若干个连续“1”构成,既可以以点分十进制表示,也可以用掩码中连续“1”的个数来表示。
l 出接口:说明IP报文将从该路由器哪个接口转发。
l 下一跳IP地址:说明IP包所经由的下一个路由器。
l 本条路由加入IP路由表的优先级:针对同一目的地,可能存在不同下一跳的若干条路由,这些不同的路由可能是由不同的路由协议发现的,也可以是手工配置的静态路由。优先级高(数值小)的路由将成为当前的最优路由。
根据路由的目的地不同,可以划分为:
l 子网路由:目的地为子网。
l 主机路由:目的地为主机。
另外,根据目的地与该路由器是否直接相连,又可分为:
l 直接路由:目的地所在网络与路由器直接相连。
l 间接路由:目的地所在网络与路由器不是直接相连。
为了不使路由表过于庞大,可以设置一条缺省路由。如果路由表中不存在与IP报文的目的IP地址匹配表项时,就选择缺省路由转发。
如图1-1所示,各网络中的数字是该网络的网络地址。路由器Router G与三个网络相连,因此有三个IP地址和三个物理端口,其路由表如图所示。
Destiantion Network |
Nexthop |
Interface |
11.0.0.0 |
14.0.0.1 |
3 |
12.0.0.0 |
14.0.0.1 |
3 |
13.0.0.0 |
16.0.0.1 |
2 |
14.0.0.0 |
14.0.0.3 |
3 |
15.0.0.0 |
17.0.0.2 |
1 |
16.0.0.0 |
16.0.0.2 |
2 |
17.0.0.0 |
17.0.0.1 |
1 |
静态路由配置方便,对系统要求低,适用于拓扑结构简单并且稳定的小型网络。其缺点是不能自动适应网络拓扑结构的变化,当网络拓扑结构发生变化时,需要人工重新配置静态路由。
动态路由协议有自己的路由算法,能够自动适应网络拓扑的变化,适用于具有一定规模的网络拓扑。其缺点是配置比较复杂,对系统的要求高于静态路由,并将占用一定的网络资源。
对动态路由协议的分类可采用以下不同标准:
根据作用的范围,路由协议可分为:
l 内部网关协议(Interior Gateway Protocol,简称IGP):在一个自治系统内部运行,常见的IGP协议包括RIP、OSPF和IS-IS。
l 外部网关协议(Exterior Gateway Protocol,简称EGP):运行于不同自治系统之间,BGP是目前最常用的EGP。
自治系统(Autonomous System)是拥有同一选路策略,并在同一技术管理部门下运行的一组路由器。
根据使用的算法,路由协议可分为:
l 距离矢量协议(Distance-Vector):包括RIP和BGP。其中,BGP也被称为路径矢量协议(Path-Vector)。
l 链路状态协议(Link-State):包括OSPF和IS-IS。
以上两种算法的主要区别在于发现和计算路由的方法不同。
根据目的地址的类型,路由协议可分成:
l 单播路由协议(Unicast Routing Protocol):包括RIP、OSPF、BGP和IS-IS等。
l 组播路由协议(Multicast Routing Protocol):包括PIM-SM、PIM-DM等。
本部分手册主要介绍单播路由协议,组播路由协议请参见“组播协议”部分的介绍。
到相同的目的地,不同的路由协议(包括静态路由)可能会发现不同的路由,但这些路由并不都是最优的。事实上,在某一时刻,到某一目的地的当前路由仅能由唯一的路由协议来决定。各路由协议(包括静态路由)都被赋予了一个优先级,当存在多个路由信息源时,具有较高优先级的路由协议发现的路由将成为当前路由。各种路由协议及其发现路由的缺省优先级如表1-1所示。
其中:0表示直接连接的路由,255表示任何来自不可信源端的路由。数值越小表明优先级越高。
路由协议或路由种类 |
相应路由的优先级 |
DIRECT |
0 |
OSPF |
10 |
STATIC |
60 |
RIP |
100 |
OSPF ASE |
150 |
OSPF NSSA |
150 |
UNKNOWN |
255 |
除了直连路由(DIRECT)外,各动态路由协议的优先级都可根据用户需求,手工进行配置。另外,每条静态路由的优先级都可以不相同。
对于某种路由协议,到某一目的地址存在多条开销值相同的路由。到这个目的地址的路由中,如果该路由协议的优先级最高,那么该路由协议发现的到这个目的地址的路由将全部有效。在转发去往该目的地报文时,报文依次通过各条路径发送,从而实现网络的负载分担。
路由备份:到同一目的地配置多条优先级不同的路由,其中优先级最高的一条路由作为主路由,其余优先级较低的路由作为备份路由。
路由备份提高了用户网络的可靠性,主路由与备份路由之间可以自动切换。
正常情况下,路由器采用主路由发送数据。当线路发生故障时,主路由失效,路由器选择备份路由中优先级最高的路由转发数据,即主路由到备份路由的自动切换。当主路由恢复正常时,路由器恢复相应的路由,并重新选择路由。由于该路由的优先级最高,路由器选择主路由来发送数据,即备份路由到主路由的自动切换。
由于各路由协议采用的路由算法不同,不同的路由协议可能会发现不同的路由。如果网络规模较大,当使用多种路由协议时,往往需要在不同的路由协议间能够共享各自发现的路由信息。每种路由协议通过路由引入机制共享其它路由协议发现的路由信息。
查看路由表的信息是定位路由问题的基本要求,表1-2中列举了通用的路由表信息的显示和维护命令。display命令可以在任意视图下执行,在用户视图下执行reset命令可以清除路由表的统计信息。
表1-2 路由表的显示和维护
操作 |
命令 |
说明 |
查看路由表摘要信息 |
display ip routing-table [ | { begin | exclude | include } regular-expression ] |
display命令可以在任意视图下执行 |
查看路由表详细信息 |
display ip routing-table verbose |
|
查看通过指定基本访问控制列表过滤的路由信息 |
display ip routing-table acl acl-number [ verbose ] |
|
查看通过指定前缀列表过滤的路由信息 |
display ip routing-table ip-prefix ip-prefix-name [ verbose ] |
|
查看指定目的地址的路由 |
display ip routing-table ip-address [ mask | mask-length ] [ longer-match ] [ verbose ] |
|
查看指定目的地址范围内的路由 |
display ip routing-table ip-address1 { mask1 | mask-length1 } ip-address2 { mask2 | mask-length2 } [ verbose ] |
|
查看指定协议发现的路由 |
display ip routing-table protocol protocol [ inactive | verbose ] |
|
查看树形式路由表 |
display ip routing-table radix |
|
查看路由表的统计信息 |
display ip routing-table statistics |
|
删除路由表的统计信息 |
reset ip routing-table statistics protocol { all | protocol } |
reset命令在用户视图下执行 |
文中所述的路由器代表了一般意义下的路由器,以及运行了路由协议的以太网交换机。
静态路由是一种特殊的路由,由管理员手工配置。在组网结构比较简单的网络中,只需配置静态路由就可以实现网络互通。合理设置和使用静态路由可以改善网络的性能,并可为重要的网络应用保证带宽。
静态路由的缺点:不能自动适应网络拓扑结构的变化,当网络拓扑结构发生变化时,可能会出现路由不可达,导致网络中断情况,此时需要网络管理员手工修改静态路由的配置。
静态路由还有如下的属性:
(1) 目的地可达路由,正常的路由都属于这种情况,即IP报文按照目的地标识的路由被送往下一跳,这是静态路由的一般用法。
(2) 目的地不可达的路由,当到某一目的地的静态路由具有“reject”属性时,任何去往该目的地的IP报文都将被丢弃,并且通知源主机目的地不可达。
(3) 黑洞路由:当去往某一目的地的静态路由具有“blackhole”属性时,无论配置的下一跳地址是什么,该路由的出接口均为Null 0接口,任何去往该目的地的IP报文都将被丢弃,并且不通知源主机。
其中“reject”和“blackhole”属性一般用来控制本路由器可达目的地的范围,辅助网络故障的诊断。
为了不使路由表过于庞大,可以设置一条缺省路由。如果路由表中不存在与IP报文的目的IP地址匹配表项时,就选择缺省路由转发。
当路由表中不存在与IP报文的目的IP地址匹配表项时:
l 如果路由表中存在缺省路由,那么该报文将选取缺省路由转发。
l 如果路由表中不存在缺省路由,那么该报文被丢弃的同时,将向源端返回一个ICMP报文报告该目的地址或网络不可达。
缺省路由可以通过静态路由手工配置,也可以由某些动态路由协议生成,如OSPF、RIP等。
在配置静态路由之前,需完成以下任务:
l 配置相关接口的物理参数
l 配置相关接口的IP地址
表2-1 配置静态路由
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置静态路由 |
ip route-static ip-address { mask | mask-length } { interface-type interface-number | next-hop } [ preference preference-value ] [ reject | blackhole ] [ detect-group group number ] [ description text ] |
必选 缺省情况下,系统可以获取到去往与路由器直连的子网路由 |
l 当使用ip route-static命令配置静态路由时,如果将目的地址与掩码配置为全零(0.0.0.0 0.0.0.0),则表示配置的是缺省路由。
l 静态路由的下一跳地址不能配置为本地交换机的接口地址。
l 对优先级的不同配置,可以灵活应用路由管理策略。
l 自动侦测请参见“自动侦测”部分的介绍。
在完成上述配置后,执行display命令可以显示配置的静态路由信息,用户可以通过查看显示信息验证配置的效果。执行delete命令可以删除配置的所有静态路由。
表2-2 静态路由显示和维护
操作 |
命令 |
说明 |
查看当前的配置文件信息 |
display current-configuration |
display命令可以在任意视图下执行 |
查看路由表摘要信息 |
display ip routing-table |
|
查看路由表详细信息 |
display ip routing-table verbose |
|
查看静态路由表信息 |
display ip routing-table protocol static [ inactive | verbose ] |
|
删除所有静态路由 |
delete static-routes all |
delete命令在系统视图下执行 |
某小型公司办公网络需要任意两个节点之间能够互通,网络结构简单、稳定,用户希望最大限度利用现有设备。用户现在拥有的设备不支持动态路由协议。
根据用户需求及用户网络环境,选择静态路由实现用户网络之间互通。
根据用户需求,设计如图2-1所示网络拓扑图。
当设备只有一个接口与其他网段互连时,可以通过静态路由或者缺省路由两种方式实现网络的互通,在配置时两种方式任选其一。
(1) 交换机上的配置步骤
# 方法一:设置以太网交换机Switch A的静态路由。
<SwitchA> system-view
[SwitchA] ip route-static 1.1.3.0 255.255.255.0 1.1.2.2
[SwitchA] ip route-static 1.1.4.0 255.255.255.0 1.1.2.2
[SwitchA] ip route-static 1.1.5.0 255.255.255.0 1.1.2.2
# 方法二:设置以太网交换机Switch A的静态路由。
<SwitchA> system-view
[SwitchA] ip route-static 0.0.0.0 0.0.0.0 1.1.2.2
# 方法一:设置以太网交换机Switch B的静态路由。
<SwitchB> system-view
[SwitchB] ip route-static 1.1.2.0 255.255.255.0 1.1.3.1
[SwitchB] ip route-static 1.1.5.0 255.255.255.0 1.1.3.1
[SwitchB] ip route-static 1.1.1.0 255.255.255.0 1.1.3.1
# 方法二:设置以太网交换机Switch B的静态路由。
<SwitchB> system-view
[SwitchB] ip route-static 0.0.0.0 0.0.0.0 1.1.3.1
# 设置以太网交换机Switch C的静态路由。
<SwitchC> system-view
[SwitchC] ip route-static 1.1.1.0 255.255.255.0 1.1.2.1
[SwitchC] ip route-static 1.1.4.0 255.255.255.0 1.1.3.2
(2) 主机上的配置步骤
# 在主机A上配缺省网关为1.1.5.1,具体配置略。
# 在主机B上配缺省网关为1.1.4.1,具体配置略。
# 在主机C上配缺省网关为1.1.1.1,具体配置略。
至此图中所有主机和以太网交换机之间均能两两互通。
以太网交换机没有配置动态路由协议,接口的物理状态和链路层协议状态均已处于UP,但IP报文不能转发。
(1) 用display ip routing-table protocol static命令查看是否正确配置相应静态路由。
(2) 用display ip routing-table命令查看该静态路由是否已经生效。
文中所述的路由器代表了一般意义下的路由器,以及运行了路由协议的以太网交换机。
RIP(Routing Information Protocol)是一种较为简单的内部网关协议(Interior Gateway Protocol,IGP),主要用于规模较小的网络中。对于复杂环境及大型网络,一般不使用RIP。
RIP是一种基于距离矢量(Distance-Vector,D-V)算法的协议,它通过UDP报文进行路由信息的交换,使用的端口号为520。
RIP使用跳数(Hop Count)来衡量到达目的地址的距离,称为度量值(Routing Cost)。在RIP中,路由器到与它直接相连网络的跳数为0,通过一个路由器可达的网络的跳数为1,其余依此类推。为限制收敛时间,RIP规定度量值取0~15之间的整数,大于或等于16的跳数被定义为无穷大,即目的网络或主机不可达。由于这个限制,使得RIP不适合应用于大型网络。
为提高性能,防止产生路由环路,RIP支持水平分割(Split Horizon)功能。RIP还可引入其它路由协议所得到的路由。
每个运行RIP的路由器管理一个路由数据库,该路由数据库包含了到所有可达目的地的路由项,这些路由项包含下列信息:
l 目的地址:主机或网络的IP地址。
l 下一跳地址:为到达目的地,需要经过的本路由器相邻路由器的接口IP地址。
l 出接口:本路由器转发报文的出接口。
l 度量值:本路由器到达目的地的开销。
l 路由时间:从路由项最后一次被更新到现在所经过的时间,路由项每次被更新时,路由时间重置为0。
在RFC1058中规定,RIP受三个定时器的控制,分别是Period update、Timeout和Garbage-Collection:
l Period update定时器,定义了发送路由更新的时间间隔。
l Timeout定时器,定义了路由老化时间。如果在老化时间内没有收到关于某条路由的更新报文,则该条路由在路由表中的度量值将会被设置为16。
l Garbage-Collection定时器,定义了一条路由从度量值变为16开始,直到它从路由表里被删除所经过的时间。在Garbage-Collection时间内,RIP以16作为度量值向外发送这条路由的更新,如果Garbage-Collection超时,该路由仍没有得到更新,则该路由将从路由表中被彻底删除。
RIP是一种基于D-V算法的路由协议,由于它向邻居通告的是自己的路由表,存在发生路由环路的可能性。
RIP通过以下机制来避免路由环路的产生:
l 计数到无穷(Counting to infinity):将度量值等于16的路由定义为不可达(infinity)。在路由环路发生时,某条路由的度量值将会增加到16,该路由被认为不可达。
l 水平分割(Split Horizon):RIP从某个接口学到的路由,不会从该接口再发回给邻居路由器。这样不但减少了带宽消耗,还可以防止路由环路。
RIP启动和运行的整个过程可描述如下:
l 某路由器刚启动RIP时,以广播或组播的形式向运行RIP协议的相邻路由器发送请求报文,相邻路由器收到请求报文后,响应该请求,回送包含本地路由表信息的响应报文。
l 路由器收到响应报文后,更新本地路由表,同时向运行RIP协议的相邻路由器发送触发更新报文,通告路由更新信息。相邻路由器收到触发更新报文后,又向其各自的相邻路由器发送触发更新报文。在一连串的触发更新后,各路由器都能得到并保持最新的路由信息。
l RIP在缺省情况下每隔30秒向相邻路由器发送本地路由表,运行RIP协议的相邻路由器在收到报文后,对本地路由进行维护,选择一条最佳路由,再向其各自相邻网络发送更新信息,使更新的路由最终能达到全局有效。同时,RIP采用老化机制对超时的路由进行老化处理,以保证路由的实时性和有效性。
表3-1 RIP配置任务简介
配置任务 |
说明 |
详细配置 |
|
配置RIP的基本功能 |
启动RIP |
必选 |
|
配置接口的工作状态 |
可选 |
||
配置RIP的版本号 |
可选 |
||
控制RIP的路由信息 |
配置接口的附加度量值 |
可选 |
|
配置RIP的路由聚合 |
可选 |
||
禁止RIP接收主机路由 |
可选 |
||
配置RIP对接收或者发布的路由进行过滤 |
可选 |
||
配置RIP协议优先级 |
可选 |
||
配置RIP接口间负载分担 |
可选 |
||
配置RIP的引入外部路由信息 |
可选 |
||
调整和优化RIP网络 |
配置RIP定时器 |
可选 |
|
配置水平分割 |
可选 |
||
配置RIP-1报文的零域检查 |
可选 |
||
配置RIP-2报文的认证方式 |
可选 |
||
配置RIP以单播方式发送RIP报文 |
可选 |
在配置RIP的基本功能之前,需配置接口的网络层地址,使相邻节点的网络层可达。
表3-2 启动RIP,配置指定的接口运行RIP进程
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
启动RIP并进入RIP视图 |
rip |
必选 |
配置指定接口运行RIP进程 |
network network-address |
必选 缺省情况下,接口禁用RIP |
l 接口视图下配置的RIP相关命令,只有在RIP启动后才会生效。
l RIP进程只在指定网段的接口上运行;对于不在指定网段上的接口,RIP既不在它上面接收和发送路由,也不将它的接口路由转发出去。因此,RIP启动后必须指定其工作网段。
表3-3 配置接口的工作状态
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
允许接口接收RIP更新报文 |
rip input |
可选 缺省情况下,允许接口发送、接收RIP更新报文 |
允许接口发送RIP更新报文 |
rip output |
|
允许接口接收和发送RIP更新报文 |
rip work |
表3-4 配置RIP版本号
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
指定接口运行RIP进程的版本 |
rip version { 1 | 2 [ broadcast | multicast ] } |
必选 缺省情况下,接口运行RIP进程的版本为RIP-1 |
在实际应用中,有时候需要对RIP路由信息进行更为精确的控制,以满足复杂网络环境中的需要。通过本节的配置过程,可以实现:
l 通过调整RIP接口的附加度量值来影响路由的选择;
l 通过设置路由聚合和禁止接收主机路由来减小路由表的规模;
l 对接收或发布的路由信息进行过滤;
l 当多个路由协议发现相同的路由时,通过配置RIP的协议优先级来改变路由协议的优先顺序;
l 在多路由协议环境中引入外部路由。
在控制RIP的路由信息之前,需完成以下任务:
l 配置接口的网络层地址,使相邻节点网络层可达
l 配置RIP基本功能
附加度量值是在RIP路由原来度量值的基础上所增加的度量值。附加度量值并不直接改变路由器路由表中RIP路由的度量值,而是路由器在接收或发布RIP路由时增加的一个度量值。
表3-5 配置接口的附加度量值
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
设置接口在接收路由时增加的度量值 |
rip metricin value |
可选 缺省情况下,RIP在接收报文时给路由增加的附加路由度量值为0 |
设置接口在发布路由时增加的度量值 |
rip metricout value |
可选 缺省情况下,RIP在发送报文时给路由增加的附加路由度量值为1 |
rip metricout的设置仅对路由器学习到的RIP路由,以及路由器自己产生的RIP路由有效,对于从其他路由协议引入到RIP的路由无效。
RIP的路由聚合:当路由器发布RIP路由更新信息时,同一自然网段内的不同子网的路由信息将聚合成一条自然掩码的路由信息发布。该功能主要用于减小路由表的规模,进而减少网络上的流量。
当路由器发布RIP路由更新信息,需要发布子网路由信息时,关闭RIP-2的自动路由聚合功能。
表3-6 配置RIP的路由聚合
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
进入RIP视图 |
rip |
- |
配置RIP-2路由聚合功能 |
summary |
必选 缺省情况下,RIP-2路由聚合功能处于开启状态 |
在某些特殊情况下,路由器会收到大量来自同一网段的主机路由,这些路由对于路由寻址没有多少作用,却占用了大量网络资源。配置了禁止主机路由功能后,路由器将拒绝它所收到的主机路由。
表3-7 禁止RIP接收主机路由
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIP视图 |
rip |
- |
禁止接收主机路由 |
undo host-route |
必选 缺省情况下,允许路由器接收主机路由 |
路由器提供路由信息过滤功能,通过指定访问控制列表、地址前缀列表、路由策略,对接收或发布的路由信息进行过滤。在接收路由时,还可以指定只接收来自某个邻居的RIP报文。
表3-8 配置RIP对接收或者发布的路由进行过滤
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIP视图 |
rip |
- |
对接收的路由信息进行过滤 |
filter-policy { acl-number | ip-prefix ip-prefix-name [ gateway ip-prefix-name ] | route-policy route-policy-name } import |
必选 缺省情况下,RIP不对接收的路由信息进行过滤 使用gateway参数的命令用来配置对接收的指定地址发布的路由信息进行过滤 |
filter-policy gateway ip-prefix-name import |
||
对发布的路由信息进行过滤 |
filter-policy { acl-number | ip-prefix ip-prefix-name } export [ protocol ] |
必选 缺省情况下,RIP不对发布的路由信息进行过滤 |
filter-policy route-policy route-policy-name export |
l filter-policy import命令对从邻居收到的RIP路由进行过滤,没有通过过滤的路由将不被加入路由表,也不向邻居发布该路由。
l filter-policy export命令可以对本机所有发布的路由进行过滤,包括使用import-route引入的路由和从邻居学到的RIP路由。
l filter-policy export命令可以对通过import-route引入的指定路由进行过滤。
表3-9 配置RIP协议优先级
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIP视图 |
rip |
- |
设置RIP协议的优先级 |
preference value |
必选 缺省值为100 |
表3-10 配置RIP接口间负载分担
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIP视图 |
rip |
- |
配置RIP接口间负载分担 |
traffic-share-across-interface |
必选 缺省情况下,RIP接口间负载分担功能处于关闭状态 |
表3-11 配置RIP引入外部路由信息
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIP视图 |
rip |
- |
配置引入路由的缺省度量值 |
default cost value |
可选 缺省值为1 |
配置RIP引入外部路由信息 |
import-route protocol [ cost value | route-policy route-policy-name ]* |
必选 缺省情况下,RIP不引入其它路由 |
在某些特殊的网络环境中,需要配置RIP的一些特性功能,对RIP网络的性能进行调整和优化。通过本节的配置过程,可以实现:
l 通过调整RIP定时器来改变RIP网络的收敛速度
l 配置水平分割来防止路由环路
l 在安全性较高的网络环境中对报文进行有效性检查和验证
l 在有特殊需求的接口或链路上配置RIP以单播方式发送RIP报文
在调整RIP之前,需完成以下任务:
l 配置接口的网络层地址,使相邻节点网络层可达
l 配置RIP基本功能
表3-12 配置RIP定时器
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIP视图 |
rip |
- |
配置RIP定时器的值 |
timers { update update-timer | timeout timeout-timer } * |
必选 缺省情况下: l Update定时器值:30秒 l Timeout定时器值:180秒 |
在配置RIP定时器时需要注意,定时器值的调整应考虑网络的性能,并在所有运行RIP的路由器上进行统一配置,以免增加不必要的网络流量或引起网络路由震荡。
表3-13 配置水平分割
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置水平分割功能 |
rip split-horizon |
必选 缺省情况下,水平分割功能处于开启状态 |
在点到点链路上禁止水平分割功能是无效的。
表3-14 配置RIP-1报文的零域检查
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIP视图 |
rip |
- |
配置RIP-1报文的零域检查功能 |
checkzero |
必选 缺省情况下,RIP-1零域检查功能处于开启状态 |
RIP-1报文中的有些字段必须为零,称之为零域。RIP-1在接收报文时将对零域进行检查,值不为零的RIP-1报文将不被处理。
RIP-2支持两种认证方式:明文认证和MD5密文认证。
明文认证不能提供安全保障,未加密的认证字随报文一同传送,所以明文认证不能用于安全性要求较高的情况。
表3-15 配置RIP-2报文的认证方式
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置RIP-2报文的认证方式 |
rip authentication-mode { simple password | md5 { rfc2082 key-string key-id | rfc2453 key-string } } |
必选 如果配置MD5认证,则必须配置MD5的类型: l rfc2453类型支持符合RFC2453规定的报文格式 l rfc2082类型支持符合RFC2082规定的报文格式 |
表3-16 配置RIP以单播方式发送RIP报文
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIP视图 |
rip |
- |
配置RIP以单播方式发送RIP报文 |
peer ip-address |
必选 在不支持广播或组播报文的链路上运行RIP,必须配置RIP以单播方式发送RIP报文 |
在完成上述配置后,执行display命令可以显示配置后RIP的运行情况,用户可以通过查看显示信息验证配置的效果。执行reset命令,可以复位RIP协议的系统配置参数。
操作 |
命令 |
说明 |
显示RIP的当前运行状态及配置信息 |
display rip |
display命令可以在任意视图下执行 |
显示RIP的接口信息 |
display rip interface |
|
显示RIP的路由信息 |
display rip routing |
|
复位RIP协议的系统配置参数 |
reset |
在RIP视图下执行 |
某小型公司办公网络需要任意两个节点之间能够互通,网络规模比较小。需要设备自动适应网络拓扑变化,降低人工维护工作量。
根据用户需求及用户网络环境,选择RIP路由协议实现用户网络之间互通。
根据用户需求,设计如图3-1所示网络拓扑图。
图3-1 RIP典型配置组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
Switch A |
Vlan-int1 |
110.11.2.1/24 |
Switch B |
Vlan-int1 |
110.11.2.2/24 |
|
Vlan-int2 |
155.10.1.1/24 |
|
Vlan-int3 |
196.38.165.1/24 |
Switch C |
Vlan-int1 |
110.11.2.3/24 |
|
|
|
|
Vlan-int4 |
117.102.0.1/16 |
|
|
|
以下的配置,只列出了与RIP相关的操作。在进行下列配置之前,请先确保以太网链路层能够正常工作,且各VLAN接口IP地址已经配置完成。
(1) 配置SwitchA
# 配置RIP。
<SwitchA> system-view
[SwitchA] rip
[SwitchA-rip] network 110.11.2.0
[SwitchA-rip] network 155.10.1.0
(2) 配置SwitchB
# 配置RIP。
<SwitchB> system-view
[SwitchB] rip
[SwitchB-rip] network 196.38.165.0
[SwitchB-rip] network 110.11.2.0
(3) 配置SwitchC
# 配置RIP。
<SwitchC> system-view
[SwitchC] rip
[SwitchC-rip] network 117.102.0.0
[SwitchC-rip] network 110.11.2.0
交换机在与对方路由设备物理连接正常的情况下,收不到RIP更新报文。
(1) 检查接口是否运行RIP进程,即是否配置了network命令;
(2) 检查接口是否允许接收或者发送RIP报文;
(3) 检查接口间发送RIP报文方式是否相互兼容,例如接口是以广播还是组播方式发送RIP报文。
文中所述的路由器代表了一般意义下的路由器,以及运行了路由协议的以太网交换机。
路由策略(Routing Policy)是为了控制数据报文的转发路径而修改路由信息的技术,主要通过改变路由属性(包括可达性)来实现。
路由器在发布或接收路由信息时,可能需要实施一些策略,以便对路由信息进行过滤,比如只接收或发布一部分满足给定条件的路由信息;一种路由协议(如RIP)可能需要引入(import)其它的路由协议发现的路由信息,从而丰富自己的路由信息;路由器在引入其它路由协议的路由信息时,可能只需要引入一部分满足条件的路由信息,并控制所引入的路由信息的某些属性,以使其满足本协议的要求。
为实现路由策略,首先要定义将要实施路由策略的路由信息的特征,即定义一组匹配规则,可以将路由信息中的不同属性作为匹配依据进行设置,如目的地址、发布路由信息的路由器地址等。匹配规则可以预先设置好,然后再将它们应用于路由的发布、接收和引入等过程的路由策略中。
路由协议可以引用访问控制列表、IP地址前缀列表和路由策略几种过滤器。下面对各种过滤器逐一进行介绍。
用户在定义ACL时指定一个IP地址或子网的范围,用于匹配路由信息的目的网络地址或下一跳地址字段。应用路由策略时,引用ACL对路由信息进行过滤。
ACL的详细内容请参见“ACL”部分的介绍。
ip-prefix的作用类似于ACL,但比它更为灵活,且更易于为用户理解。使用ip-prefix过滤路由信息时,其匹配对象为路由信息的目的地址字段;另外在ip-prefix中,用户可以指定gateway选项,指明只接收某些路由器发布的路由信息。
一个ip-prefix由前缀列表名标识,每个前缀列表可以包含多个表项。每个表项以网络前缀的形式,独立指定一个匹配范围,并用一个index-number来标识。index-number指明了在ip-prefix中进行匹配检查的顺序。
每个表项之间是“或”的关系,在匹配的过程中,路由器按升序依次检查由index-number标识的各个表项。只要有某一表项满足条件,就意味着通过该ip-prefix的过滤(不会进入下一个表项的测试)。
用于匹配给定路由信息的某些属性,并在条件满足后对该路由信息的某些属性进行设置。
一个路由策略可以由多个节点(node)构成,每个节点是进行匹配测试的一个单元。匹配过程中,路由器按升序依次对节点(node-number)进行匹配。每个节点可以由一组if-match和apply子句组成。if-match子句定义匹配规则,匹配对象是路由信息的一些属性。同一节点中的不同if-match子句是“与”的关系,只有满足节点内所有if-match子句指定的匹配条件,才能通过该节点的匹配测试。apply子句指定动作,也就是在通过节点的匹配测试后所执行的动作——对路由信息的一些属性进行设置。
一个路由策略的不同节点间是“或”的关系,系统依次检查路由策略的各个节点,如果通过了路由策略的某一节点,就意味着通过该路由策略的匹配测试(不进入下一个节点的测试)。
表4-1 IP路由策略配置任务简介
配置任务 |
说明 |
详细配置 |
|
配置IP路由策略 |
创建一个路由策略 |
必选 |
|
配置If-match子句和apply子句 |
必选 |
||
配置IP地址前缀列表 |
必选 |
路由策略用来匹配给定的路由信息或者路由信息的某些属性,并在条件满足时改变这些路由信息的属性。匹配条件可以使用前面几种过滤列表。
一个路由策略可由多个节点构成,每个节点又分为:
l If-match子句:定义匹配规则,即路由信息通过当前路由策略所需满足的条件,匹配对象是路由信息的某些属性。
l Apply子句:指定动作,也就是在满足由if-match子句指定的过滤条件后所执行的一些配置命令,对路由的某些属性进行修改。
在配置路由策略之前,需完成以下任务:
l 配置过滤列表
l 配置路由协议
在配置之前,需要准备以下数据:
l 路由策略的名称、节点序号
l 匹配条件
l 要修改的路由属性值
操作 |
命令 |
说明 |
进入系统视图 |
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模式,则没有路由信息能通过该路由策略。
表4-3 配置If-match子句和apply子句
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入该路由策略视图 |
route-policy route-policy-name { permit | deny } node node-number |
必选 |
匹配路由策略的IP地址范围 |
if-match { acl acl-number | ip-prefix ip-prefix-name } |
可选 缺省情况下,不匹配路由策略的IP地址范围 |
匹配路由信息的度量值 |
if-match cost value |
可选 缺省情况下,不匹配路由信息的度量值 |
匹配路由信息的出接口 |
if-match interface interface-type interface-number |
可选 缺省情况下,不匹配路由信息的出接口 |
匹配路由信息下一跳 |
if-match ip next-hop { acl acl-number | ip-prefix ip-prefix-name } |
可选 缺省情况下,不匹配路由信息下一跳地址 |
匹配路由信息的标记域 |
if-match tag value |
可选 缺省情况下,不匹配路由信息的标记域 |
设置路由信息的度量值 |
apply cost value |
可选 缺省情况下,不设置路由信息的路由度量值 |
设置路由信息的标记域 |
apply tag value |
可选 缺省情况下,不设置路由信息的标记域 |
l 一个路由策略可以由多个节点(node)构成,不同节点之间是“或”的关系。路由器以升序依次检查各个节点,如果通过了其中一节点,就意味着通过该策略,不再对其他节点进行匹配测试。
l 对于同一个路由策略的节点,在匹配的过程中,各个if-match子句间是“与”的关系,即路由信息必须同时满足所有匹配条件,才称作匹配该节点的规则。
l 如不指定if-match子句,则所有路由信息都会通过该节点的过滤。
l 在一个节点中,可以没有If-math子句,也可以有多个If-match子句。
l 每个节点可以由一组if-match和apply子句组成。if-match子句定义匹配规则, apply子句指定动作,也就是在通过节点的匹配后,对路由信息的一些属性进行设置。
IP地址前缀列表的作用类似于ACL,但更为灵活,且更易于理解。IP地址前缀列表在应用于路由信息的过滤时,其匹配对象为路由信息的目的地址信息。
在配置过滤列表之前,需要准备以下数据:
l 前缀列表名称
l 匹配的地址范围
IP地址前缀列表由列表名标识,每个前缀列表可以包含多个表项。各表项以网络前缀的形式,独立指定一个匹配范围,并使用索引号标识。比如下面这个名称为abcd的IP地址前缀列表:
l ip ip-prefix abcd index 10 permit 1.0.0.0 8
l ip ip-prefix abcd index 20 permit 2.0.0.0 8
在匹配过程中,系统按索引号升序依次检查各个表项,只要有一个表项满足条件,就认为通过该过滤列表,不再去匹配其他表项。
表4-4 配置IP地址前缀列表
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置IP地址前缀列表 |
ip ip-prefix ip-prefix-name [ index index-number ] { permit | deny } network len [ greater-equal greater-equal | less-equal less-equal ] |
必选 缺省情况下,不指定地址前缀列表 |
如果所有表项都是deny模式,则任何路由都不能通过该过滤列表。建议在多条deny模式的表项后定义一条permit模式的表项,形式如下:
ip ip-prefix ip-prefix-name index index-number permit 0.0.0.0 0 less-equal 32
允许其他所有的路由信息通过。
在完成上述配置后,在任意视图下执行display命令可以显示配置后IP路由策略的运行情况,用户可以通过查看显示信息验证配置的效果。
操作 |
命令 |
说明 |
显示Route-policy |
display route-policy [ route-policy-name ] |
display命令可在任意视图下执行 |
显示IP地址前缀列表信息 |
display ip ip-prefix [ ip-prefix-name ] |
l SwitchA与SwitchB通信,运行RIP协议。
l 对SwitchA上的RIP路由进程进行配置,并配置静态路由。
l 设置在引入静态路由时应用路由策略,使三条静态路由部分引入、部分被屏蔽掉——20.0.0.0和40.0.0.0网段的路由被引入,30.0.0.0网段的路由则被屏蔽。
l 通过在SwitchB上查看RIP路由表,验证路由策略是否生效。
(1) 配置SwitchA
# 配置接口的IP地址。
<SwitchA> system-view
[SwitchA] interface vlan-interface 100
[SwitchA-Vlan-interface100] ip address 10.0.0.1 255.0.0.0
[SwitchA-Vlan-interface100] quit
[SwitchA] interface vlan-interface 200
[SwitchA-Vlan-interface200] ip address 12.0.0.1 255.0.0.0
[SwitchA-Vlan-interface200] quit
# 配置三条静态路由。
[SwitchA] ip route-static 20.0.0.1 255.0.0.0 12.0.0.2
[SwitchA] ip route-static 30.0.0.1 255.0.0.0 12.0.0.2
[SwitchA] ip route-static 40.0.0.1 255.0.0.0 12.0.0.2
# 启动RIP协议。
[SwitchA] rip
[SwitchA-rip-1]network 10.0.0.0
[SwitchA-rip-1] quit
# 配置访问列表。
[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] route-policy rip permit node 10
[SwitchA-route-policy] if-match acl 2000
[SwitchA-route-policy] quit
# 引入静态路由时应用路由策略。
[SwitchA] rip
[SwitchA-rip] import-route static route-policy rip
(2) 配置SwitchB
# 配置接口的IP地址。
<SwitchB> system-view
[SwitchB] interface vlan-interface 100
[SwitchB-Vlan-interface100] ip address 10.0.0.2 255.0.0.0
[SwitchB-Vlan-interface100] quit
# 启动RIP协议,指定使能RIP协议网络。
[SwitchB] rip
[SwitchB-rip-1] network 10.0.0.0
# 在SwitchB上查看RIP路由表,验证路由策略是否生效。
<SwitchB>display rip 1 route
Route Flags: R - RIP, T - TRIP
P - Permanent, A - Aging, S - Suppressed, G - Garbage-collect --------------------------------------------------------------------------
Peer 10.0.0.1 on Vlan-interface100
Destination/Mask Nexthop Cost Tag Flags Sec
40.0.0.0/8 10.0.0.1 1 0 RA 29
20.0.0.0/8 10.0.0.1 1 0 RA 29
某公司网络规模较小,对网络收敛速度要求不高。网络中有两种业务,为了保证网络可靠性,每种业务均有主备链路。每种业务主链路互为另一种业务的备份链路,业务类型可以根据IP地址区分。如果主链路出现故障,能够实现动态备份,避免业务中断。
根据用户需求,设计如图4-2所示网络拓扑图。
设备 |
接口 |
IP地址 |
Switch A |
Vlan-int 2 |
2.2.2.1/8 |
|
Vlan-int 3 |
3.3.3.254/8 |
|
Vlan-int 10 |
1.1.1.254/8 |
Switch B |
Vlan-int 3 |
3.3.3.253/8 |
|
Vlan-int 6 |
6.6.6.5/8 |
|
Vlan-int 10 |
1.1.1.253/8 |
Switch C |
Vlan-int 1 |
192.168.0.39/24 |
|
Vlan-int 2 |
2.2.2.2/8 |
|
Vlan-int 6 |
6.6.6.6/8 |
OA Server |
|
1.1.1.1/32 |
Service Server |
|
3.3.3.3/32 |
Host |
|
192.168.0.9/24 |
l 根据用户需求,网络中选择RIP协议;
l OA Server业务主链路:Switch A <=> Switch C;备份链路:Switch B <=> Switch C;
l Service Server业务主链路:Switch B <=> Switch C;备份链路:Switch A <=> Switch C;
l 应用路由策略,控制Switch C接收路由信息的度量值(Cost),为OA Server业务、Service Server业务提供主备链路。
(1) 配置Switch A
# 创建VLAN,配置VLAN-int的IP地址,配置过程略。
# 配置RIP。
<SwitchA> system-view
[SwitchA] rip
[SwitchA-rip] network 1.0.0.0
[SwitchA-rip] network 2.0.0.0
[SwitchA-rip] network 3.0.0.0
(2) 配置Switch B
# 创建VLAN,配置VLAN-int的IP地址,配置过程略。
# 配置RIP。
<SwitchB> system-view
[SwitchB] rip
[SwitchB-rip] network 1.0.0.0
[SwitchB-rip] network 3.0.0.0
[SwitchB-rip] network 6.0.0.0
(3) 配置Switch C
# 创建VLAN,配置VLAN-int的IP地址,配置过程略。
# 定义前缀列表1,允许前缀IP地址为1.0.0.0/8;定义前缀列表2,允许前缀IP地址为3.0.0.0/8。
<SwitchC> system-view
[SwitchC] ip ip-prefix 1 index 10 permit 1.0.0.0 8
[SwitchC] ip ip-prefix 2 index 10 permit 3.0.0.0 8
# 创建路由策略in,节点序号为10,匹配模式为允许。定义if-match子句,如果路由信息的出接口为Vlan-interface2,并且通过前缀列表1的过滤,那么设置其Cost值为5。
[SwitchC] route-policy in permit node 10
[SwitchC-route-policy] if-match interface Vlan-interface2
[SwitchC-route-policy] if-match ip-prefix 1
[SwitchC-route-policy] apply cost 5
[SwitchC-route-policy] quit
# 创建路由策略in,节点序号为20,匹配模式为允许。定义if-match子句,如果路由信息的出接口为Vlan-interface2,并且通过前缀列表2的过滤,那么设置其Cost值为6。
[SwitchC] route-policy in permit node 20
[SwitchC-route-policy] if-match interface Vlan-interface2
[SwitchC-route-policy] if-match ip-prefix 2
[SwitchC-route-policy] apply cost 6
[SwitchC-route-policy] quit
# 创建路由策略in,节点序号为30,匹配模式为允许。定义if-match子句,如果路由信息的出接口为Vlan-interface6,并且通过前缀列表1的过滤,那么设置其Cost值为6。
[SwitchC] route-policy in permit node 30
[SwitchC-route-policy] if-match interface Vlan-interface6
[SwitchC-route-policy] if-match ip-prefix 1
[SwitchC-route-policy] apply cost 6
[SwitchC-route-policy] quit
# 创建路由策略in,节点序号为40,匹配模式为允许。定义if-match子句,如果路由信息的出接口为Vlan-interface6,并且通过前缀列表2的过滤,那么设置其Cost值为5。
[SwitchC] route-policy in permit node 40
[SwitchC-route-policy] if-match interface Vlan-interface6
[SwitchC-route-policy] if-match ip-prefix 2
[SwitchC-route-policy] apply cost 5
[SwitchC-route-policy] quit
# 创建路由策略in,节点序号为50,匹配模式为允许,允许所有的路由信息通过。
[SwitchC] route-policy in permit node 50
[SwitchC-route-policy] quit
# 配置RIP,并对接收的路由信息应用路由策略in。
[SwitchC] rip
[SwitchC-rip] network 1.0.0.0
[SwitchC-rip] network 3.0.0.0
[SwitchC-rip] network 6.0.0.0
[SwitchC-rip] filter-policy route-policy in import
(1) 当OA Server主链路工作正常时,数据转发路径
<SwitchC> display ip routing-table
Routing Table: public net
Destination/Mask Protocol Pre Cost Nexthop Interface
1.0.0.0/8 RIP 100 5 2.2.2.1 Vlan-interface2
2.0.0.0/8 DIRECT 0 0 2.2.2.2 Vlan-interface2
2.2.2.2/32 DIRECT 0 0 127.0.0.1 InLoopBack0
3.0.0.0/8 RIP 100 5 6.6.6.5 Vlan-interface6
6.0.0.0/8 DIRECT 0 0 6.6.6.6 Vlan-interface6
6.6.6.6/32 DIRECT 0 0 127.0.0.1 InLoopBack0
127.0.0.0/8 DIRECT 0 0 127.0.0.1 InLoopBack0
127.0.0.1/32 DIRECT 0 0 127.0.0.1 InLoopBack0
192.168.0.0/24 DIRECT 0 0 192.168.0.39 Vlan-interface1
192.168.0.39/32 DIRECT 0 0 127.0.0.1 InLoopBack0
(2) 当OA Server主链路出现故障时(Switch A <=> Switch C之间链路down),数据转发路径
<SwitchC> display ip routing-table
Routing Table: public net
Destination/Mask Protocol Pre Cost Nexthop Interface
1.0.0.0/8 RIP 100 6 6.6.6.5 Vlan-interface2
3.0.0.0/8 RIP 100 5 6.6.6.5 Vlan-interface6
6.0.0.0/8 DIRECT 0 0 6.6.6.6 Vlan-interface6
6.6.6.6/32 DIRECT 0 0 127.0.0.1 InLoopBack0
127.0.0.0/8 DIRECT 0 0 127.0.0.1 InLoopBack0
127.0.0.1/32 DIRECT 0 0 127.0.0.1 InLoopBack0
192.168.0.0/24 DIRECT 0 0 192.168.0.39 Vlan-interface1
192.168.0.39/32 DIRECT 0 0 127.0.0.1 InLoopBack0
(1) 配置路由策略过程中,当使用apply cost命令修改Cost值时:
l 配置的Cost值应该大于路由信息中原来的Cost值,避免网络拓扑存在环路时导致RIP产生路由环路;
l 如果配置Cost值大于16,则Cost值为16;
l 如果配置Cost值为0,则Cost值为原Cost值;
(2) 配置路由策略时,如果使用if-match interface命令匹配接口字段,匹配的是该路由信息的出接口字段;
(3) 配置路由策略时,建议在路由策略末尾配置一条没有规则的节点,匹配所有不符合该节点之前的路由信息;
(4) 如果路由策略中使用apply cost命令修改Cost值,当接收的RIP路由信息的Cost值等于16时,该路由信息不应用路由策略修改Cost值,即Cost值为16;
(5) filter-policy命令对引入的外部路由信息不进行过滤。
路由协议运行正常的情况下,路由策略不能正确的实现路由信息过滤。
路由策略不能正确实现对路由信息的过滤,大致有两种情况:
(1) 路由策略所有节点的匹配模式都配置为deny模式,没有任何路由信息通过路由策略的过滤;
(2) IP地址前缀列表的所有表项的匹配模式为deny模式,没有任何路由信息通过IP地址前缀列表的过滤。
(1) 使用display ip ip-prefix命令查看前缀列表的配置;
(2) 使用display route-policy命令查看路由策略的配置。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!