华为BGP12条选路原则详解和实验

一、协议首选值(PrefVal)

协议首选值(华为私有),仅在本路由器有效,默认数值为0,协议首选值越大越优先。仅能改变进入本路由器的路由选路。

在这里插入图片描述

如拓扑图所示,R1、R2、R3和R4四台路由器分别属于不同AS。相邻2台路由器之间均通过互联地址建立EBGP邻居关系。R1上有一个10.10.10.10/32的地址,通network宣告进BGP中。 R4上收到了10.10.10.10/32的路由。

1、R4当前优选了从R2传递过来的10.10.10.10/32路由,R4访问10.10.10.10路径就是R4-R2-R1。

[R4]dis 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: 2
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>   10.10.10.10/32     10.1.24.2                             0      200 100i
 *                       10.1.34.3                             0      300 100i

2、在R4上修改从R3传递过来的10.10.10.10/32路由的协议首选值为100。

[R4]
bgp 400
peer 10.1.34.3 preferred-value 100
#

3、修改协议首选值后,R4当前优选了从R3传递过来的10.10.10.10/32路由,R4访问10.10.10.10路径就是R4-R3-R1。


<R4>dis 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: 2
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>   10.10.10.10/32     10.1.34.3                             100    300 100i
 *                       10.1.24.2                             0      200 100i

二、本地优先级(Local_Pref)

本地优先级,数值越大越优先,默认为100。本地优先级只能在AS内传递,通过EBGP传递给其他AS设备时,本地优先级会被剥离。

在这里插入图片描述
如拓扑图所示,共有R1-R6六台路由器,R1和R2、R1和R3是IBGP关系,其余互相是通过互联地址建立的EBGP邻居关系,R6上有一个10.10.10.10/32的地址,通network宣告进BGP中。

1、R1当前优选了从R2传递过来的10.10.10.10/32路由,R1访问10.10.10.10路径就是R1-R2-R4-R6。

<R1>dis 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  10.10.10.10/32     2.2.2.2                    100        0      400 600i
 * i                     3.3.3.3                    100        0      500 600i

2、修改本地优先级为120

(1)创建前缀列表

ip ip-prefix 1 index 10 permit 10.10.10.10 32

(2)创建route-policy

route-policy 123 permit node 10 if-match
ip-prefix 1 apply local-preference 120
#

(3)调用route-policy(3种方法,任选其一)
在这里插入图片描述

方法一:调用在R3的import方向 (我选择的方法)
bgp 100
peer 10.1.35.5 route-policy 123 import
#
方法二:调用在R3的export方向
bgp 100
peer 1.1.1.1 route-policy 123 export
#
方法三:调用在R1的import方向
bgp 100
peer 3.3.3.3 route-policy 123 import
#

我选择了方法一在R3的import方向调用策略。因为本地优先级120比100高,R1优选了从R3传递过来的本地优先级为120的10.10.10.10/32路由,R1访问10.10.10.10/32路径就是R1-R3-R5-R6。

<R1>dis 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  10.10.10.10/32     3.3.3.3                    120        0      500 600i
 * i                     2.2.2.2                    100        0      400 600

三、优选手动聚合>自动聚合>network>import>从对等体学到的

1、手动聚合和自动聚合

手动聚合:
(1)可以对路由引入进行手动聚合
(2)可以对network的路由进行手动聚合

自动聚合
只可以对路由引入的路由进行自动聚合

2、验证手动聚合(R1和R2上)
在这里插入图片描述

[R2]1)在R2上使用前缀列表匹配loopback接口
ip ip-prefix 1 index 10 permit 20.20.1.0 24
ip ip-prefix 1 index 20 permit 20.20.2.0 24
ip ip-prefix 1 index 30 permit 20.20.3.0 242)创建路由策略
route-policy 123 permit node 10
 if-match ip-prefix 1
#
(3)R2上只将loopack地址引入BGP中
bgp 200
import-route direct route-policy 1234)配置手动路由聚合
bgp 200
aggregate 20.0.0.0 8

R1的BGP路由表中收到了聚合后的路由,也收到了明细路由
在这里插入图片描述
在手动聚合命令aggregate 20.20.0.0 16 后加上detail-suppressed ,可以抑制明细路由。

[R2]
bgp 200
aggregate 20.20.0.0 16 detail-suppressed 

R1的BGP路由表只收到了聚合后的路由
在这里插入图片描述

3、验证自动聚合(R1和R3上)

先删除R2上验证手动聚合时的配置,避免影响R1收到的路由。

[R3]1)在R3上使用前缀列表匹配loopback接口
ip ip-prefix 1 index 10 permit 20.20.1.0 24
ip ip-prefix 1 index 20 permit 20.20.2.0 24
ip ip-prefix 1 index 30 permit 20.20.3.0 24
#

