BGP边界网关协议(Border Gateway Protocol)路由引入、路由反射器

时间:2025-01-19 13:00:47

一、路由引入背景

        BGP协议本身不发现路由,因此需要将其他协议路由(如IGP路由等)引入到BGP路由表中,从而将这些路由在AS之内和AS之间传播。

BGP协议支持通过以下两种方式引入路由:

  • Import方式:按协议类型将RIP、OSPF、IS-IS、静态路由和直连路由等协议的路由引入到BGP路由表中。

  • Network方式:将指定前缀和掩码的一条路由引入到BGP路由表中,该方式比Import更精确。

1、network引入

        1)主类引入(A\B\C段)该方式为聚合路由,为防止环路,需增加一条黑洞路由防环

AR1
    BGP as-number
    network ipv4-address [ mask | mask-length ] [ route-policy route-policy-name ]

ip route-static 10.0.0.0 255.0.0.0 NULL 0

        2)无类引入(指定掩码),默认产生黑洞路由

AR1
    BGP as-number
    network ipv4-address [ mask | mask-length ] [ route-policy route-policy-name ]

2、import-route引入

        1)无类引入

AR1
    BGP as-number
    import-route { direct | isis process-id | ospf process-id | rip process-id | static } [ med med | route-policy route-policy-name ] *


当引入RIP、OSPF、IS-IS等动态路由协议发现的路由时,需要指定协议进程号。

        2)主类引入

AR1
    BGP as-number
    import-route { direct | isis process-id | ospf process-id | rip process-id | static } [ med med | route-policy route-policy-name ] *
    summary automatic    自动聚合


当引入RIP、OSPF、IS-IS等动态路由协议发现的路由时,需要指定协议进程号。

二、路由表项参数

[AR5]dis bgp routing-table

 BGP Local router ID is 5.5.5.5
 Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete


 Total Number of Routes: 7
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>i  10.1.1.0/24        10.1.123.1      0          100        0      1?
 * i                     10.1.1.1        0          100        0      1?
 *>i  10.1.111.0/24      10.1.123.1      0          100        0      1?
 * i                     10.1.1.1        0          100        0      1?
 *>i  10.1.123.0/24      10.1.1.1        0          100        0      1?
 *>   55.5.5.0/24        0.0.0.0         8                     0      ?
 *>   55.5.5.5/32        0.0.0.0         8                     0      ?

1、Status codes

        状态代码(标识BGP路由的状态)

        1)*(valid):下一跳可达,如不可达则没有*

        2)>(best):最优路径,下一跳可达的前提下,通过十二条选路原则比较产生,最优的放入路由表

        3)d(damped):路由衰减,路由惩罚,路由发生抖动会标识为d,多次抖动不会放入路由表,主要针对EBGP

        4)h(history):抖动记录,抖动一次就会被标记为h

        5)i(internal):IBGP的路由标识,从IBGP邻居来的路由标记为i

        6)s(suppressed):抑制,当产生聚合路由,明细被抑制时,产生该标识

        7)S(stale):陈旧,老化路由标识

2、Origin

        路由的起源代码

        1)i:network的方式引入进来的

        2)e:import-route egp

        3)?:incomplete, import-route 其他路由协议

        注:上图的55.5.5.0 的网段是通过import-route direct引入的

三、BGP  组网方式

1、全互联场景

        1)全互联场景下IBGP路由信息默认不改变下一跳

              去往AR1的路由信息通过IBGP的邻居关系学习到,此时下一跳不改变

              可以同通过配置使得学习到的路由修改下一跳

<AR5>dis bgp routing-table | inc 10.1.1.0

 BGP Local router ID is 5.5.5.5
 Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete


 Total Number of Routes: 7
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>i  10.1.1.0/24        10.1.123.1      0          100        0      1?
<AR5>

        2)EBGP路由默认修改下一跳

              表项可知AR4与AR5之间建立EBGP的邻居关系,学习到的EBGP路由下一跳改变

<AR4>dis bgp routing-table | inc 10.1.1.0

 BGP Local router ID is 4.4.4.4
 Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete


 Total Number of Routes: 4
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>   10.1.1.0/24        10.1.5.5                              0      235 1?
<AR4>

        3)优缺点

              优点:路由传递正常,转控平面正常

              缺点:资源消耗大,成本较高

2、部分互联场景(联盟)

注:图片为产品文档当参考图片,仅供联盟拓扑理解使用

        1)部分互联场景下,在AS内部的IBGP邻居关系会产生水平分割的现象,导致路由传递失败,业务中断,可使用联盟(Confederation),与路由反射器相比,BGP联盟更便于实现IGP扩展。

        2)配置

system-view

    bgp as-number

    confederation id as-number

    confederation peer-as as-number &<1-32>

    peer xx.xx.xx.xx as-number xxxx

配置属于联盟的子自治系统时使用的as-number在联盟内部有效。

为了提升安全性,推荐部署BGP安全性措施(参见“配置BGP认证”)。其中,以配置Keychain认证方式为例,详细配置方法请参见“举例:配置BGP使用Keychain认证”

3、部分互联场景(路由反射器)

        1)配置路由反射器时,必须具备反射器和客户端之间的IBGP邻居关系,该方式主要为打破IBGP之间的水平分割问题

        2)角色

                RR:route-reflector 路由反射器(服务器端)

                RR-C:client 路由反射器的客户端

                cluster:路由反射簇(列表)

                Non-Client:不是反射器也不是客户机的BGP设备被称为非客户机

        3)配置

bgp 235
 router-id 5.5.5.5
 peer 10.1.2.2 as-number 235
 peer 10.1.2.2 connect-interface LoopBack1
#
 ipv4-family unicast
  undo synchronization
  import-route direct route-policy loop55
  peer 10.1.2.2 enable
  peer 10.1.2.2 reflect-client
  peer 10.1.4.4 enable
  peer 10.1.234.3 enable
#
return

        4)表项

        根据表项可知,从2.2.2.2 来的路由通过RR(5.5.5.5)反射过来使得3.3.3.3学习到了,虽然此路由没有被优选

<AR3>dis bgp routing-table 10.1.1.1

 BGP routing table entry information of 10.1.1.0/24:
 From: 10.1.45.5 (5.5.5.5)
 Route Duration: 00h02m30s
 Relay IP Nexthop: 0.0.0.0
 Relay IP Out-Interface: GigabitEthernet0/0/0
 Original nexthop: 10.1.123.1
 Qos information : 0x0
 AS-path 1, origin incomplete, MED 0, localpref 100, pref-val 0, valid, internal, pre 255, not preferred for Cluster List
 Originator:  2.2.2.2
 Cluster list: 5.5.5.5
 Not advertised to any peer yet

        5)路由反射器的规则

                来自client的路由可以向客户端、EBGP邻居、非客户端进行传递

                来自EBGP邻居的路由信息可以向客户端、EBGP邻居、非客户端进行传递

                来自非客户端的的路由信息可以向客户端、EBGP邻居进行传递,但是不可以向非客户端传递路由

                配置RR指定客户端后,客户端的路由器设备并不清楚自己为客户端,只有RR设备知道

4、路由反射器防环

        因为路由反射器打破了IBGP之间的水平分割规则,可能产生环路。

        1)Originator_ID属性

                由路由的始发路由器产生,携带了本地AS内部路由发起者的Router ID

#
bgp 1
 router-id 1.1.1.1
 peer 10.1.3.3 as-number 235
 peer 10.1.3.3 ebgp-max-hop 255
 peer 10.1.3.3 connect-interface LoopBack1
 peer 10.1.123.2 as-number 235
 #
 ipv4-family unicast
  undo synchronization
  import-route direct route-policy loop111
  peer 10.1.3.3 enable
  peer 10.1.123.2 enable
#


<AR3>dis bgp routing-table 10.1.111.0

 BGP routing table entry information of 10.1.111.0/24:
 From: 10.1.45.5 (5.5.5.5)
 Route Duration: 00h19m14s
 Relay IP Nexthop: 0.0.0.0
 Relay IP Out-Interface: GigabitEthernet0/0/0
 Original nexthop: 10.1.123.1
 Qos information : 0x0
 AS-path 1, origin incomplete, MED 0, localpref 100, pref-val 0, valid, internal, pre 255, not preferred for Cluster List
 Originator:  2.2.2.2
 Cluster list: 5.5.5.5
 Not advertised to any peer yet

<AR3>

        从路由表中可以看到,AR3从AR5那里学到了AR1通告的路由,而且还可以看到该路由的Originator和Cluster_ID属性。因为AR2和AR1之间为EBGP邻居关系,所以在AS235内默认2.2.2.2为路由始发路由器。

        当一条路由第一次被RR反射的时候,RR将Originator_ID属性加入这条路由,标识这条路由的发起设备。如果一条路由中已经存在了Originator_ID属性,则RR将不会创建新的Originator_ID。

        当其他BGP Speaker接收到这条路由的时候,将比较收到的Originator_ID和本地的Router ID,如果两个ID相同,BGP Speaker会忽略掉这条路由,不做处理。

        2)Cluster_List属性

        经过一个路由反射器反射的路由,会把路由反射器cluster-id记录下俩,形成cluster-list

        默认cluster-id= router-id

        但是可以修改成不是router-id

#
bgp 235
 ipv4-family unicast
  reflector cluster-id 55.5.5.5
#
<AR3>dis bgp routing-table 10.1.111.0

 BGP routing table entry information of 10.1.111.0/24:
 From: 10.1.45.5 (5.5.5.5)
 Route Duration: 00h00m47s
 Relay IP Nexthop: 0.0.0.0
 Relay IP Out-Interface: GigabitEthernet0/0/0
 Original nexthop: 10.1.123.1
 Qos information : 0x0
 AS-path 1, origin incomplete, MED 0, localpref 100, pref-val 0, valid, internal, pre 255, not preferred for Cluster List
 Originator:  2.2.2.2
 Cluster list: 55.5.5.5
 Not advertised to any peer yet

<AR3>

        关于RR还有其他类似备份RR等等其他应用,路由引入也可以修改许多的属性,本文仅作基本的使用了解,后续文章会慢慢深入了解。