zoukankan      html  css  js  c++  java
  • BGP协议 路由反射器和联邦

    一、IBGP水平分割规则

      (1)BGP路由在AS之间的防环依赖于AS_Path路径属性,当路由器收到BGP路由后,发现该路由所携带的AS_Path属性中出现了其自己所处的AS号,则路由器认为出现了路由环路,它将忽略该条路由。

      (2)AS_Path属性仅在路由离开AS时才会被更改,而BGP路由在AS内部传递时,路由的AS_Path属性值不会发生改变,如此一来,IBGP路由的防环就无法依赖AS_Path了。

      (3)为了防止BGP路由在AS内部传递时发生环路,BGP要求:“路由器不能将自己从IBGP对等体学习到的路由再传递给其他IBGP对等体”,这就是IBGP水平分割规则。

      (4)由于IBGP水平分割原则的存在,BGP要求AS内须保证IBGP对等体关系的全互联,因为只有这样,才能够确保每一个路由器都能学习到路由。

    二、中转AS中的IBGP问题

      由于IBGP水平分割的存在,为了保证所有的BGP路由器都能学习到完整的BGP路由,就必须在AS内实现IBGP全互联(两两建立对等体关系)。然而实现IBGP全互联存在诸多短板:路由器需维护大量的TCP及BGP连接,尤其在路由器数量较多时;AS内BGP网络的可扩展性较差。

      解决方案:路由反射器和BGP联邦。

    三、路由反射器

      

      (1)RR就像一面镜子,将自己学习到的IBGP路由“反射”出去,使得IBGP路由得以在AS内传递。当然,RR并不是将所有的IBGP路由都进行反射,它将遵循一定的规则。

      (2)将一台BGP路由器指定为RR的同时,还需要指定其Client。至于Client本身,无需做任何配置,而且它并不知晓RR在网络中的存在。

      注: 路由反射器(Route Reflector,RR),客户端(Client)。

    四、路由反射规则

      RR在接收BGP路由时:

      (1)如果该路由学习自非Client IBGP对等体,则反射给自己所有的Client;

      (2)如果路由学习自Client,则反射给所有非Client IBGP对等体和除了该Client之外的所有Client;

      (3)如果路由学习自EBGP对等体,则发送给所有Client和非Client IBGP对等体。

      

      规则示例:

        对应规则(1)

        

        对应规则(2)

        

        对应规则(3)

        

    五、RR场景下的IBGP路由防环

      由于AS_Path属性在AS内部不会发生变化(仅当路由离开本AS时AS_PATH才会改变),因此AS内才需要IBGP水平分割用于防止IBGP路由环路,而RR的存在实际上是放宽了水平分割原则,这就会给路由环路带来一定的潜在隐患。BGP通过两个特殊的路径属性来实现RR场景下的BGP路由防环:Originator_ID和Cluster_List是可选非传递属性,用来防止路由环路

      

     六、Originator_ID

      Originator_ID是一个可选非传递属性,属性类型为9。是一个32bit的数值。RR将一条BGP路由进行反射时会在反射出去的路由中增加该路径属性,其值被设置为路由器的BGP Router-ID值

      如果路由为本地AS始发:则Originator_ID被设置为BGP路由宣告者的Router-ID

      如果路由为非本地AS始发:则Originator_ID被设置为本地AS的边界路由器的Router-ID

      如果AS内存在多个RR,则Originator_ID属性由第一个RR创建,并且不被后续的RR(若有)所更改。

      当BGP路由器收到一条携带Originator_ID属性的IBGP路由,并且Originator_ID属性值与自身的Router-ID相同,则它会忽略关于该条路由的更新。

      Originator_ID及Cluster-list属性将会影响BGP路径优选决策。

    七、路中反射簇Cluster

      (1)路由反射簇包括反射器RR及其Client,一个AS内允许存在多个路由反射簇。

      (2)每一个簇都有唯一的簇ID(Cluster-ID,缺省时为RR的BGP Router-ID )

      (3)当一条路由被反射器反射后,该RR(该簇)的Cluster_ID就会被添加至路由的Cluster_list属性中。

      (4)当RR收到一条携带Cluster_list属性的BGP路由,且该属性值中包含该簇的Cluster_ID时,RR认为该条路由存在环路,因此它将忽略关于该条路由的更新。

      

    八、BGP联邦(Confederation)

      

      在AS345中,进行联邦成员AS(Confederation member AS)的规划,如此一来BGP邻居关系就发生了变化。

    九、联邦内的BGP路由路径属性

      (1)通告给联邦的BGP路由,Next_Hop属性在整个联邦范围内缺省不会发生改变;

      (2)通告给联邦的BGP路由,MED属性在整个联邦范围内缺省不会发生改变;

      (3)通告给联邦的BGP路由,Local_Preference属性在整个联邦范围内缺省不会发生改变;

      (4)BGP路由在联邦内的EBGP对等体间传递时,路由器将成员AS号插入AS_Path,并且使用TYPE3、4的特殊AS_Path存储。成员AS号不会被公布到联邦AS之外,即对于联邦AS外部而言,联邦成员AS是不可见的。

      (5)AS_Path中的联邦成员AS号用于在联邦内部避免环路;联邦内成员AS号不参与AS_Path长度计算。

      

      配置实例:

      

      R3配置:

      [R3] bgp 64512

      [R3-bgp] confederation id 345 

      [R3-bgp] peer 10.1.13.1 as-number 100
      
    [R3-bgp] peer 4.4.4.4 as-number 64512
      
    [R3-bgp] peer 4.4.4.4 connect-interface loopback0
      
    [R3-bgp] peer 4.4.4.4 next-hop-local

      R4配置:

      [R4] bgp 64512

      [R4-bgp] confederation id 345
      [R4-bgp] confederation peer-as 64513
      [R4-bgp] peer 3.3.3.3 as-number 64512
      [R4-bgp] peer 3.3.3.3 connect-interface loopback0
      [R4-bgp] peer 5.5.5.5 as-number 64513
      [R4-bgp] peer 5.5.5.5 connect-interface loopback0
      [R4-bgp] peer 5.5.5.5 ebgp-max-hop

      R5配置:

      [R5] bgp 64513

      [R5-bgp] confederation id 345
      [R5-bgp] confederation peer-as 64512
      [R5-bgp] peer 4.4.4.4 as-number 64512
      [R5-bgp] peer 4.4.4.4 connect-interface loopback0
      [R5-bgp] peer 4.4.4.4 ebgp-max-hop
      [R5-bgp] peer 10.1.25.2 as-number 200
      [R5-bgp] peer 4.4.4.4 next-hop-local

  • 相关阅读:
    App.js和App.css(用于移动应用的js和css)
    cookie和session使用
    html实现返回上一页的几种方法(javaScript:history.go(-1);)
    sublime找到成对标签(Ctrl+Shift+")
    Java NIO框架Netty课程(一) – Hello Netty
    信息增益的特征选择方法
    Java线程学习笔记(两) 线程异常处理
    薏米红豆粥的功效和实践演示
    文件翻译002片:Process Monitor帮助文档(Part 2)
    Spring MVC 3 深入总结
  • 原文地址:https://www.cnblogs.com/PBDragon/p/13441388.html
Copyright © 2011-2022 走看看