BGP选路原则

华为路由器当到达同一目的地存在多条路由时,BGP依照如下策略顺序进行路由选择:

 如果此路由的下一跳不可达,忽略此路由

  1. 优选协议首选值(PrefVal)最高的路由
  2. 优选本地优先级(Local_Pref)最高的路由
  3. 本地始发的BGP路由优于从其他对等体学习到的路由,本地始发的路由优先级:优选本地手动聚合> 本地自动聚合> 本地network> 本地import> 从对等体学到的。
  4. 优选AS路径(AS_Path)最短的路由
  5. 比较Origin属性,依次优选Origin类型为IGP(聚合或者network方式)、EGP、Incomplete的路由
  6. 优选MED值最低的路由
  7. 优选从EBGP邻居学来的路由(EBGP路由优先级高于IBGP路由)
  8. 优选到下一跳IGP Metric较小的路由
  9. 优选Cluster_List最短的路由
  10. originator ID 越小越优
  11. 优选Router ID最小的路由器发布的路由
  12. 比较对等体的IP Address,优选从具有较小IP Address的对等体学来的路由

BGP等价路由实现方式

当到达同一目的地址存在多条等价路由时,可以通过BGP等价负载分担实现均衡流量的目的。

EBGP

以上前8条可以实现等价负载均衡。但是需要开启maximum load-balancing命令

IBGP

11条全部相同才会等价负载均衡。但是这种网络在实际网络中不存在。怎么办?

IBGP使用虚拟下一跳实现等价路由负载均衡:IBGP选路最优的路由,通过策略修改该路由的next-hop为一个虚拟地址,该虚拟地址同时配置在2台需要等价的设备上。BGP路由协议在根据next-hop属性转发时会进行IGP迭代,发现下一跳IP有2个等价IGP路由,故出接口被迭代到2个链路上实现等价均衡。

IBGP等价路由负载实验:虚拟下一跳

 

互联链路和loopback全部起ISIS level 2。

RR为AR1、 AR2、 AR3、 AR4的BGP 路由反射器。

AR1和AR2向RR通告BGP路由100.100.100.0/24

OSPF等价路由实验 ensp等价路由_IP

RR上看路由只会优先1条:来自peer 1.1.1.1通告,没有优选peer 2.2.2.2 通告(原因为not preferred for router ID,11条选路规则的第10条)。RR只将优先的路由通告给4个客户端

<RR>dis bgp routing-table 100.100.100.0

 BGP local router ID : 5.5.5.5
 Local AS number : 100
 Paths:   2 available, 1 best, 1 select
 BGP routing table entry information of 100.100.100.0/24:
 RR-client route.
 From: 1.1.1.1 (1.1.1.1)
 Route Duration: 00h07m35s  
 Relay IP Nexthop: 10.5.3.2
 Relay IP Out-Interface: GigabitEthernet0/0/1
 Original nexthop: 1.1.1.1
 Qos information : 0x0
 AS-path Nil, origin igp, MED 0, localpref 100, pref-val 0, valid, internal, bes
t, select, active, pre 255, IGP cost 20
 Advertised to such 4 peers:
    1.1.1.1
    2.2.2.2
    3.3.3.3
    4.4.4.4
 BGP routing table entry information of 100.100.100.0/24:
 RR-client route.
 From: 2.2.2.2 (2.2.2.2)
 Route Duration: 00h07m19s  
 Relay IP Nexthop: 10.5.3.2
 Relay IP Out-Interface: GigabitEthernet0/0/1
 Original nexthop: 2.2.2.2
 Qos information : 0x0
 AS-path Nil, origin igp, MED 0, localpref 100, pref-val 0, valid, internal, pre
 255, IGP cost 20, not preferred for router ID
 Not advertised to any peer yet

未使用BGP虚拟下一跳负载均衡方案时路由

在AR3上看路由只有一条BGP路由,因为RR只反射了RR优选的这一条最优路由

<AR3>dis bgp routing-table 
 BGP Local router ID is 3.3.3.3 
 Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete
 Total Number of Routes: 1
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn
 *>i  100.100.100.0/24   1.1.1.1         0          100        0      i
<AR3>

配置BGP虚拟下一跳负载均衡

这个实现在AR1和AR2配置虚拟IP  100.1.1.1并IGP发布。实现在AR3上到达100.1.1.1IGP负载均衡2个下一跳。

[AR1-LoopBack1]dis th
[V200R003C00]
#
interface LoopBack1
 ip address 100.1.1.1 255.255.255.255 
 isis enable 1
#
return

[AR2-LoopBack1]dis th
[V200R003C00]
#
interface LoopBack1
 ip address 100.1.1.1 255.255.255.255 
 isis enable 1
#
return

<AR3>dis ip routing-table  100.1.1.1
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Table : Public
Summary Count : 2
Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

      100.1.1.1/32  ISIS-L2 15   10          D   10.1.3.1        GigabitEthernet0/0/0
                    ISIS-L2 15   10          D   10.2.3.1        GigabitEthernet2/0/1
<AR3>
<AR3此时到达100.1.1.1有2个路由,等价均衡的。>

使用路由策略将通告的BGP路由next-hop改为虚拟IP

<AR1>

#
route-policy bgp-export permit node 10 
 if-match ip-prefix bgp-export 
 apply ip-address next-hop 100.1.1.1 
#
ip ip-prefix bgp-export index 10 permit 100.100.100.0 24
#
[AR1-bgp]dis th
#
bgp 100
 router-id 1.1.1.1
 peer 5.5.5.5 as-number 100 
 peer 5.5.5.5 connect-interface LoopBack0
 #
 ipv4-family unicast
  undo synchronization
  network 100.100.100.0 255.255.255.0 
  peer 5.5.5.5 enable
  peer 5.5.5.5 route-policy bgp-export export  <应用路由策略>
  peer 5.5.5.5 advertise-community
#

虚拟下一跳负载均衡实现效果。

<AR3>dis bgp routing-table
 BGP Local router ID is 3.3.3.3 
 Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete
 Total Number of Routes: 1
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>i  100.100.100.0/24   100.1.1.1       0          100        0      i


<AR3>dis ip routing-table 100.100.100.0
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Table : Public
Summary Count : 1
Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

  100.100.100.0/24  IBGP    255  0          RD   100.1.1.1       GigabitEthernet0/0/0
                    IBGP    255  0          RD   100.1.1.1       GigabitEthernet2/0/1
<这个时候IBGP路由存在2个下一跳,已经等价负载了>
<AR3>

ENSP实验配置文件: