华为BGP选路规则详解

这篇具有很好参考价值的文章主要介绍了华为BGP选路规则详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

华为BGP选路规则详解

在华为设备上,BGP选路规则是有十一条规则,那么这么多选路规则中是怎么使用的,以下以实验方式对十一条选路规则一一分析做讲解。

华为BGP十一条选路规则

1、优选协议首选值(pref val) 最高的值
2、优选本地优先级(local_pref)最高的路由
3、依次优选手动聚合路由,自动聚合路由,network命令引入的路由,import-route命令引入的路由,从对等体学到的路由
4、优选AS_PATH最短的路由
5、依次优选origin类型为IGP,EGP,incomplete的路由
6、对于来自同一AS的路由,优选MED值最低的路由。
7、依次优选EBGP路由、IBGP路由、local cross路由、remote cross路由。
8、优选BGP下一跳IGP度量值metric最小的路由
9、优选cluster_list最短的路由
10、优选router ID最小的设备发布的路由(如果路由携带originator_ID属性,选路过程中将比较originator_ID的大小,不再比较router ID,并优选originator_ID最小的路由)
11、优选从具有最小IP address的对等体学来的路由。

实验拓扑图:

华为BGP选路规则详解

从以上拓扑可以看到,有四台路由器。AR1,AR2,AR3,AR4,其中R1,R2,R3属于AS 123,R4属于AS 4。

在R4上发布一条路由,4.4.4.4到BGP中,在R1上可以学到两条4.4.4.4的BGP路由

华为BGP选路规则详解

从上面可以看到学到的两条BGP路由,下一跳分别是R2和R3,根据BGP路由选路规则中的第十条,优选router-id最小的设备发布的路由,优选了R2。

选路规则第一条:

preferred-value

preferred-value主要控制怎么离开本设备,Preferred-value是BGP协议的私有属性,该命令只对BGP路由生效。Preferred-value是BGP选路规则中的weight值,不是RFC规定的标准属性,所以该命令仅在本地生效,在BGP的出口策略中不生效。

实验目的:

使用preferred-value修改R1前往R4时优选R3(控制流量怎么离开本设备)

配置命令:

# 配置路由策略
route-policy p_v permit node 10 
 apply preferred-value 1
#
# BGP视图下引用策略,该命令可以理解收到R3发过来的路由,调用路由策略p_v,在策略里面修改preferred-value为1 
bgp 123
  peer 3.3.3.3 route-policy p_v import
# 使用命令查看BGP路由,发现4.4.4.4路由的下一跳变为R3了,prefval值等于1.说明修改成功,也对路由有了影响。
[R1-bgp]display bgp routing-table 

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


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

 *>i  4.4.4.4/32         3.3.3.3         0          100        1      4i
 * i                     2.2.2.2         0          100        0      4i

验证查看:

华为BGP选路规则详解

选路规则第二条:

本地优先级表明路由器BGP路由本地优先级,用于判断怎么离开本AS的最佳路由,默认值是100,越大越优。

local-preference 属性只能在IBGP邻居之间传递,对于IBGP邻居可以配在出方向或者入方向都可以,对于EBGP邻居只能用在入方向上。

实验目的:

通过修改local-preference属性控制AS 123访问AS 4都优先走R3出去。

配置命令:

# 第一种方法,通过修改从EBGP收到的路由中的local-preference属性实现,其中的原理是从EBGP邻居学习到的路由会通告给IBGP邻居,在收到这个路由器上对该路由进行修改local-preference属性,那么通告给IBGP邻居的路由属性则是修改属性后的路由。
# 在R3配置路由策略
route-policy l_p permit node 10 
 apply local-preference 101 
#
# 在R3的BGP下调用策略,
bgp 123
  peer 10.1.34.4 route-policy l_p import
#
# 查看R1路由表,可以看到优选了R3去往R4,其中locprf是101
<R1>display bgp routing-table 

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


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

 *>i  4.4.4.4/32         3.3.3.3         0          101        0      4i
 * i                     2.2.2.2         0          100        0      4i
<R1>
# 查看R2路由表
<R2>display bgp 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: 1
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>   4.4.4.4/32         10.1.24.4       0                     0      4i
<R2>
# 从R2路由表中看到,R2只有一条路由,这是因为IBGP邻居从IBGP邻居学到的路由不会在通告给IBGP邻居,可以理解为R3把R4的路由通告给R1后,然后R1收到后,并不会把该路由通告给R2,而R2通告给R1的路由也如此,所以在R2上和R3上都只存在一条R4的路由。
# 可以通过把R1配置为路由反射器,使R2也可以学到R3通告的路由。
bgp 123
  peer 2.2.2.2 reflect-client
  peer 3.3.3.3 reflect-client
#
# 配置完路由反射后再次查看R2的路由表
<R2>display bgp 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: 2
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>i  4.4.4.4/32         3.3.3.3         0          101        0      4i
 *                       10.1.24.4       0                     0      4i
<R2>
# 可以看到存在两条路由,并且去往4.4.4.4的下一跳是R3,从而实现通过local-preference实现控制AS123去往AS4的选路。
# 第二种方式,在IBGP邻居配置local-preference对AS的路由控制,实现原理通过在R3上修改R3向IBGP邻居发送的路由属性从而实现,在IBGP邻居的出方向调用路由策略。
# 在R3的BGP下调用路由策略
bgp 123
  peer 1.1.1.1 route-policy l_p export
# 配置完成后查看R1的BGP路由表和R2的BGP路由表
<R1>display bgp routing-table 

 BGP Local router ID is 1.1.1.1 
 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  4.4.4.4/32         3.3.3.3         0          101        0      4i
<R1>
<R2>display bgp 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: 2
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>i  4.4.4.4/32         3.3.3.3         0          101        0      4i
 *                       10.1.24.4       0                     0      4i
<R2>
# 结果是跟第一种方式一样的
# 第三种方式,在IBGP邻居的入方向调用路由策略,需要在R1接收R3路由的入方向调用策略,实现原理是R1在收到R3路由的时候,对收到的路由修改local-perference值进行影响路哟选路。
# 在R1上配置路由策略
route-policy l_p permit node 10 
 apply local-preference 101 
# 在R1的BGP下调用路由策略
bgp 123
  peer 3.3.3.3 route-policy l_p import
# 查看路由表
<R1>display bgp routing-table 

 BGP Local router ID is 1.1.1.1 
 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  4.4.4.4/32         3.3.3.3         0          101        0      4i
<R1>
<R2>display bgp 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: 2
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>i  4.4.4.4/32         3.3.3.3         0          101        0      4i
 *                       10.1.24.4       0                     0      4i
<R2>
# 得到结论跟前二者一样

选路规则第三条

依次优选手动聚合路由,自动聚合路由,network命令引入的路由,import-route命令引入的路由,从对等体学到的路由,这个可以理解为自身路由器有多种方式产生一条路由,那么对自己而言那一条路由才会被自己优选呢。

实验目的:

以下以R3和R4来做一个实验,R4通告给R3一条4.4.4.0/24的路由,R3自己import-route方式,network方式,手动聚合方式产生一条4.4.4.0/24的路由,进行观察R3会选择那一条路由。

配置命令:

# 首先看到R3上学到了R4发送的一条4.4.4.0/24的路由
[R3]display 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

 *>   4.4.4.0/24         10.1.34.4       0                     0      4?
[R3]
# R3 通过import-route方式产生一条4.4.4.0/24的路由
ip route-static 4.4.4.0 255.255.255.0 NULL0
# BGP引入路由
bgp 123
  import-route static
#
[R3-bgp]display 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: 2
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>   4.4.4.0/24         0.0.0.0         0                     0      ?
 *                       10.1.34.4       0                     0      4?
[R3-bgp]
# 查看R3路由表可以看到优选了import-route的路由
# 然后R3在通过network产生一条4.4.4.0/24的路由,在BGP下宣告4.4.4.0/24的路由
bgp 123
  network 4.4.4.0 255.255.255.0 
# 查看R3的路由表
[R3]display 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: 3
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>   4.4.4.0/24         0.0.0.0         0                     0      i
 *                       0.0.0.0         0                     0      ?
 *                       10.1.34.4       0                     0      4?
[R3]
# 可以看到优选了network产生的路由
# 然后R3在通过手动聚合产生一条4.4.4.0/24的路由
bgp 123
  aggregate 4.4.4.0 255.255.255.0 
# 
# 查看R3上的路由表
[R3-bgp]display 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: 5
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>   4.4.4.0/24         127.0.0.1                             0      i
 *                       0.0.0.0         0                     0      i
 *                       0.0.0.0         0                     0      ?
 *                       10.1.34.4       0                     0      4?
 *>   4.4.4.4/32         10.1.34.4       0                     0      4i
[R3-bgp]
# 根据以上路由表可以看到优选了手动聚合的路由,下一跳为127.0.0.1的这条为手动聚合的路由。

选路规则第四条

优选AS_PATH最短的路由,该规则比较容易理解,从字面意思上来看,就是携带的as_path最短的路由最优。从原理上来讲,可以理解为as_path越多,就是所跨越的AS域越多,路就越远就没那么优。

AS_Path属性是BGP的私有属性,记录了某条路由从本地到目的地址所要经过的所有AS编号,通过应用AS_Path属性可以控制路由选择及防止路由环路。当到达同一目的地存在多条路由时,BGP会比较路由的AS_Path属性,AS_Path列表较短的路由将被认为是最佳路由。

实验目的:

通过在R2和R3上修改AS_PATH长度,来影响R1的选路。

配置命令:

# 在修改as_path长度前进行查看R1的BGP路由表
<R1>display bgp routing-table

 BGP Local router ID is 1.1.1.1 
 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

 *>i  4.4.4.0/24         2.2.2.2         0          100        0      4?
 * i                     3.3.3.3         0          100        0      4?
 *>i  4.4.4.4/32         2.2.2.2         0          100        0      4i
 * i                     3.3.3.3         0          100        0      4i
<R1>
# 在R2配置as-path长度,首先使用路由策略定义好要增加的AS-PATH长度
route-policy as permit node 10 
 apply as-path 100 200 300 additive
# 然后在BGP接受EBGP路由时调用该策略
bgp 123
peer 10.1.24.4 route-policy as import
# 
# 配置完成后查看R1的路由表
<R1>display bgp routing-table

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


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

 *>i  4.4.4.0/24         3.3.3.3         0          100        0      4?
 *>i  4.4.4.4/32         3.3.3.3         0          100        0      4i
<R1>
# R1优选了R3出去,然后查看R2自身的BGP路由表
[R2-bgp]display bgp 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: 4
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>i  4.4.4.0/24         3.3.3.3         0          100        0      4?
 *                       10.1.24.4       0                     0      100 200 30
0 4?
 *>i  4.4.4.4/32         3.3.3.3         0          100        0      4i
 *                       10.1.24.4       0                     0      100 200 30
0 4i
[R2-bgp]
#可以看到R2自身修改了后,也优先选择R3做为下一跳了

选路规则第五条

依次优选origin类型为IGP,EGP,incomplete的路由。

origin标识BGP路由的来源,记录了一条路由怎么成为BGP路由的,network产生的BGP路由标识为IGP,import-route 产生的BGP路由标识为incomplete在路由表中显示为?号的路由。EGP为运行EGP协议产生的路由,BGP和EBGP不是同一个东西,在目前网络中基本见不到EGP的存在了。

该选路规则可以理解为network进BGP的路由优于引入进BGP的路由。

实验目的:

R1上存在着R2通告的路由和R3通告的路由,通过router-id优选了R2通告的路由,实现通过修改起源属性影响R1的选路。

配置命令:

# 先查看R1的BGP路由表
<R1>display bgp routing-table

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


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

 *>i  4.4.4.4/32         2.2.2.2         0          100        0      4i
 * i                     3.3.3.3         0          100        0      4i
<R1>
# 可以看到目前学到的两条路由起源属性都是IGP的,通过在R2上修改起源属性为EGP的,进而影响选路,并且证实I>E
# 配置R2路由策略
route-policy ogn permit node 10 
 apply origin egp 10
# BGP下调用策略,因为origin属性是公认必遵属性,所有路由器都可以识别的属性,所以可以通过如方向调用,也可以通过出方向调用。
bgp 123
  peer 10.1.24.4 route-policy ogn import
# 配置完成查看R2的路由表,检查结果
[R2-bgp]display bgp routing-table 

 BGP Local router ID is 10.1.12.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: 2
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>i  4.4.4.4/32         3.3.3.3         0          100        0      4i
 *                       10.1.24.4       0                     0      4e
[R2-bgp]
# 从路由表可以看到R2优选了从R3学到的IGP路由,而没有优选自己的EGP路由
# 在R3上修改origin属性为incomplete,证实E>?
route-policy origin permit node 10 
 apply origin incomplete
# 在R3的BGP下调用策略,在R1邻居上调用策略,使用出方向的方法,这样不会修改自身路由器所学到路由,只会对通告给R1的路由有影响。
# 查看R3的BGP路由表
[R3-bgp]display bgp routing-table

 BGP Local router ID is 10.1.13.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: 2
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>   4.4.4.4/32         10.1.34.4       0                     0      4i
 * i                     2.2.2.2         0          100        0      4e
[R3-bgp]
# 从上述路由表可以看到自己通过R4学到的路由是IGP的,优于EGP所以优选了从R4学到的路由,然后在看R1上的路由表
<R1>display bgp routing-table 

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


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

 *>i  4.4.4.4/32         2.2.2.2         0          100        0      4e
 * i                     3.3.3.3         0          100        0      4?
<R1>
# 从上述路由表可以看到R1上从R2学到的优选了,而没有优选从R3学到的,是因为R3学到的路由是incomplete。从而证实了I>E>?

选路规则第六条

对于来自同一AS的路由,优选MED值最低的路由。

该条选路规则跟第二条选路规则刚好是相反的,local-preference是控制流量怎么出本AS的,而MED是控制流量怎么回本AS的。

MED的传递范围,只能在两个AS之间携带,不能在到第三个AS。比如AS 10 通告给AS 20携带了MED,在AS 20是会携带MED属性的,而当AS20通告给AS 30时,就不会在携带MED属性。

MED传递规则:

从EBGP邻居学习来的路由,传递给自己IBGP邻居的时候MED可以传递

