BGP med默认值_【干货分享】BGP选路原则(上篇)

d1de390185756888adbc007d5ab0e3bc.gif

前言

边界网关协议(BGP)是运行于 TCP 上的一种自治系统的路由协议。BGP强大的选路规则正是BGP最大的亮点。BGP选路原则共有13条,今天通过思科实验给大家讲解一下前7条选路原则。 01

首先,给大家列一下BGP的前7条选路原则:

优选weight值大的路由优选local-preference值大的路由优选本地起源的路由优选as-path长度小的路由比较起源属性 ( i优先 ?)优选med值小的路由Ebgp优于Ibgp

需要注意的是,BGP选路原则是有前提的,那就是路由要打上*>。

02

接下来,我们通过实验来了解这七条选路原则。

实验拓扑如下:

c57a714ef2da6da89cc374c0f3274c54.png

11.Weight值

特点:

a、比大  b、ciscos私有     c、本地有效 d、只能在in方向   e、默认值0/32768(本地)

此时R1能够从R7和R2两个方向学习到R7的环回口77.1.1.1路由,R1优选从R7过来的路由,这是比较到第七条选路原则(Ebgp优于IBGP)

771a7896763827ca11ad57dc32166ef8.png

所以我们可以通过修改weight值来让R1优选R2过来的路由。

做法:修改weight值的方法有两个

A、使用neighbor  X.X.X.X weight  y

R1: router bgp 100

      neighbor 22.1.1.1 weight 22

此时在R1上会优选R2过来的路由,因为从R2过来的路由weight值为22,大于R7过来的路由weight值0。

de2b469ffd94373c6e41eb6d9343f3b2.png

注意:此方法会影响所有从R2过来的路由,让其weight值都变成22。

B、Route-map

R1: access-list 1 permit 77.1.1.1

      route-map W

      match ip add 1

      set weight 111

      route-map W permit 999       

      router bgp 100

      neighbor 17.1.1.7 route-map W in

此时R1又会优选R7过来的路由,因为R7过来的weight值变为了111。

dc3d91d1c9d225d48b5fbd015fc1dbb3.png

注意:使用route-map的时候一定不要忘记写一条大号放行,防止影响其他路由的学习。

2Local-Preference

特点:

a、比大  b、默认值100   c、一个AS内有效 d、in/out

将有关weight值的修改配置删除,恢复原状,R1优选从R7过来的路由,这是比较到第七条选路原则。

9a41a87180c8305b8d38d6607eb50237.png

这时候有个问题,local-preference只会在一个AS内有效,并且我们发现从R7过来的路由为空,那么这个空值又是什么意思呢?我们可以通过show ip bgp X.X.X.X来查看某一条路由的具体信息。

e91f2fed6b844534545ae8d383cd3560.png

我们发现从R7学习的路由LP值也是100,那么这个数值是怎么来的呢?R7在将77.1.1.1这条路由传递给R1时并不会携带LP值,R1自动打上本地的LP值(默认是100)。

所以我们可以通过修改LP值来让R1优选R2过来的路由。

做法:修改Local-preference值的方法有两个

A.使用bgp default local-preference y

R1: router bgp 100

      bgp default local-preference 77

此时在R1上会优选R2过来的路由,因为从R2过来的路由LP值为100,大于R1给R7过来的路由添加的本地LP值77。

b211f0889557b55a53b43f21cdf1d69d.png

注意:此方法会影响所有从EBGP邻居过来的路由,让其LP值都变成77。

B、Route-map

R1: access-list 1 permit 77.1.1.1

      route-map LP

      match ip add 1

      set local-preference 22

      route-map LP permit 999 

      router bgp 100

      neighbor 22.1.1.1 route-map LP in

此时R1又会优选R7过来的路由。

cdf93ff986c09c2f447fe4c6616fd7b2.png

注意:使用route-map修改LP值时可以在R1针对R2邻居的in方向做,也可以在R2针对R1的out方向做。但千万不要在R1针对R7邻居的in方向改大LP值(超过默认值100),这会导致R1只能从R7收到路由,此时R2学到77的路由也是从R1学到的。

