糯米文学吧

位置:首页 > 计算机 > 网络技术

OSPF路由汇总教程

路由汇总,又被称为路由聚合(Route Aggregation or Route Summarization),指的是把一组路由汇聚成一条路由条目的操作。这组路由被称为明细路由,而所汇聚成的路由被称为汇总路由。路由汇总是一种重要的思想,在大型的项目中是必须考虑的一个重点事项。我们都知道,随着网络的规模越来越大,网络中的设备所需维护的路由表项也就会越来越多,路由表的规模也就会逐渐变大,而路由表是需要占用设备的内存空间的,路由的查询也是需要占用设备的资源的,因此我们需要考虑(尤其在一些大型的网络中)在保证网络中路由畅通的同时,减小路由表的规模。路由汇总就是一个有效的手段。几乎所有的路由协议都支持路由汇总。RIP、EIGRP等协议支持自动及手工路由汇总,而OSPF只支持手工路由汇总。OSPF支持两种形式的手工自动汇总:一种部署在ABR上,另一种则部署在ASBR上。

OSPF路由汇总教程

  1. OSPF路由汇总案例

网络拓扑如上图所示。R1、R2、R3、R4及R5运行OSPF,OSPF区域的规划如图。

R5将三个直连网段(、及)都network到OSPF。

R1将三个直连网段(、及)都重发布到OSPF。

完成上述配置后,所有的路由器应该都能学习到全网的路由。

1.1 在ABR上执行路由汇总

在R3(ABR)上对Area2内的路由执行汇总:

R3(config)# router ospf 1

R3(config-router)# area 2 range cost ?

注意,这种汇总方式(area range)只能在ABR上配置,而且只能对ABR直接连接的区域中的Intra-Area路由(区域内部路由)执行汇总。R3执行汇总后,R1及R2的路由表中将出现的汇总路由,而不会再学习到明细路由。如此一来,R1及R2的路由表就精简了,而且当它们需要访问R5下挂的那三个网段时,可以通过这条汇总路由到达。

要强点的是,如果不是在R3,而是在R2上对R5下挂的网段进行汇总,则无法实现。因此此时R3作为ABR,已经将描述这些网段的3类LSA注入到了Area0,而在R2上,是无法对这些3类LSA进行路由汇总的。

1.2 在ASBR上执行路由汇总

在R1上对其自己重发布进OSPF的路由执行汇总:

router ospf 1

summary-address

完成上述配置后,R2、R3、R4及R5都会学习到一条的汇总路由(使用Type-5 LSA描述),而不会再学习到、以及这三条明细路由。

2.3 在NSSA的ABR上执行路由汇总

将网络做一点小小的变更,Area1被配置为NSSA。R1将三条直连路由引入NSSA,R2会学习到这三条外部路由(Type-7 LSA),并执行Type-7 LSA转Type-5 LSA的动作,因此其实R2既是ABR又是ASBR,这些Type-5 LSA是由其产生的,那么R2也能执行路由汇总:

router ospf 1

summary-address

  2. OSPF汇总路由的防环设计

在上图所示的'场景中,R3将R5下挂的三个子网汇总成并向R2通告这条汇总路由。R1则下发一条OSPF默认路由到整个OSPF域。此时R5下挂的某个子网里有PC中毒,疯狂扫描一个并不存在的子网的IP地址(如子网),这些数据包被发给网关R5,R5通过路由表查询,最终将这些报文依照默认路由进行转发,也就是发送给R4,而R4也一样,将报文依照默认路由转发给R3,R3再转给R2,而R2由于已经收到R3传递过来的汇总路由(),因此经过路由表查询后,数据包的目的地址匹配上了这条汇总路由,于是它又把这些数据包丢回去给R3,数据包的目的地址在R3处匹配了默认路由,又被丢回R2,如此反复,直到报文的TTL递减为0。这就出现了环路。

OSPF为了解决这个问题,在执行路由汇总时,会在本地自动产生一条指向Null0的路由。例如在R3处执行了路由汇总,则它会自动产生一条指向Null0的路由:

O is a summary, 00:00:02, Null0

这样一来当再有类似事件发生,数据包将在R3这就被丢弃(匹配Null0路由)。

实际上,当执行路由汇总时,自动在本地路由表产生一条指向Null0的路由是一种非常常规的防环手段,许多动态路由协议都具备这个特征。

标签:OSPF 路由 汇总