OSPF高级配置
n 路由重分发
路由重分发通常在那些负责从一个自治系统学习路由,然后向另一个自治系统广播的路由器上进行配置。例如:一台路由器既运行OSPF又运行RIP,如果OSPF进程被配置为通告由RIP学到的路由到OSPF自治系统中,那么这种做法就可以叫“重分发RIP”。
一个单一的IP路由协议是管理网络中IP路由的首选方案。无论是从配置管理的角度还是容错管理的角度,每台路由器都被期望运行单种路由协议而不是多种路由协议。然而,显示网络的情况是存在多种路由协议的,并且这些网络要互相连通,那就必须至少有一台路由器运行多种路由协议来实现不同网络之间的通信。因此,路由器重分发的问题不可避免。
注意:一台路由器上运行多种路由协议并不意味着重分发就会自动进行,重分发必须被配置以后才能进行。
进行路由重分发时,不管是有类路由协议还是无类路由协议,都需要考虑每种路由协议的能力及特性。最常考虑的两个因素是度量值(Metrics)和管理距离(Administrative Distances)。
1. 度量值(Metrics)
度量值代表距离。它们用来在寻找路由时确定最优路由。每一种路由算法在产生路由表时都会为每一条通过网络的路径产生一个数值(度量值),最小的值表示最优路径。度量值的计算可以只考虑路径的一个特性,但更复杂的度量值是综合了路径的多个特性产生的。
一些常用的度量值有跳数、代价(Cost)、带宽、时延、负载、可靠性、最大传输单元(MTU)等。
OSPF路由协议的度量值为Cost,而RIP路由协议的度量值为跳数。
2. 管理距离(Administrative Distances)
管理距离是指一种路由协议的路由可信度。每一种路由协议按可靠性从高到低依次分配一个信任等级,这个信任等级就叫管理距离。对于两种不同的路由协议到一个目的地的路由信息,路由器首先根据管理距离决定相信哪一个协议。Ciso IOS使用的默认管理距离如下表所示:
路由源 默认级别
直连口 0
静态路由 1
OSPF 110
RIP 120
未知 255
3. OSPF重分发路由的路径类型
重分发到OSPF自治系统中路由的路径类型分为两种:类型1的外部路径和类型2的外部路径。
类型1的外部路径(Type 1 External Path,E1):是指目的地在OSPF自治系统外部的路径,表示为E1。当一条外部路由重新分配到任何自治系统的时候,它都必须指定一个对那个自治系统中的路由选择协议有意义的度量值。在OSPF协议里,ASBR路由器的责任是给它们所要通告的外部路由指定一个代价值。对于类型1的外部路径来说。这个代价值是这条路由的外部代价加上到达ASBR路由器的路径代价之和。
类型2的外部路径(Type 2 External Path,E2):也是指目的地在OSPF自治系统外部的路径,但是在计算外部路由的度量时不再计入到达ASBR路由器的路径代价。E2的路由类型将提供给网络工程师一个选择,可以告诉OSPF协议只需要考虑外部路由在OSPF外部的代价,而忽略到达ASBR路由器的内部代价。OSPF外部路由默认条件下是类型2的外部路径,即E2路径。
n 路由重分发配置
1. 配置路由重分发
在进行路由重分发之前,必须首先注意以下几个方面。
? 决定在哪儿添加新的协议
? 确定自治系统边界路由器(ASBR)
? 决定哪个协议在核心,哪个在边界
? 决定进行路由重分发的方向
可以使用以下命令重分发路由(这个例子是针对OSPF的):
Router(config-router)# redistribute protocol [metric metric-value] [metric-type type-value] [subnets]
其中,参数表示含义如下:
? protocol:路由器要进行路由重分发的源路由协议。主要的值有bgp、eqp、isis、ospf [process-id]、static、connected和rip。其中,static表示重分发静态路由,connected表示重分发直连路由,ospf [process-id]表示重分发另一个OSPF进程的路由。
? metric:是一个可选的参数,用来指明重分发的路由的度量值。
? metric-type:指定重分发的路由类型。可取1或2两个值,1即E1,2即E2。默认值是2。
? subnets:连其子网一起宣告。
下面的配置代码是在RIP和OSPF之间进行重分发命令的实例:
router rip
redistribute ospf 109 metric 10
router ospf 109
redistribute rip metric 200 subnets
在这个实例中,由OSPF派生的路由被重分发到RIP路由中,并且度量值跳数为10。由RIP派生的路由被重分发到OSPF之中,作为类型2的外部路由,并给定一个OSPF代价200(如果不指定metric,则默认的代价值是20)。
注意:在RIP协议中重分发OSPF协议时需要指定metric的值,否则在RIP中无法学到重分发的路由条目。
重分发静态路由时,只需要在OSPF协议中发布即可,配置如下:
router ospf 10
redistribute static metric 100 subnets metric-type 2
在这个实例中,静态路由被重分发到OSPF之中,作为类型我的外部路由,并指定一个OSPF代价100。而静态路由无法重分发OSPF路由,只能通过再配置静态路由实现到达OSPF区域。
如果要重分发缺省路由的话,需要使用default-information originate命令,和redistribute命令一样,通过OSPF路由器使它成为一个ASBR,此命令也可以指定被重分发的缺省路由的度量值,也可以设定OSPF外部路由类型。下面为重分发缺省路由的实例。
router ospf 1
network 192.168.0.0 0.0.0.255 area 0
default-information originate metric 10 metric-type 1
ip route 0.0.0.0 0.0.0.0 10.0.1.1
在这个实例中,缺省路由被重分发到OSPF之中,作为类型1的外部路由,并给定一个OSPF代价10。
n 路由重分发实例
实验环境
Benet公司有两家分公司,分别在上海、杭州,总公司在北京。为了提高访问的安全性和实时性,避免出现故障,Benet公司决定租用数字电路,将分公司和总公司的网络互通,如上图所示,其中R1为总公司路由器,R2、R5为上海分公司路由器,R3、R4为杭州分公司路由器。按照以下要求配置网络中的路由器,实现全网互通,并能访问Internet。
Benet公司的要求如下:
? 网络便于维护,总公司到各分公司之间使用OSPF协议,上海、杭州分公司内部使用的路由协议不变。上海分公司使用RIP协议,而杭州分公司内部使用静态路由协议。
? 所有分公司访问公网都需要通过总公司R1路由器实现
Benet公司的网络规划如下:
? R1和R2的互联地址:10.0.0.0/30,R1和R3的互联地址:10.0.0.4/30,R3和R4的互联地址:10.0.0.8/30,R2和R5的互联地址:192.168.100.0/24,R1和ISP的互联地址:172.16.31.0/30
? 路由器的Loopback0地址为R1:1.1.1.1/32,R2:2.2.2.2/32,R3:3.3.3.3/32,R4:4.4.4.4/32,并使用此地址为OSPF协议RouterID。
具体步骤:
1. 配置各路由器的接口地址。
2. 配置各路由器的OSPF协议、RIP协议、静态路由
R1的配置如下:
R2的配置如下:
R3的配置如下:
R4的配置如下:
R5的配置如下:
ISP的配置如下:
3. 配置路由重分发
R1路由器重分发默认路由,配置如下:
R2路由器重分发,配置如下:
R3路由器重分发静态路由和直连路由,配置如下:
4. 验证网络通信是否正常
n NSSA区域
由于OSPF网路中Stub区域不允许存在ASBR,所以在一台属于Stub区域的路由器上配置重分发路由到OSPF区域中是无法实现的。
注意:在重分发路由时,如果路由器所属区域类型是Stub时,会有相应的提示出现,请注意观察,以免出现相似的问题。提示如下:
Warning:Router is currently an ASBR while having only one area which is a stub area
n 非纯末梢区域(NSSA)概述
非纯末梢区域NSSA允许外部路由通告到OSPF自治系统内部,而同时保留自治系统其余部分的末梢区域特征。为了做到这一点,在NSSA区域内的ASBR将始发类型7的LSA来通告那些外部的目的网络。这些NSSA区域外部的LSA将在整个NSSA区域中进行泛洪,但是会在ABR路由器的地方被阻塞。
LSA 7(NNSA External LSA,NSSA外部LSA)是指在非纯末梢区域(Not-So-Stubby Area,NSSA)内始发于ASBR路由器的LSA通告。可以通告命令show ip ospf database nssa-external来显示NSSA 外部LSA通告的信息。
NNSA外部LSA通告几乎和自治系统外部LSA通告时相同的。只是不像自治系统外部LSA通告那样在整个OSPF自治系统内进行泛洪,NSSA外部LSA通告仅仅在始发这个NSSA外部LSA通告的非纯末梢区域内部进行泛洪。NNSA区域中的ABR路由器可以将类型7的LSA装换成为类型5的LSA,并且将此LSA泛洪到其他的区域中去。
同样,NSSA重分发到OSPF中的路由也是两种类型,在NNSA区域的路由表中显示为N1和N2,当其经过ABR装换成为LSA5后,N1转换成为E1,N2转换成为E2。
n 配置NSSA区域
配置命令
Router(config-router)# area area-id nssa [no-summary]
其中,area-id:将要配置为NSSA的区域号;no-summary:可选参数,在ABR上配置NSSA时如果使用该选项,除了通告一条指向ABR的默认路由的类型3的LSA外,其他的类型3的LSA和类型4的LSA在NSSA区域内都将被阻止。也可以使用命令area area-id nssa default-information-originate。
n OSPF协议总结
1. LSA的类型
类型代码 描述
1 路由器LSA
2 网络LSA
3 网络汇总LSA
4 ASBR汇总LSA
5 AS外部LSA
7 NSSA外部LSA
2. OSPF区域类型
OSPF区域分为骨干区域、标准区域(非骨干区域、非末梢区域)、末梢区域、完全末梢区域、NSSA。每一种区域内允许泛洪的LSA类型如下表所示:
区域类型 1&2 3 4&5 7
骨干区域(区域0) 允许 允 许 允许 不允许
非骨干区域、非末梢区域 允许 允 许 允许 不允许
末梢区域 允许 允 许 不允许 不允许
完全末梢区域 允许 不允许* 不允许 不允许
NSSA 允许 允 许 不允许 允许
*除了ABR路由器使用一个类型3的LSA通告默认路由。
3. OSPF路由类型的优先级
OSPF定义了四种路径类型,分别是区域内路径、区域外路径、类型1的外部路径和类型2的外部路径。OSPF路径类型的优先级如下所示,1表示最高优先级,而4表示最低优先级。
? 区域内路径:优先级1
? 区域间路径:优先级2
? E1外部路径:优先级3
? E2外部路径:优先级4
路由表添加路由条目时,如果目的网段相同,则会选择优先级高的路由条目添加到路由表中。
n OSPF路由协议地址汇总
在大型网络中地址汇总有利于减少路由条目。
n 地址汇总的类型和命令
虽然末梢区域可以通过防止某些LSA进入该区域,从而达到在一个非骨干的区域里节省资源的目的,但相对于骨干区域,这些区域除节省资源外并没有做其他任何事情,同时一个区域内所有的地址仍然会通告到骨干区域当中。这种情形可以通过地址汇总来帮助解决。与末梢区域一样,地址汇总也是通过减少泛洪的LSA数量来达到节省资源的目的。另外,它还可以通过屏蔽一些网络不稳定的细节来节省资源。例如:一个忽好忽坏的不稳定的子网,在它每一次发生状态转变的时候,都会引起LSA在整个OSPF域中泛洪。但是,如果这个子网地址被地址汇总到一个汇总地址中的话,那么简单那的子网和它的稳定性就不再被通告出去了。
在Cisco的路由器上可以执行以下两种类型的地址汇总:
1. 区域间路由汇总
区域间路由汇总(Inter-area summarization),顾名思义,是指在区域之间的地址汇总。这种类型的汇总通常是配置在ABR路由器上的。配置命令如下:
Router(config-router)# area area-id range ip-address mask
其中,area-id:指明需要进行路由条目汇总的区域;ip-address:指明汇总后的网段地址。
2. 外部路由汇总
外部路由汇总(External route summarization)允许一组外部地址汇总为一条汇总地址,通过重新分配注入到一个OSPF域中。这种类型的汇总通常是配置在ASBR路由器上的。配置命令如下:
Router(config-router)# summary-address ip-address mask
注意:配置了路由汇总后,路由表中将自动生成一条指向Null0的路由条目。Null0是路由器上的一个虚拟接口,也被称为丢弃端口,所有到达该端口的数据会被直接丢弃。
n 地址汇总配置实例
实验要求:
配置OSPF多区域,路由重分发,地址汇总
具体步骤:
1. 配置个路由器的接口地址
2. 配置OSPF、RIP协议
R1的配置:
R2的配置:
R3的配置:
R4的配置:
R5的配置:
3. 在路由器R1上配置路由重分发。
4. 在路由器R1上配置地址汇总
5. 在路由器R5上配置地址汇总
6. 用ping命令测试网络通信