zoukankan      html  css  js  c++  java
  • OSPF 路由汇总

    1. 关于路由汇总
     
    路由汇总,又被称为路由聚合(Route Aggregation or RouteSummarization),指的是把一组路由汇聚成一条路由条目的操作。这组路由被称为明细路由,而所汇聚成的路由被称为汇总路由。路由汇总是一种重要的思想,在大型的项目中是必须考虑的一个重点事项。我们都知道,随着网络的规模越来越大,网络中的设备所需维护的路由表项也就会越来越多,路由表的规模也就会逐渐变大,而路由表是需要占用设备的内存空间的,路由的查询也是需要占用设备的资源的,因此我们需要考虑(尤其在一些大型的网络中)在保证网络中路由畅通的同时,减小路由表的规模。路由汇总就是一个有效的手段。几乎所有的路由协议都支持路由汇总。RIP、EIGRP等协议支持自动及手工路由汇总,而OSPF只支持手工路由汇总。OSPF支持两种形式的手工自动汇总:一种部署在ABR上,另一种则部署在ASBR上。
     
    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?
     
    注意,这种汇总方式(arearange)只能在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-5LSA描述),而不会再学习到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-7LSA),并执行Type-7 LSA转Type-5 LSA的动作,因此其实R2既是ABR又是ASBR,这些Type-5LSA是由其产生的,那么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的路由是一种非常常规的防环手段,许多动态路由协议都具备这个特征。
     
     
     
     
    红茶三杯
     
    网络工程 | 数据通信 | 项目管理
    学习 沉淀 成长 分享
    站点://ccietea.com
     
    红茶三杯版权所有,转载请注明出处
  • 相关阅读:
    mysql 导入导出
    spring3.1 profile 配置不同的环境
    <context:annotation-config />和 <context:component-scan
    NPM 使用介绍
    产品每生产一个消费一个
    通过Lock对象以及Condition对象实现多线程同步
    Spring定时任务的几种实现
    详解java定时任务
    设计模式-享元模式
    堆栈简析
  • 原文地址:https://www.cnblogs.com/wuguan/p/7273281.html
Copyright © 2011-2022 走看看