3起源本地(下一条为0.0.0.0,始发路由)

起源本地时指这条路由是自己产生的,下一条为0.0.0.0的始发路由。

将修改配置删除,恢复原状,R1优选从R7过来的路由,这是比较到第七条选路原则。

8352f9d43d8d9bcb28ae60160104b701.png

R1上77.1.1.1这条路由的下一跳都是0.0.0.0,都不是始发路由。我们可以在R1上伪造一条77.1.1.1的路由,并宣告进bgp中,让其成为始发路由。

R1: ip route 77.1.1.1 255.255.255.255 null 0

      router bgp 100

      network 77.1.1.1 mask 255.255.255.255

我们发现R1上77.1.1.1的路由优选的是本地始发路由,另外并没有从R2学习到77.1.1.1的路由,那是因为此时R2上学到77.1.1.1的路由是从R1过来的,这是比较到第四条AS-Path长度小的。

e4caaf3e79180460010d4eec206e7412.png

我们可以发现此时R1虽然是优选本地始发路由,但是本地始发路由的weight值也变成了32768,所以此时是依据第一条选路原则选取的。所以在思科路由器上第三条基本比较不到,因为第一条就可以比出来了,但是也可以修改R7过来的weight值为32768,那么就会比较第三条了。

所以我们可以通过修改LP值来让R1优选R2过来的路由。

做法:修改Local-preference值的方法有两个

A.使用bgp default local-preference y

R1: router bgp 100

      bgp default local-preference 77

此时在R1上会优选R2过来的路由,因为从R2过来的路由LP值为100,大于R1给R7过来的路由添加的本地LP值77。

b211f0889557b55a53b43f21cdf1d69d.png

注意:此方法会影响所有从EBGP邻居过来的路由,让其LP值都变成77。

B、Route-map

R1: access-list 1 permit 77.1.1.1

      route-map LP

      match ip add 1

      set local-preference 22

      route-map LP permit 999 

      router bgp 100

      neighbor 22.1.1.1 route-map LP in

此时R1又会优选R7过来的路由。

cdf93ff986c09c2f447fe4c6616fd7b2.png

注意:使用route-map修改LP值时可以在R1针对R2邻居的in方向做,也可以在R2针对R1的out方向做。但千万不要在R1针对R7邻居的in方向改大LP值(超过默认值100),这会导致R1只能从R7收到路由,此时R2学到77的路由也是从R1学到的。

4AS-Path

特点:

a、比长度短 

b、AS之间传递 

c、bgp bestpath as-path ignore 忽略这条选路原则

将有关修改配置删除,恢复原状,R7能够从R1和R2两个方向学习到R1环回口11.1.1.1这条路由,此时R7选择的是从R1学习这条路由,这是比较到第十条选择原则,最稳定的EBGP邻居,第8条以后的选路原则我们下篇再讲。

ed9b1e3d2384194b692ca3f85b699c60.png

AS-path属性是公认必遵的,其最大的用途就是用来做EBGP的防环,另外它也能用来当作选路原则。路由每经过一个AS都会把经过的AS号增加在路由属性里传递。所以AS-path只能在EBGP邻居修改才有效。

我们通过修改AS-path来让R7从R2学习11.1.1.1的路由,在R7针对R1邻居进来的时候增加3个AS-path,分别为AS1,AS2,AS3,让R7针对R2邻居进来的时候增加2个AS-path,分别是,AS4,AS5。修改As-path用route-map。

R7: access-list 1 permit 11.1.1.1

      route-map AS-1 permit 10

      match ip address 1

      set as-path prepend 1 2 3

      route-map AS-1 permit 999

      route-map AS-2 permit 10

      match ip address 1

      set as-path prepend 4 5

      route-map AS-2 permit 999

      router bgp 200

      neighbor 17.1.1.1 route-map AS-1 in

      neighbor 27.1.1.2 route-map AS-2 in

此时R7会优选R2过来的路由,因为从R1过来的路由AS-path长度是1 2 3 100,而从R2过来的路由AS-path长度是4 5 100,也就是R1过来的路由经过了4个AS,而R2过来的路由只经过了3个AS,优选长度短的路由,所以优选R2。