(2)创建路由策略
route-policy 123 permit node 10
 if-match ip-prefix 1
#

(3)R3上只将loopack地址引入BGP中
bgp 300
import-route direct route-policy 123
#

(4)配置自动路由聚合
bgp 300
summary automatic   #注意:只聚合引入的路由,network进来的路由不生效
#

R1的BGP路由表只收到了聚合后的路由在这里插入图片描述
4、验证手动聚合优于自动聚合
R2上配置手动聚合配置,抑制明细路由,R3上配置自动聚合配置,我们看R1上是怎么优选的。可以看到R1优选了从R2手动聚合的路由。所以手动聚合优于自动聚合。
在这里插入图片描述
5、验证network的路由>import的路由
在这里插入图片描述
在R2和R3上设置都配置一条loopback0为2.2.2.2/32的路由,R2上采用network的方式,R3采用import-route direct的方式。
首先在R3上配置import-route direct的动作。
在这里插入图片描述
R1上BGP路由表如下
在这里插入图片描述
R2上配置network 2.2.2.2 32的动作
在这里插入图片描述
R1 BGP路由表如下
在这里插入图片描述
可见,R1优选了从R2学来的路由,network的路由>import的路由。

四、优选AS路径(AS_Path)最短的路由

在这里插入图片描述
R2和R4上都配置一条loopback0:2.2.2.2/32的地址,都使用network的方式在BGP中宣告。

R2的BGP配置
在这里插入图片描述R4的BGP配置
在这里插入图片描述
再看下R1的BGP路由表
在这里插入图片描述
因为从R2传来的路由path最短的原因,优选了从R2传递过来的路由

AS-Path属性是可以修改的
(1)Additive:追加as-path属性 在原有的>基础上进行增加
(2)Overwrite:覆盖as-path属性 把原有的>AS-path给直接覆盖

目前R1优选了从R2传递过来的路由,我们可以通过修改as-path属性影响R1的选路。

[R2]
(1)创建前缀列表
ip ip-prefix 1 permit 2.2.2.2 32
#

(2)配置路由策略。2.2.2.2/32的路由追加 500 500 600 这三个as-path。
route-policy 123 permit node 10
 if-match ip-prefix 1
 apply as-path 500 500 600 additive
#
(3)BGP调用策略
bgp 200
import-route direct route-policy 123

R1的BPG路由表
在这里插入图片描述
可以看出,优选as-path路径最短的路由。

五、比较起源属性 IGP>EGP>Incomplete

在这里插入图片描述
R1和R2之间运行ISIS协议(IGP),R1和R3、R3和R4分别是EBGP,R2和R4上都配置loopback0:2.2.2.2/32的路由。
R2上通过ISIS把2.2.2.2/32路由发布出去,R4上通过引入直连的方式(import-route direct )把路由宣告出去。

R1的路由表中显示2.2.2.2是通过ISIS从R2学来的。
在这里插入图片描述
R1的BGP路由表中看到R1学到了通过BGP传递过来的路由。但是在全局路由表选择了ISIS传递过来的路由。
在这里插入图片描述

六、来自同一AS的路由,优选MED值最低的

数值越小越优先,默认为0.
在这里插入图片描述

R1在AS100中,R2和R3在AS200中,R2和R3各在BGP network 2.2.2.2的路由
在这里插入图片描述
在这里插入图片描述

R1的BGP路由表如下,优选着下一跳为10.1.12.2的路由
在这里插入图片描述
根据选路原则,MED越小越优先,通过调整R2的出方向调整的2.2.2.2的路由MED为200。

[R2]
1、创建前缀列表,匹配2.2.2.2/32的路由
ip ip-prefix 1 index 10 permit 2.2.2.2 32
#
2、创建路由策略,设计
route-policy 123 permit node 10
 if-match ip-prefix 1
 apply cost 200
#
3、R2的出方向调用策略
bgp 200
 peer 10.1.12.1 route-policy 123 export

R1的BGP路由表
在这里插入图片描述
根据MED小的优先的原则,R1优选了从R3传递过来的路由。

七、EBGP>IBGP

EBGP的路由优先于IBGP的路由
在这里插入图片描述

如图,R3和R4上都配置了loopback0:10.10.10.10/32,都通过network的方式宣告出去,R1通过IBGP学到了从R2传递过来的路由,R1通过EBGP学到了从R3传递过来的路由。
R1 BGP配置

bgp 100
 peer 2.2.2.2 as-number 100
 peer 2.2.2.2 connect-interface LoopBack0
 peer 10.1.13.3 as-number 200
 #
 ipv4-family unicast
  undo synchronization
  peer 2.2.2.2 enable
  peer 10.1.13.3 enable