从EBGP邻居学习来的路由,传递给自己的EBGP邻居的时候,MED不携带

从IBGP邻居学习来的路由,传递给自己EBGP邻居的时候,MED不携带

MED功能:

将通告的BGP路由的本AS内的IGP开销通过MED值携带出去,让对端的AS知道我本地这条路由IGP的开销

default med:

可以在BGP下直接配置default med,但是该命令只对引入的路由和聚合路由生效,而且只会传递给自己的EBGP邻居,不会传递给自己的IBGP邻居。

限制:

默认情况下路由器只有收到来源于同一个AS邻居的BGP路由才会比较MED值,如果这条路由分别来自于不同的AS是不会比较MED值的。如果需要比较来自不同AS的MED值,需要配置命令compare-different-as-med

实验目的

在R2访问R1的开销为50,R3访问R1的开销为10,在R4访问R1的时候优选走到R3去访问。

配置命令:

# 先看一下R4访问R1的默认选举
<R4>display bgp routing-table 

 BGP Local router ID is 10.1.24.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: 3
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>   4.4.4.4/32         0.0.0.0         0                     0      i
 *>   10.10.10.10/32     10.1.24.2                             0      123i
 *                       10.1.34.3                             0      123i
<R4>
# 从路由表可以看出,R4访问R1是通过router-id比较出优先走R2的,然后通过在R2和R3上配置使得R4通过MED优选R3
# 配置R2的路由策略,并且修改IGP的开销
route-policy med permit node 10 
 apply cost-type internal 
#
interface GigabitEthernet0/0/0
 isis cost 50
#BGP下调用策略
bgp 123
  peer 10.1.24.4 route-policy med export
#
# R3配置路由策略,并且调用策略
route-policy med permit node 10 
 apply cost-type internal 
#
bgp 123
  peer 10.1.34.4 route-policy med export
#配置完成,在R4上再次查看前往R1的选路
<R4>display bgp routing-table 

 BGP Local router ID is 10.1.24.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: 3
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>   4.4.4.4/32         0.0.0.0         0                     0      i
 *>   10.10.10.10/32     10.1.34.3                             0      123i
 *                       10.1.24.2       50                    0      123i
<R4>
# 根据路由表可以看到,R4选择了R3做为优选下一跳设备,使用该方法在没有对AS4进行配置时,从而影响了AS4的选路。

选路规则第七条

依次优选EBGP路由、IBGP路由、local cross路由、remote cross路由。

该选路规则的理解为,从EBGP邻居对等体学到的路由优于从IBGP邻居对等体学到的路由。

实验目的:

在R3上存在着两条4.4.4.4/32的路由,分别是从R4学到的和R1反射的路由。R4学到的路由为EBGP类型,R1反射的路由为IBGP路由,通过观察路由表看对比情况

配置命令:

# 查看R3的BGP路由表
[R3-bgp]display bgp routing-table

 BGP Local router ID is 10.1.13.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: 3
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>   4.4.4.4/32         10.1.34.4       0                     0      4i
 * i                     2.2.2.2         0          100        0      4i
 *>i  10.10.10.10/32     1.1.1.1         0          100        0      i
[R3-bgp]
# 可以看到优选了下一跳为R4的路由表,然后看详细信息,查看下一跳为R2的路由为什么没被优选
[R3-bgp]display bgp routing-table 4.4.4.4

 BGP local router ID : 10.1.13.3
 Local AS number : 123
 Paths:   2 available, 1 best, 1 select
 BGP routing table entry information of 4.4.4.4/32:
 From: 10.1.34.4 (10.1.24.4)
 Route Duration: 04h43m10s  
 Direct Out-interface: GigabitEthernet0/0/1
 Original nexthop: 10.1.34.4
 Qos information : 0x0
 AS-path 4, origin igp, MED 0, pref-val 0, valid, external, best, select, active
, pre 255
 Advertised to such 1 peers:
    1.1.1.1
 BGP routing table entry information of 4.4.4.4/32:
 From: 1.1.1.1 (10.1.12.1)
 Route Duration: 03h21m11s  
 Relay IP Nexthop: 10.1.13.1
 Relay IP Out-Interface: GigabitEthernet0/0/0
 Original nexthop: 2.2.2.2
 Qos information : 0x0
 AS-path 4, origin igp, MED 0, localpref 100, pref-val 0, valid, internal, pre 2
55, IGP cost 20, not preferred for peer type
 Originator:  10.1.12.2
 Cluster list: 10.1.12.1
 Not advertised to any peer yet
 # 通过以上回显可以看到没被优选的原因是  not preferred for peer type 不是对等体类型首选,可以理解为对等体类型就是EBGP和IBGP

选路规则第八条

优选BGP下一跳IGP度量值metric最小的路由

