BGP属性的加强理解_属性

在上图中,AS 100中的BGP路由器R3可以同时通过R1与R2去往目的地在AS 200中的R4上时,可以通过在AS 100内部修改路由的Local_Pref值来影响选路,比如在R1上将路由的Local_Pref值改为110,而路由器R2上不作任何改动,最终R3将选择从R1去往AS 200,因为R1的Local_Pref值为110,而R2的Local_Pref值为100(默认),所以R3选择R1为最优路径。 因为R1和R2在将路由发给iBGP邻居R3时会携带Local_Pref属性,所以R3同时比较iBGP邻居R1与iBGP邻居R2时,才合适使用Local_Pref属性,因为下一跳都是iBGP邻居,如果下一跳不都是iBGP邻居,并不建议修改Local_Pref属性来影响选路。

在上图中,当AS 200中的路由器R4要去往目的地为AS 100的网段时,由于下一跳R1与R2都为eBGP邻居,所以可以通过修改MED值来影响R4对于下一跳的选择。比如将R2的MED改为10,而R1的MED保持默认不变,那么最终R4将选择R1去往AS 100中的目的地,因为R1的MED值0小于R2的MED值10,所以被优先使用。 默认情况下,只有当去往目的地的多个下一跳eBGP邻居都为相同AS时,才会比较MED值,如果多个eBGP邻居为不同AS时,是不会比较MED的,若是要强制在多个不同的eBGP邻居之间比较MED值,需要在BGP进程下输入命令:bgp always-compare-med。

Weight属性为Cisco私有属性,只有Cisco的路由器才能认识和理解Weight。路由的Weight属性只在路由器本地起作用,BGP将路由传递给邻居时,并不会保留Weight。Weight值的范围为0~65535,默认为0,如果是BGP本地路由,则Weight值为32768。可以手工任意修改路由的Weight值,可以对路由进行修改,也可以对整个邻居进行修改,但也只能对本地起作用,路由的Weight值并不会传递给邻居。 当BGP路由表中到达同一目的地存在多条路径时,会优选Weight值最大的路径。在Cisco路由器中,比较最优路径的第一条规则就是比较Weight值,所以只要改动Weight值,就绝能够控制Cisco路由器的BGP选路。