Cisco建议在所有新网络部署中均启用bgp deterministic-med命令.对于现有的网络,必须同时在所有路由器上部署此命令,或者逐步部署此命令,但要注意避免可能出现的内部BGP(IBGP)路由环路.
例如,请考虑网络10.0.0/8的以下路由:
entry1:AS 500 , med 150 , external ,rid 172.16.13.1
entry2:as 100 , med 200 , external ,rid 1.1.1.1
entry3:as 500, med 100 , internal,rid 172.16.8.4
BGP路由收到的顺序是entry3,entry2和entry1.(entry3是BGP表中最旧的条目,entry1是最新的条目)
注意:当BGP收到多个通往特定目标的路由时,它会按收到路由的相反顺序列出它们(从最新到最旧),然后,BGP按以下顺序成对比较路由;从最新的条目开始,并向最旧的条目移动(从列表顶部开始,向下移动).如,将entry1与entry2进行比较.随后,将这两个中的较好者与entry3进行比较,依此类推.
示例1,两个命令都禁用 bgp deterministic-med bgp always-compare-med
首先将entry1与entry2进行比较.因为entry2的路由器ID较小,所以它被选为这两个中的较好者.由于路径是来自不同的邻居自治系统,因此不检查MED.下一步,将entry2与entry3进行比较.因为entry2是外部路径,所以它被选为最佳路径.
示例2,bgp deterministic-med 禁用,bgp always-compare-med启用
将entry1与entry2进行比较.这些条目来自不同的邻居自治系统,但由于启用了bgp always-compare-med命令,因此在比较中使用了MED.在这两个条目中,entry1的MED较小,因此它是较好者.下一步,将entry1与entry3进行比较.由于条目现在来自同一个自治系统,因此将两次检查MED,entry3被选为最佳路径.
示例3,bgp deterministic-med启用,bgp always-compare-med禁用
当启用bgp deterministic-med命令时,来自同一个自治系统的路由将被分组到一起,然后比较每一组的最佳条目.BGP表如下所示.
entry1 as 100 med 200 external rid 1.1.1.1
entry2 as 500 med 100 internal rid 172.16.8.4
entry3 as 500 med 150 external rid 172.16.13.1
有一个AS100组,还有一个AS500组,比较每一组的最佳条目.entry1是其组中的最佳条目,因为它是来自AS100的唯一路由.entry2是AS500的最佳条目,因为它的MED最小,下一步,将entry1与entry2进行比较.因为这两个条目不是来自同一个邻居自治系统,所以比较中不考虑MED.外部BGP路由要优于内部BGP路由,这使entry1成为最佳路由.
示例4,两个命令都启用
本示例中的比较与示例3中基本相同,但最后一次比较是在entry2与entry1之间进行的.由于启用bgp always-compare-med命令,因此最后一次比较时考虑了MED,entry2被选为最佳路径.