![10dd7543e5b96ed0c04825e9b0f200fc.png](https://i-blog.csdnimg.cn/blog_migrate/de5766e6149520f9c9f6cb02d1d3c86b.jpeg)
今天翻起了BGP学习笔记,于是动手瞧瞧实验,再次与大家分享BGP选路原则第一条:首选值。我本人比较喜欢技术,偶尔会瞧瞧实验,做做笔记、写写心得,然后分享出来,与大家一起成长。如您有兴趣,可以一起交流、讨论。(选路选路,所谓选路原则,就是去往同一个目的地,有多条路、多个方案可以到达目的地,根据事先制定的规则,一个个去pk,选出最优的路由,引导数据包去往目的地。就好比你去北京,你有N种方法可以到达,这时你就会根据预算,来算计一条最便宜的方案去往北京。)
1、拓扑图
![78d07eec1135f17de0e49f0d76e34b4b.png](https://i-blog.csdnimg.cn/blog_migrate/be2aff27260b0b34e735f16b4782808a.jpeg)
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# (其他路由器参考如下配置。)
![2988c126183481cbb9eb2da1daee9cd3.png](https://i-blog.csdnimg.cn/blog_migrate/ecff4499e201daeeb0f7bcd6745936d5.png)
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
![20ed0e20ee45295f3a22b663573cf89f.png](https://i-blog.csdnimg.cn/blog_migrate/f0b5c4fb173de1f863e7bfea23f34f0f.jpeg)
1、先在R1创建两个loopback口,然后分别配置上述那两个IP地址。
![8248d242426658df70436fa07a15ed75.png](https://i-blog.csdnimg.cn/blog_migrate/638a009bfc528489a5514a9d9c1dab8a.png)
2、宣告到BGP进程中
![50aacbe8cb84a78671acdb52e2ac7bbc.png](https://i-blog.csdnimg.cn/blog_migrate/9eec9acd1f9dd163d4dc9a942fc75526.png)
3、在R4查看BGP路由,可以看到学到2条Ebgp路由:
![380d5ec338678eedb5f4ce6a1703e076.png](https://i-blog.csdnimg.cn/blog_migrate/1db7e72ad840ef6d33eb04efb5c747f6.jpeg)
![27af3661f17f3e8a0a00c74923098f44.png](https://i-blog.csdnimg.cn/blog_migrate/9b8fa01bd9899b9717bf6a721d4a0a67.png)
从图,可知,R4如果要去往这2个目的地(10.10.10.10或20.20.20.20),都是走R2。
有网友可能会说,规则那么多,我没记住,上图为啥走R2,有没有命令可以查一下???
这条命令它来了:
![74ebb53c8e6f5c15fe6f7110f9fba374.png](https://i-blog.csdnimg.cn/blog_migrate/fc4127bfeca6d16be01214db80cd7d6c.jpeg)
已经告诉我们了,原来是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:
![99f7c1a709defa8b2de534ec2effa4d8.png](https://i-blog.csdnimg.cn/blog_migrate/18af8d80317d4a1457f40ba80f60ea5c.jpeg)
现在我们再来看看R4的bgp路由:
![84dffcce1abd5e716a133e45f96f32ed.png](https://i-blog.csdnimg.cn/blog_migrate/917038f822821728901479e2501c31e7.jpeg)
可知,现在R4去往10.10.10.10和20.20.20.20 已经走R3了,因为从R3学习到的BGP路由,它们的首选值是100, 大于从R2学过来的BGP路由首选值是50。
可以用命令查看确认R2 落选的原因:
![1696b0e56a8a82e4a8ec57187feb3c29.png](https://i-blog.csdnimg.cn/blog_migrate/f8ed320c3d835a385d5f9db111d9b81d.jpeg)
R2没有更优的首选值。
业务数据走向:
![7730cd4ed97b3ebd2acfde0dd375a6f0.png](https://i-blog.csdnimg.cn/blog_migrate/87dfb17cc8f02e438af35b76ef8665c7.jpeg)
![78c76da99fffac0fb49a6906e72c7ece.png](https://i-blog.csdnimg.cn/blog_migrate/c33ecbe091a4c846dcafff48774ab5f1.jpeg)
哎,人的欲望就是无止境的,客户的需求总是不断产生。可能你的客户突然要求,能不能有一些流量走R2,有些流量走R3?
作为网络工程师的你,当然要回答:能!包在我身上!
下面我们就举例,让R4去往10.10.10.10 走R3;去往20.20.20.20 走R2,
增加了30.30.30.30,不针对30.30.30.30修改首选值。
![c672692bf23900d18e7279ddd0dcc9c4.png](https://i-blog.csdnimg.cn/blog_migrate/91b3e3f78fdc7886a69289676d6ec5a1.jpeg)
关键配置:
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。
![bebbbc720664e2f10805dc7df9cf166e.png](https://i-blog.csdnimg.cn/blog_migrate/2d294deea4c760ff6105ae3ceece39be.jpeg)
![2d989b7dbabcc932c933bca59730af6b.png](https://i-blog.csdnimg.cn/blog_migrate/d61b8da2bf0aa0799d359b5bfaf2a993.jpeg)
怎么样,已经可以实现分流了吧?虽然很简单的特性,但是通过实验,是不是更加深刻的理解首选值了!
![f47f99611d59e44dc81ed3b67a293004.png](https://i-blog.csdnimg.cn/blog_migrate/3f2d292f6dfc0ca549ecc38046e15a81.jpeg)
接下来我在R4的g0/0/1口处抓包,我再R1先删除10.10.10.10bgp路由,然后再添加,看看R4收到的报文是否有首选值字段,如果没有,那么首选值字段就是本地意义,R4路由器自己标记的。
![ad0fe683805e557ddecb4ea9a935d5a4.png](https://i-blog.csdnimg.cn/blog_migrate/9ff31f644a928bbf80427ffdf6c2ae24.jpeg)
说明首选值这个属性,仅本地有意义。就是仅在各自路由器上生效,离开了本身的路由器,报文没有携带这个字段啦!
怎么样? 阅读本期文章,不知您是否有收获? 是否有更好的见解?欢迎评论区留言。