「BGP」- 路径属性:MED

  CREATED BY JENKINSBOT

属性概述

类型:MED(Multi-Exit Discriminator,多出口鉴别器)是可选非过渡属性,是种度量值。

作用:在 Inter-AS 中,用于影响 BGP 的选路,向 EBGP Peer 指出进入本 AS 的首选路径。即当进入本 AS 的入口有多个时,AS 通过 MED 动态地影响其他 AS 选择进入本 AS 的路径。

变更规则

MED 越小,则 BGP Route 越优(类似于 IGP 的开销值)。

比较规则

在缺省情况下,路由器只比较来自同个 AS 的 BGP.Route.MED 值,即:如果去往同个目的地的两条路由来自不同的 AS,鉴于两个 AS 的度量方式不同,所以不进行 MED 的比较。

根据需求,亦能够强制比较([bgp] compare-different-as-med );

传递规则

当 BGP Router 通告路由时,是否携带 MED 属性,需要根据以下条件进行判断(不对 BGP Peer 使用策略的情况下):
1)在 IBGP Peer ⇒ IBGP Peer 时,保留 MED 并传递,且在传递过程中不改变、不丢失(除非部署策略进行强制修改);
2)在 EBGP Peer ⇒ EBGP Peer 时,
—- 如果该路由是本地始发(即本地通过 network 或 import-route 命令引入),则缺省携带 MED 属性;
—- 如果从 BGP Peer 学习该路由,那么该路由传递给 EBGP Peer 时,则缺省不会携带 MED 属性;

取值规则

继承路由开销:
1)如果 Router 通过 IGP 学习到路由,并通过 network 或 import-route 将路由引入 BGP,则 BGP.Route.MED == IGP.Route.metric;
2)如果 Router 将本地直连、静态路由通过 network 或 import-route 引入 BGP,那么这条 BGP.Route.MED = 0,因为直连、静态路由 cost=0;

例如上图:
1)如果 R2 通过 OSPF 学习到 10.0.1.0/24 路由,并该路由在 R2 的全局路由表中 OSPF.Cost==100,那么当 R2 将路由 network 进 BGP 后,产生的 BGP.Route.MED==100;当然,如果换成 R1 引入路由,那么 R2 就会传递 MED 属性,因为此时的 R2 不再是“始发地”。

修改默认取值:
1)MED 不会跨 AS 传递:如果路由器通过 BGP 学习到其他 Peer 传递过来的路由,那么将路由更新给自己的 EBGP Peer 时,默认是不携带 MED;
2)通过命令 [bgp] default med 修改缺省的 MED 值,该命令仅对本设备上 import-route 的引入路由BGP 的聚合路由 生效。该属性的修改,仅在传递时有效(注意,其并不会修改本地的路由的 MED 值)。

例图,在 R2 上配置 default med 999,那么 R2 通过 import-route 及 aggregate 命令产生的路由传递给 R3 时,Route.MED==999;
例图,如果 R3 从 R2 学习到携带 MED 属性的 BGP 路由,则它将该路由通告给 R4 时,缺省是不会携带 MED 属性的(即跨 AS 不传递 MED 属性);

属性作用

在 R2、R3 上,部署 Route Policy 功能:
1)使得 R2 通告给 R4 的 BGP.Route.MED==10,而 R3 通告给 R4 的 BPG.Route.MED==20;
2)此时当其他条件相同时,R4 将优选 R2 传递过来的 BGP 路由,即流量将通过 R2 进入 AS 200 区域;