选路选路,所谓选路原则,就是去往同一个目的地,有多条路、多个方案可以到达目的地,根据事先制定的规则,一个个去pk,选出最优的路由,引导数据包去往目的地。就好比你去北京,你有N种方法可以到达,这时你就会根据预算,来算计一条最便宜的方案去往北京。)

1

拓扑图

bgp选中规则 bgp首选值_运维

2

配置思路

1、根据上述拓扑图,准备好环境。

2、规划好IP地址,标注在拓扑上,IP地址规划规则,如图。R1与R2互联之间网段就用12.1.1.0/24,R1接口就用12.1.1.1/24, R2 接口就用12.1.1.2/24 。

3、配置router id。

4、配置IGP路由(先把全网打通了,再去配BGP,因为我们都知道BGP是基于TCP的,全网都不通,TCP怎么能建立连接 是吧?),这里我全网就配OSPF路由协议,都在区域0.

5、配置BGP。

关键配置

惯例,router id 、接口ip配置方法这里不再示例。

1、配置IGP路由协议:

R1# (其他路由器参考如下配置。)

bgp选中规则 bgp首选值_R3_02

2、配置BGP路由协议:

R1#
#
bgp 100
peer 12.1.1.2 as-number 200
peer 13.1.1.3 as-number 200
#
R2#
#
bgp 200
peer 4.4.4.4 as-number 200
peer 4.4.4.4 connect-interface LoopBack0
peer 12.1.1.1 as-number 100
#
R3#
#
bgp 200
peer 4.4.4.4 as-number 200
peer 4.4.4.4 connect-interface LoopBack0
peer 13.1.1.1 as-number 100
#
R4#
#
bgp 200
peer 2.2.2.2 as-number 200
peer 2.2.2.2 connect-interface LoopBack0
peer 3.3.3.3 as-number 200
peer 3.3.3.3 connect-interface LoopBack0
#
4

测试

接下来,我打算在R1发布2条BGP路由,然后在R4查看。

这两条路由分别为:10.10.10.10/32和20.20.20.20/32

bgp选中规则 bgp首选值_bgp选中规则_03

1、先在R1创建两个loopback口,然后分别配置上述那两个IP地址。

bgp选中规则 bgp首选值_R3_04

2、宣告到BGP进程中

bgp选中规则 bgp首选值_bgp选中规则_05

3、在R4查看BGP路由,可以看到学到2条Ebgp路由:

bgp选中规则 bgp首选值_网络_06

bgp选中规则 bgp首选值_网络_07

从图,可知,R4如果要去往这2个目的地(10.10.10.10或20.20.20.20),都是走R2。

有网友可能会说,规则那么多,我没记住,上图为啥走R2,有没有命令可以查一下???

这条命令它来了:

bgp选中规则 bgp首选值_R3_08

已经告诉我们了,原来是R2和R3 PK,R3没有更优的Router id, router id 越小的获胜。

如果你希望去往10.10.10.10和20.20.20.20 都走R3,这时候你可以使用“首选值”来实现。

在R4进行如下配置:

bgp 200
peer 2.2.2.2 preferred-value 50
peer 3.3.3.3 preferred-value 100
#
解释:
peer 2.2.2.2 preferred-value 50

但凡2.2.2.2 这台邻居路由器发过来的bgp路由,R4都将它们的首选值设置为50.

配置首选值之前,我们可以看到华为默认首选值是0:

bgp选中规则 bgp首选值_运维_09

现在我们再来看看R4的bgp路由:

bgp选中规则 bgp首选值_运维_10

可知,现在R4去往10.10.10.10和20.20.20.20 已经走R3了,因为从R3学习到的BGP路由,它们的首选值是100, 大于从R2学过来的BGP路由首选值是50。

可以用命令查看确认R2 落选的原因:

bgp选中规则 bgp首选值_R3_11

R2没有更优的首选值。

业务数据走向:

bgp选中规则 bgp首选值_R3_12

bgp选中规则 bgp首选值_运维_13

哎,人的欲望就是无止境的,客户的需求总是不断产生。可能你的客户突然要求,能不能有一些流量走R2,有些流量走R3?

作为网络工程师的你,当然要回答:能!包在我身上!

下面我们就举例,让R4去往10.10.10.10 走R3;去往20.20.20.20 走R2,

增加了30.30.30.30,不针对30.30.30.30修改首选值。

bgp选中规则 bgp首选值_R3_14

关键配置:

1、分别抓取路由:

R4#
#
acl number 2000
rule 5 permit source 10.10.10.10 0

2、使用route-policy进行设置。

#
route-policy pre-along permit node 10
if-match acl 2000
apply preferred-value 100
#

3、在BGP进程调用

bgp 200
peer 3.3.3.3 route-policy pre-along import

R4上查看路由表,只有去往10.10.10.10是走R3,其他都是走R2。走R3的原因是首选值最高,100>0。

bgp选中规则 bgp首选值_网络_15

bgp选中规则 bgp首选值_路由协议_16

怎么样,已经可以实现分流了吧?虽然很简单的特性,但是通过实验,是不是更加深刻的理解首选值了!

bgp选中规则 bgp首选值_路由协议_17

接下来我在R4的g0/0/1口处抓包,我再R1先删除10.10.10.10bgp路由,然后再添加,看看

R4收到的报文是否有首选值字段,如果没有,那么首选值字段就是本地意义,R4路由器自己标记的。

bgp选中规则 bgp首选值_R3_18

说明首选值这个属性,仅本地有意义。就是仅在各自路由器上生效,离开了本身的路由器,报文没有携带这个字段啦!