公认属性是所有 BGP 路由器都必须能够识别的属性
- 公认必遵 (Well-known Mandatory) : 必须包括在每个 Update 消息里
- 公认任意 (Well-known Discretionary) : 可能包括在某些 Update 消息里。
可选属性不需要都被 BGP 路由器所识别
- 可选过渡(OptionalTransitive) : BGP 设备不识别此类属性依然会接受该类属性并通告给其他对等体。
- 可选非过渡(OptionalNon-transitive) : BGP 设备不识别此类属性会忽略该属性,且不会通告给其他对等体。
AS_Path
公认必遵属性
任何一条 BGP 路由都拥有多个路径属性当路由器将 BGP 路由通告给它的对等体时,一并被通告的还有路由所携带的各个路径属性。BGP 的路径属性将影响路由优选
该属性为公认必遵属性,是前往目标网络的路由经过的 AS 号列表
作用:确保路由在 EBGP 对等体之间传递无环,另外也作为路由优选的衡量标准之一
路由在被通告给 EBGP 对等体时,路由器会在该路由的 AS Path 中追加上本地的 AS 号;路由被通告给 IBGP 对等体时,AS Path 不会发生改变
R1 从 R4 收到的 BGP 路由更新中 AS Path 属性数值为:400 300 200 100 存在自身 AS 号不接收该路由,从而防止了路由环路的产生。
AsPath 的重要作用之一便是影响 BGP 路由的优选,在上图中,R5 同时从 R2 及 R4 学习到去往 10.0.1.0/24 网段的 8GP 路由在其他条件相同的情况下,R5 会优选 R2 通告的路由,因为该条路由的 AS_Path 属性值较短,也即 AS 号的个数更少。
AS_Path 类型
有序:默认情况下,都是有序的
无序:在路由汇总手工配置,为了解决在路由汇总后明细路由丢失 AS_Path 属性的问题,用于防止环路产生。
[R5-bgp]aggregate 192.168.1.0 255.255.255.0 as-set detail-suppressed
// 在聚合路由的基础上,产生无序as_path
格式: 300 {200,100}
修改 AS_Path 属性
在使用 Route-Policy 修改 BGP 路由的 AS_Path 属性时,可以使用以下 3 种方式
[R5]route-policy aspath permit node 10
[R5-route-policy]apply as-path 300 additive // 在原有as号上追加300
[R5-route-policy]apply as-path 300 overwrite // 将as号替换为300
[R5-route-policy]apply as-path none overwrite // 将as号清空
[R5-bgp]peer 22.0.0.1 route-policy aspath export // 将对该邻居发出的路由信息执行该策略
[R5-bgp]peer 22.0.0.1 route-policy aspath import // 将该路由传来的路由信息执行该策略