BGP路径属性
路径属性:
任何一条BGP路由都拥有多个路径属性
当路由器将BGP路由通告给它的对等体时,一并被通告的还有路由所携带的各各路径属性
BGP的路径属性将影响路由优选
路径四个属性分类:
公认必遵:必须包括在每个update消息里
公认任意:可能包括在某些Update消息里
可选过渡:BGP设备不识别此类属性依然会接收该类属性并通告给其他对等体
可选非过渡:BGP设备不识别此类属性会忽略该属性,且不会通告给其他对等体
AS_Path:
该属性为公认必遵属性,是前往目标网络的路由经过的AS号列表
作用:确保路由在EBGP对等体之间传递无环,也是路由优选的衡量标准之一
路由被通告给EBGP对等体,会在AS_Path上追加上本地AS号,通告给IBGP则不需要
AS_Path防止环路和影响路由优选:
不接受所携带AS_Path数值与本身相同的BGP Update
这个区别OSPF的开销,而是用路由的AS_Path属性值判断,从而判断AS号的个数,个数少的优先
AS_Path的常用类型:
AS_seqence :默认情况下的一个有序列表,比如 200 100
AS_set : 由于路由聚合会使AS_Path属性丢失,有产生环路风险,就需要配置as-set参数,聚合路由会用集合表示as path, 300 {100,200}
使用路由策略修改as_path属性:
addtive : apply as-path 300 additive--------------------原AS_Path上追加
overwrite :apply as-path 400 overwrite--------------原AS_Path替换成新的值
none overwrite : apply as-path none overwrite------清空
Origin :
该属性为公认必遵属性,它标识了BGP路由的起源
network命令注入BGP, 路由的Origin属性为IGP
通过EGP学习到的,路由的Origin属性为EGP
其他方式学习,Origin属性为Incomplete
其他条件都相同的情况下,优选路由的顺序:IGP > EGP > Incomplete
display bgp routing-table
Next_Hop
公认必遵属性,用于指定到达目标网络的下一跳地址
缺省Next_Hop属性值的设置规则:
路由器在向E/IBGP对等体发布路由时,会把该路由信息的下一跳属性设置为本地与对端建立BGP邻居关系的接口地址
路由器在收到EBGP对等体所通告的BGP路由后,在将路由传递给自己的IBGP对等体时,会保持路由的Next_Hop属性值不变
路由器在收到EBGP对等体所通告的BGP路由后 , Next_Hop与eBGP同属一个网段,Next_Hop地址将保持不变并传递给它的BGP对等体
Local_Preference:
即本地优先级,属于公认任意属性,用于告诉AS中的路由器离开本AS的首选路径
属性值越大则BGP路由越优。缺省的Local_Preference值为100
该属性只能被传递给IBGP对等体,而不能传递给EBGP对等体
Local_Preference注意事项:
如果不做策略,之内在IBGP对等体间传递
可以在AS边界路由器上使用Import方向的策略来修改Local_Preference属性值
路由器在向其EBGP对等体发送路由更新时,不能携带Local_Preference属性,但是对方接收路由之后,会在本地为这条路由赋一个缺 省Local_Preference值(100),然后再将路由传递给自己的IBGP对等体
Community:
目的:是提高网络的效率
可选过渡属性,是一种路由标记,简化路由策略的执行
公认Community属性:
no-export--收到这个标记的路由不会将它传给下一个EBGP邻居(联邦假性质EBGP邻居不包含在内)
No-advertise——收到这个标记的路由不传给任何BGP邻居包含EBGP和IBGP
Internet——可以发给任何BGP邻居
Local-AS——同NO-export,但是他比no-export厉害之处是联邦内的EBGP邻居都不会传过去
MED:
多出口鉴别器,是可选非过渡属性,指出外部对等体进入本AS的优选路径,主要用于在AS之间影响BGP的选路
MED属性值越小则BGP路由越优
注意事项:
如果去往同一个目的的两条路由来自不同的相邻AS,不进行MED比较(不同AS),MED不会跨AS传递
如果该BGP路由是由network命令注入的,缺省携带MED属性发送给EBGP对等体
如果该BGP路由为从BGP对等体学习到,那么该路由传递给EBGP对等体时缺省不会携带MED属性
如果路由器将本地直连、静态路由通过network或import-route的方式引入BGP,那么这条BGP路由的MED为0,因为直连、静态路 由cost为0
如果不部署策略,在IBGP对等体之间传递路由不会改变MED的值
Atomic_Aggregate和Aggregator
如果上游的路由丢失路径属性,Aggregate作为一种预警标识,告诉下游对等体,保留该路由的Aggregate属性
Aggregator属性用于标记路由聚合行为发生在哪个AS及哪台BGP路由器上
BGP路由反射器
中转AS中的BGP问题:因水平分割问题,要使AS内的路由互联,IBGP需要全互联
路由器需要维护大量的TCP和BGP连接
AS内BGP网路的可扩展性差
路由反射技术:解决AS中的IBGP问题
路由反射技术也可以解决因为水平分割而导致路由不可达的问题
引入路由反射器RR和客户端Client两种角色,指定RR时需要为其指定Client
RR接收BGP路由时:
首先区分:传送只是传,不存在其他操作,反射会将路由插入自己特殊的路径属性
从非客户对等体学习IBGP路由,将该路由反射给所有客户
从客户A学习到IBGP路由,将该路由反射给所有非客户和其他客户A,B,C....
学习到EBGP路由,发送给所有客户、非客户的IBGP对等体
RR场景下的路由防环:
RR的设定会让水平分割原则失效,可能导致环路
使用Originator_ID、Cluster_List两种可选过渡类型来避免出现环路,在反射时执行
Originator_ID:
RR将在反射出去的路由中增加Originator_ID,其值为本地AS中通告该路由的BGP路由器Router ID
若AS内存在多个RR,则Originator_ID属性由第一个RR创建,并且不被后续的RR所更改
被发射路由的发送者收到反射路由后,会比对后,然后自行丢弃(用于控制发送者防环)
Cluster_List:路由反射簇-列表
当一条路由被反射器反射后,该RR(该簇)的Cluster_ID就会被添加至路由的Cluster_list属性中(用于控制反射者防环)
以上笔记于华为有限技术公司学习资源和网络平台资源总结
如有问题,谢谢指正
笔者个人总结:
前期的网路技术并不是最好和最完善的,而是经过了不断探索和改进,但又显得比较杂乱
水平分割本身是防环的,却又导致了EBGP路由不可达的问题,这就要让IBGP全互联,但这又会导致资源浪费问题,于是又出现了路由 反射技术,这项技术本身又会带来环路问题,所有又需要用Originator_ID、Cluster_List来避免环路