BGP选路“十一步”法则
BGP路由器可能会从不同邻居收到通往同一目的网络的多条路径。它不会盲目接受第一条,而是按照一个严格的顺序比较一系列属性,以选出唯一的最佳路径。这个决策过程如下:
最高权重(Weight,思科私有):先看路由器本地设置的权重值,越高越优先。这是最直接的控制手段。
最高本地优先级(Local Preference):如果权重相同或未设置,则比较本地优先级属性。这个值在同一个自治系统内部传递,越高越优先。它决定了离开本AS的最佳出口。
本地发起的路由:如果前两项都相同,优先选择在本路由器上通过network或aggregate命令手动发起的路由。
最短AS路径(AS Path):如果以上都相同,则比较AS路径的长度(AS号的数量)。路径越短越优先。
最低起源类型(Origin):比较路径的起源代码。IGP(i)优于EGP(e),EGP优于Incomplete(?)。
最低MED值(Multi-Exit Discriminator):如果前几项都相同,且所有路径来自同一个相邻的AS,则比较MED值。这个值相当于“建议”,告诉本AS从哪个入口进入邻居AS更好,值越低越优先。
eBGP优于iBGP:如果依然难分高下,优先选择通过eBGP学到的路由,而非通过iBGP学到的路由。
到达下一跳的IGP度量值最小:如果都是iBGP路由,则查本地的IGP路由表,看到达BGP下一跳IP地址的代价(如OSPF成本),值越小越优先。
最老的eBGP路由:如果都是eBGP路由,优先选择建立时间最久的路径,认为其更稳定。
最低路由器ID:如果以上全部相同,则选择BGP邻居中路由器ID最小的那条路径。
最低邻居IP地址:作为最后的决胜局,选择来自拥有最小IP地址的邻居的路由。
总结:BGP会从第1步开始按顺序比较,只要在某一步分出了胜负,就立即停止比较,选择该路径为最优。