17-路由协议操作
本章节下载 (902.11 KB)
4.1.7 H3C S3600系列以太网交换机支持的OSPF特性
6.1.2 H3C S3600系列以太网交换机实现的路由容量限制
& 说明:
l 本章中所指的路由器代表了一般意义下的路由器,以及运行了路由协议的以太网交换机。
l 本手册以S3600-EI系列交换机为参考,对于ospf、ospf-ase、ospf-nssa等命令仅在S3600-EI系列交换机上支持,S3600-SI系列设备不支持这些命令,手册中将不再另行说明。
在因特网中进行路由选择要使用路由器,路由器根据所收到的报文的目的地址选择一条合适的路由(通过某一网络),并将报文传送到下一个路由器。路径中最后的路由器负责将报文送交目的主机。
路由段为两个节点之间共享的通用物理网络,在因特网中认为这两个节点相邻。两台连接在同一个通用物理网络上的路由器就是相邻的路由器。路由器到本网络中任意主机的路由段数均为零,在图中用粗的箭头表示这些路由段。至于每一个路由段又由哪几条物理链路构成,路由器并不关心。如图1-1所示,主机A向主机C发送数据,数据延虚线所示路径被传输,经过了2台路由器共3个路由段。
由于网络大小可能相差很大,而每个路由段的实际长度并不相同,因此对不同的网络,可以将其路由段乘以一个加权系数,用加权后的路由段数来衡量通路的长短。
如果把网络中的路由器看成是网络中的节点,把因特网中的一个路由段看成是网络中的一条链路,那么因特网中的路由选择就与简单网络中的路由选择相似了。
采用路由段数最小的路由有时也并不一定是最理想的。例如,经过三个高速局域网段的路由可能比经过两个低速广域网段的路由快得多。
路由器转发分组的关键是路由表。每个路由器中都保存着一张路由表,表中每条路由项都指明分组到某子网或某主机应通过路由器的哪个物理端口发送,然后就可到达该路径的下一个路由器,或者不再经过别的路由器而传送到直接相连的网络中的目的主机。
路由表中包含了下列关键项:
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 间接路由:目的地所在网络与路由器不是直接相连。
为了不使路由表过于庞大,可以设置一条缺省路由。凡遇到查找路由表失败后的数据包,就选择缺省路由转发。
如图1-2所示,各网络中的数字是该网络的网络地址,R代表路由器。路由器8与三个网络相连,因此有三个IP地址和三个物理端口,其路由表如图所示。
H3C S3600系列以太网交换机支持对静态路由的配置,同时支持RIP、OSPF等一系列动态路由协议,另外交换机在运行过程中根据接口状态和用户配置,会自动获得一些直接路由。
在H3C S3600系列以太网交换机中,可以手工配置到某一特定目的地的静态路由,也可以配置动态路由协议与网络中其它路由器交互,并通过路由算法来发现路由。用户配置的静态路由和由路由协议发现的动态路由在H3C S3600系列以太网交换机中是统一管理的。静态路由与各路由协议之间发现或者配置的路由也可以在路由协议间共享。
到相同的目的地,不同的路由协议(包括静态路由)可能会发现不同的路由,但并非这些路由都是最优的。事实上,在某一时刻,到某一目的地的当前路由仅能由唯一的路由协议来决定。这样,各路由协议(包括静态路由)都被赋予了一个优先级,这样当存在多个路由信息源时,具有较高优先级的路由协议发现的路由将成为当前路由。各种路由协议及其发现路由的缺省优先级(数值越小表明优先级越高)如表1-1所示。
其中:0表示直接连接的路由,255表示任何来自不可信源端的路由。
路由协议或路由种类 |
相应路由的优先级 |
DIRECT |
0 |
OSPF |
10 |
STATIC |
60 |
RIP |
100 |
OSPF ASE |
150 |
OSPF NSSA |
150 |
UNKNOWN |
255 |
除了直连路由(DIRECT)外,各动态路由协议的优先级都可根据用户需求,手工进行配置。另外,每条静态路由的优先级都可以不相同。
H3C S3600系列交换机支持多路由模式,即允许配置多条到同一目的地而且优先级相同的路由。到同一目的地存在多条不同的路径,而且它们的优先级也相同。当没有到同一目的地的更高优先级路由时,这几条路由都被采纳,在转发去往该目的地报文时,报文依次通过各条路径发送,从而实现网络的负载分担。
H3C S3600系列交换机支持路由备份,当主路由发生故障时,自动切换到备份路由,提高用户网络的可靠性。
为了实现路由的备份,用户可根据实际情况,配置到同一目的地的多条路由,其中一条路由的优先级最高,称为主路由,其余的路由优先级依次递减,称为备份路由。这样,正常情况下,路由器采用主路由发送数据。当线路发生故障时,该路由自动隐藏,路由器会选择余下的优先级最高的备份路由作为数据发送的途径。这样,也就实现了主路由到备份路由的切换。当主路由恢复正常时,路由器恢复相应的路由,并重新选择路由。由于该路由的优先级最高,路由器选择主路由来发送数据。上述过程是备份路由到主路由的自动切换。
由于各路由协议的算法不同,不同的协议可能会发现不同的路由,因此各路由协议之间存在如何共享各自发现结果的问题。H3C S3600系列以太网交换机支持将一种路由协议发现的路由引入(import-route)到另一种路由协议中,每种协议都有相应的路由引入机制,具体内容请参见3.4.2 7. 配置RIP引入外部路由信息和 4.6.7 配置OSPF引入外部路由。
本章中所指的路由器代表了一般意义下的路由器,以及运行了路由协议的以太网交换机。
静态路由是一种特殊的路由,它由管理员手工配置而成。通过配置静态路由可建立一个互通的网络,但这种配置问题在于:当发生网络故障后,静态路由不会自动发生改变,必须有管理员的介入。
在组网结构比较简单的网络中,只需配置静态路由就可以使路由器正常工作,合理设置和使用静态路由可以改进网络的性能,并可为重要的应用保证带宽。
静态路由还有如下的属性:
目的地可达路由,正常的路由都属于这种情况,即IP报文按照目的地标识的路由被送往下一跳,这是静态路由的一般用法。
目的地不可达的路由,当到某一目的地的静态路由具有“reject”属性时,任何去往该目的地的IP报文都将被丢弃,并且通知源主机目的地不可达。
黑洞路由:当去往某一目的地的静态路由具有“blackhole”属性时,无论配置的下一跳地址是什么,该路由的出接口均为Null 0接口,任何去往该目的地的IP报文都将被丢弃,并且不通知源主机。
其中“reject”和“blackhole”属性一般用来控制本路由器可达目的地的范围,辅助网络故障的诊断。
缺省路由是一种特殊的路由,可以通过静态路由配置,某些动态路由协议也可以生成缺省路由,如OSPF。
简单地说,缺省路由就是在没有找到匹配的路由表项时才使用的路由。即只有当没有合适的路由时,缺省路由才被使用。在路由表中,缺省路由以到网络0.0.0.0(掩码为0.0.0.0)的路由形式出现。可通过命令display ip routing-table的输出看它是否被设置。如果报文的目的地址不能与路由表的任何表项相匹配,那么该报文将选取缺省路由。如果没有缺省路由且报文的目的地不在路由表中,那么该报文被丢弃的同时,将向源端返回一个ICMP报文报告该目的地址或网络不可达。
在配置静态路由之前,需完成以下任务:
l 配置相关接口的物理参数
l 配置相关接口的链路层属性
l 配置相关接口的IP地址
表2-1 配置静态路由
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置静态路由 |
ip route-static ip-address { mask | mask-length } { interface-type interface-number | next-hop } [ preference value ] [ reject | blackhole ] [ description text | detect-group group number ]* |
必选 缺省情况下,系统可以获取到去往与路由器直连的子网路由 |
删除全部静态路由 |
delete static-routes all |
可选 该命令一次删除所有静态路由,包括缺省路由 |
& 说明:
l 当目的IP地址和掩码均为0.0.0.0时,就是配置的缺省路由。当查找路由表失败后,根据缺省路由进行包的转发。
l 静态路由的下一跳地址不能配置为本地交换机的接口地址。
l 对优先级的不同配置,可以灵活应用路由管理策略。
在完成上述配置后,在任意视图下执行display命令可以显示配置的静态路由信息,用户可以通过查看显示信息验证配置的效果。
操作 |
命令 |
说明 |
查看路由表摘要信息 |
display ip routing-table |
display命令可以在任意视图下执行 |
查看路由表详细信息 |
display ip routing-table verbose |
|
查看指定目的地址的路由 |
display ip routing-table ip-address [ mask ] [ longer-match ] [ verbose ] |
|
查看指定目的地址范围内的路由 |
display ip routing-table ip-address1 mask1 ip-address2 mask2 [ verbose ] |
|
查看指定协议发现的路由 |
display ip routing-table protocol protocol [ inactive | verbose ] |
|
查看树形式路由表 |
display ip routing-table radix |
|
查看路由表的统计信息 |
display ip routing-table statistics |
如图2-1所示,图中所有IP地址的掩码均为255.255.255.0,要求通过配置静态路由,使任意两台主机或以太网交换机之间都能两两互通。
交换机上的配置步骤:
# 设置以太网交换机Switch A的静态路由。
[Switch A] ip route-static 1.1.3.0 255.255.255.0 1.1.2.2
[Switch A] ip route-static 1.1.4.0 255.255.255.0 1.1.2.2
[Switch A] ip route-static 1.1.5.0 255.255.255.0 1.1.2.2
# 设置以太网交换机Switch B的静态路由。
[Switch B] ip route-static 1.1.2.0 255.255.255.0 1.1.3.1
[Switch B] ip route-static 1.1.5.0 255.255.255.0 1.1.3.1
[Switch B] ip route-static 1.1.1.0 255.255.255.0 1.1.3.1
# 设置以太网交换机Switch C的静态路由。
[Switch C] ip route-static 1.1.1.0 255.255.255.0 1.1.2.1
[Switch C] ip route-static 1.1.4.0 255.255.255.0 1.1.3.2
主机上的配置步骤:
# 在主机A上配缺省网关为1.1.5.1,具体配置略。
# 在主机B上配缺省网关为1.1.4.1,具体配置略。
# 在主机C上配缺省网关为1.1.1.1,具体配置略。
至此图中所有主机或以太网交换机之间均能两两互通。
故障现象:以太网交换机没有配置动态路由协议,接口的物理状态和链路层协议状态均已处于UP,但IP报文不能正常转发。
故障排除:可按如下步骤进行检查。
用display ip routing-table protocol static命令查看是否正确配置相应静态路由。
用display ip routing-table命令查看该静态路由是否已经生效。
本章中所指的路由器代表了一般意义下的路由器,以及运行了路由协议的以太网交换机。
RIP(Routing Information Protocol)是一种较为简单的内部网关协议(Interior Gateway Protocol,IGP),主要用于规模较小的网络中。
RIP是一种基于距离矢量(Distance-Vector)算法的协议,它通过UDP报文进行路由信息的交换。
RIP使用跳数(Hop Count)来衡量到达目的地址的距离,称为路由权(Routing Cost)。在RIP中,路由器到与它直接相连网络的跳数为0,通过一个路由器可达的网络的跳数为1,其余依此类推。为限制收敛时间,RIP规定cost取值0~15之间的整数,大于或等于16的跳数被定义为无穷大,即目的网络或主机不可达。
为提高性能,防止产生路由环,RIP支持水平分割(Split Horizon)。RIP还可引入其它路由协议所得到的路由。
每个运行RIP的路由器管理一个路由数据库,该路由数据库包含了到网络所有可达信宿的路由项,这些路由项包含下列信息:
l 目的地址:主机或网络的地址。
l 下一跳地址:为到达目的地,需要经过的相邻路由器的接口IP地址。
l 接口:转发报文的接口。
l cost值:本路由器到达目的地的开销。
l 路由时间:从路由项最后一次被修改到现在所经过的时间,路由项每次被修改时,路由时间重置为0。
在RFC1058中规定,RIP受三个定时器的控制,分别是Period update、Timeout和Garbage-Collection:
l Period update定时触发,向所有邻居发送全部RIP路由。
l RIP路由如果在Timeout时间超时时仍没有被更新(收到邻居发来的路由刷新报文),则认为该路由不可达。
l 如果Garbage-Collection超时,且不可达路由没有收到来自同一邻居的更新,则该路由被从路由表中彻底删除。
RIP启动和运行的整个过程可描述如下:
l 某路由器刚启动RIP时,以广播或组播的形式向运行RIP协议的相邻路由器发送请求报文,相邻路由器的RIP收到请求报文后,响应该请求,回送包含本地路由表信息的响应报文。
l 路由器收到响应报文后,修改本地路由表,同时向运行RIP协议的相邻路由器发送触发更新报文,发送路由更新信息。相邻路由器收到触发更新报文后,又向其各自的相邻路由器发送触发更新报文。在一连串的触发更新后,各路由器都能得到并保持最新的路由信息。
l RIP在缺省情况下每隔30秒向相邻路由器发送本地路由表,运行RIP协议的相邻路由器在收到报文后,对本地路由进行维护,选择一条最佳路由,再向其各自相邻网络发送更新信息,使更新的路由最终能达到全局有效。同时,RIP采用超时机制对过时的路由进行超时处理,以保证路由的实时性和有效性。
RIP正被大多数IP路由器厂商广泛使用。它可用于大多数校园网及结构较简单的连续性强的地区性网络。对于更复杂环境及大型网络,一般不使用RIP。
表3-1 RIP配置任务简介
配置任务 |
说明 |
详细配置 |
|
配置RIP的基本功能 |
启动RIP |
必选 |
|
配置接口的工作状态 |
可选 |
||
配置RIP的版本号 |
可选 |
||
控制RIP的路由信息 |
配置接口的附加度量值 |
可选 |
|
配置RIP的路由聚合 |
可选 |
||
禁止RIP接收主机路由 |
可选 |
||
配置RIP接收或者发布的路由进行过滤 |
可选 |
||
配置RIP协议优先级 |
可选 |
||
配置RIP在不同接口之间流量等价分担 |
可选 |
||
配置RIP的引入外部路由信息 |
可选 |
||
调整和优化RIP网络 |
配置RIP定时器 |
可选 |
|
配置水平分割 |
可选 |
||
配置RIP-1报文的零域检查 |
可选 |
||
配置RIP-2报文的认证方式 |
可选 |
||
配置RIP邻居 |
可选 |
||
RIP显示和维护 |
可选 |
在配置RIP的基本能力之前,需完成以下任务:
l 配置链路层协议
l 配置接口的网络层地址,使相邻节点的网络层可达
表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-1和RIP-2的报文,只发送RIP-1报文。当配置接口版本为RIP-2时,同时可以指定报文的发送方式 |
在实际应用中,有时候需要对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-1不起作用。RIP-2支持路由聚合。当需要将所有子网路由广播出去时,可关闭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 [ routing-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引入的所有路由及发布的RIP路由都有效。
表3-9 配置RIP协议优先级
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIP视图 |
rip |
- |
设置RIP协议的优先级 |
preference value |
可选 缺省值为100 |
表3-10 配置RIP在不同接口之间流量等价分担
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIP视图 |
rip |
- |
配置RIP在不同接口之间流量等价分担 |
traffic-share-across-interface |
可选 缺省情况下,traffic-share-across-interface处于关闭状态 |
表3-11 配置RIP引入外部路由信息
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIP视图 |
rip |
- |
设定路由引入的缺省度量值 |
default cost value |
可选 缺省值为1 |
引入外部路由信息 |
import-route protocol [ process-id ] [ cost value | route-policy route-policy-name ]* |
必选 process-id 参数仅在引入ospf路由时使用 |
在某些特殊的网络环境中,需要配置RIP的一些特性功能,并需要对RIP网络的性能进行调整和优化。通过本节的配置过程,可以实现:
l 通过调整RIP定时器来改变RIP网络的收敛速度
l 配置水平分割来防止路由环路
l 在安全性较高网络环境中对报文进行有效性检查和验证
l 在有特殊需求的接口或链路上配置RIP特性
在调整RIP之前,需完成以下任务:
l 配置接口的网络层地址,使相邻节点网络层可达
l 配置RIP基本能力
表3-12 配置RIP定时器
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIP视图 |
rip |
- |
配置RIP定时器的值 |
timers { update update-timer | timeout timeout-timer } * |
可选 缺省情况下,Update定时器值:30秒,Timeout定时器值:180秒 |
& 说明:
在配置RIP定时器时需要注意,定时器值的调整应考虑网络的性能,并在所有运行RIP的路由器上进行统一配置,以免增加不必要的网络流量或引起网络路由震荡。
表3-13 配置水平分割
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
启动水平分割 |
rip split-horizon |
可选 缺省情况下,接口发送RIP报文时使用水平分割 |
& 说明:
在点到点链路上禁止水平分割功能是无效的。
表3-14 配置RIP-1报文的零域检查
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIP视图 |
rip |
- |
对RIP-1报文的零域进行检查 |
checkzero |
可选 缺省情况下,RIP-1进行零域检查 |
& 说明:
RIP-1报文中的有些字段必须为零,称之为零域。RIP-1在接收报文时将对零域进行检查,值不为零的RIP-1报文将不被处理。由于RIP-2的报文没有零域,此项配置对RIP-2无效。
RIP-2支持两种认证方式:简单认证和MD5密文认证。
简单认证不能提供安全保障,未加密的认证字随报文一同传送,所以简单认证不能用于安全性要求较高的情况。
表3-15 配置RIP-2报文的认证方式
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置RIP-2报文的认证方式 |
rip authentication-mode { simple password | md5 { rfc2453 key-string | rfc2082 key-string key-id } } |
必选 如果配置MD5认证,则必须配置MD5的类型: l rfc2453类型支持符合RFC2453规定的报文格式 l rfc2082类型支持符合RFC2082规定的报文格式 |
表3-16 配置RIP邻居
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIP视图 |
rip |
- |
配置RIP邻居 |
peer ip-address |
必选 如果在不支持广播或组播报文的链路上运行RIP,则必须手工指定RIP的邻居 通常情况下,RIP使用广播或组播地址发送报文 |
在完成上述配置后,在任意视图下执行display命令可以显示配置后RIP的运行情况,用户可以通过查看显示信息验证配置的效果。在RIP视图下执行reset命令,可以复位RIP协议的系统配置参数。
操作 |
命令 |
说明 |
显示RIP的当前运行状态及配置信息 |
display rip |
display命令可以在任意视图下执行 |
显示RIP的接口信息 |
display rip interface |
|
显示RIP的路由信息 |
display rip routing |
|
复位RIP协议的系统配置参数 |
reset |
在RIP视图下执行 |
如图3-1所示,以太网交换机SwitchC通过以太网端口连接到子网117.102.0.0。以太网交换机SwitchA、SwitchB的以太网端口分别连接到网络155.10.1.0和196.38.165.0。以太网交换机SwitchC和SwitchA、SwitchB通过以太网110.11.2.0连接到一起。正确配置RIP路由协议,使SwitchC和SwitchA、SwitchB所连接的网络之间彼此能够互通。
& 说明:
以下的配置,只列出了与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] network 117.102.0.0
[SwitchC-rip] network 110.11.2.0
故障现象:以太网交换机在与对方路由设备物理连接正常的情况下收不到RIP更新报文。
故障排除:相应的接口上RIP没有运行(如执行了undo rip work命令)或该接口未通过network命令使能。对端路由设备上配置的是组播方式(如执行了rip version 2 multicast命令),但在本地以太网交换机上的相应接口没有配置组播方式。
& 说明:
l 本章中所指的路由器代表了一般意义下的路由器,以及运行了路由协议的以太网交换机。
l H3C S3600系列以太网交换机中,仅S3600-EI系列支持OSPF协议。
开放最短路径优先协议OSPF(Open Shortest Path First)是IETF组织开发的一个基于链路状态的内部网关协议。目前使用的是版本2(RFC2328),其特性如下:
l 适应范围——支持各种规模的网络,最多可支持几百台路由器。
l 快速收敛——在网络的拓扑结构发生变化后立即发送更新报文,使这一变化在自治系统中同步。
l 无自环——由于OSPF根据收集到的链路状态用最短路径树算法计算路由,从算法本身保证了不会生成自环路由。
l 区域划分——允许自治系统的网络被划分成区域来管理,区域间传送的路由信息被进一步抽象,从而减少了占用的网络带宽。
l 等价路由——支持到同一目的地址的多条等价路由。
l 路由分级——使用4类不同的路由,按优先顺序来说分别是:区域内路由、区域间路由、第一类外部路由、第二类外部路由。
l 支持验证——支持基于接口的报文验证以保证路由计算的安全性。
l 组播发送——协议报文支持以组播形式发送。
在不考虑区域划分的情况下,OSPF协议的路由计算过程可简单描述如下:
l 每个支持OSPF协议的路由器都维护着一份描述整个自治系统拓扑结构的链路状态数据库LSDB(Link State Database)。每台路由器根据自己周围的网络拓扑结构生成链路状态广播LSA(Link State Advertisement),通过相互之间发送协议报文将LSA发送给网络中其它路由器。这样每台路由器都收到了其它路由器的LSA,所有的LSA放在一起便组成了链路状态数据库。
l LSA是对路由器周围网络拓扑结构的描述, LSDB则是对整个网络的拓扑结构的描述。路由器很容易将LSDB转换成一张带权的有向图,这张图便是对整个网络拓扑结构的真实反映。显然,各个路由器得到的是一张完全相同的图。
l 每台路由器都使用SPF算法计算出一棵以自己为根的最短路径树,这棵树给出了到自治系统中各节点的路由,外部路由信息为叶子节点,外部路由可由广播它的路由器进行标记以记录关于自治系统的额外信息。显然,各个路由器各自得到的路由表是不同的。
此外,为使每台路由器能将本地状态信息(如可用接口信息、可达邻居信息等)广播到整个自治系统中,在路由器之间要建立多个邻接关系,这使得任何一台路由器的路由变化都会导致多次传递,既没有必要,也浪费了宝贵的带宽资源。为解决这一问题,OSPF协议定义了“指定路由器”DR(Designated Router)与“备份指定路由器”BDR(Backup Designated Router),关于DR与BDR详细机制,请参见4.1.4 3. DR和BDR一节。
OSPF协议支持基于接口的报文验证以保证路由计算的安全性;并使用IP组播方式发送和接收报文(224.0.0.5和224.0.0.6)。
一台路由器如果要运行OSPF协议,必须存在Router ID。Router ID可以手工配置,如果没有配置Router ID,系统会从接口的IP地址中自动选择一个作为Router ID。其选择顺序是:如果配置了Loopback接口地址,则选择最后配置的IP地址作为Router ID,如果没有配置LoopBack接口地址,则选择其他接口中最先配置的IP地址作为Router ID。
随着网络规模日益扩大,当一个巨型网络中的路由器都运行OSPF路由协议时,路由器数量的增多会导致LSDB非常庞大,占用大量的存储空间,并使得运行SPF算法的复杂度增加,导致CPU负担很重;并且,网络规模增大之后,拓扑结构发生变化的概率也增大,网络会经常处于“动荡”之中,造成网络中会有大量的OSPF协议报文在传递,降低了网络的带宽利用率。而且每一次变化都会导致网络中所有的路由器重新进行路由计算。
OSPF协议通过将自治系统划分成不同的区域(Area)来解决上述问题。区域是在逻辑上将路由器划分为不同的组。区域的边界是路由器,这样会有一些路由器属于不同的区域,连接骨干区域和非骨干区域的路由器称作区域边界路由器——ABR,ABR与骨干区域之间既可以是物理连接,也可以是逻辑上的连接。
OSPF划分区域后,可以减少网络中LSA的数量,OSPF的扩展性也得以增强。对于位于AS边缘的一些非骨干区域,为了更多的缩减其路由表规模和降低LSA的数量,可以将它们配置为Stub区域。
Stub区域不能引入外部路由,为此又产生了NSSA区域的概念。NSSA区域中允许Type7 LSA的传播。Type7 LSA由NSSA区域的ASBR产生,当它到达NSSA的ABR时,就会转换成AS-External LSA,并通告到其他区域。
骨干区域(Backbone Area)
OSPF划分区域之后,并非所有的区域都是平等的关系。其中有一个区域是与众不同的,它的区域号(Area ID)是0,通常被称为骨干区域。
虚连接(Virtual link)
由于所有区域都必须与骨干区域连通,特别引入了虚连接的概念,使那些物理上和骨干区域分离的区域仍可在逻辑上保持和骨干区域的连通性。
AS被划分成不同的区域,每一个区域通过OSPF边界路由器(ABR)相连,区域间可以通过路由聚合来减少路由信息,减小路由表的规模,提高路由器的运算速度。
ABR在计算出一个区域的区域内路由之后,根据聚合相关设置,将其中多条OSPF路由聚合成一条发送到区域之外。
如图4-1所示,Area 19内有三条区域内路由19.1.1.0/24,19.1.2.0/24,19.1.3.0/24,如果此时配置了路由聚合,将三条路由聚合成一条19.1.0.0/16,在RTA上就只生成一条描述聚合后路由的LSA。
OSPF根据链路层协议类型将网络分为下列四种类型:
l 广播(Broadcast)类型:当链路层协议是Ethernet、FDDI时,OSPF缺省认为网络类型是Broadcast。在该类型的网络中,通常以组播形式(224.0.0.5和224.0.0.6)发送协议报文。
l NBMA(Non-Broadcast Multi-Access,非广播多点可达网络)类型:当链路层协议是帧中继、ATM或X.25时,OSPF缺省认为网络类型是NBMA。在该类型的网络中,以单播形式发送协议报文。
l 点到多点P2MP(point-to-multipoint)类型:没有一种链路层协议会被缺省的认为是P2MP类型。点到多点必须是由其他的网络类型强制更改的。常用做法是将NBMA改为点到多点的网络。在该类型的网络中,以组播形式(224.0.0.5)发送协议报文。
l 点到点P2P(point-to-point)类型:当链路层协议是PPP、HDLC时,OSPF缺省认为网络类型是P2P。在该类型的网络中,以组播形式(224.0.0.5)发送协议报文。
NBMA网络是指非广播、多点可达的网络,比较典型的有ATM和帧中继网络。
对于接口类型为NBMA的网络需要进行一些特殊的配置。由于无法通过广播Hello报文的形式发现相邻路由器,必须手工为该接口指定相邻路由器的IP地址,以及该相邻路由器是否有DR选举权等。
NBMA网络必须是全连通的,即网络中任意两台路由器之间都必须有一条虚电路直接可达。如果部分路由器之间没有直接可达的链路时,应将接口配置成P2MP方式。如果路由器在NBMA网络中只有一个对端,也可将接口类型改为P2P方式。
NBMA与P2MP网络之间的区别:
l NBMA是指那些全连通的、非广播、多点可达网络。而点到多点的网络,则并不需要一定是全连通的。
l 在NBMA上需要选举DR与BDR,而在点到多点网络中没有DR与BDR。
l NBMA是一种缺省的网络类型,点到多点必须是由其它的网络强制更改的。最常见的做法是将NBMA改为点到多点的网络。
l NBMA用单播发送报文,需要手工配置邻居。点到多点采用组播方式发送报文。
在广播网和NBMA网络中,任意两台路由器之间都要传递路由信息。如果网络中有n台路由器,则需要建立nx(n-1)/2个邻接关系。这使得任何一台路由器的路由变化都会导致多次传递,浪费了带宽资源。为解决这一问题,OSPF协议定义了指定路由器DR(Designated Router),所有路由器都只将信息发送给DR,由DR将网络链路状态发送出去。
如果DR由于某种故障而失效,则网络中的路由器必须重新选举DR,再与新的DR同步。这需要较长的时间,在这段时间内,路由的计算是不正确的。为了能够缩短这个过程,OSPF提出了BDR(Backup Designated Router)的概念。
BDR实际上是对DR的一个备份,在选举DR的同时也选举出BDR,BDR也和本网段内的所有路由器建立邻接关系并交换路由信息。当DR失效后,BDR会立即成为DR。由于不需要重新选举,并且邻接关系事先已建立,所以这个过程是非常短暂的。当然这时还需要再重新选举出一个新的BDR,虽然一样需要较长的时间,但并不会影响路由的计算。
除DR和BDR之外的路由器(称为DR Other)之间将不再建立邻接关系,也不再交换任何路由信息。这样就减少了广播网和NBMA网络上各路由器之间邻接关系的数量。
如图4-2所示,用实线代表以太网物理连接,虚线代表建立的邻接关系。可以看到,采用DR/BDR机制后,5台路由器之间只需要建立7个邻接关系就可以了。
DR和BDR不是人为指定的,而是由本网段中所有的路由器共同选举出来的。路由器接口的DR优先级决定了该接口在选举DR、BDR时所具有的资格。本网段内DR优先级大于0的路由器都可作为“候选人”。
选举中使用的“选票”就是Hello报文。每台路由器将自己选出的DR写入Hello报文中,发给网段上的每台运行OSPF协议的路由器。当处于同一网段的两台路由器同时宣布自己是DR时,DR优先级高者胜出。如果优先级相等,则Router ID大者胜出。如果一台路由器的优先级为0,则它不会被选举为DR或BDR。
需要注意的是:
l 只有在广播或NBMA类型接口才会选举DR,在点到点或点到多点类型的接口上不需要选举DR。
l DR是指某个网段中概念,是针对路由器的接口而言的。某台路由器在一个接口上可能是DR,在另一个接口上有可能是BDR,或者是DR Other。
l 若DR、BDR已经选择完毕,当一台新路由器加入后,即使它的DR优先级值最大,也不会立即成为该网段中的DR。
l DR并不一定就是DR优先级最大的路由器;同理,BDR也并不一定就是DR优先级第二大的路由器。
OSPF有五种报文类型:
最常用的一种报文,周期性的发送给本路由器的邻居。内容包括一些定时器的数值、DR、BDR(Backup Designated Router)以及自己已知的邻居。
两台路由器进行数据库同步时,用DD报文来描述自己的LSDB,内容包括LSDB中每一条LSA的摘要(摘要是指LSA的HEAD,通过该HEAD可以唯一标识一条LSA)。这样做是为了减少路由器之间传递信息的量,因为LSA的HEAD只占一条LSA的整个数据量的一小部分,根据HEAD,对端路由器就可以判断出是否已有这条LSA。
两台路由器互相交换过DD报文之后,知道对端的路由器有哪些LSA是本地的LSDB所缺少的,这时需要发送LSR报文向对方请求所需的LSA。内容包括所需要的LSA的摘要。
用来向对端路由器发送所需要的LSA,内容是多条LSA(全部内容)的集合。
用来对接收到的LSU报文进行确认。内容是需要确认的LSA的HEAD(一个报文可对多个LSA进行确认)。
根据前面几节的介绍可以了解,链路状态广播报文LSA是OSPF协议计算和维护路由信息的主要来源。在RFC2328中定义了五类LSA,描述如下:
l Router-LSAs:第一类LSA(Type-1),由每个路由器生成,描述本路由器的链路状态和花费,只在路由器所处区域内传播。
l Network-LSAs:第二类LSA(Type-2),由广播网络和NBMA网络的DR生成,描述本网段的链路状态,只在DR所处区域内传播。
l Summary-LSAs:包含第三类LSA和第四类LSA(Type-3,Type-4),由区域边界路由器ABR生成,在与该LSA相关的区域内传播。每一条Summary-LSA描述一条到达本自治系统的、其它区域的某一目的地的路由(即区域间路由:inter-area route)。Type-3 Summary-LSAs描述去往网络的路由(目的地为网段),Type-4 Summary-LSAs描述去往自治系统边界路由器ASBR的路由。
l AS-external-LSAs:第五类LSA(Type-5),也可以写成ASE LSA,由自治系统边界路由器ASBR生成,描述到达其它AS的路由,传播到整个AS(Stub区域除外)。AS的缺省路由也可以用AS-external-LSAs来描述。
在RFC1587(OSPF NSSA Option)中增加了一类新的LSA:Type-7 LSAs。
根据RFC1587的描述,Type-7 LSAs与Type-5 LSAs主要有以下两点区别:
l Type-7 LSAs在NSSA区域(Not-So-Stubby Area)内产生和发布;但NSSA区域内不会产生或发布Type-5 LSAs。
l Type-7 LSAs只能在一个NSSA内发布,当到达区域边界路由器ABR时,ABR可以选择将Type-7 LSAs中的部分路由信息转换成Type-5 LSAs发布,Type-7 LSAs不直接发布到其它区域或骨干区域。
H3C S3600系列以太网交换机支持以下OSPF特性:
l 支持Stub区域:定义了Stub区域以节省该区域内路由器接收ASE路由时的开销。
l 支持NSSA区域:定义了NSSA区域,以克服Stub区域对于拓扑结构的限制。NSSA是Not-So-Stubby Area的简写。
l 支持OSPF多进程(Multi-Process),可以在一台路由器上运行多个OSPF进程。
l 可以和其它动态路由协议共享所发现的路由信息:在现阶段,支持将RIP等动态路由协议和静态路由作为OSPF的外部路由引入到路由器所属的自治系统中去,或将OSPF自身发现的路由信息发布到其它路由协议中去。
l 授权验证字:OSPF对同一区域内的相邻路由器之间可以选择明文验证字和MD5加密验证字两种报文合法性验证手段。
l 路由器接口参数的灵活配置:在路由器的接口上,可以配置OSPF的参数包括:输出花费、Hello报文发送间隔、重传间隔、接口传输时延、路由优先级、相邻路由器“失效”时间、报文验证方式和报文验证字等。
l 虚连接:支持配置虚连接。
配置任务 |
说明 |
详细配置 |
|
配置OSPF基本功能 |
必选 |
||
配置OSPF的区域特性 |
可选 |
||
配置OSPF的网络类型 |
配置OSPF接口的网络类型 |
可选 |
|
配置NBMA网络的邻居 |
可选 |
||
配置OSPF接口的DR优先级 |
可选 |
||
配置OSPF的路由信息控制 |
配置OSPF路由聚合 |
可选 |
|
配置OSPF对接收的路由进行过滤 |
可选 |
||
配置OSPF的链路开销 |
可选 |
||
配置OSPF协议的优先级 |
可选 |
||
配置OSPF等价路由的条数 |
可选 |
||
配置OSPF引入外部路由 |
可选 |
||
配置OSPF网络调整优化 |
配置OSPF报文定时器 |
可选 |
|
配置接口传送LSA的延迟时间 |
可选 |
||
配置SPF计算间隔 |
可选 |
||
禁止接口发送OSPF报文 |
可选 |
||
配置OSPF验证 |
可选 |
||
配置DD报文中的MTU |
可选 |
||
配置OSPF记录功能 |
可选 |
||
配置OSPF网管功能 |
可选 |
||
OSPF显示和维护 |
- |
在OSPF的各项配置任务中,必须先启动OSPF、指定接口与区域号后,才能配置其它的功能特性。
在配置OSPF之前,需完成以下任务:
l 配置链路层协议。
l 配置接口的网络层地址,使各相邻节点网络层可达。
OSPF基本功能配置包括:
l 配置路由器的ID。
为保证OSPF运行的稳定性,在进行网络规划时应该确定路由器ID的划分并建议手工配置。手工配置路由器的ID时,必须保证自治系统中任意两台路由器的ID都不相同。通常的做法是将路由器的ID配置为与该路由器某个接口的IP地址一致。
l 启动OSPF协议。
Comware支持OSPF多进程,当在一台路由器上启动多个OSPF进程时,需要指定不同的进程号。OSPF进程号是本地概念,不影响与其它路由器之间的报文交换。因此,不同的路由器之间,即使进程号不同也可以进行报文交换。
l 配置区域和区域所包含的网段。用户需要首先对自治域内的区域做好规划,然后在路由器上进行相应的配置。
在配置同一区域内的路由器时,大多数的配置数据都应该以区域为基础来统一考虑。错误的配置可能会导致相邻路由器之间无法相互传递信息,甚至导致路由信息的阻塞或者自环。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置路由器的ID |
router id router-id |
可选 当在一台路由器上运行多个OSPF进程时,建议使用ospf命令中的router-id为不同进程指定不同的Router ID |
启动OSPF,进入OSPF视图 |
ospf [ process-id [ router-id router-id ] ] |
必选 进入OSPF视图 |
进入OSPF区域视图 |
area area-id |
必选 |
配置区域所包含的网段 |
network address wildcard-mask |
必选 缺省情况下,接口不属于任何区域 |
& 说明:
l 在Router ID选举过程中,ospf [ process-id [ router-id router-id ] ]命令配置的Router ID优先级最高,router id命令配置的Router ID优先级次之,自动选择的Router ID优先级最低。
l Router ID可以重新进行选举。只有重启OSPF协议进程,重新选举的Router ID才能够生效。
l 建议用户使用ospf [ process-id [ router-id router-id ] ]命令手工配置Router ID。
l OSPF的进程ID是唯一的,包括OSPF多实例在内。也就是说,OSPF多实例的进程号不能与先前配置的进程号相同。
l 一个网段只能属于一个区域,并且必须为每个运行OSPF协议的接口指明属于某一个特定的区域。
OSPF划分区域后,可以减少网络中LSA的数量,OSPF的扩展性也得以增强。对于位于AS边缘的一些非骨干区域,为了更多的缩减其路由表规模和降低LSA的数量,可以将它们配置为Stub区域。
Stub区域不能引入外部路由,为此又产生了NSSA区域的概念。NSSA区域中允许Type7 LSA的传播。Type7 LSA由NSSA区域的ASBR产生,当它到达NSSA的ABR时,就会转换成AS-External LSA,并通告到其他区域。
在划分区域之后,非骨干区域之间的OSPF路由更新是通过骨干区域来完成交换的。对此,OSPF要求所有非骨干区域必须与骨干区域保持连通,并且骨干区域自身也要保持连通。
但在实际应用中,可能会因为各方面条件的限制,无法满足这个要求。这时可以通过配置OSPF虚连接予以解决。
在配置OSPF的区域特性之前,需完成以下任务:
l 配置接口的网络层地址,使相邻节点网络层可达
l 配置OSPF基本特性
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPF视图 |
ospf [ process-id [ router-id router-id ] ] |
- |
进入OSPF区域视图 |
area area-id |
- |
配置当前区域为Stub区域 |
stub [ no-summary ] |
可选 缺省情况下,没有区域被设置为Stub区域 |
配置当前区域为NSSA区域 |
nssa [ default-route-advertise | no-import-route | no-summary ]* |
可选 缺省情况下,没有区域被设置为NSSA区域 |
配置发送到Stub区域或者NSSA区域缺省路由的开销 |
default-cost cost |
可选 仅在ABR上进行配置。 缺省情况下,发送到Stub区域或者NSSA区域的缺省路由的开销为1 |
创建并配置虚连接 |
vlink-peer router-id [ hello seconds | retransmit seconds | trans-delay seconds | dead seconds | simple password | md5 keyid key ]* |
可选 为使虚连接生效,在虚连接的两端都需配置此命令,并且两端配置的hello、dead等参数必须一致。 |
& 说明:
l 所有连接到Stub区域的路由器必须使用stub命令将该区域配置成Stub属性。
l 所有连接到NSSA区域的路由器必须使用nssa命令将该区域配置成NSSA属性。
OSPF根据链路层协议类型将网络分为四种不同的类型,请参见4.1.4 OSPF的网络类型。由于NBMA网络必须是全连通的,即网络中任意两台路由器之间都必须有一条虚电路直接可达。但在很多情况下,这个要求无法满足,这时就需要通过命令强制改变网络的类型。
对于NBMA网络,如果部分路由器之间没有直接可达的链路时,应将接口配置成P2MP方式。如果路由器在NBMA网络中只有一个对端,也可将接口类型改为P2P方式。
另外,在配置广播网和NBMA网络时,还可以指定各接口的DR优先级,以此来影响网络中的DR/BDR选择,使性能和可靠性较高的路由器来作为DR和BDR。
在配置OSPF的网络类型之前,需完成以下任务:
l 配置接口的网络层地址,使相邻节点之间网络层可达
l 配置OSPF基本功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置OSPF接口的网络类型 |
ospf network-type { broadcast | nbma | p2mp | p2p } |
可选 缺省情况下,接口的网络类型根据物理接口而定 |
& 说明:
l 当用户为接口配置了新的网络类型后,接口的原网络类型自动取消。
l 需要注意的是,如果接口配置为广播、NBMA或者P2MP网络类型,只有双方接口在同一网段才能建立邻居关系。
对于接口类型为NBMA的网络需要进行一些特殊的配置。由于无法通过广播Hello报文的形式发现相邻路由器,必须手工指定相邻路由器的IP地址,以及该相邻路由器是否有选举权等。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPF视图 |
ospf [ process-id [ router-id router-id ] ] |
- |
配置NBMA网络的邻居 |
peer ip-address [ dr-priority dr-priority ] |
必选 缺省情况下,NBMA接口的邻接点优先级的取值为1 |
当网络类型为广播网或NBMA类型时,可以通过配置接口的DR优先级来影响网络中DR/BDR的选择。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
设置OSPF接口的DR优先级 |
ospf dr-priority priority |
可选 缺省情况下,优先级为1 |
& 说明:
使用ospf dr-priority命令和使用peer命令设置的优先级具有不同的用途:
l ospf dr-priority命令设置的优先级用于实际的DR选举。
l peer命令设置的优先级用于表示邻居是否具有选举权。如果在配置邻居时将优先级指定为0,则本地路由器认为该邻居不具备选举权,不向该邻居发送Hello报文,这种配置可以减少在DR和BDR选举过程中网络上的Hello报文数量。但如果本地路由器是DR或BDR,它也会向优先级为0的邻居发送Hello报文,以建立邻接关系。
通过本节的配置,可以控制OSPF的路由信息的发布与接收,并引入其他协议的路由。
在控制OSPF路由信息之前,需完成以下任务:
l 配置接口的网络层地址,使相邻节点之间网络层可达
l 配置OSPF基本能力
l 如果对路由信息进行过滤,则需要配置对应的过滤列表
配置OSPF路由聚合分为:
l 配置区域边界路由器(ABR)路由聚合。
l 配置自治系统边界路由器(ASBR)对引入的路由进行聚合。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPF视图 |
ospf [ process-id [ router-id router-id ] ] |
必选 |
进入区域视图 |
area area-id |
必选 |
配置OSPF的ABR路由聚合 |
abr-summary ip-address mask [ advertise | not-advertise ] |
必选 此命令只有在ABR上配置才会有效。缺省情况下,区域边界路由器不对路由聚合 |
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPF视图 |
ospf [ process-id [ router-id router-id ] ] |
必选 |
配置OSPF的ASBR路由聚合 |
asbr-summary ip-address mask [ not-advertise | tag value ] |
必选 此命令只有在ASBR上配置才会有效。缺省情况下,不对引入的路由进行聚合 |
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPF视图 |
ospf [ process-id [ router-id router-id ] ] |
必选 |
配置对接收的路由进行过滤 |
filter-policy { acl-number | ip-prefix ip-prefix-name | gateway ip-prefix-name } import |
必选 缺省情况下,不对接收到的路由信息进行过滤 |
& 说明:
由于OSPF是基于链路状态的动态路由协议,路由信息隐藏在链路状态通告中,所以不能对发布和接收的LSA进行过滤。filter-policy import命令实际上是对OSPF计算出来的路由进行过滤,只有通过过滤的路由才被添加到路由表中。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
必选 |
设置OSPF接口的开销值 |
ospf cost value |
可选 缺省情况下,接口按照当前的波特率自动计算开销。对于交换机的VLAN接口,该值固定为10 |
由于路由器上可能同时运行多个动态路由协议,就存在各个路由协议之间路由信息共享和选择的问题。系统为每一种路由协议设置一个优先级,在不同协议发现同一条路由时,优先级高的路由将被优选。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPF视图 |
ospf [ process-id [ router-id router-id ] ] |
必选 |
配置OSPF协议的优先级 |
preference [ ase ] value |
可选 缺省情况下,OSPF路由的优先级为10,OSPF ASE的优先级为150 |
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPF视图 |
ospf [ process-id [ router-id router-id ] ] |
必选 |
配置OSPF等价路由的条数 |
multi-path-number value |
可选 |
& 说明:
l import-route命令不能引入缺省路由,如果要引入缺省路由,必须要使用default-route-advertise命令。
l OSPF对发布的路由进行过滤,是指OSPF只将满足条件的外部路由转换为Type5 LSA或Type7 LSA并发布出去。
l 当OSPF引入外部路由时,还可以配置一些额外参数的缺省值,如开销、路由数量、标记和类型。路由标记可以用来标识协议相关的信息。
用户可以从以下几个方面来调整和优化OSPF网络:
l 通过改变OSPF的报文定时器,可以调整OSPF网络的收敛速度以及协议报文带来的网络负荷。在一些低速链路上,需要考虑接口传送LSA的延迟时间。
l 通过调整SPF计算间隔时间,可以抑制由于网络频繁变化带来的资源消耗问题。
l 在安全性较高的网络中,可以通过配置OSPF验证特性,来提高OSPF网络的安全性。
l OSPF同时支持网管功能,可以配置OSPF MIB与某一进程绑定,以及发送Trap消息和日志功能。
在调整和优化OSPF网络之前,需完成以下任务:
l 配置接口的网络层地址,使相邻节点之间网络层可达
l 配置OSPF基本功能
OSPF邻居之间的Hello定时器的时间间隔要保持一致。Hello定时器的值与路由收敛速度、网络负荷大小成反比。
在同一接口上失效时间应至少为Hello间隔时间的4倍。
当一台路由器向它的邻居发送一条LSA后,需要等到对方的确认报文。若在重传间隔时间内没有收到对方的确认报文,就会向邻居重传这条LSA。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
必选 |
配置接口发送Hello报文的时间间隔 |
ospf timer hello seconds |
可选 缺省情况下,point-to-point、broadcast类型接口发送Hello报文的时间间隔的值为10秒;point-to-multipoint、NBMA类型接口发送Hello报文的时间间隔的值为30秒 |
在NBMA接口上配置发送轮询报文的时间间隔 |
ospf timer poll seconds |
可选 缺省情况下,发送轮询报文的时间间隔为40秒 |
设置相邻路由器间失效时间 |
ospf timer dead seconds |
可选 缺省情况下,point-to-point、broadcast类型接口的OSPF邻居失效时间为40秒,point-to-multipoint、NBMA类型接口的OSPF邻居失效时间为120秒 |
设置邻接路由器重传LSA的间隔 |
ospf timer retransmit interval |
可选 缺省情况下,时间间隔为5秒 |
& 说明:
l 修改了网络类型后,Hello与Dead定时器都将恢复缺省值。
l 相邻路由器重传LSA时间间隔的值不要设置得太小,否则将会引起不必要的重传。通常应该大于一个报文在两台路由器之间传送一个来回的时间。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
必选 |
配置接口传送LSA的延迟时间 |
ospf trans-delay seconds |
可选 缺省情况下,传输延迟时间为1秒 |
& 说明:
考虑到OSPF报文在链路上传送时也需要花费时间,所以LSA的老化时间(age)在传送之前要增加一定的传送延迟时间,在低速链路上需要对该项配置进行重点考虑。
当OSPF的链路状态数据库(LSDB)发生改变时,需要重新计算最短路径。如果网络频繁变化,且每次变化都立即计算最短路径,将会占用大量系统资源,并影响路由器的效率。通过调节连续两次SPF计算的最小间隔时间,可以抑制由于网络频繁变化带来的影响。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPF视图 |
ospf [ process-id [ router-id router-id ] ] |
必选 |
设置SPF计算间隔 |
spf-schedule-interval interval |
可选 缺省情况下,SPF计算的时间间隔为5秒 |
如果要使OSPF路由信息不被某一网络中的路由器获得,可使用silent-interface命令来禁止在此接口上发送OSPF报文。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPF视图 |
ospf [ process-id [ router-id router-id ] ] |
必选 |
禁止接口发送OSPF报文 |
silent-interface silent-nterface-type silent-interface-number |
可选 缺省情况下,允许接口发送OSPF报文 |
& 说明:
l 不同的进程可以对同一接口禁止发送OSPF报文,但silent-interface命令只对本进程已经使能的OSPF接口起作用,对其它进程的接口不起作用。
l 将运行OSPF协议的接口指定为Silent状态后,该接口的直连路由仍可以发布出去,但接口的Hello报文将被阻塞,接口上无法建立邻居关系。这样可以增强OSPF的组网适应能力,减少系统资源的消耗。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPF视图 |
ospf [ process-id [ router-id router-id ] ] |
– |
进入OSPF区域视图 |
area area-id |
– |
配置OSPF区域的验证模式 |
authentication-mode { simple | md5 } |
必选 缺省情况下,没有配置区域验证模式 |
退回到OSPF视图 |
quit |
- |
退回到系统视图 |
quit |
- |
进入接口视图 |
interface interface-type interface-number |
– |
配置OSPF接口的验证模式 |
ospf authentication-mode { simple password | md5 key-id key } |
必选 缺省情况下,接口不对OSPF报文进行验证 |
& 说明:
l OSPF支持报文验证功能,只有通过验证的报文才能接收,否则将不能正常建立邻居。
l 一个区域中所有的路由器的验证类型必须一致,一个网段中所有路由器的验证字口令也必须一致。
一般情况下,接口发送DD报文时不使用接口的实际MTU值,而是用0代替。进行此配置后,将使用接口的实际MTU值填写DD报文Interface MTU字段。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入Ethernet接口视图 |
interface interface-type interface-number |
- |
使能接口发送DD报文时填MTU值 |
ospf mtu-enable |
必选 缺省情况下,接口发送DD报文时MTU值为0,即不填接口的实际MTU值 |
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPF视图 |
ospf [ process-id [ router-id router-id ] ] |
- |
配置邻居状态记录 |
log-peer-change |
可选 记录邻居状态变化信息 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
配置OSPF MIB绑定 |
ospf mib-binding process-id |
可选 如果不配此命令,MIB操作绑定会默认绑定第1个OSPF进程。当启动了多个OSPF进程时,可以配置OSPF MIB绑定在哪个进程上 |
使能OSPF的TRAP功能 |
snmp-agent trap enable ospf [ process-id ] [ ifauthfail | ifcfgerror | ifrxbadpkt | ifstatechange | iftxretransmit | lsdbapproachoverflow | lsdboverflow | maxagelsa | nbrstatechange | originatelsa | vifauthfail | vifcfgerror | virifrxbadpkt | virifstatechange | viriftxretransmit | virnbrstatechange ]* |
可选 可以配置OSPF发送多种SNMP TRAP报文,并可以通过进程号指定某个OSPF进程发送SNMP TRAP报文 |
在完成上述配置后,在任意视图下执行display命令可以显示配置后OSPF的运行情况,用户可以通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以复位OSPF计数器或连接。
操作 |
命令 |
说明 |
查看OSPF路由过程的信息 |
display ospf [ process-id ] brief |
display命令可以在任意视图下执行 |
查看OSPF统计信息 |
display ospf [ process-id ] cumulative |
|
查看OSPF的LSDB信息 |
display ospf [ process-id [ area-id ] ] lsdb [ brief | [ [ asbr | ase | network | nssa | router | summary ] [ ip-address ] ] [ originate-router ip-address | self-originate ] ] |
|
查看OSPF各区域邻居的信息 |
display ospf [ process-id ] peer [ brief | statistics ] |
|
查看OSPF下一跳信息 |
display ospf [ process-id ] nexthop |
|
查看OSPF路由表的信息 |
display ospf [ process-id ] routing |
|
查看OSPF虚连接信息 |
display ospf [ process-id ] vlink |
|
查看OSPF请求列表 |
display ospf [ process-id ] request-queue |
|
查看OSPF重传列表 |
display ospf [ process-id ] retrans-queue |
|
查看OSPF ABR及ASBR信息 |
display ospf [ process-id ] abr-asbr |
|
查看OSPF接口信息 |
display ospf [ process-id ] interface interface-type interface-number |
|
查看OSPF错误信息 |
display ospf [ process-id ] error |
|
查看OSPF ASBR聚合信息 |
display ospf [ process-id ] asbr-summary [ ip-address mask ] |
|
重启OSPF进程 |
reset ospf [ statistics ] { all | process-id } |
reset命令在用户视图下执行 |
如图4-3所示,4台S3600系列以太网交换机SwitchA、SwitchB、SwitchC、SwitchD在同一网段,运行OSPF协议。要求正确配置,使SwitchA成为DR,SwitchC成为BDR(SwitchA的优先级为100,它是网络上的最高优先级,所以SwitchA被选为DR;SwitchC的优先级为2,是第二高的优先级,所以被选为BDR;SwitchB的优先级为0,这意味着它将无法成为DR;SwitchD没有配置优先级而取缺省值为1)。
# 配置SwitchA
<SwitchA> system-view
[SwitchA] interface Vlan-interface 1
[SwitchA-Vlan-interface1] ip address 196.1.1.1 255.255.255.0
[SwitchA-Vlan-interface1] ospf dr-priority 100
[SwitchA-Vlan-interface1] quit
[SwitchA] router id 1.1.1.1
[SwitchA] ospf
[SwitchA-ospf-1] area 0
[SwitchA-ospf-1-area-0.0.0.0] network 196.1.1.0 0.0.0.255
# 配置SwitchB
<SwitchB> system-view
[SwitchB] interface Vlan-interface 1
[SwitchB-Vlan-interface1] ip address 196.1.1.2 255.255.255.0
[SwitchB-Vlan-interface1] ospf dr-priority 0
[SwitchB-Vlan-interface1] quit
[SwitchB] router id 2.2.2.2
[SwitchB] ospf
[SwitchB-ospf-1] area 0
[SwitchB-ospf-1-area-0.0.0.0] network 196.1.1.0 0.0.0.255
# 配置SwitchC
<SwitchC> system-view
[SwitchC] interface Vlan-interface 1
[SwitchC-Vlan-interface1] ip address 196.1.1.3 255.255.255.0
[SwitchC-Vlan-interface1] ospf dr-priority 2
[SwitchC-Vlan-interface1] quit
[SwitchC] router id 3.3.3.3
[SwitchC] ospf
[SwitchC-ospf-1] area 0
[SwitchC-ospf-1-area-0.0.0.0] network 196.1.1.0 0.0.0.255
# 配置SwitchD
<SwitchD> system-view
[SwitchD] interface Vlan-interface 1
[SwitchD-Vlan-interface1] ip address 196.1.1.4 255.255.255.0
[SwitchD-Vlan-interface1] quit
[SwitchD] router id 4.4.4.4
[SwitchD] ospf
[SwitchD-ospf-1] area 0
[SwitchD-ospf-1-area-0.0.0.0] network 196.1.1.0 0.0.0.255
在SwitchA上运行display ospf peer来显示OSPF邻居,注意SwitchA有三个邻居。
每个邻居的状态都是full,这意味着SwitchA与它的每个邻居都形成了邻接(SwitchA和SwitchC必须与网络中的所有交换机形成邻接,才能分别充当网络的DR和BDR)。SwitchA是网络中的DR,而SwitchC是BDR。其它所有的邻居都是DRother(这意味着它们既不是DR,也不是BDR)。
# 将SwitchB的优先级改为200
<SwitchB> system-view
[SwitchB] interface Vlan-interface 1
[SwitchB-Vlan-interface1] ospf dr-priority 200
在SwitchA上运行display ospf peer来显示OSPF邻居,注意SwitchB的优先级变为200;但它并不是DR。
只有当现在的DR不在网络上了后,DR才会改变。关掉SwitchA,在SwitchD上运行display ospf peer命令可显示邻居,注意本来是BDR的SwitchC成为了DR,并且SwitchB现在成为了BDR。
若网络中所有的交换机被移走后又重新加入,SwitchB就被选为DR(优先级为200),SwitchA成为了BDR(优先级为100)。关掉所有的交换机再重新启动,这个操作会带来一个新的DR/BDR选择。
如图4-4所示,区域2与区域0没有直接相连。要求将区域1用作运输区域来连接区域2和区域0,在区域1的SwitchB和SwitchC之间正确配置一条虚连接。
# 配置SwitchA
<SwitchA> system-view
[SwitchA] interface Vlan-interface 1
[SwitchA-Vlan-interface1] ip address 196.1.1.1 255.255.255.0
[SwitchA-Vlan-interface1] quit
[SwitchA] router id 1.1.1.1
[SwitchA] ospf
[SwitchA-ospf-1] area 0
[SwitchA-ospf-1-area-0.0.0.0] network 196.1.1.0 0.0.0.255
# 配置SwitchB
<SwitchB> system-view
[SwitchB] interface vlan-interface 1
[SwitchB-Vlan-interface1] ip address 196.1.1.2 255.255.255.0
[SwitchB-Vlan-interface1] quit
[SwitchB] interface vlan-interface 2
[SwitchB-Vlan-interface2] ip address 197.1.1.2 255.255.255.0
[SwitchB-Vlan-interface2] quit
[SwitchB] router id 2.2.2.2
[SwitchB] ospf
[SwitchB-ospf-1] area 0
[SwitchB-ospf-1-area-0.0.0.0] network 196.1.1.0 0.0.0.255
[SwitchB-ospf-1-area-0.0.0.0] quit
[SwitchB-ospf-1] area 1
[SwitchB-ospf-1-area-0.0.0.1] network 197.1.1.0 0.0.0.255
[SwitchB-ospf-1-area-0.0.0.1] vlink-peer 3.3.3.3
# 配置SwitchC
<SwitchC> system-view
[SwitchC] interface Vlan-interface 1
[SwitchC-Vlan-interface1] ip address 152.1.1.1 255.255.255.0
[SwitchC-Vlan-interface1] quit
[SwitchC] interface Vlan-interface 2
[SwitchC-Vlan-interface2] ip address 197.1.1.1 255.255.255.0
[SwitchC-Vlan-interface2] quit
[SwitchC] router id 3.3.3.3
[SwitchC] ospf
[SwitchC-ospf-1] area 1
[SwitchC-ospf-1-area-0.0.0.1] network 197.1.1.0 0.0.0.255
[SwitchC-ospf-1-area-0.0.0.1] vlink-peer 2.2.2.2
[SwitchC-ospf-1-area-0.0.0.1] quit
[SwitchC-ospf-1] area 2
[SwitchC-ospf-1-area-0.0.0.2] network 152.1.1.0 0.0.0.255
故障之一:如果按前述步骤配置了OSPF,但OSPF却不能正常运行。
故障排除:可按如下步骤进行检查。
局部故障排除:首先检查两台直接相连的路由器之间协议运行是否正常,正常的标志是两台路由器之间peer状态机达到FULL状态。(注:在广播和NBMA网络上,两台接口状态是DROther的路由器之间peer状态机并不达到FULL状态,而是2 way状态。DR,BDR与其它所有路由器之间达到FULL状态)
l 使用display ospf peer命令查看邻居。
l 查看接口上OSPF信息可用display ospf interface命令。
l 检查物理连接及下层协议是否正常运行。可通过Ping命令测试,若从本地路由器ping对端路由器不通,则表明物理连接和下层协议有问题。
l 如果物理连接和下层协议正常,则检查在接口上配置的OSPF参数,必须保证与和该接口相邻的路由器的参数一致。区域(Area)号必须相同;网段与掩码也必须一致(点到点、虚连接的网段与掩码可以不同)。
l 检查在同一接口上dead timer值应至少为hello timer值的4倍。
l 若网络的类型为NBMA,则必须手工指定Peer。使用peer ip-address命令。
l 若网络类型为广播网或NBMA,至少有一个接口的priority应大于零。
l 如果一个Area配置成stub区域,则在与这个区域相连的所有路由器中都应将该区域配置成stub区域。
l 相邻的两台路由器接口类型必须一致。
l 若配置了两个以上的区域,则至少有一个区域应配成骨干区域(即Area号为0)。
l 应保证骨干区域与所有的区域相连接。
l 虚连接不能穿越Stub区域。
全局故障排除:如果上述步骤无误,但OSPF仍不能发现远端路由,则检查如下配置。
l 若一台路由器配置了两个以上的区域,则至少有一个区域应配成骨干区域。
如图4-5所示:RTA和RTD上只配置了一个区域,RTB(area0,area1)和RTC(area1,area2)分别配置了两个区域,其中RTB中有一个区域为0,符合要求,但RTC中的两个区域都不为0,则必须在RTC与RTB之间配置一条虚连接。保证area 2与area 0(骨干区域)相连接。
l 虚连接不能穿越stub区域,骨干区域(area 0)也不能配置成Stub区域。即如果RTB与RTC之间配置了一条虚连接,则area 1不能配置成stub area,area 0也不能配置成stub area,上图中只有area 2可以配置成stub区域。
l 在Stub区域内的路由器不能接收外部路由。
l 骨干区域必须保证各个节点的连接。
本章中所指的路由器代表了一般意义下的路由器,以及运行了路由协议的以太网交换机。
路由器在发布与接收路由信息时,可能需要实施一些策略,以便对路由信息进行过滤,比如只接收或发布一部分满足给定条件的路由信息;一种路由协议(如RIP)可能需要引入(import)其它的路由协议(如OSPF)发现的路由信息,从而丰富自己的路由信息;路由器在引入其它路由协议的路由信息时,可能只需要引入一部分满足条件的路由信息,并对所引入的路由信息的某些属性进行设置,以使其满足本协议的要求。
为实现路由策略,首先要定义将要实施路由策略的路由信息的特征,即定义一组匹配规则,可以以路由信息中的不同属性作为匹配依据进行设置,如目的地址、发布路由信息的路由器地址等。匹配规则可以预先设置好,然后再将它们应用于路由的发布、接收和引入等过程的路由策略中。
在H3C S3600系列以太网交换机中,提供了Route-policy、ACL和ip-prefix过滤器供路由协议引用。下面对这些过滤器逐个进行介绍。
用于匹配给定路由信息的某些属性,并在条件满足后对该路由信息的某些属性进行设置。
一个Route-policy可以由多个节点(node)构成,每个节点是进行匹配测试的一个单元,节点间依据顺序号(node-number)进行匹配。每个节点可以由一组if-match和apply子句组成。if-match子句定义匹配规则,匹配对象是路由信息的一些属性。同一节点中的不同if-match子句是“与”的关系,只有满足节点内所有if-match子句指定的匹配条件,才能通过该节点的匹配测试。apply子句指定动作,也就是在通过节点的匹配测试后所执行的动作——对路由信息的一些属性进行设置。
一个Route-policy的不同节点间是“或”的关系,系统依次检查Route-policy的各个节点,如果通过了Route-policy的某一节点,就意味着通过该Route-policy的匹配测试(不进入下一个节点的测试)。
以太网交换机支持的访问控制列表分为四类:advanced:表示高级访问控制列表;basic:表示基本访问控制列表;用户自定义的访问控制列表和二层访问控制列表。
在对路由信息过滤时,一般使用基本访问列表——用户在定义访问列表时指定一个IP地址或子网的范围,用于匹配路由信息的目的网段地址或下一跳地址。如使用高级访问列表,则使用指定的源地址范围进行匹配。
ACL的有关配置请参考本手册QoS/ACL配置。
前缀列表ip-prefix的作用类似于ACL,但比它更为灵活,且更易于为用户理解——ip-prefix在应用于路由信息的过滤时,其匹配对象为路由信息的目的地址信息域;另外在ip-prefix中,用户可以指定gateway选项,指明只接收某些路由器发布的路由信息。
一个ip-prefix由前缀列表名标识。每个前缀列表可以包含多个表项,每个表项可以独立指定一个网络前缀形式的匹配范围,并用一个index-number来标识,index-number指明了在ip-prefix中进行匹配检查的顺序。
在匹配的过程中,路由器按升序依次检查由index-number标识的各个表项,只要有某一表项满足条件,就意味着通过该ip-prefix的过滤(不会进入下一个表项的测试)。
配置任务 |
说明 |
详细配置 |
|
配置IP路由策略 |
创建一个路由策略 |
必选 |
|
配置If-match子句和apply子句 |
- |
||
配置地址前缀列表 |
- |
||
IP路由策略显示 |
- |
路由策略用来匹配给定的路由信息或者路由信息的某些属性,并在条件满足时改变这些路由信息的属性。匹配条件可以使用前面几种过滤列表。
一个路由策略可由多个节点构成,每个节点又分为:
l If-match子句:定义匹配规则,即路由信息通过当前Route-policy所需满足的条件,匹配对象是路由信息的某些属性。
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。当Route-policy用于路由信息过滤时,如果某路由信息没有通过任一节点,则认为该路由信息没有通过该Route-policy。如果Route-policy的所有节点都是deny模式,则没有路由信息能通过该Route-policy。
操作 |
命令 |
说明 |
进入系统视图 |
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 } |
可选 缺省情况下,不匹配路由信息下一跳地址 |
匹配OSPF路由信息的标记域 |
if-match tag value |
可选 缺省情况下,不匹配OSPF路由信息的标记域 |
设置路由信息的开销值 |
apply cost value |
可选 缺省情况下,不设置路由信息的路由开销 |
设置路由信息的标记域 |
apply tag value |
可选 缺省情况下,不设置OSPF路由信息的标记域 |
& 说明:
l 一个Route-policy可以由多个节点(node)构成,不同节点之间是“或”的关系。系统按节点序号依次检查各个节点,如果通过了其中一节点,就意味着通过该策略,不再对其他节点进行匹配测试。
l 对于同一个Route-policy节点,在匹配的过程中,各个if-match子句间是“与”的关系,即路由信息必须同时满足所有匹配条件,才称作做匹配该节点的规则。
l 如不指定if-match子句,则所有路由信息都会通过该节点的过滤。
l 在一个节点中,可以没有If-math子句,也可以有多个If-match子句。
l 每个节点可以由一组if-match和apply子句组成。if-match子句定义匹配规则, apply子句指定动作,也就是在通过节点的匹配后,对路由信息的一些属性进行设置。
地址前缀列表的作用类似于ACL,但更为灵活,且更易于理解。地址前缀列表在应用于路由信息的过滤时,其匹配对象为路由信息的目的地址信息。
在配置过滤列表之前,需要准备以下数据:
l 前缀列表名称
l 匹配的地址范围
l 扩展团体属性列表序号
地址前缀列表由列表名标识,每个前缀列表可以包含多个表项。各表项可以独立指定一个网络前缀形式的匹配范围,并使用索引号标识。比如下面这个名称为abcd的地址前缀列表:
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
在匹配过程中,系统按索引号升序依次检查各个表项,只要有一个表项满足条件,就认为通过该过滤列表,不再去匹配其他表项。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置IPv4地址前缀列表 |
ip ip-prefix ip-prefix-name [ index index-number ] { permit | deny } network len [ greater-equal greater-equal | less-equal less-equal ] |
必选 缺省情况下,不指定地址前缀列表。如果所有表项都是deny模式,则任何路由都不能通过该过滤列表。建议在多条deny模式的表项后定义一条permit 0.0.0.0 0 greater-equal 0 less-equal 32表项,允许其它所有IPv4路由信息通过 |
& 说明:
如果定义了一个以上的前缀列表表项,则至少应该有一个表项的匹配模式为permit模式。
在完成上述配置后,在任意视图下执行display命令可以显示配置后IP路由策略的运行情况,用户可以通过查看显示信息验证配置的效果。
操作 |
命令 |
说明 |
显示Route-policy |
display route-policy [ route-policy-name ] |
display命令可在任意视图下执行 |
显示地址前缀列表信息 |
display ip ip-prefix [ ip-prefix-name ] |
l 如图5-1所示,SwitchA与SwitchB通信,运行OSPF协议。SwitchA的Router ID为1.1.1.1,SwitchB的Router ID为2.2.2.2。
l 对SwitchA上的OSPF路由进程进行配置,并配置静态路由。
l 配置路由策略,在引入静态路由时应用该路由策略,使三条静态路由部分引入、部分被屏蔽掉——20.0.0.0和40.0.0.0网段的路由被引入,30.0.0.0网段的路由则被屏蔽。
l 通过在SwitchB上查看OSPF路由表,验证路由策略是否生效。
(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
# 启动OSPF协议,指定该接口所属区域号。
<SwitchA> system-view
[SwitchA] router id 1.1.1.1
[SwitchA] ospf
[SwitchA-ospf-1] area 0
[SwitchA-ospf-1-area-0.0.0.0] network 10.0.0.0 0.255.255.255
[SwitchA-ospf-1-area-0.0.0.0] quit
[SwitchA-ospf-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 ospf permit node 10
[SwitchA-route-policy] if-match acl 2000
[SwitchA-route-policy] quit
# 引入静态路由时应用路由策略。
[SwitchA] ospf
[SwitchA-ospf-1] import-route static route-policy ospf
(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
# 启动OSPF协议,指定该接口所属区域号。
[SwitchB] router id 2.2.2.2
[SwitchB] ospf
[SwitchB-ospf-1] area 0
[SwitchB-ospf-1-area-0.0.0.0] network 10.0.0.0 0.255.255.255
[SwitchB-ospf-1-area-0.0.0.0] quit
[SwitchB-ospf-1] quit
# 在SwitchB上查看OSPF路由表,验证路由策略是否生效。
<SwitchB> display ospf routing
OSPF Process 1 with Router ID 2.2.2.2
Routing Tables
Routing for Network
Destination Cost Type NextHop AdvRouter Area
10.0.0.0/8 1 Transit 10.0.0.2 1.1.1.1 0.0.0.0
Routing for ASEs
Destination Cost Type Tag NextHop AdvRouter
20.0.0.0/8 1 Type2 1 10.0.0.1 1.1.1.1
40.0.0.0/8 1 Type2 1 10.0.0.1 1.1.1.1
Total Nets: 3
Intra Area: 1 Inter Area: 0 ASE: 2 NSSA: 0
故障一:路由协议运行正常的情况下无法实现路由信息过滤
故障排除:检查如下几种错误:
l Route-policy的各个节点中至少应该有一个节点的匹配模式是permit模式。当一个Route-policy用于路由信息过滤时,如果某路由信息没有通过任一节点的过滤,则认为该路由信息没有通过该Route-policy的过滤。当Route-policy的所有节点都是deny模式时,所有路由信息都不会通过该Route-policy的过滤。
l 地址前缀列表的各个表项中至少应该有一个表项的匹配模式是permit模式。deny模式的表项可以先被定义以快速的过滤掉不符合条件的路由信息,但如果所有表项都是deny模式,则任何路由都不会通过该地址前缀列表的过滤。可以在定义了多条deny模式的表项后定义一条permit 0.0.0.0 0 less-equal 32的表项以允许其它所有路由信息通过(如果不指定less-equal 32将只匹配缺省路由)。
& 说明:
l 本章中所指的路由器代表了一般意义下的路由器,以及运行了路由协议的以太网交换机。
l H3C S3600系列以太网交换机中,仅S3600-EI系列支持路由容量配置。
在实际的组网应用中,路由表中的路由数量往往非常大,尤其是OSPF路由。当路由表占用过多内存时,会导致交换机性能下降。
为了解决这种矛盾,H3C S3600系列以太网交换机提供了一种对路由表规模进行控制的机制,通过监控系统当前空闲内存的大小,决定是否继续向路由表中增加新的路由及是否保持路由协议的连接。
注意:
需要注意的是,通常情况下使用系统的默认值就可以满足要求,不建议用户自行改变配置,以避免配置不当导致的系统的稳定性和可用性降低。
造成路由表规模过于庞大的,通常是OSPF路由项,因此,H3C S3600系列以太网交换机的路由容量限制只对OSPF路由有效,静态路由和RIP路由协议不受影响。
当交换机的空闲内存大小降低到设定的内存下限时,OSPF连接将被断开,相应的路由项从路由表中删除,从而释放占用的内存。系统定期检查空闲内存的大小,当发现空闲内存恢复到安全值后,如果此时交换机自动恢复断开功能处于使能状态,那么交换机将恢复连接;如果此时交换机自动恢复断开功能处于禁止状态,那么交换机将不再恢复已经断开的OSPF连接。
路由容量配置包括:
l 设置交换机内存的下限与安全值
l 禁止/使能交换机自动恢复断开的路由协议
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
– |
设置交换机内存的下限与安全值 |
memory { safety safety-value | limit limit-value }* |
必选 缺省情况下采用缺省值 |
& 说明:
请注意,在配置时,safety-value必须大于limit-value。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
使能交换机自动恢复功能 |
memory auto-establish enable |
必选 缺省情况下,使能交换机的自动恢复功能 |
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
禁止交换机自动恢复功能 |
memory auto-establish disable |
必选 缺省情况下,使能交换机的自动恢复功能 |
& 说明:
如果禁止了自动恢复功能,则即使空闲内存已经超过了安全值,断开的OSPF连接也不会恢复,因此,请不要轻易使用该功能。
在完成上述配置后,执行display命令可以显示配置后的路由容量信息,用户可以通过查看显示信息验证配置的效果。
操作 |
命令 |
说明 |
查看路由容量相关的内存使用信息 |
display memory [ unit unit-id ] |
display命令可在任意视图下执行 |
查看路由容量相关的内存设置和状态信息 |
display memory limit |
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!