a9c12936ee2b3356b12805252031affa.png

注意:可以使用 bgp bestpath as-path ignore

来忽略这条选路原则,这句命令是隐藏命令,无法通过tab键补全,只能自己敲全。

R7:bgp bestpath as-path ignore

8b31d9af8dc1a67f67fa0587b78000f0.png

此时,哪怕R2过来的AS-path更短,R7依旧会经过第十条选路原则选择R1。

AS-path属性既是选路属性,也同样是防环属性,所以在增加AS号的时候不能增加R7的AS号200,否则R7因为EBGP防环而不收路由。我们可以通过 set as-path prepend last-as y ,这句命令是重复最后一个as号几次,从而避免添加一个后续可能已经有的AS号。

R7: route-map AS-1 permit 10

      match ip address 1

      set as-path prepend 1 2 3

      set as-path prepend last-as 2

至于这个AS如何增加的,可以自己通过实验论证。

5起源属性

起源属性是用来标识路由是如何被放进路由表的。目前路由被放进路由表的起源属性只有两种,一种是?,意味着路由是被重分布进来的,另外一种是i,意味着路由是被network,或者agg的。比较规则很简单,i优于?。

删除之前的修改配置,此时,R7上学习到11.1.1.1的路由是优选的R1(第十条)。

eddee3928e09729f19e1beab475e1bfb.png

R7从R1和R2学习到的路由起源属性都是i,这是因为R1是network宣告11.1.1.1这条路由的,我们通过修改起源属性来让R7优选从R2学习到11.1.1.1路由。

R7: access-list 1 permit 11.1.1.1

      route-map O 

      match ip add 1

      set origin incomplete 

      route-map O permit 999

      router bgp 200

      neighbor 17.1.1.1 route-map O in 

此时R7会优选R2过来的路由,因为从R1过来的路由起源属性是?,而从R2过来的路由起源属性是i,i优于?,所以优选R2。

f72a00dee5fdb576c1313726b3ca11a6.png

6MED

特点:

a、唯一仅仅控制相邻AS之间的选路属性,比小

b、默认MED只会在第一个AS(离自己最近的AS,也就是AS-path里最左边的AS)相同的情况下才会比较    

c、bgp always-compare-med可以打破特点b,使得第一个AS不一样也可以比较MED

d、相邻的AS传递路由携带MED默认值为0

e、相隔AS或者IBGP传递路由携带MED为空,空MED不会比较

f、bgp bestpath med missing-as-worst能够让空值变成一个很大的值

g、从EBGP学习到的BGP条目携带的MED可以传给其他IBGP邻居

h、从IBGP传递过来的路由的MED值,在传给EBGP的时候携带的MED会被置空

将之前修改配置删除,恢复原状,此时R7优选从R1优选学习11.1.1.1的路由(第十条)

6d8b41ec1957f44237f28c780d8ccf31.png

通过特点d、g和h,我们看到R7收到11.1.1.1路由,通过R1过来的MED值为0,通过R2过来的MED值为空。

我们可以通过修改MED值来让R7优选从R2学习11.1.1.1路由。将从R2过来的MED值改为50,从R1过来的改为100。

R1: access-list 1 permit 11.1.1.1

      route-map MED

      match ip add 1

      set metric 100

      route-map MED-1

      match ip add 1 

      set metric 100 

      route-map MED-1 permit 999

      route-map MED-2           

      match ip add 1            

      set metric 50             

      route-map MED-2 permit 999

      router bgp 200

      neighbor 17.1.1.1 route-map MED-1 in

      neighbor 27.1.1.2 route-map MED-2 in

此时在R7上会优选R2过来的路由,因为从R2过来的路由MED值为50,小于R1过来的路由MED值100。

b4fa7e4813dc45ad096299565dc9c127.png

7EBGP优于IBGP

这条选路原则其实就是一个定律,因为EBGP的AD值为20,而IBGP的AD值为200,小而优先。

———— / END / ————

775ad867d3c0731efa38356e94354100.png

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值