• 2022-07-25 网工进阶(二十一)BGP-路由反射器、联盟、聚合


    BGP路由反射器

    IBGP路由学习问题

    由于水平分割原则的原因,为了保证中转AS所有的BGP路由器都能学习到完整的BGP路由,就必须在AS内实现IBGP全互联。然而实现IBGP全互联存在诸多短板:

    1 路由器需维护大量的TCP及BGP连接,尤其在路由器数量较多时,路由器性能资源占用大。

    2 AS内BGP网络的可扩展性较差,配置条目繁琐。

    为此可以采用路由反射器技术。

    路由反射器角色

    RR(Route Reflector):路由反射器

    RR会将学习的路由在IBGP中反射出去

    Client:RR客户端

    接收反射,与路由反射器直连。

    No client:非客户端

    非客户端之间和路由反射器需建立全互联。

    相关命令

    配置路由反射器及其客户端(自身为反射器,对等体为客户端)

    [R1-bgp]peer 2.2.2.2 reflect-client 

    在一个AS中,要建立配置的对等体数量等于n*(n-1)/2,n代表IBGP路由器数量,相应的对等体关系对数则为n*(n-1)/4

    路由反射规则

    如果路由反射器从自己的非客户对等体学习到一条IBGP路由,则它会将该路由反射给所有客户,但不会反射给其他非客户对等体。

    如果路由反射器从自己的客户学习到一条IBGP路由,则它会将该路由反射给所有非客户,以及除了该客户之外的其他所有客户。

    如果路由学习自EBGP对等体,则发送给所有客户、非客户IBGP对等体。

    因此,对于同一反射器情况下,反射器之间需要建立对等体关系,客户端之间不需要建立对等体关系,客户端与非客户端之间也不需要建立对等体关系,非客户端之间则必须建立对等体关系。

    路由反射防环机制

    RR的设定使得IBGP水平分割原则失效(对等体非直连的情况下无法学习到路由),这就可能导致环路的产生,为此RR会为BGP路由添加两个特殊的路径属性来避免出现环路: Originator_IDCluster_List。Originator_ID和Cluster_List属性都属于可选过渡类型

    Originator ID

    RR将一条BGP路由进行反射时会在反射出去的路由中增加Originator_ID,其值为本地AS中通告该路由的BGP路由器Router ID

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

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

    路由反射簇列表 (Cluster _list)

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

    每一个簇都有唯一的簇ID(Cluster_ID缺省时为RR的BGP Router ID )。

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

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

    相关命令

    配置路由反射器的集群ID(缺省值为RR的Router Id)

    [R1-bgp] reflector cluster-id 1.1.1.1
    

    BGP 联盟

    BGP联盟是将若干个小型AS组成一个大型AS,小型AS之间采用EBGP的方式连接,组成的大型AS对于外部网络视为一个AS用于解决IBGP中全互联时连接过多的问题。但是由于配置繁琐(改变小型AS配置必须先删除该AS),因此在现网中不常见。

    相关命令

    配置联盟ID(对外部网络视为一个AS号)

    [R5-bgp]confederation id 200

    配置联盟中的邻居AS号

    [R5-bgp]confederation peer-as 666 777

    配置举例

    1. [R5-bgp]dis th
    2. [V200R003C00]
    3. #
    4. bgp 555
    5. confederation id 200
    6. confederation peer-as 666 777
    7. peer 6.6.6.6 as-number 666
    8. peer 6.6.6.6 ebgp-max-hop 2
    9. peer 6.6.6.6 connect-interface LoopBack0
    10. peer 7.7.7.7 as-number 777
    11. peer 7.7.7.7 ebgp-max-hop 2
    12. peer 7.7.7.7 connect-interface LoopBack0
    13. #
    14. ipv4-family unicast
    15. undo synchronization
    16. network 55.55.55.55 255.255.255.255
    17. peer 6.6.6.6 enable
    18. peer 6.6.6.6 next-hop-local
    19. peer 7.7.7.7 enable
    20. peer 7.7.7.7 next-hop-local
    21. #
    22. return

    BGP 聚合

    自动聚合的特性

    1 聚合后的路由,只考虑前8位是否一致(不一致那就代表不是一条路由)。

    2 只对引入的BGP路由会自动聚合,network宣告进BGP的路由无法执行自动聚合。

    3 只对始发与本地的BGP路由聚合会生效,对于通过其他BGP设备传递而来的外部路由聚合不会生效。

    4 只将聚合后的路由发布出去,明细路由会被抑制

    5 聚合后自动在本地生成一条指向聚合的Null路由(下一跳127.0.0.1)来防止可能出现的环路

    6 默认情况BGP设备的自动聚合是关闭的

    相关命令

    自动聚合

    [R1-bgp]summary automatic

    手动聚合特性

    1 可以在任何设备任何BGP路由进行聚合

    2 可以聚合任何属性的路由

    相关命令

    手动聚合

    [R1-bgp]aggregate 1.1.1.0 24

    聚合时抑制明细路由(常用)

    [R1-bgp]agg 1.1.1.0 24 detail-suppressed

    聚合时保留AS-PATH属性,用于防环(常用)

    [R1-bgp]aggregate 1.1.1.0 24 as-set

    聚合时使用路由策略修改属性

    1. [R1]route-policy 1 permit node 10
    2. [R1-route-policy]apply origin incomplete
    3. [R1-bgp]aggregate 1.1.1.0 24 attribute-policy 1

    聚合时使用抑制策略选择需要抑制的路由

    1. [R1-acl-basic-2000]rule 5 permit source 1.1.1.1 32
    2. [R1]route-policy 1 permit node 10
    3. [R1-route-policy]if-match acl 2000
    4. [R1-bgp]aggregate 1.1.1.0 24 suppress-policy 1

    原子聚合属性

    1. [R1]display bgp routing-table 11.11.11.0
    2. BGP local router ID : 1.1.1.1
    3. Local AS number : 100
    4. Paths: 1 available, 1 best, 1 select
    5. BGP routing table entry information of 11.11.11.0/24:
    6. Aggregated route.
    7. Route Duration: 00h00m46s
    8. Direct Out-interface: NULL0
    9. Original nexthop: 127.0.0.1
    10. Qos information : 0x0
    11. AS-path Nil, origin incomplete, pref-val 0, valid, local, best, select, active,
    12. pre 255
    13. Aggregator: AS 100, Aggregator ID 1.1.1.1, Atomic-aggregate
    14. Advertised to such 4 peers:
    15. 5.5.5.5
    16. 2.2.2.2
    17. 3.3.3.3
    18. 4.4.4.4

    Atomic-aggregate属性:属于公认任意属性,表示该聚合路由的所有明细路由做了抑制,用于告知对等体,原始的明细路由的AS_PATH出现了丢失。

    聚合者属性

    Aggregator属性:属于可选过渡属性,表示该路由做了聚合,包含聚合路由所在AS号、通告者的RID,如配合原子聚合属性,表示路由信息在何处出现了丢失。

  • 相关阅读:
    教你如何使用Nodejs搭建HTTP web服务器并发布上线公网
    如何把 ThinkPHP 5 的项目迁移到阿里云函数计算来应对流量洪峰?
    小程序使用腾讯位置插件获取当前位置
    为什么IN操作符一般比OR操作符清单执行更快
    AI概念之人工智能、机器学习和数据挖掘之间的联系与区别
    (附源码)springboot税收风险管理系统 毕业设计 231058
    强化学习之策略函数学习
    拟态时钟动画
    PKU 概率论+数理统计+建模 期中考复习总结
    【Azure API Management】实现在API Management服务中使用MI(管理标识 Managed Identity)访问启用防火墙的Storage Account
  • 原文地址:https://blog.csdn.net/x629242/article/details/125973289