目录
BGP路由属性主要分为4大类
公认必遵属性
Origin 路由起源属性
AS_Path AS路径属性
Next_Hop 下一跳
公认任意属性
Local_Pref 本地优先级
Atomic_Aggregate 聚合路由丢失明细路由属性
可选过度属性
Aggregator 聚合路由属性
Community 团体属性
可选非过度属性
MED(Multi_Exit_Disc) 多出口区分符
Cluster-list、Origintor-id 反射器属性
BGP路由属性主要分为4大类
BGP的路由属性是人为设计的,是对BGP路由的进一步描述
作用:实现BGP路由的控制、选路、防环、管理
公认必遵属性
所有BGP路由器都必须识别
Update消息中必须包含的属性
Origin 路由起源属性
起源属性用来定义路由的来源,通过修改此属性可以控制BGP路径的选择
目前BGP的路由来源主要有三种类型
- i (internal) 代表通过Network宣告学到的路由
- ? (incomplete) 代表通过Import-route引入学习到的路由
- e (EGP) 代表通过EGP协议引入的路由 --EGP已淘汰
注意
3种起源属性的优先级为:i>e>?(network>EGP协议引入>import-route引入)
当汇总多条路由时,路由的起源属性有i和?,此时取i作为汇总后路由的起源属性
AS_Path AS路径属性
AS路径属性,主要用来进行路由防环、路由选路
具体原理如下
- 从EBGP邻居得到路由时,会检查该路由的AS_Path属性,如果此属性存在自身的AS号,则丢弃此路由——用于AS之间防环
- 经过AS数量越少的路径越优——用于BGP路由选路
AS_Path多种体现形式
1、AS_Path 有序的
2、AS_Set 无序的(聚合路由时产生的)
3、联盟内的AS_Path 有序的
4、联盟内的AS_Set 无需的(聚合时产生的)
例如
AR1和AR2建立EBGP邻居关系,AR2和AR4建立EBGP邻居关系
此时AR4将自己的环回接口地址宣告到BGP中
在AR2收到的4.4.4.4的AS_Path 为200
在AR1收到的4.4.4.4的AS_Path为400 200
注意
AS_Path属性更新
- EBGP在传递路由时会更新AS_Path,会将自己的AS号添加到AS_Path属性的最前面;IBGP在传递路由时,不会更新AS_Path
AS_Path属性检测
- EBGP邻居之间进行AS_Path检测,IBGP邻居之间不进行AS_Path检测
- 可以通过命令来使得EBGP邻居可以忽略AS_Path属性的检查,主要用在MPLS Hub-Spoke场景(华为设备命令 )
AS_Path属性中的AS号替换
- 在某些场景下,可以根据需要进行AS号替换
相关命令配置
华为设备
peer 邻居地址 allow-as-loop 1 接收AS号与自身AS号重复1次的路由
bestroute as-path-ignor 在选择最优路由时忽略AS_Path检测
as-path-limit 10 AS_Path属性中AS号最多10个
锐捷设备
neighbor 邻居地址 allowas-in 1 接收AS号与自身AS号重复1次的路由
Next_Hop 下一跳
Next_Hop下一跳属性主要用于路由选路,用于指定到达目的网络的下一跳地址
Next_Hop更新情况
- 默认情况下,凡是自身起源的BGP路由,在传递给任何BGP邻居时,都会更改路由的下一跳为自己发往邻居的更新源地址
- 默认情况下,在向EBGP邻居传送BGP路由时,其下一跳会更改,会更改为自己发送给此邻居的更新源地址;可以通过命令实现不更改
- 默认情况下,从EBGP邻居得到的BGP路由再传送给IBGP邻居时,此BGP路由的下一跳不会更改;可以通过命令配置实现更改
注意
此字段为0.0.0.0 代表是自身起源的BGP路由
如果BGP路由的下一跳不可达,则此路有为非有效路由
在IBGP、EBGP邻居之间,也可以通过import、export使用策略对BGP的下一跳做更改,但是要注意设置的下一跳一定要可达
相关命令配置
华为设备
peer 邻居地址 next-hop-local 传递给邻居时更改下一跳
peer 邻居地址 next-hop-invariable 传递给邻居时不更改下一跳
锐捷设备
neighbor 邻居地址 next-hop-self 传递给邻居时更改下一跳
neighbor 邻居地址 next-hop-unchanged 传递给邻居时不更改下一跳
特殊场景(路由器收到某条BGP路由,发现此路由的Next Hop与将要发送的EBGP Peer同属于一个网段,则此路由传递给将要发送的EBP Peer时该路由的Next Hop将保持不变)
针对下图:R2收到R1发来的路由,R2将此路由发给EBGP邻居R3,此时R2发现这条路由的下一跳R2与EBGP邻居R3处于同一网段,最终R2发给R3的此路由不更改下一跳
公认任意属性
所有BGP路由器都必须识别
不要求必须存在于Update报文中,可根据需求自由选择
Local_Pref 本地优先级
本地优先级主要用于路由选路
特点
- 只在AS内传递,不会传递给其它AS
- 用于判断流量离开AS时的最佳路由(控制整个AS内设备的流量如何流出AS)
- 该优先级越大越优先(华为锐捷设备默认优先级为100)
Local_Pref通告规则
- BGP设备将路由传递给IBGP邻居是保留该属性
- BGP设备将路由传递给EBGP邻居时不携带Local_Pref属性
Atomic_Aggregate 聚合路由丢失明细路由属性
此属性为聚合路由丢失明细路由属性,用于告知明细路由的AS_Path出现了丢失(相较于明细路由聚合路由的AS_Path不完整-具体如何选择AS_Path查看BGP路由聚合章节)
可以通过as-set属性来实现在抑制明细路由通告的情况下还原明细路由的AS_Path属性
在进行路由聚合时,如果聚合路由有此属性,表示只会宣告聚合路由,不会宣告明细路由
当手动聚合并抑制明细路由时会有此属性,或者自动聚合后会直接产生此属性
可选过度属性
不会被所有BGP路由器识别(可以不支持该属性)
所有BGP路由器都可以接收此属性,并传给邻居(但是应该接收此属性并传递给邻居)
Aggregator 聚合路由属性
聚合路由属性,用于标识哪台设备进行的路由聚合(包含生成聚合路由设备的Router-id和AS号)
路由聚合时会自动出现此属性
Community 团体属性
主要有两个作用
团体属性,表示具有相同特征的路由信息,与所在AS无关
不同于Tag,Tag只能打一个标签,团体属性可以打多个标签
- 限定路由的传播范围——公认团体属性
- 对路由打标记,便于对相同条件的路由进行统一处理——扩展的团体属性
团体属性分类
公认团体属性分为4类
Internet 缺省属性;此属性的路由可以向任何BGP邻居宣告(不管邻居是IBGP还EBGP)
No-export 收到此属性路由不向EBGP邻居宣告,但是可以向联盟内的EBGP邻居宣告
No-exportsubconfed 收到此属性路由不向任何EBGP邻居宣告,包括联盟内的EBGP邻居也不宣告(在联盟中使用,仅在成员AS内传递)
No-advertise 收到此属性路由不向任何邻居宣告
扩展团体属性
- 用一组4字节为单位的列表来表示,格式为aa:nn或着团体号
- aa通常为AS编号,nn是管理员定义的团体属性标识
- 团体号范围为0~4294967295,在RFC1997中,0~65535、4294901760~4294967295为预留值
注意
可以在宣告路由时应用团体属性(这样本地的路由和邻居都会具备此团体属性)
也可以在Peer邻居时应用此团体属性(这样本地的路由无此团体属性,邻居才有此团体属性)
华为配置 bgp 100 ipv4-family unicast peer X.X.X.X advertise-community 允许向此对等体发送团体属性(缺省不允许) 锐捷配置 router bgp 100 address-family ipv4 neighbor X.X.X.X send-community 允许向此对等体发送团体属性
可选非过度属性
不会所有BGP路由器识别(可以不支持该属性)
BGP路由器可以不接受(忽略)此属性,并不向邻居发送(可以不传递此属性)
MED(Multi_Exit_Disc) 多出口区分符
MED是一种度量值,主要用户路由选路
特点
- 仅在相邻两个AS之间传递(或某个AS内传递),并且收到此属性的AS不会再将其通告给任何第三方AS
- 一般用于判断流量进入AS时的最佳路径(其实可以和本地优先级达到相同的目的,只是应用的方向和位置有区别)
- 优先级越小越优(根据不同实际情况有不同的默认优先级)
MED通告规则
- 默认从EBGP/IBGP邻居学到的路由再通告给EBGP邻居时,MED会被清除,即不发送此属性(除非手动指定可以传给的EBGP邻居)
- 默认从EBGP/IBGP邻居学到的路由再通告给IBGP邻居,会保留MED属性
- 默认本地引入的直连、静态、IGP路由如果有MED值,那么可以直接传递给EBGP邻居或IBGP邻居(从IGP引入路由时,MED继承IGP协议中的cost值;从直连/静态引入路由时,MED值为0)
- 默认从联盟EBGP邻居或联盟内始发的路由,其MED值在整个联盟内保持传递
注意
缺省情况下,不会比较来自不同AS邻居的路由信息中的MED值(因为不同的AS号可能使用不同的IGP协议,并且开销计算方式可能不同),除非能够确认不同的AS采用了相同的IGP和路由选择方式,或者手动开启MED的比较
华为设备 bgp 100 ipv4-family unicast compare-different-as-med 允许比较来自不同AS邻居的路由路径的MED属性值 锐捷设备 router bgp 100 bgp always-compare-med
Cluster-list、Origintor-id 反射器属性
在反射器章节介绍