#

R2 BGP配置

bgp 100
 peer 1.1.1.1 as-number 100
 peer 1.1.1.1 connect-interface LoopBack0
 peer 10.1.24.4 as-number 400
 #
 ipv4-family unicast
  undo synchronization
  peer 1.1.1.1 enable
  peer 1.1.1.1 next-hop-local
  peer 10.1.24.4 enable
#

R3 BGP配置

bgp 200
 peer 10.1.13.1 as-number 100
 #
 ipv4-family unicast
  undo synchronization
  network 10.10.10.10 255.255.255.255
  peer 10.1.13.1 enable
#

R4 BGP配置

bgp 400
 peer 10.1.24.2 as-number 100
 #
 ipv4-family unicast
  undo synchronization
  network 10.10.10.10 255.255.255.255
  peer 10.1.24.2 enable
#

查看R1的BGP路由表可以看到,R1优选了通过EBGP学到的10.10.10.10的路由。
在这里插入图片描述

八、优选到下一跳IGP Metric较小的路由

BGP的路由下一跳地址是通过IGP协议学习到的,根据路由表,计算到下一跳的度量值,越小的越优先。
在这里插入图片描述

R1上network 10.10.10.10的路由

R4路由表中目前优选下一跳2.2.2.2传递过来的路由,也就是R2传递过来的。
在这里插入图片描述
目前,R4到R2和R3的IGP下一跳cost值为10。通过调大到R2的cost值为20,根据优选到下一跳IGP Metric较小的路由,让R4优选从R3传递过来的路由。
在这里插入图片描述

R4上修改cost值
interface GigabitEthernet0/0/2
 isis cost 20 level-2
#

R4的IP路由表。R4到2.2.2.2 cost值为20 R4到3.3.3.3 cost值为10
在这里插入图片描述
R4的BPG路由表。调整R4到2.2.2.2的cost值为20后,R4到3.3.3.3的cost值依旧是10,根据优选到下一跳IGP Metric较小的路由原则,R4现在优选从3.3.3.3传递过来的路由了。
在这里插入图片描述

九、负载均衡

前8条原则都相同时,可以配置负载分担。
在这里插入图片描述
R1从R2和R3分别都收到2.2.2.2/32的路由,目前优选从R2传递过来的路由。
在这里插入图片描述

R1上配置路由负载分担
[R1]
bgp 100
maximum load-balancing 2

R1的全局路由表中2.2.2.2的路由有2个下一跳。实现了负载分担
在这里插入图片描述

十、优选Cluster_List最短的路由

Cluster_List:路由经过的反射器列表。路由每经过一台RR,就会将RR的Cluster id(默认为Router-ID,可以手动修改)记录在Cluster_List中。只在AS内传递。

Cluster_ID防环:当RR接收到一条更新路由时,RR会检查Cluster_List。如果Cluster_List中已经有本地Cluster_ID,丢弃该路由;如果没有本地Cluster_ID,将其加入Cluster_List,然后反射该更新路由。

在这里插入图片描述
R2、R3和R4都是RR路由器。R1-R4都是在AS100内。R1上将10.10.10.10的路由network到BGP中。

R3上关于10.10.10.10的路由的详细信息
在这里插入图片描述
R3上的10.10.10.10的路由从R2和R4上都学到了。从R4学到的10.10.10.10,因为Cluster list的原因没有优选。从R2学到的10.10.10.10的Cluster list更短,所以R4优选R2传递过来的10.10.10.10的路由。

十一、优选Router_ID最小的路由

在这里插入图片描述
将2.2.2.2的路由分别在R2和R3上的BGP中network.
R1的BGP路由表
在这里插入图片描述
R1优选了R2传递过来的2.2.2.2/32的路由。这是根据哪个原则选出来的呢?我们继续看。
在这里插入图片描述
查看BGP路由2.2.2.2的详细信息。R1选择了从10.1.12.2(R2)传递过来的2.2.2.2的路由,从10.1.13.1(R3)因为router id原因没有优选。所以,优选router id 小的

十二、优选peer ip地址小的路由

在这里插入图片描述
R1和R2之间通过互联地址建立2个EBGP邻居,R1上将10.10.10.10宣告到BGP中

R2的BGP路由表
在这里插入图片描述
R2上BGP路由10.10.10.10的详细信息
在这里插入图片描述
因为peer地址的原因没有优选下一跳为10.2.12.1传递过来的路由。优选了从10.1.12.1传递过来的路由。所以,优选peer ip地址小的路由

附件:实验拓扑(百度网盘)

链接:https://pan.baidu.com/s/1F-c48EruIxSzWZYXPE9lhQ
提取码:1yog

如有错误,欢迎指正,谢谢!

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

动物园转圈的老虎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值