可以理解为BGP下一跳IGP的开销值小的优选,比如有两条路由,不同的下一跳,其中preferred-value都为0,local-prefreence都为100,都是通过对等体学到的,AS_PATH长度一致,起源属性都是IGP,MED值都为空,都是通过IBGP邻居学到的,前七项都无法比较出这条路由的优选,然后就会比较第八项。根据上述的描述,有不同的下一跳,那么就会存在着到达这个下一跳的路由,而下一跳路由是通过IGP学到的,就存在着IGP的开销,比如R1到R2的开销是20,R1到R3的开销是10,那么就会优选R3。

实验目的:

R1访问R4优选了R2,通过修改IGP的开销值影响R1访问R4优选R3

配置命令:

# 查看R1路由表,在没有做修改前优先选择的R2下一跳
<R1>display bgp  routing-table 

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


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

 *>i  4.4.4.4/32         2.2.2.2         0          100        0      4i
 * i                     3.3.3.3         0          100        0      4i
 *>   10.10.10.10/32     0.0.0.0         0                     0      i
<R1>
# 在R1上修改R1跟R2的互联的接口,修改ISIS开销值为20,增加开销
interface GigabitEthernet0/0/0
 isis cost 20
# 查看R1的路由表
[R1]display bgp routing-table

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


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

 *>i  4.4.4.4/32         3.3.3.3         0          100        0      4i
 * i                     2.2.2.2         0          100        0      4i
 *>   10.10.10.10/32     0.0.0.0         0                     0      i
[R1]
# 优选了R3做为下一跳设备

负载分担

在BGP选路规则中,当前八条都无法选择出最优路由的时候,就可以开启BGP的负载分担。

需要注意事项:

默认在前八条中的第四条AS_PATH在该场景中需要一样,当PA_PATH长度是一样,但是属于不同AS是无法进行负载分担的。当在这个场景下,需要实现负载分担可以通过命令忽略AS_PATH检查,可以在BGP下配置load-balancing as-path-ignore命令忽略AS_PATH检查。

实验目的:

默认BGP是不开启负载分担的,需要手动去开启BGP的负载分担。通过在R1上配置负载分担,实现R1访问R4的负载分担。

# 先查看没有修改配置的R1到R4的路由表
[R1-bgp]display ip routing-table 4.4.4.4 
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Table : Public
Summary Count : 1
Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

        4.4.4.4/32  IBGP    255  0          RD   2.2.2.2         GigabitEthernet
0/0/0

[R1-bgp]
# 通过路由表看到只有一条路由
# 可以通过在R1的BGP下配置命令开启负载分担
bgp 123
  maximum load-balancing 8
# 再次查看R1的IP路由表
[R1-bgp]display ip routing-table 4.4.4.4
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Table : Public
Summary Count : 2
Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

        4.4.4.4/32  IBGP    255  0          RD   2.2.2.2         GigabitEthernet
0/0/0
                    IBGP    255  0          RD   3.3.3.3         GigabitEthernet
0/0/1

[R1-bgp]
# 从上面路由表可以看到去往R4有了两个下一跳了,这是在IP路由表中的表现,其原理就是BGP路由表在加载到IP路由表的时候,如果前面八条都没有比较出来后,配置maximum load-balancing命令后,就会把没比较出来的也加载到IP路由表中去,但是在BGP路由表中还是一样的会比较出一个最优。查看BGP路由表时,可以看到依然只有一条是最优的。
[R1-bgp]display bgp routing-table 

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


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

 *>i  4.4.4.4/32         2.2.2.2         0          100        0      4i
 * i                     3.3.3.3         0          100        0      4i
 *>   10.10.10.10/32     0.0.0.0         0                     0      i
[R1-bgp]
# 通过第十条选路原则比较出的最优,而不会把两条路由都标识为最优路由

选路规则第九条

优选cluster_list最短的路由,该选路原则的意思跟字面意思是一样的,在RR场景存在着一个属性cluster_list属性,这是一个列表类型,跟AS_PATH很像,每经过一个RR就会增加一条cluster_list记录

要模拟实现第九条选路场景需要对原有拓扑进行一个修改,改成分级RR的场景

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QCkF1Od7-1681473046862)(华为BGP选路规则详解.assets/image-20230413164802056.png)]

以上拓扑R3做为ASBR收到R4的路由,通告给R5,R5做为顶级RR,R1和R2都做为R5的客户端,R1也做为RR对R2进行反射路由。

实验目的:

通过实验现象验证第九条选路规则

配置命令:

# 根据以上描述进行配置R5
bgp 123
 peer 1.1.1.1 as-number 123 
 peer 1.1.1.1 connect-interface LoopBack0
 peer 2.2.2.2 as-number 123 
 peer 2.2.2.2 connect-interface LoopBack0
 peer 3.3.3.3 as-number 123 
 peer 3.3.3.3 connect-interface LoopBack0
 #
 ipv4-family unicast
  undo synchronization
  peer 1.1.1.1 enable
  peer 1.1.1.1 reflect-client
  peer 2.2.2.2 enable
  peer 2.2.2.2 reflect-client
  peer 3.3.3.3 enable
