• 文章搜索:
  • 目录

        • 分享到...

        • 新浪微博
        • 腾讯微博
        • 推荐到豆瓣 豆瓣空间
        • 分享到搜狐微博 搜狐微博
        • 分享到QQ空间 QQ空间
        • 分享到腾讯朋友 腾讯朋友
        • 网易微博分享 网易微博
        • 添加到百度搜藏 百度搜藏
        • 转贴到开心网 开心网
        • 转发好友 告诉聊友
    • 推荐
    • 打印
    • 收藏

    RR/联盟/同步

    作者:  |  上传时间:2010-10-12  |  关键字:网络大爬虫,第三期,BGP专题

    /高国义

    1  简述

    BGP越来越多的在规模比较大的企业或运营商得到部署应用, BGP丰富的路由属性能够轻松的进行路由选路。但是,受到BGP横向隔离规则规定的限制,即IBGP邻居关系不会把它的路由从邻居学习过来的路由传递给其他的IBGP邻居,导致在这些网络中需要在运行BGP的网络设备进行全连接的IBGP对等体的配置。那么在这些较大网络中需要配置在IBGP对等体为N*NBGP邻居关系,这样就加大了实施的难度和后期网络分析的难度。由此BGP运行而生的两个特性反射器和联盟

    2  路由反射器(Route Reflector

    路由反射器(RR)的作用主要是为了简化IBGP邻居配置,使用反射器后允许反射器将来自IBGP邻居的路由信息发给另一个或一组IBGP邻居。路由器让被配置为路由反射器的路由器向其他IBGP对等体传输由IBGP所学到的路由来修改BGP的横向隔离规则,也就不再需要全互连的IBGP对等体。

    2.1  BGP反射特性角色

    ²        路由反射器:是被配置为允许它把通过IBGP所学到的路由通告(或反射)到其他IBGP对等体的路由器;

    ²        客户:是和路由反射器有IBGP对等关系并配置成反射邻居关系的路由器;

    ²        非客户:不是路由反射器的客户的其他IBGP的对等体;

    ²        originator(始发者)ID:是被路由反射器创建,这个属性带有本AS内部路由始发者的路由ID

    ²        集群:路由反射器及其客户集合;

    ²        路由反射器集群表:路由报经过的集群ID序列。

    originator(始发者)ID、集群ID和集群表有助于在路由反射器配置中防止产生路由环路。

    2.2  BGP反射功能

    ²        路由反射器会依次在客户机之间反射信息。路由反射器和它的所有客户机构成一个群。一个群内允许有多个路由反射器,一个路由反射器可以把别的路由反射器配置成它的客户机或非客户机。

    ²        路由反射器在它的客户机和非客户机之间传送路由更新的规则:

    l         如果路由更新是从非客户机收到的,仅反射给客户机;

    l         如果路由更新是从客户机收到的,反射给所有非客户机以及客户机,除了这个路由更新的始发者;

    l         如果路由更新是从EBGP相邻体收到的,反射给所有的客户机和非客户机。

    2.3  路由反射器应用场合

                                                                                                                                                                           图1 应用图1

    上图中如果没有配置反射器,由于有横向隔离原则,RTD收到IBGP邻居RTC的更新后不向别的IBGP邻居发送,结果导致RTBRTA上就无法的到RTC的路由。那么如何解决这种问题呢?

    方案一:

    使AS域内的路由器进行物理上的全连接,在RTBRTC之间增加一条物理链路,在RTCRTB之间建一个IBGP邻居关系,使RTC能够直接把自己的路由传递给RTB路由器,由RTB路由器直接通过EBGP邻居关系,把路由传递给RTA

    这种全连接的网络部署方案,一方面组网成本高,另一方面BGP连接的数目增多相应的增加了系统的资源消耗,全连接的网络部署可扩展性差。

                                                                                                                                                                           图2 应用图2

    有没有简单一点的方法呢?

    方案二:

    使AS域内的路由器进行逻辑全连接,使RTBRTCIGP路由互相可达,在RTBRTC之间建立一个IBGP邻居关系,使RTC能够直接把自己的路由传递给RTB路由器,由RTB路由器直接通过EBGP邻居关系,把路由传递给RTA

                                                                                                                                                                           图3 应用图3

     

    这种方案也需要增加了BGP邻居关系的配置。

    还有没有更加简单的方法呢?

    终极方案:

    不用增加物理链路、不用新增IBGP邻居关系――――――配置BGP路由反射器。

    RTD配置路由反射器,同时RTBRTC配置反射器RTD的客户,这样根据反射器的路由反射原理,RTC就可以轻松的把自己的路由反射给RTB,并由RTB通过EBGP邻居关系。

    修改后的应用组网图:

                                                                                                                                                                           图4 应用图4

    2.4  路由器反射过程

    1、 公网路由BGP路由传递过程

    RTC经过路由反射器传递一条路由给RTA路由器,RTArouter id1.1.1.1RTBrouter id2.2.2.2RTDrouter id3.3.3.3RTCrouter id4.4.4.4.

                                                                                                                                                                           图5 应用图5

        RTC发布一条路由4.4.4.4/32IBGP反射器。

    反射器RTD学习到该条路由,并把这条路由4.4.4.4/32反射客户机RTB

    <RTD>dis bgp routing-table 4.4.4.4

     

    BGP local router ID : 3.3.3.3

    Local AS number : 100

    Path: 1 available, 1 best

     

    BGP routing table entry information of 4.4.4.4/32

    RR-client route

     From            : 30.0.0.2 (4.4.4.4)

     Relay Nexthop    : 0.0.0.0

    Original nexthop  : 30.0.0.2

     AS-path         : (null)

     Origin          : incomplete

     Attribute value : MED 0, localpref 100, pref-val 0, pre 255

     State           : valid, internal, best,

     Advertised to such 1 peers:

        20.0.0.1 

        客户机RTB学习到通过反射器反射的4.4.4.4/32的路由,该路由的Originator4.4.4.4(即RTC路由器)、Cluster list3.3.3.3(即该路由被反射器RTD路由器反射过来)、Original nexthop30.0.0.2(该路由始发下一跳)、Relay Nexthop20.0.0.2(该路由中继下一跳)。

    <RTB>dis bgp routing-table 4.4.4.4

     

    BGP local router ID : 2.2.2.2

    Local AS number : 100

    Path: 1 available, 1 best

     

    BGP routing table entry information of 4.4.4.4/32

    RR-client route

     From            : 20.0.0.2 (3.3.3.3)

     Relay Nexthop    : 20.0.0.2

    Original nexthop  : 30.0.0.2

     AS-path         : (null)

     Origin          : incomplete

     Attribute value : MED 0, localpref 100, pref-val 0, pre 255

     State           : valid, internal, best,

     Originator      : 4.4.4.4

     Cluster list      : 3.3.3.3

     Advertised to such 1 peers:

        10.0.0.1 

     

    RTA路由器通过EBGP邻居关系学习到4.4.4.4/32这条路由。

     

    <RTA>dis bgp routing-table 4.4.4.4

     

    BGP local router ID : 1.1.1.1

    Local AS number : 200

    Path: 1 available, 1 best

     

    BGP routing table entry information of 4.4.4.4/32

    From            : 10.0.0.2 (2.2.2.2)

    Original nexthop  : 10.0.0.2

     AS-path         : 100

     Origin          : incomplete

     Attribute value   :pref-val 0, pre 255

     State           : valid, external, best,

    Not advertised to any peers yet

     

    这样路由反射器成功屏蔽BGP的横向隔离规则,把路由传递给RTA路由器。

    2、 公网路由BGP反射器嵌套路由传递过程

    RTE传递一条路由5.5.5.5/32RTA路由器,RTArouter id1.1.1.1RTB

    router id2.2.2.2RTCrouter id3.3.3.3RTDrouter id4.4.4.4RTErouter id5.5.5.5;其中RTBRTD为一级反射器、RTC为二级反射器。

                                                                                                                                                                           图6 应用图6

    RTE上在BGP中发布一条路由5.5.5.5/32

    在反射器RTD查看5.5.5.5/32的路由,发现路由已经学习到该条路由,并把该条路由5.5.5.5/32反射给反射器RTC

     

    <RTD>dis bgp routing-table 5.5.5.5 32

     

    BGP local router ID : 4.4.4.4

    Local AS number : 100

    Path: 1 available, 1 best

     

    BGP routing table entry information of 5.5.5.5/32

    RR-client route

     From            : 40.0.0.2 (5.5.5.5)

     Relay Nexthop    : 0.0.0.0

     Original nexthop  : 40.0.0.2

     AS-path         : (null)

     Origin          : incomplete

     Attribute value : MED 0, localpref 100, pref-val 0, pre 255

     State           : valid, internal, best,

     Advertised to such 1 peers:

        30.0.0.1

    RTC上查看5.5.5.5/32的路由,发现该路由已经被接受到。该路由的Originator5.5.5.5Cluster list4.4.4.4(表明已经经过反射器4.4.4.4的反射)。

     

    <RTC>dis bgp routing-table 5.5.5.5 32

     

    BGP local router ID : 3.3.3.3

    Local AS number : 100

    Path: 1 available, 1 best

     

    BGP routing table entry information of 5.5.5.5/32

    RR-client route

     From            : 30.0.0.2 (4.4.4.4)

     Relay Nexthop    : 30.0.0.2

     Original nexthop  : 40.0.0.2

     AS-path         : (null)

     Origin          : incomplete

     Attribute value : MED 0, localpref 100, pref-val 0, pre 255

     State           : valid, internal, best,

     Originatror      : 5.5.5.5

     Cluster list       : 4.4.4.4

     Advertised to such 1 peers:

        20.0.0.1

     

    RTB上查看5.5.5.5/32的路由,发现该路由已经被接受到。该路由的Originator5.5.5.5Cluster list3.3.3.3,4.4.4.4(表明已经经过反射器4.4.4.4和反射器3.3.3.3的反射)。

    <RTB>dis bgp routing-table 5.5.5.5 32

     

    BGP local router ID : 2.2.2.2

    Local AS number : 100

    Path: 1 available, 1 best

     

    BGP routing table entry information of 5.5.5.5/32

    From            : 20.0.0.2 (3.3.3.3)

     Relay Nexthop    :20.0.0.2

     Original nexthop  : 40.0.0.2

     AS-path         : (null)

     Origin          : incomplete

     Attribute value : MED 0, localpref 100, pref-val 0, pre 255

     State           : valid, internal, best,

     Originatror      : 5.5.5.5

     Cluster list       : 3.3.3.3, 4.4.4.4

     Advertised to such 1 peers:

        10.0.0.1

     

    RTA上查看5.5.5.5/32的路由,发现该路由已经被接受到。该路由的Originator5.5.5.5Cluster list2.2.2.2,3.3.3.3,4.4.4.4(表明已经经过反射器4.4.4.4、反射器3.3.3.3和反射器2.2.2.2的反射)。

     

    <RTA>dis bgp routing-table 5.5.5.5 32

     

    BGP local router ID : 1.1.1.1

    Local AS number : 100

    Path: 1 available, 1 best

     

    BGP routing table entry information of 5.5.5.5/32

    From            : 10.0.0.2 (2.2.2.2)

     Relay Nexthop    :10.0.0.2

     Original nexthop  : 40.0.0.2

     AS-path         : (null)

     Origin          : incomplete

     Attribute value : MED 0, localpref 100, pref-val 0, pre 255

     State           : valid, internal, best,

     Originatror      : 5.5.5.5

     Cluster list       : 2.2.2.2, 3.3.3.3, 4.4.4.4

     Not advertised to any peers yet

     

    在多反射器的存在或反射器嵌套的网络里,路由在被反射时,会添加反射器的ID,这样该路由经过的反射器就被有效的记录下来。这时当反射器收到一条路由的Cluster list中,包含自己的反射器ID时,反射器就不会反射该路由,这样就可以有效的防止路由环路。

    3、私网路由BGP路由传递

    RTBRTDRTC组网MPLS VPN网络,RTBRTCPE设备,使RTD配置成VPNv4

    路由反射器。从RTC经过路由反射器传递一条VPN路由44.44.44.44/32RTB路由器, RTBrouter id2.2.2.2RTDrouter id3.3.3.3RTCrouter id4.4.4.4

                                                                                                                                                                           图7 应用图7

     

    RTC发布一条VPN路由44.44.44.44/32MP-IBGP反射器。

    反射器RTD学习到该条路由,并把这条路由44.44.44.44/32反射客户机RTB

     

    [RTD]dis bgp vpn vpn routing-table 44.44.44.44

     

     BGP local router ID : 3.3.3.3

     Local AS number : 100

     Paths:   1 available, 1 best

     

     BGP routing table entry information of 44.44.44.44/32:

     RR-client route

     From            : 4.4.4.4 (4.4.4.4)

     Relay Nexthop    : 0.0.0.0

     Original nexthop   : 4.4.4.4

     Ext-Community   :<RT: 100:1>

     AS-path         : (null)

     Origin          : incomplete

     Attribute value : MED 0, localpref 100, pref-val 0, pre 255

     State           : valid, internal, best,

     Not advertised to any peers yet  

    客户机RTB学习到通过反射器反射的44.44.44.44/32的路由,该路由的Originator4.4.4.4(即RTC路由器)、Cluster list3.3.3.3(即该路由被反射器RTD路由器反射过来)、Original nexthop4.4.4.4(该路由始发下一跳)、Relay Nexthop0.0.0.0(该路由中继下一跳)(VPNv4路由为隧道迭代方式,故该项为全零)。

     

    [RTD]dis bgp vpn vpn routing-table 44.44.44.44

     

     BGP local router ID : 2.2.2.2

     Local AS number : 100

     Paths:   1 available, 1 best

     

     BGP routing table entry information of 44.44.44.44/32:

    From            : 3.3.3.3 (3.3.3.3)

     Relay Nexthop    : 0.0.0.0

     Original nexthop   : 4.4.4.4

     Ext-Community   :<RT: 100:1>

     AS-path         : (null)

     Origin          : incomplete

     Attribute value : MED 0, localpref 100, pref-val 0, pre 255

     State           : valid, internal, best,

     Originatror      : 4.4.4.4

     Cluster list       : 3.3.3.3

     Not advertised to any peers yet 

    这样路由反射器成功屏蔽BGP的横向隔离规则,把路由传递给RTA路由器。

    2.5  路由器反射器的过滤

    BGP另一个比较强的功能就是过滤功能了,那么这个功能是否因为配置BGP反射器后过滤功能不再强大那呢?可以肯定的告诉大家,反射器上的路由过滤功能依然强大。特别值得一提的就是反射器对VPNv4路由的过滤。公网BGP反射器上的路由过滤,一般情况下仅仅针对路由使用路由过滤策略即可完成。相对比较复杂的是VPNv4的路由过滤,这种过滤的在反射器上的过滤需要使用的参数一般会包括Ext-CommunityRTVPNv4的路由过滤功能一般均把RT和具体路由进行结合的过滤方式。下面以一个MPLS VPN的组网举例进行讲解。

    RTBRTDRTC组网MPLS VPN网络,RTBRTCPE设备,使RTD配置成VPNv4

    路由反射器。RTCRTB上均配置两个VPN,并设置RT分别为10012001。从RTC经过路由反射器同一个VPN内传递两条VPN路由44.44.44.44/3255.55.55.55/3266.66.66.66/3277.77.77.77/32RTB路由器, RTBrouter id2.2.2.2RTDrouter id3.3.3.3RTCrouter id4.4.4.4

                                                                                                                                                                           图8 应用图8

    1、 过滤VPN的全部路由

    针对VPN路由的过滤,很多情况均需要在反射器上过滤掉VPN的配置的RT属性直接即可。本例在反射器上配置过滤RT=1001的路由即可。

    #

    bgp 100

     undo synchronization

     peer 4.4.4.4 as-number 100

     peer 2.2.2.2 as-number 100

     peer 4.4.4.4 connect-interface LoopBack1

     peer 2.2.2.2 connect-interface LoopBack1

     #  

     ipv4-family vpnv4

      peer 2.2.2.2 enable

      peer 2.2.2.2 route-policy deny-vpn1 export

      peer 2.2.2.2 reflect-client

      peer 4.4.4.4 enable

      peer 4.4.4.4 reflect-client

     #

    ospf 1

     area 0.0.0.0

      network 0.0.0.0 255.255.255.255

     #

    route-policy deny-vpn1 deny node 10

     if-match extcommunity 1

    route-policy deny-vpn1 permit node 20

    #

     ip extcommunity-list 1 permit rt 100:1

    #

    RTB上仅仅能够收到VPN266.66.66.66/3277.77.77.77/32VPN1的路由被过滤掉了。

     

    [RTB] dis bgp vpnv4 all routing-table

     

     BGP Local router ID is 2.2.2.2

     Status codes: * - valid, > - best, d - damped,

                   h - history,  i - internal, s - suppressed, S - Stale

                   Origin : i - IGP, e - EGP, ? - incomplete

     

    Total Number of Routes from all PE: 2

    Route Distinguisher:200:1

         Network            NextHop        In/Out Label  MED        LocPrf   

     

     *>i  66.66.66.66/32         4.4.4.4         Null/1027     0            100      

     *>i  77.77.77.77/32         4.4.4.4         Null/1027     0            100  

    Total Routes of vpn-instance vpn2: 2

         Network            NextHop        In/Out Label  MED        LocPrf   

     

     *>i  66.66.66.66/32         4.4.4.4         Null/1027     0            100      

     *>i  77.77.77.77/32         4.4.4.4         Null/1027     0            100  

    2、 过滤VPN的某些路由

    如果需要过滤某VPN的某些路由,只需要在反射器上配置RT和明细路由结合的过滤规则即可。本例以过滤VPN144.44.44.44/32VPN266.66.66.66/32的过滤为例。

     

    #

    route-policy deny-vpn-mingxi deny node 10

     if-match acl 2000

     if-match extcommunity 1

    route-policy deny-vpn-mingxi deny node 20

     if-match acl 2001

     if-match extcommunity 2

    route-policy deny-vpn-mingxi permit node 30

    #

     ip extcommunity-list 1 permit rt 100:1

     ip extcommunity-list 2 permit rt 200:1

    #

     

     

    #

    acl number 2000

     rule 0 permit source 44.44.44.44 0

    acl number 2001

     rule 0 permit source 66.66.66.66 0

     

    RTB上仅仅能够收到VPN155.55.55.55/32VPN277.77.77.77/32,其他路由被过滤掉了。

     

    [RTB] dis bgp vpnv4 all routing-table

     

     BGP Local router ID is 2.2.2.2

     Status codes: * - valid, > - best, d - damped,

                   h - history,  i - internal, s - suppressed, S - Stale

                   Origin : i - IGP, e - EGP, ? - incomplete

     

    Total Number of Routes from all PE: 2

    Route Distinguisher:100:1

         Network            NextHop        In/Out Label  MED        LocPrf   

         

     *>i  55.55.55.55/32         4.4.4.4         Null/1026     0            100  

     

    Route Distinguisher:200:1

         Network            NextHop        In/Out Label  MED        LocPrf   

         

     *>i  77.77.77.77/32         4.4.4.4         Null/1027     0            100  

    Total Routes of vpn-instance vpn1: 1

         Network            NextHop        In/Out Label  MED        LocPrf   

     

     *>i  55.55.55.55/32         4.4.4.4         Null/1026     0            100 

     

    Total Routes of vpn-instance vpn2: 2

         Network            NextHop        In/Out Label  MED        LocPrf    

     

     *>i  77.77.77.77/32         4.4.4.4         Null/1027     0            100 

    说明:RR在反射VPNV4路由时,如果没有配置对应的vpn-instance,则需要配置undo vpn-target policy

     

    2.6  反射器AS内部路由的环路避免

    Originator ID属性:路由反射器的客户收到反射器发来的路由后自动携带Originator ID属性,在属性域指示出发布这条路由的始发者路由器ID,这样接收者就可以知道在反射器群内这条路由从哪个路由器始发,如果是自己始发则不接收,可以避免在路由反射器群内的环路。

    Cluster ID List属性:路由反射器的客户收到反射器发来的路由后自动携带Cluster ID List属性,在属性域内指示出所经过的反射器群列表(反射器群ID缺省是反射器的路由器ID,可以配置),这样接收者就可以知道该路由在AS内部传播时经过了哪些反射器群,从而避免环路。具体实现方式请参考路由反射过程的范例2

    3  联盟(Confederation)

    联盟也是为了解决大规模网络中IBGP全网连接的问题,是处理AS内部的IBGP网络连接激增的另一种方法。联盟是基于一个AS可以被分为多个子AS,子AS内使用IBGP全闭合网,子AS之间以及联盟本身与外部AS之间使用的EBGP连接的一种应用。虽然子AS之间的路由经EBGP交换,所有的IBGP规则仍然适用,因此对于AS外的路由器来看一个联盟就象一个单一的AS。联盟和反射器应用时的区别是当BGP应用于更大的AS,即AS内有很多BGP Speaker 的情况,这时反射器配置也很复杂的话就可以考虑使用联盟,联盟的设计思想也是主要基于这一点。

    3.1  联盟特性角色

    ²        联盟ID:在不属于联盟的BGP发言者看来,属于同一个联盟的多个子自治系统是一个整体,外界不需要了解内部的子自治系统情况,联盟ID就是标识联盟这一整体的自治系统号。在不属于联盟的BGP发言者看来,属于同一个联盟的多个子自治系统是一个整体,外界不需要了解内部的子自治系统情况,联盟ID就是标识联盟这一整体的自治系统号。

    ²        子系统:是联盟的组成元素,该子系统是一个内部IBGP全闭合的系统;该子系统对联盟外不可见。

    ²        子系统AS号:子系统的AS号,该AS号仅在联盟内可见;联盟内子自治系统可以使用私有的AS号,范围为:6451265535,一个联盟最多可配置32个子自治系统。

    3.2  联盟功能

    1、联盟新增的两个属性

      RFC3065中新增加了两个为联盟定制的属性,即:

    ²        AS_CONFED_SEQUENCE: 有序的子系统号的序列集合。   

    ²        AS_CONFED_SET: 无序的子系统号的序列集合。

    二则主要区别是后者主要用于存在路由聚合等情况时导致路由属性丢失时使用;增加这两种属性是为了防止联盟内部的环路。

    2、属性传递及处理过程

    对于同一个联盟内部路由属性NEXT_HOPMEDLOCAL_PREFERENCE的传递,联盟并没有特殊处理,故NEXT_HOPMEDLOCAL_PREFERENCE仍然在联盟内传递。

    PATH参数在联盟中进行传递,对于AS_CONFED_SEQUENCEAS_CONFED_SET

    联盟内处理方式大致AS_SEQUENCEAS_SET相同,同时:

    1)         当路由在联盟内子自治系统内传递时,不应修改AS_PATH属性。

    2)         当路由在联盟内子自治系统间传递时:

    a)        若第一个AS_PATHAS_CONFED_SEQUENCEBGP将自己的子自治系统AS号加在最左端。

    b)        否则,创建一个AS_CONFED_SEQUENCE,包含自己的子自治系统AS号。

    3)         当向联盟外EBGP传递路由时:

    a)        若第一个AS_PATHAS_CONFED_SEQUENCE,将后续的AS_CONFED_SEQUENCEAS_CONFED_SET删除,至b)

    b)        若第一个AS_PATHAS_SEQUENCE,则将联盟AS加在最左端。

    c)        若第一个AS_PATHAS_SET,增加一个AS_SEQUENCE,将联盟AS加在最左端。

    4)         对于本地初始路由的传播:

    a)        向本自治系统内IBGP发送,空的AS_PATH属性。

    b)        向联盟内,本自治系统外EBGP发送,带有AS_CONFED_SEQUENCE属性。

    c)        向联盟外EBGP发送,带有AS_SEQ属性。

    3.3  联盟应用场合

    使用联盟之前:

                                                                                                                                                                           图9 应用图9

    在上图中AS100域内台路由器都运行BGP,如果配置这4路由器的IBGP逻辑全互连的话会很麻烦,需要配置41/2=6IBGP邻居关系。

    使用联盟之后:

                                                                                                                                                                       图10 应用图10

    可以看到在使用联盟之前AS100内部配置IBGP邻居的工作将很麻烦,即使配置反射器也较复杂,在使用联盟后配置IBGP邻居的工作就相对简单了。配置联盟后AS100EBGP邻居的配置没有变化,联盟对外仍然表现为一个AS,上图中的联盟ID100,对外就表现为AS100,联盟外部的BGP Speaker 不了解联盟内子自治系统的情况。联盟内部有两个子自治系统分别为AS2001AS2002,子自治系统之间为EBGP邻居,子自治系统内部和普通的自治系统相同。

    3.4  联盟的路由传递过程

    环境描述:应用图11组网网所示,RTAAS 100内,RTBRTCRTDRTE均在AS 200内,RTBRTE在子系统2001内,RTCRTD在子系统2002内。RTArouter id1.1.1.1RTBrouter id2.2.2.2RTDrouter id3.3.3.3RTCrouter id4.4.4.4RTErouter id5.5.5.5

                                                                                                                                                                       图11 应用图11

    1、从RTC上发布一条4.4.4.4/32的主机路由,携带MED值为100

     

    [RTC]dis bgp routing-table 4.4.4.4

     

     BGP local router ID : 4.4.4.4

     Local AS number : 2002

     Paths:   1 available, 1 best

     

     BGP routing table entry information of 4.4.4.4/32:

     Imported route.

     From            : 0.0.0.0 (0.0.0.0)

     Original nexthop: 127.0.0.1

     AS-path         : (null)

     Origin          : incomplete

     Attribute value : MED 100, pref-val 0, pre 0

     State           : valid, local, best,

     Advertised to such 1 peers:

        30.0.0.1

    RTD上查看该路由为子系统内路由,但还路由还未出子系统,故该路由还未附上自己的子系统号;该路由的MDE值为100Localpref100

     

    [RTD]dis bgp routing-table 4.4.4.4

     

     BGP local router ID : 3.3.3.3

     Local AS number : 2002

     Paths:   1 available, 1 best

     

     BGP routing table entry information of 4.4.4.4/32:

     From            : 30.0.0.2 (4.4.4.4)

     Relay Nexthop    : 0.0.0.0

     Original nexthop  : 30.0.0.2

     AS-path         : (null)

     Origin          : incomplete

     Attribute value : MED 100, localpref 100, pref-val 0, pre 255

     State           : valid, internal-confed, best,

     Advertised to such 1 peers:

        20.0.0.1

     

    RTB上查看还路由已经进入到了子系统2001内,故该路由为子系统外路由且携带2002的子系统号;该路由的MDE值为100Localpref100,并未发生变化。

     

    [RTB]dis bgp routing-table 4.4.4.4

     

     BGP local router ID : 2.2.2.2

     Local AS number : 2001

     Paths:   1 available, 1 best

     

     BGP routing table entry information of 4.4.4.4/32:

     From            : 20.0.0.2 (3.3.3.3)

     Relay Nexthop    : 20.0.0.2

     Original nexthop  : 30.0.0.2

     AS-path         : (null)

     Origin          : incomplete

     Attribute value : MED 100, localpref 100, pref-val 0, pre 255

     State           : valid, external-confed, best,

     Advertised to such 2 peers:

        10.0.0.1

        40.0.0.2

     

    RTE上参看该路由为子系统内路由且携带2002的子系统号;该路由的MDE值为100Localpref100,并未发生变化。

    [RTE]dis bgp routing-table 4.4.4.4

     

     BGP local router ID : 5.5.5.5

     Local AS number : 2001

     Paths:   1 available, 1 best

     

     BGP routing table entry information of 4.4.4.4/32:

     From            : 40.0.0.2 (2.2.2.2)

     Relay Nexthop    : 0.0.0.0

     Original nexthop  : 40.0.0.2

     AS-path         : (2002)

     Origin          : incomplete

     Attribute value : MED 100, localpref 100, pref-val 0, pre 255

     State           : valid, internal-confed, best,

    Not advertised to any peers yet    

    RTA上查看该路由为EBGP路由,并携带对段200的子系统号,2002的子系统号被删掉了,同时,MEDLocalpef均已经被删掉。

     

    [RTA]dis bgp routing-table 4.4.4.4

     

     BGP local router ID : 5.5.5.5

     Local AS number : 100

     Paths:   1 available, 1 best

     

     BGP routing table entry information of 4.4.4.4/32:

     From            : 10.0.0.2 (2.2.2.2)

     Original nexthop: 10.0.0.2

     AS-path         : 200

     Origin          : incomplete

     Attribute value : pref-val 0, pre 255

     State           : valid, external, best,

     Not advertised to any peers yet     

    2、在RTA上发布一条1.1.1.1/32的主机路由,MED200

     

    [RTA]dis bgp routing-table 1.1.1.1

     

     BGP local router ID : 1.1.1.1

     Local AS number : 100

     Paths:   1 available, 1 best

     

     BGP routing table entry information of 1.1.1.1/32:

     From            : 0.0.0.0 (0.0.0.0)

     Original nexthop: 127.0.0.1

     AS-path         : (null)

    Origin          : incomplete

     Attribute value : MED 200, pref-val 0, pre 0

     State           : valid, local, best,

      Advertised to such 1 peers:

        10.0.0.2   

     

    RTB上查看该路由为EBGP路由,并携带100AS号,MED200ASpath100

     

    [RTB]dis bgp routing-table 1.1.1.1

     

     BGP local router ID : 1.1.1.1

     Local AS number : 2001

     Paths:   1 available, 1 best

     

     BGP routing table entry information of 1.1.1.1/32:

     From            : 10.0.0.1 (1.1.1.1)

     Original nexthop: 10.0.0.1

     AS-path         : 100

    Origin          : incomplete

     Attribute value : MED 200, pref-val 0, pre 255

     State           : valid, external, best,

     Advertised to such 2 peers:

        20.0.0.2

        40.0.0.2

    RTE上查看该路由为子系统内路由,MED200Localpref100ASpath100

     

    [RTE]dis bgp routing-table 1.1.1.1

     

     BGP local router ID : 5.5.5.5

     Local AS number : 2001

     Paths:   1 available, 1 best

     

     BGP routing table entry information of 1.1.1.1/32:

     From            : 40.0.0.1 (2.2.2.2)

    Relay Nexthop    : 0.0.0.0

     Original nexthop: 40.0.0.1

     AS-path         : 100

    Origin          : incomplete

     Attribute value : MED 200, localpref 100, pref-val 0, pre 255

     State           : valid, internal-confed, best,

    Not advertised to any peers yet

     

    RTD上查看该路由为子系统外路由,路由MED200Localpref100,并且携带始发AS100AS 200内子系统2001子系统号。

     

    [RTD]dis bgp routing-table 1.1.1.1

     

     BGP local router ID : 3.3.3.3

     Local AS number : 2002

     Paths:   1 available, 1 best

     

     BGP routing table entry information of 1.1.1.1/32:

     From            : 20.0.0.1 (2.2.2.2)

    Relay Nexthop    : 0.0.0.0

     Original nexthop: 20.0.0.1

     AS-path         : (2001)100

    Origin          : incomplete

     Attribute value : MED 200, localpref 100, pref-val 0, pre 255

     State           : valid, external-confed, best,

    Advertised to such 1 peers:

        30.0.0.2

    3.5  联盟的环路避免

    联盟可以很容易地检测到AS内的选路循环,因为子AS之间运行的是EBGPAS路径列表用于检测离开一个子AS并想回到同一子AS的选路更新。这种想要回到它始发的子AS的选路更新被检测到是因为子AS会发现自己的子AS号码在这个更新的AS路径内。联盟的缺陷是:从非联盟向联盟方案转变时,要求路由器重新进行配置,逻辑拓扑基本上也要改变;而且,若没有手工设置的BGP策略,通过联盟的选路有可能选不到最佳的路径。

    如果AS内部既没有配置全连接也没有配置RR/联盟时,就可能产生转发黑洞。那么如何来解决这样的问题呢?那我们就不得不提到BGP的同步功能了。

    4  BGP同步

    所谓同步,是指IGPBGP之间的同步,亦即“BGP一直要等到IGP在本AS中传播了同一条路由后,再给其他各AS通告过渡路由。也就是说:在通告给其他AS一条路由时,先要保证本AS内部的路由器(无论是否运行BGP协议)都要知道去往该条路由的路径。同步的目的是避免出现误导外部AS路由器的现象发生,防止一个AS(不是所有的路由器都运行BGP)内部出现路由黑洞,即向外部通告了一个本AS不可达的虚假的路由。

    4.1  BGP同步功能

    起用同步功能后在接收到IBGP邻居发过来的路由后都会查看该路由是否已经在IGP路由表中,如果IGP路由表中有这条路由,BGP路由表才会将这条路由置为有效;如果IGP路由表中没有该路由则BGP表中的该条路由是无效的。如果关闭同步功能,在收到IBGP邻居发来的路由更新后不检查IGP表是否有该路由,而直接将该路由置为有效。

    但是还存在以下两种情况下可以安全地关闭同步:

        1、本AS不是一个过渡的AS

        2、本AS内所有Transit路由器都运行BGP且全连接。

    4.2  BGP同步的应用场合

                                                                                                                                                                       图12 应用图12

    在上图中,RTD没有运行BGPRTC关闭了同步功能。从RTA始发路由1.1.1.1/32,向RTE传递。RTBRTC收到该路由后将其置为有效, RTC把该路由向RTE进行传递,在RTE上该路由为生效路由。但是在RTC上并未检查该路由在IGP中是否存在。如有在RTE上存在到1.1.1.1的流量,RTE把改流量转发给RTCRTC把该流量转发给RTD,但是RTD上不存在1.1.1.1/32IGP路由,故流量丢失。如RTC开启BGP同步功能,当RTC检测不到1.1.1.1/32IGP路由时,RTC便不会把该路由传递给RTE,这时,RTE可能会把该流量转给给其他流量,也避免流量丢失的情况。

    如果要解决该问题,需要在RTB上把1.1.1.1/32路由引入到IGP中,并在IGP中进行传递,这样并开启同步功能,就不会出现AS内路由黑洞的问题。

    4.3  BGP同步的问题

    如果一个AS内部存在非BGP路由器,那么就出现了BGPIGP的边界,需要在边界路由器将BGP路由发布到IGP中,才能保证AS所通告到外部的BGP路由在AS内部是连通的。实际上是要求BGP路由和IGP路由的同步。如果将BGP路由发布到IGP中,由于BGP路由量一般较大,那么结果是IGP路由器要维护大量的外部路由,对路由器的CPU和内存以及AS内部的链路带宽的占用将带来巨大的开销;同时会带来收敛延时增加。通常BGP协议的运行需要关闭同步。

    5  总结

    联盟和反射两种技术都是为了解决大规模网络中IBGP必须全连接的问题,两种技术都有自己的特点,反射技术简单易理解,不需要更改现有的网络拓扑,兼容性好,反射器对于客户来说是透明的,群与群之间仍然需要全连接,适用于中到大规模网络;而联盟技术比较复杂,联盟内所有的路由器都需要支持联盟技术,但子自治系统之间是特殊的EBGP连接,因此不需要全连接,适用于大规模网络。二者需要根据实际需求进行部署。