BGP 路由属性 公认必遵 AS_PATH
AS 路径(AS_PATH)属性为公认必遵属性,该属性域指示出该路由更新信息经过了哪些AS路径,主要作用是保证AS之间无环路。
AS_PATH属性按一定次序记录了某条路由从本地到目的地址所要经过的所有AS号。当BGP将一条路由通告到其他AS时,便会把本地AS号添加在AS_PATH列表的最前面。收到此路由的BGP路由器根据AS_PATH属性就可以知道去目的地址所要经过的AS。离本地AS最近的相邻AS号排在前面,其他AS号按顺序依次排列。
使用AS路径属性的目的是保证无路由环路。通常情况下,BGP 不会接受AS_PATH 中已包含本地AS 号的路由,从而避免了形成路由环路的可能。如果BGP 路由信息发布者从EBGP 对等体收到一条路由,它的AS_PATH 包含发布者自己的AS 号,就说明这条路由曾经从本AS 发出过,将其丢弃,同时不再进行转发。基于上述机制,AS_PATH 属性可以避免AS 之间的路由环路的出现,AS 内部的路由环路的避免则采用其他手段来实现。
同时,AS_PATH 属性也可用于路由的选择和过滤。在其他因素相同的情况下,BGP 会优先选择路径较短路由。比如在上图中,AS 100 中的BGP 路由器会选择经过AS 65330 的路径作为到目的地址99.0.3.0/22 的最优路由。
BGP 发言者在向EBGP邻居发送路由更新时修改AS_PATH属性,向IBGP邻居发送时不修改该属性。
在某些应用中,可以使用路由策略来人为地增加AS 路径的长度,以便更为灵活地控制BGP 路径的选择。
通过配置 AS 路径过滤列表,还可以针对AS_PATH 属性中所包含的AS 号来对路由进行过滤。