#
#R1配置
bgp 123
 peer 2.2.2.2 as-number 123 
 peer 2.2.2.2 connect-interface LoopBack0
 peer 5.5.5.5 as-number 123 
 peer 5.5.5.5 connect-interface LoopBack0
 #
 ipv4-family unicast
  undo synchronization
  peer 2.2.2.2 enable
  peer 2.2.2.2 reflect-client
  peer 5.5.5.5 enable
#
# 完成配置查看R2的路由表
<R2>display bgp routing-table 

 BGP Local router ID is 10.1.12.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: 4
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>i  4.4.4.4/32         3.3.3.3         0          100        0      4i
 * i                     3.3.3.3         0          100        0      4i
 *>i  10.10.10.10/32     1.1.1.1         0          100        0      i
 * i                     1.1.1.1         0          100        0      i
<R2>
# 通过上面可以看到有两条下一跳为3.3.3.3的路由,但是看起来都一模一样,看不出来区别,需要看详细信息。使用命令查看详细信息
<R2>display bgp routing-table 4.4.4.4 

 BGP local router ID : 10.1.12.2
 Local AS number : 123
 Paths:   2 available, 1 best, 1 select
 BGP routing table entry information of 4.4.4.4/32:
 From: 5.5.5.5 (5.5.5.5)
 Route Duration: 00h08m35s  
 Relay IP Nexthop: 10.1.25.5
 Relay IP Out-Interface: GigabitEthernet0/0/2
 Original nexthop: 3.3.3.3
 Qos information : 0x0
 AS-path 4, origin igp, MED 0, localpref 100, pref-val 0, valid, internal, best,
 select, active, pre 255, IGP cost 20
 Originator:  10.1.13.3
 Cluster list: 5.5.5.5
 Not advertised to any peer yet

 BGP routing table entry information of 4.4.4.4/32:
 From: 1.1.1.1 (10.1.12.1)
 Route Duration: 00h11m07s  
 Relay IP Nexthop: 10.1.25.5
 Relay IP Out-Interface: GigabitEthernet0/0/2
 Original nexthop: 3.3.3.3
 Qos information : 0x0
 AS-path 4, origin igp, MED 0, localpref 100, pref-val 0, valid, internal, pre 2
55, IGP cost 20, not preferred for Cluster List
 Originator:  10.1.13.3
 Cluster list: 10.1.12.1, 5.5.5.5
 Not advertised to any peer yet

<R2>
# 根据以上命令回显可以看到,在下方的回显中 Cluster list: 不一样,而没有优选的原因为not preferred for Cluster List。

选路规则第十条

优选router ID最小的设备发布的路由(如果路由携带originator_ID属性,选路过程中将比较originator_ID的大小,不再比较router ID,并优选originator_ID最小的路由)

要实现第十条选路原则,有两种概念,一种是比较router id之前一直都是通过该方式的,还有一种是在经过了RR后,存在着originator_ID属性就不会在比较router-id,以下以一个更改后的拓扑来体现出originator_ID的比较。

华为BGP选路规则详解

实验目的:

通过实验表现出originator_ID选举的现象

配置命令:

# 配置R1跟R6建立BGP邻居,配置R5跟R6建立BGP邻居,并且配置为反射客户端
# R6配置
bgp 123
 peer 1.1.1.1 as-number 123 
 peer 1.1.1.1 connect-interface LoopBack0
 peer 5.5.5.5 as-number 123 
 peer 5.5.5.5 connect-interface LoopBack0
 #
 ipv4-family unicast
  undo synchronization
  peer 1.1.1.1 enable
  peer 5.5.5.5 enable
#
# 在R6上查看路由表
[R6-bgp]display bgp routing-table 

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


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

 *>i  4.4.4.4/32         2.2.2.2         0          100        0      4i
 * i                     3.3.3.3         0          100        0      4i
[R6-bgp]
# 可以看到优选了R2的,查看详细信息
[R6-bgp]display bgp routing-table 4.4.4.4

 BGP local router ID : 6.6.6.6
 Local AS number : 123
 Paths:   2 available, 1 best, 1 select
 BGP routing table entry information of 4.4.4.4/32:
 From: 1.1.1.1 (10.1.12.1)
 Route Duration: 00h14m51s  
 Relay IP Nexthop: 10.1.16.1
 Relay IP Out-Interface: GigabitEthernet0/0/0
 Original nexthop: 2.2.2.2
 Qos information : 0x0
 AS-path 4, origin igp, MED 0, localpref 100, pref-val 0, valid, internal, best,
 select, active, pre 255, IGP cost 20
 Originator:  10.1.12.2
 Cluster list: 10.1.12.1
 Not advertised to any peer yet

 BGP routing table entry information of 4.4.4.4/32:
 From: 5.5.5.5 (5.5.5.5)
 Route Duration: 00h05m56s  
 Relay IP Nexthop: 10.1.56.5
 Relay IP Out-Interface: GigabitEthernet0/0/1
 Original nexthop: 3.3.3.3
 Qos information : 0x0
 AS-path 4, origin igp, MED 0, localpref 100, pref-val 0, valid, internal, pre 2
