OSPF路由汇总

转载自红茶三杯博客:http://blog.sina.com.cn/s/blog_5ec353710102vtfy.html

1. 关于路由汇总
  路由汇总,又被称为路由聚合(Route Aggregation or Route Summarization),指的是把一组明细路由汇聚成一条汇总路由的操作。
  路由汇总是一种重要的思想,在大型的项目中是必须考虑的一个重点事项。随着网络的规模越来越大,网络中的设备所需维护的路由表项也就会越来越多,路由表的规模也就会逐渐变大,而路由表是需要占用设备的内存空间的,路由的查询也是需要占用设备的资源的。因此我们需要考虑(尤其在一些大型的网络中)在保证网络中路由畅通的同时,减小路由表的规模。在不使用路由汇总的情况下,每个链路的LSA会发送到OSPF骨干一级其他区域中,这就造成了不必要的网络流量和路由开销。但假如使用路由汇总,只有汇总的路由会传播到骨干区域,避免了大量LSA占用带宽,CPU以及内存资源。即便链路出现了故障,这种变化也不会传播到骨干网络中,使得骨干网络更加稳定。
  几乎所有的路由协议都支持路由汇总。RIP、EIGRP等协议支持自动及手工路由汇总,而OSPF只支持手工路由汇总
  OSPF有两种情形的手工自动汇总:域间汇总在ABR上进行,域外汇总需在ASBR上进行。

 

OSPF汇总的使用场景
  当OSPF域内某台ASBR(自治域边界路由器)设备重分布了大量的路由进入OSPF域内,而这些路由条目又是连续的,可以汇总成几条子网掩码更大的路由条目的时候,就可以考虑在ASBR设备上做路由汇总,以便向OSPF域内传递的时候只通告这些汇总的路由,减少OSPF域内的路由数量,节约设备资源。
       当OSPF域内某台ABR(区域边界路由器)设备学习到了普通区域传递过来的大量的路由,而这些路由条目又是连续的,可以汇总成几条子网掩码更大的路由条目的时候,就可以考虑在这台ABR设备上做路由汇总,以便这些路由条目经过骨干区域(area 0)传递到其他普通区域的时候只通告这些汇总的路由,减少OSPF域内的路由数量,节约设备资源。

