BGP中的MED属性传递原则有以下两条:
1、当BGP路由是本地始发(通过network或者import-route命令引入),则缺省携带MED发送给EBGP对等体。反之,如果BGP路由是从EBGP学习到的,则再传递给EBGP对等体时不携带MED属性(MED不会跨AS传递)。
2、在IBGP对等体之间传递路由时,MED值会被保留并传递,除非部署了策略,否则MED在传递过程中不会改变也不会消失。
下面我们用实验来验证并加深理解这两条有原则
实验拓扑如下:
AR1、AR2在AS100
AR3、AR7在AS200
AR4在AS300。
好,说一下实验前提,AS100内的AR1、AR2、AR5通过OSPF已经互联,且已经把ospf引入了BGP,那么我们看一下AR1的BGP路由表:
我们可以看到AR1中有一条BGP路由,目的地址到192.168.100.0网段(拓扑中最左侧的网段),MED值是2。那么这条路由传递给EBGP对等体R3后MED是多少呢?我们来看下:
可以看到MED值还为2,那这条路由再由R3传给EBGP对等体AR4后会变成多少呢?我们继续看
结果发现MED值没有传递过来,那么说到这里,我们可以验证得出
当BGP路由是本地始发(通过network或者import-route命令引入),则缺省携带MED发送给EBGP对等体[R1传给R3携带]。
反之,如果BGP路由是从EBGP学习到的,则再传递给EBGP对等体时不携带MED属性(MED不会跨AS传递)。[R3传给R4不携带]
我们在看下R7的BGP路由表:
MED被传递过来且值不变,那么我们可以得出第二条原则:
在IBGP对等体之间传递路由时,MED值会被保留并传递,除非部署了策略,否则MED在传递过程中不会改变也不会消失。