55, IGP cost 20, not preferred for router ID
 Originator:  10.1.13.3
 Cluster list: 5.5.5.5
 Not advertised to any peer yet

[R6-bgp]
# 查看详细信息可以看到,两条路由都携带了Originator属性,但是都不一样,从而比较了Originator属性的大小。在存在Originator属性的情况下,是不会比较router-id的。

选路规则第十一条

优选从具有最小IP address的对等体学来的路由。

选路规则的最后一条是比较对等体的地址的,那么什么时候会用到第十一条比较呢?

实验目的:

配置实验,使得通过最后一条选路规则比较出最优。需要对拓扑有一个改变

华为BGP选路规则详解

R3学到R4的路由,R5跟R1做为RR反射给R2,此时在R2的路由表中就会存在着两条R4的路由。文章来源地址https://www.toymoban.com/news/detail-487416.html

配置命令:

# 配置R3,跟R1和R5建立邻居
bgp 123
 peer 1.1.1.1 as-number 123 
 peer 1.1.1.1 connect-interface LoopBack0
 peer 5.5.5.5 as-number 123 
 peer 5.5.5.5 connect-interface LoopBack0
 peer 10.1.34.4 as-number 4 
 #
 ipv4-family unicast
  undo synchronization
  peer 1.1.1.1 enable
  peer 1.1.1.1 next-hop-local 
  peer 5.5.5.5 enable
  peer 5.5.5.5 next-hop-local 
  peer 10.1.34.4 enable
# 配置R5跟R2和R3建立邻居,并且配置路由反射
bgp 123
 peer 2.2.2.2 as-number 123 
 peer 2.2.2.2 connect-interface LoopBack0
 peer 3.3.3.3 as-number 123 
 peer 3.3.3.3 connect-interface LoopBack0
 #
 ipv4-family unicast
  undo synchronization
  peer 2.2.2.2 enable
  peer 2.2.2.2 reflect-client
  peer 3.3.3.3 enable
  peer 3.3.3.3 reflect-client
# 配置R1,跟R5一样
bgp 123
 peer 2.2.2.2 as-number 123 
 peer 2.2.2.2 connect-interface LoopBack0
 peer 3.3.3.3 as-number 123 
 peer 3.3.3.3 connect-interface LoopBack0
 #
 ipv4-family unicast
  undo synchronization
  peer 2.2.2.2 enable
  peer 2.2.2.2 reflect-client
  peer 3.3.3.3 enable
  peer 3.3.3.3 reflect-client
# 查看R2的路由表
[R2-bgp]display bgp routing-table

 BGP Local router ID is 10.1.12.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: 2
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>i  4.4.4.4/32         3.3.3.3         0          100        0      4i
 * i                     3.3.3.3         0          100        0      4i
[R2-bgp]
# 可以看到存在着两条R4的路由,然后通过查看详细信息,看是什么原因下面那条没被优选的
[R2-bgp]display bgp routing-table 4.4.4.4

 BGP local router ID : 10.1.12.2
 Local AS number : 123
 Paths:   2 available, 1 best, 1 select
 BGP routing table entry information of 4.4.4.4/32:
 From: 1.1.1.1 (10.1.12.1)
 Route Duration: 00h01m11s  
 Relay IP Nexthop: 10.1.12.1
 Relay IP Out-Interface: GigabitEthernet0/0/0
 Original nexthop: 3.3.3.3
 Qos information : 0x0
 AS-path 4, origin igp, MED 0, localpref 100, pref-val 0, valid, internal, best,
 select, active, pre 255, IGP cost 20
 Originator:  10.1.13.3
 Cluster list: 10.1.12.1
 Not advertised to any peer yet

 BGP routing table entry information of 4.4.4.4/32:
 From: 5.5.5.5 (5.5.5.5)
 Route Duration: 00h08m18s  
 Relay IP Nexthop: 10.1.12.1
 Relay IP Out-Interface: GigabitEthernet0/0/0
 Original nexthop: 3.3.3.3
 Qos information : 0x0
 AS-path 4, origin igp, MED 0, localpref 100, pref-val 0, valid, internal, pre 2
55, IGP cost 20, not preferred for peer address
 Originator:  10.1.13.3
 Cluster list: 5.5.5.5
 Not advertised to any peer yet

[R2-bgp]
# 查看详细信息可以看到,是因为not preferred for peer address才没有被优选的,然后通过上面的信息可以看到在携带了Originator: 属性的情况下,是没有比较router-id的,而此时是要比较Originator,但是都一样比较不出来,所以才比较到了具有最小IP address的对等体学来的路由。