2. OSPF路由汇总案例(一)

   

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

  R5将三个直连网段(172.16.1.0/24、172.16.2.0/24及172.16.3.0/24)都network到OSPF。
  R1将三个直连网段(10.1.1.0/24、10.1.2.0/24及10.1.3.0/24)都重发布到OSPF。
  完成上述配置后,所有的路由器应该都能学习到全网的路由。
  2.1 在ABR上执行路由汇总

   

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

  R3(config)# router ospf 1
  R3(config-router)# area 2 range 172.16.0.0 255.255.0.0 cost ?
  注意,这种汇总方式(area range)只能在ABR上配置,而且只能对ABR直接连接的区域中的Intra-Area路由(区域内部路由)执行汇总。R3执行汇总后,R1及R2的路由表中将出现172.16.0.0/16的汇总路由,而不会再学习到明细路由。如此一来,R1及R2的路由表就精简了,而且当它们需要访问R5下挂的那三个网段时,可以通过这条汇总路由到达。
 
  要强点的是,如果不是在R3,而是在R2上对R5下挂的网段进行汇总,则无法实现。因此此时R3作为ABR,已经将描述这些网段的3类LSA注入到了Area0,而在R2上,是无法对这些3类LSA进行路由汇总的。

 

  2.2 在ASBR上执行路由汇总

   

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

  router ospf 1
    summary-address 10.1.0.0 255.255.0.0
  完成上述配置后,R2、R3、R4及R5都会学习到一条10.1.0.0/16的汇总路由(使用Type-5 LSA描述),而不会再学习到10.1.1.0/24、10.1.2.0/24以及10.1.3.0/24这三条明细路由。

  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 10.1.0.0 255.255.0.0

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

   

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

  OSPF为了解决这个问题,在执行路由汇总时,会在本地自动产生一条指向Null0的路由。例如在R3处执行了路由汇总,则它会自动产生一条指向Null0的路由:
  O       172.16.0.0/16 is a summary, 00:00:02, Null0
  这样一来当再有类似事件发生,数据包将在R3这就被丢弃(匹配Null0路由)。
  实际上,当执行路由汇总时,自动在本地路由表产生一条指向Null0的路由是一种非常常规的防环手段,许多动态路由协议都具备这个特征。

 4. OSPF路由汇总案例(二)

  域间汇总,在ABR上进行

   

  

  R1配置

  router ospf 100

    router-id 1.1.1.1

    network 1.1.1.1 0.0.0.0 area 0

    network 12.1.1.0 .0.0.0.255 area 0

  R2配置

  router ospf 100

    router-id 2.2.2.2

    network 2.2.2.2 0.0.0.0 area 0

    network 12.1.1.0 0.0.0.255 area 0

    network 23.1.1.0 0.0.0.255 area 1

    network 24.1.1.0 0.0.0.255 area 2

  R3配置

  router ospf 100

    router-id 3.3.3.3

    network 3.3.3.3 0.0.0.0 area 1

    network 192.168.20.1 0.0.0.255 area 1

    network 192.168.21.1 0.0.0.255 area 1

    network 192.168.22.1 0.0.0.255 area 1

    network 192.168.23.1 0.0.0.255 area 1

    network 23.1.1.0 0.0.0.255 area 1

  R4配置

  router ospf 100

    router-id 4.4.4.4

    network 4.4.4.4 0.0.0.0 area 2

    network 192.168.32.0 0.0.0.255 area 2

    network 192.168.33.0 0.0.0.255 area 2

    network 192.168.34.0 0.0.0.255 area 2

    network 192.168.35.0 0.0.0.255 area 2

    network 192.168.36.0 0.0.0.255 area 2

    network 192.168.37.0 0.0.0.255 area 2

    network 192.168.38.0 0.0.0.255 area 2

    network 192.168.39.0 0.0.0.255 area 2

    network 24.1.1.0 0.0.0.255 area 2

  show ip route 查看路由表可以看见,由于域间路由的传播,R1上多达进20条路由,有R3宣告的4个。R4宣告的8个192.68网段的路由如果不进行汇总,会泛洪到全网,所以我们应该在Area 1和Area 2的ABR,也就是R2上进行汇总操作,具体操作如下:  

  R2(config)#router ospf 100 

    R2(config-router)#area 1 range 192.168.20.0 255.255.252.0
    R2(config-router)#area 2 range 192.168.32.0 255.255.248.0

  此时查看R1的路由表,发现

  O IA 192.168.20.0/22 [110/21] via 12.1.1.2

  O IA 192.168.32.0/21 [110/12] via 12.1.1.2

  可以看见,Area 1和Area 2上的192.168网段已经完成了汇总。这样会节省很多资源,拓扑发生变化也不会影响Area 0的路由表。

  域外汇总,在ASBR上进行

  拓扑图不变,但将Area 2变为EIGRP 

  R2更改配置

  router ospf 100

    no network 24.1.1.0 0.0.0.255 area 2

  router eigrp 90

    no auto-summary

    network 24.1.1.0 0.0.0.255

  R4更改配置

  no router ospf 100

  router eigrp 90

    no auto-summary

    network 24.1.1.0 0.0.0.255

    network 4.4.4.4 0.0.0.0

    network 192.168.32.0 0.0.0.255

    network 192.168.33.0 0.0.0.255

    network 192.168.34.0 0.0.0.255

    network 192.168.35.0 0.0.0.255

    network 192.168.36.0 0.0.0.255

    network 192.168.37.0 0.0.0.255

    network 192.168.38.0 0.0.0.255

    network 192.168.39.0 0.0.0.255

  之后在R2上进行双向重分发

  router ospf 100

    redistribute eigrp 90 subnets

  router eigrp 90

    redistribute ospf 100 metric 1000 1 255 1 1500

  可以看见O E2标记的为外部的EIGRP路由,并没有汇总。

  在R2上进行域间路由汇总

  router ospf 100

    summary-address 192.168.32.0 255.255.248.0

  然后查看R1的路由表

  O IA 192.168.20.0/22 [110/21] via 12.1.1.2

  O E2 192.168.32.0/21 [110/20] via 12.1.1.2

  已经完成汇总。

 5. 默认路由下放

  假如有一条通往Internet的默认路由,但如何将它下放到ospf域内的所有路由器呢,以免一台一台的配置?接下来还是按照上一个含EIGRP的拓扑图来演示一下: 

  假定R2去往R4的就是默认路由,那么先在R2上面进行配置:

  R2

  ip route 0.0.0.0 0.0.0.0 f1/0

  在Area 0和Area 1进行下放默认路由.

  router ospf 100

     default-information originate

  R1的路由表:

  O*E2 0.0.0.0/0 [110/1] via 12.1.1.2

  O IA 192.168.20.0/22 [110/21] via 12.1.1.2

  O E2 192.168.32.0/21 [110/20] via 12.1.1.2

  R3的路由表:

  O*E2 0.0.0.0/0 [110/1] via 23.1.1.2

  O E2 192.168.32.0/21 [110/20] via 23.1.1.2

  我们都看到了O*E2的这条默认路由标记,因为下方的路由属于静态的路由,自然属于OSPF域外路由,所以标记为O E2,单又是默认路由,所以就是O*E2。

  那如果我们没有在R2上配置默认路由,但我们想让其他设备将通往R2的路由设置为默认路由该如何进行配置呢? 
  首先我们将R2还原。此时R1的路由表的默认路由消失。

  然后我们在OSPF进程下进行下放默认路由:

  default-information originate always

  此时查看R1的路由表:

  O*E2 0.0.0.0/0 [110/1] via 12.1.1.2  

  综上,共有两种方式下放默认路由:

  在本地有默认路由的情况下
  R2(config-router)#default-information originate
  本地没有默认路由的情况下,强行下放默认路由
  R2(config-router)#default-information originate always
  默认cost=1并且是一个由LSA-5下放的

  

原文地址:https://www.cnblogs.com/xinghen1216/p/11737831.html