目录
前言:
路径属性分类
公认必遵
公认任意
可选过渡
可选非过渡
前言:
- 在默认情况下,到达同一目的地,BGP只走单条路径,并不会在多条路径之间执行负载均衡。对于IGP路由协议,当有多条路径可以到达同一目的地时,则根据最小metric值来选择最优路径,而BGP存在多条路径到达同一目的地时,对于最优路径的选择,BGP并不会以metric值大小为依据,BGP对于最优路径的选择,需要靠比较路由条目中的Path Attributes,即路径属性,只有在比较多条路由的属性之后,才能决定选择哪条为最优路径。
- 任何一条BGP路由都拥有多个路径属性( Path Attributes) ,当路由器通告BGP路由给它的对等体时,该路由将会携带多个路径属性,这些属性描述了BGP路由的各项特征,同时在某些场景下会影响BGP路由优选的决策。
路径属性分类
华为官方将BGP的属性分为公认属性和可选属性,其中公认属性是所有的BGP路由器都必须能够识别的属性,公认属性可以分为两类:
1、公认必遵(Well-Known Mandatory):必须包括在每个Update消息中。
2、公认任意(Well-Known Discretionary):可以包括在某些Update消息中。
其中可选属性不需要被所有的BGP路由器所识别,可选属性也可以分为两类:
1、可选过渡(Optional Transitive):BGP设备不识别此类属性但是依然会接收这些属性,并将其通告给其他的BGP对等体。
2、可选非过渡(Optional Nontreansitive):BGP设备不识别此类属性选择忽略这些属性,并将不会通告给其他的BGP对等体。
各个属性的特点:
公认必遵
对于任何一台运行BGP的路由器,都必须支持公认必遵属性,并且在将路由信息发给其它BGP对等体时,这些属性必须强制写入路由中,一条不携带公认必遵属性的路由会被BGP路由器被视为无效而被丢弃,换句话说一不支持公认强制属性的BGP,是不正常的,不和法的BGP。
常见的BGP路由必须携带的公认强制属性有三个:Origin,Next_Hop,AS-path.
公认任意
公认任意属性并不像公认必遵属性那么严格,任何一台运行BGP的路由器必须支持公认属性,必须能够识别公认任意属性,但是在路由写入时并不是强制的,是否要为路由写入公认自选属性可以自由决定,当一条路由写入公认自选属性之后,所有BGP路由器都能认识和理解,并且都会自动保留和传递该属性。
常见的BGP默认的公认任意属性:Local_Preference
可选过渡
并不是所有运行BGP的路由器都能理解和支持可选可传递属性,路由的可选可传递属性是任意写入的,其它BGP路由器并不一定能理解,也并不一定保留和传递该属性,但是当为路由器设置了可选可传递属性后,可以明确要求BGP路由器保留和传递该属性。
常见的可选过渡属性:团体属性Community
可选非过渡
只有特定的BGP路由器才理解和支持可选非过渡属性,并且可选非过渡属性理论上是不能手工设置的,即使手工设置了可选非过渡属性,这些属性也不能任意传递,只可以传递到特定的BGP路由器。
常见的可选非过渡属性有:MED属性,Originator_ID属性,Cluster_List属性