(选路选路,所谓选路原则,就是去往同一个目的地,有多条路、多个方案可以到达目的地,根据事先制定的规则,一个个去pk,选出最优的路由,引导数据包去往目的地。就好比你去北京,你有N种方法可以到达,这时你就会根据预算,来算计一条最便宜的方案去往北京。)
1
拓扑图
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# (其他路由器参考如下配置。)
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
1、先在R1创建两个loopback口,然后分别配置上述那两个IP地址。
2、宣告到BGP进程中
3、在R4查看BGP路由,可以看到学到2条Ebgp路由:
从图,可知,R4如果要去往这2个目的地(10.10.10.10或20.20.20.20),都是走R2。
有网友可能会说,规则那么多,我没记住,上图为啥走R2,有没有命令可以查一下???
这条命令它来了:
已经告诉我们了,原来是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:
现在我们再来看看R4的bgp路由:
可知,现在R4去往10.10.10.10和20.20.20.20 已经走R3了,因为从R3学习到的BGP路由,它们的首选值是100, 大于从R2学过来的BGP路由首选值是50。
可以用命令查看确认R2 落选的原因:
R2没有更优的首选值。
业务数据走向:
哎,人的欲望就是无止境的,客户的需求总是不断产生。可能你的客户突然要求,能不能有一些流量走R2,有些流量走R3?
作为网络工程师的你,当然要回答:能!包在我身上!
下面我们就举例,让R4去往10.10.10.10 走R3;去往20.20.20.20 走R2,
增加了30.30.30.30,不针对30.30.30.30修改首选值。
关键配置:
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。
怎么样,已经可以实现分流了吧?虽然很简单的特性,但是通过实验,是不是更加深刻的理解首选值了!
接下来我在R4的g0/0/1口处抓包,我再R1先删除10.10.10.10bgp路由,然后再添加,看看R4收到的报文是否有首选值字段,如果没有,那么首选值字段就是本地意义,R4路由器自己标记的。
说明首选值这个属性,仅本地有意义。就是仅在各自路由器上生效,离开了本身的路由器,报文没有携带这个字段啦!