理解BGP选路原则中的Med属性

标签:
bgp选路med选路原则 |
分类: 路由交换 |
Med作为BGP众多属性中的一个,用以通知对端AS的设备当存在多个路径可以进入本AS的时候,应该优选选择哪条路径。在BGP中,有其他的属性,诸如weight. local preference, originate route 和 AS path,如果以上属性能够选出最佳路径,那么Med将不会被考虑。也就是说,当其他属性一致的情况下,Med才会被考虑,并且选择Med小的路径作为最佳路径。
先通过实验验证MED属性是如何进行传递的。
实验1:
l
l
http://s14/mw690/002GUXAWgy6OUVK7Ulf8d&690
R1的配置
router bgp 12
!
access-list 1 permit 1.1.1.0
!
route-map MED permit 10
R2的配置
router bgp 12
R3的配置
router bgp 3
验证结果:
http://s9/mw690/002GUXAWgy6OUVMqBxCc8&690
在R2上增加一个loopback0,将Loopback0 network进BGP,其MED值设置成200.
R2的配置
access-list 1 permit 2.2.2.0
!
route-map MED permit 10
router bgp 12
http://s1/mw690/002GUXAWgy6OUVO0YBaf0&690
由此得出:如果将本地通告的一条路由传递给EBGP邻居的时候,其MED值会被传递。
总结得出一下结论:
l
•
•
l
实验2:
当IGP向BGP重分布,会将IGP的度量值作为BGP的MED
http://s1/mw690/002GUXAWgy6OUVRjlAsc0&690
R1和R2之间运行EIGRP,在R2上将EIGRP路由重分布进BGP
R1配置
router eigrp 88
R2配置
router eigrp 88
!
router bgp 2
R3配置
router bgp 3
观察现象
http://s5/mw690/002GUXAWgy6OUVTYNaQd4&690
http://s15/mw690/002GUXAWgy6OUVUdXrw8e&690
http://s5/mw690/002GUXAWgy6OUVUplPu64&690
实验3:通过MED进行选路
http://s12/mw690/002GUXAWgy6OUVWSmZJ1b&690
通过上图实验,在R3上检查10.10.10.0/24这条路由
http://s3/mw690/002GUXAWgy6OUVYs1Wyf2&690
根据我们前面的2个实验,得出在R3上,从R1传递过来的路由,因为10.10.10.0/24是R1始发,所以R1上的MED=0,那么R3上的MED=0。但是从R2上传递过来的就不会有MED属性了。但是根据BGP选路选择,一条有MED属性,一条没有MED,会不会比呢?通过实验来验证。(希望看客看到这里能想起BGP的选路原则)
验证方法,将R1这条路径上的MED值调大,观察现象
R1的配置
ip
prefix-list net10 seq 5 permit
10.10.10.0/24
!
route-map
net10
permit 10
!
route-map net10 permit 20
router bgp 12
R3上观察结果
http://s5/mw690/002GUXAWgy6OUW1ozT6f4&690
http://s14/mw690/002GUXAWgy6OUW1F901ad&690
R1传递过来的MED=10,R2传递过来的依旧没有MED属性。但是基于选路选择可以看出R2传递过来的路由被R3选为Best,由此得出,当从邻居收到一条没有MED属性的路由,则认为MED=0
其实对于这个MED属性,IETF小组已有定论。
[Internet工程任务小组(IETF)最近就BGP MED做出的决定是,对于没有MED的路由,将其MED值设置为无穷大,这使得这种路由被选中的可能性最小.运行Cisco
IOS软件的BGP路由器的默认行为是,对于没有MED的路由,将其MED值视为0,这使得这种路由被选中的可能性最大.要配置路由器,使之遵循IETF标准,可使用路由器配置命令bgp bestpath med
missing-as-worst]
MED用于向外部邻居指出进入AS的首选路径。当入口有多个时,AS可使用MED来动态地影响其他AS如何选择进入路径。在BGP中,MED是惟一一个可影响数据如何进入AS的属性.
实验4 :bgp deterministic-med 和 bgp always-compare-med 命令对MED的影响
http://s4/mw690/002GUXAWgy6OUW4NJIvf3&690
基于拓扑配置相应的路由器,在R2上观察100.100.100.0/24网段(备注:默认情况下建立邻居的顺序会导致show ip bgp的时候显示的条目顺序也不一样,如何选出best要根据BGP的选路原则来比较)。
http://s1/mw690/002GUXAWgy6OUW6Dyw030&690
我们来分析一下,将原有的show结果做个简单的示意,weight、LocPrf、AS-path、origin都一致。
关于100.100.100.0/24的路由信息的示意条目,假如在BGP表里是如此排列顺序。
条目1:AS 500
条目2:AS 500
条目3:AS 100
Case1:bgp deterministic-med 和 bgp always-compare-med都禁用
首先条目1和条目2进行比较,因为来自相同的AS, MED比较,条目1胜出,然后条目1和条目3比较,不同AS,不比较MED,条目3是external,条目3胜出.
Case2: bgp deterministic-med禁用,bgp always-compare-med启用
首先条目1和条目2进行比较,因为来自相同的AS,条目1胜出,接着条目1和条目3比较,条目3MED小,条目3胜出。
Case3: bgp deterministic-med启用,bgp always-compare-med禁用
bgp deterministic-med启用后,BGP表里的条目就会以AS为组进行排列,先从同一个AS内的所有路径中选出一条最优,然后再根据BGP选路原则进行best选路。条目1和条目2都来自AS 500,先进行比较,得出条目1胜出。来自AS 100的只有条目3,条目3胜出,然后条目1和条目3比较,bgp always-compare-med禁用,MED不比较,条目3胜出。
Case4:bgp deterministic-med启用,bgp always-compare-med启用
条目1和条目2都来自AS 500,先进行比较,得出条目1胜出。来自AS 100的只有条目3,条目3胜出,然后条目1和条目3比较,bgp always-compare-med启用,条目3的MED小,条目3胜出。
补充资料:
如果bgp
always-compare-med被激活,将对所有路径进行MED比较。这个选项需要在整个AS中激活,否则可能出现路由环路
如果bgp bestpath
med-confed被激活,将在仅由AS_CONFED_SEQUENCE(由本地联盟产生的路径)组成的所有路径之间比较MED
从邻居收到的MED值为4294967295的路径在插入BGP表之前,要将值改为4294967294
对于收到的没有MED值的路径,除非bgp bestpath missing-as-worst命令被激活,否则都要分配一个MED值0.在激活该命令的情况下,路径将赋予MED值4294947294