到了这里,关于华为BGP选路规则详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • TCP/IP详解——ICMP协议,Ping程序,Traceroute程序,IP源站选路选项

    Internet 控制消息协议 ICMP(Internet Control Message Protocol)是 网络层 的一个重要协议 。ICMP协议用来在 网络设备间传递各种差错和控制信息 ,并对于收集各种网络信息、诊断和排除各种网络故障等方面起着至关重要的作用。 ICMP通常被IP层或者更高层的协议(TCP/IP)使用 。一些

    2024年02月04日
    浏览(41)
  • BGP边界网关路由实验(华为)

    思科设备参考:BGP边界网关路由实验(思科) BGP(边界网关路由协议)是一种自治系统(AS)间的协议,主要用于在不同的AS之间交换路由信息。AS是一个由一组网络设备和路由器组成的网络集合,这些设备可以在一个共同的管理域中协同工作。AS内部的路由协议(如OSPF或RI

    2024年04月26日
    浏览(35)
  • 华为云双十一服务器数据中心带宽全动态BGP和静态BGP区别

    2023华为云双十一优惠活动中提供多款云服务器选择,需要注意的是: 西南-贵阳一和华北-北京一数据中心是静态BGP带宽,其他数据中心配置全动态独享BGP带宽 。 静态BGP和全动态BGP带宽有什么区别?全动态BGP网络线路可用性保障更高,价格相对于静态BGP也会更贵一些,详细如

    2024年02月08日
    浏览(39)
  • 华为路由器BGP自动更新的方法

      一、 上图所示就是BGP自动更新的示意,红色与蓝色的箭头代表相同前缀的路由,但是从不同邻居学习而来,而且蓝色的路由优于红色的;黑色的坐标轴代表路由发送与接收的时间,每个公司距离为10秒,我们假设RA上配置的更新定时器时间为30秒。 1、RA接收到红色路由后立

    2024年02月05日
    浏览(84)
  • 华为路由器内部BGP环路的解决方法

    IBGP允许边缘路由器共享NLRI及其相关属性,从而增强系统范围内的路由策略,其必须以全网状结构相连,以防止路由环回,本文就华为路由器为大家介绍如果出现环路,我们应该怎样解决。   一、组网环境 在华为路由器的组网环境中,有四个路由器,其中路由器A和路由器C建

    2024年02月05日
    浏览(47)
  • 华为路由器BGP协议属性不互通的解决方案

    IBGP仅用于多归属场合,必须以全网状结构相连,它允许边缘路由器共享NLRI及其相关属性,从而增强系统范围内的路由策略,注意要防止在AS内部形成BGP路由环路,确保BGP路由路径上的所有路由器都知道如何将数据包转发到目的地。   一、组网环境 在华为路由器的组网环境中

    2024年02月05日
    浏览(45)
  • 华为bgp跨跳建立邻居后产生黑洞路由用mpls ldp解决方法

    捉包发现R2在处理1.1.1.1到5.5.5.5走的是标签转发 R1: dis current-configuration [V200R003C00] snmp-agent local-engineid 800007DB03000000000000 snmp-agent clock timezone China-Standard-Time minus 08:00:00 portal local-server load flash:/portalpage.zip drop illegal-mac alarm wlan ac-global carrier id other ac id 0 set cpu-usage threshold 80 restore

    2024年02月12日
    浏览(37)
  • BGP路由协议配置详解

    BGP(Border Gateway Protocol,边界网关协议)是一种实现AS(自治系统)之间路由的距离矢量性动态路由协议。它不同于RIP、OSPF和IS-IS协议,它们均是用于解决一个AS内部网络路由的IGP(内部网关协议),而BGP则是用于解决不同AS间网络路由的EGP(Exterior Gateway Protocol,外部网关协议

    2024年02月02日
    浏览(41)
  • 【网络协议详解】——BGP协议(学习笔记)

    BGP(Border Gateway Protocol),边界网关协议。 一种自治系统间的选路协议, 在 AS 之间交换网络的可达性信息 。 根据可达性信息,路由器能够构造 AS 之间的连接关系图,从而计算出到达目的网络的路由。 在计算路由时,管理员可以在 AS 层面上应用一些 路由控制 策略。 例如,

    2024年02月05日
    浏览(47)
  • MP-BGP报文详解

    传统的BGP-4只能管理IPv4单播路由信息,对于使用其它网络层协议(如IPv6、组播等)的应用,在跨AS传播时就受到一定限制。BGP多协议扩展MP-BGP(MultiProtocol BGP)就是为了提供对多种网络层协议的支持,对BGP-4进行的扩展。目前的MP-BGP标准是RFC4760,使用扩展属性和地址族来实现

    2024年02月10日
    浏览(23)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包