BGP路径属性和BGP路由属性_IP


今天翻起了BGP学习笔记,于是动手瞧瞧实验,再次与大家分享BGP选路原则第一条:首选值。我本人比较喜欢技术,偶尔会瞧瞧实验,做做笔记、写写心得,然后分享出来,与大家一起成长。如您有兴趣,可以一起交流、讨论。(选路选路,所谓选路原则,就是去往同一个目的地,有多条路、多个方案可以到达目的地,根据事先制定的规则,一个个去pk,选出最优的路由,引导数据包去往目的地。就好比你去北京,你有N种方法可以到达,这时你就会根据预算,来算计一条最便宜的方案去往北京。)

1、拓扑图


BGP路径属性和BGP路由属性_IP_02


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。

3、关键配置

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

1、配置IGP路由协议:

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


BGP路径属性和BGP路由属性_R3_03


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路由属性_R3_04


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


BGP路径属性和BGP路由属性_路由协议_05


2、宣告到BGP进程中


BGP路径属性和BGP路由属性_R3_06


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


BGP路径属性和BGP路由属性_R3_07


BGP路径属性和BGP路由属性_IP_08


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

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

这条命令它来了:


BGP路径属性和BGP路由属性_R3_09


已经告诉我们了,原来是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路由属性_R3_10


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


BGP路径属性和BGP路由属性_路由协议_11


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

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


BGP路径属性和BGP路由属性_IP_12


R2没有更优的首选值。

业务数据走向:


BGP路径属性和BGP路由属性_IP_13


BGP路径属性和BGP路由属性_R3_14


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

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

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

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


BGP路径属性和BGP路由属性_IP_15


关键配置:

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路由属性_路由协议_16


BGP路径属性和BGP路由属性_R3_17


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


BGP路径属性和BGP路由属性_路由协议_18


接下来我在R4的g0/0/1口处抓包,我再R1先删除10.10.10.10bgp路由,然后再添加,看看R4收到的报文是否有首选值字段,如果没有,那么首选值字段就是本地意义,R4路由器自己标记的。


BGP路径属性和BGP路由属性_IP_19


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