目录

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中

BGP非直连路由学习 bgp中引入直连的路由属性_BGP非直连路由学习

        在AR2收到的4.4.4.4的AS_Path 为200

BGP非直连路由学习 bgp中引入直连的路由属性_优先级_02

        在AR1收到的4.4.4.4的AS_Path为400 200

BGP非直连路由学习 bgp中引入直连的路由属性_网络协议_03

注意

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非直连路由学习 bgp中引入直连的路由属性_网络_04


公认任意属性

所有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为预留值

BGP非直连路由学习 bgp中引入直连的路由属性_优先级_05

注意

可以在宣告路由时应用团体属性(这样本地的路由和邻居都会具备此团体属性)

也可以在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

BGP非直连路由学习 bgp中引入直连的路由属性_优先级_06

BGP非直连路由学习 bgp中引入直连的路由属性_R3_07

Cluster-list、Origintor-id        反射器属性

在反射器章节介绍