BGP 十大路径属性介绍,及其属性的修改方法介绍。

一、属性分类

公认属性

(所有BGP路由都必须 识别的属性)

  • 公认必遵(Well-known Mandatory)所有路由中都必须携带的属性。
  • 公认任意(Well-known Discretionary)自由选择是否包含的属性。

可选属性

(可不被BGP路由器所识别)

  • 可选过渡(Optional Transitive)不识别该属性也会继续转发携带该属性的路由。
  • 可选非过渡(Optional Non-transitive)不识别该属性,不会继续转发携带该属性的路由。

二、属性条目

公认必遵:Origin、AS_Path、Next_Hop

公认任意:Local_Preference、Atomic_aggregate

可选过渡:Aggregator、Community

可选非过渡:Med、Cluster-List、Originator-ID

在这里插入图片描述

三、属性详解

公认必遵

Origin

名称:起源Origin

作用:标识了BGP路由的起源,该BGP路由通过什么方式产生的。

介绍:

1、Origin的表示分为三种:i、e、?

在这里插入图片描述

2、当去往同一个目的地存在多条不同Origin属性的路由时,在其他条件都相同的情况下,BGP将按如Origin的下顺序优选路由:IGP > EGP > Incomplete,即 i > e > ?。

3、如何查看该路径属性?display bgp routing-table

下图红框部分,Path与Origin相近:

1、默认从IBGP产生的路由其Path为空,而从EBGP传入的路由其Path会携带AS号。

2、Origin为i表示从IBGP或EBGP所学习到的路由条目。

此处不要将EGP与EBGP混淆,EGP是早期实现AS自治系统之间交换路由信息的协议,BGP的前身。

在这里插入图片描述

AS_Path

名称:AS_Path路径

作用:标识前往目标网络时所需经过的AS号列表。

介绍:

1、以AS_Path 300 200 100为例,该路由从AS100产生,经过了AS200、AS300最后到达本地路由器。

2、AS_Path记录了经过的AS号,故当AS100的路由再次传递回AS100的时候将会被丢弃,因为AS_Path中包含了自己的AS号。这是BGP常用的防环属性

3、AS_Path标识经过的AS,当学习两条相同目的的BGP路由时,如果其它属性相同,但AS_Path不同,则AS_Path中AS号的数量越少越优先。AS_Path越短的路由,其优先级越高

4、AS_Path的类型有常用的AS_SEQENCE,以及AS_SET

 AS_SEQENCE表示方法:AS_PATH=300 200 100

 AS_SET表示方法:AS_PATH=300 {100,200}

AS_SET在什么情况下出现呢?

  • 在BGP路由被聚合的情况下出现。

  • 路由聚合解决了两类问题,一是减轻了设备的负担,二是隐藏了明细的路由信息,减少了路由震荡的影响。但是路由聚合后,AS_Path属性丢失,存在产生环路的风险,为此可以通过AS_SET类型的AS_Path属性携带聚合前的AS路径信息。

  • 当发生路由聚合后,如果需要聚合路由携带所有明细路由中AS_Path属性携带的AS号防止环路,则在配置聚合的命令中增加as-set参数。

  • AS_PATH后面的{}表示经过的AS号,该集合内的AS号没有先后顺序,主要用以防止环路。

  • 如下图,R3将R1、R2的路由进行路由聚合,聚合之后归为AS300的路由传递给R4。

在这里插入图片描述

Next_Hop

名称:Next_Hop下一跳

作用:用于指定到达目标网络的下一跳地址.

介绍:

在不同的场景中,设备对BGP路由的缺省Next_Hop属性值的设置规则如下:

 1、BGP路由器在向IBGPEBGP对等体发布某条路由时,会把该路由的Next_Hop设置为本地与对端建立BGP邻居关系的接口地址

 2、路由器在收到EBGP路由后,转发给其它IBGP对等体时,会保持路由的Next_Hop属性值不变。

 3、如果路由器收到某条BGP路由,该路由的Next_Hop属性值与EBGP对等体(更新对象)同属一个网段,那么该条路由的Next_Hop地址将保持不变并传递给它的BGP对等体。【与FA地址功能相似】

如下图:

(1)R3收到R2传去往10.0.2.0/24的EBGP路由下一跳为10.0.123.2。

(2)R3将学习到去往10.0.2.0/24下一跳为10.0.123.2的EBGP路由传递给R1时,下一跳不会修改成与R1建立EBGP邻居的地址,因为其满足Next_Hop属性的中的**“Next_Hop属性值与EBGP对等体(更新对象)同属一个网段,那么该条路由的Next_Hop地址将保持不变并传递给它的BGP对等体”**

在这里插入图片描述

公认任意

Local_Preference

名称:Local_Preference本地优先级

作用:用于告诉AS中的路由器,哪条路径是离开本AS的首选路径。

介绍:

1、Local_Preference属性值越大则路由越优,缺省的Local_Preference值为100,可通过策略路由进行修改该值。

在这里插入图片描述

2、该属性只能传递给IBGP对等体,而不能传递给EBGP对等体。如果在EBGP对等体间收到携带了Local_Preference的路由,则会进行错误处理。

问题:如果不能将LP值传递给EBGP,那么EBGP又是否具备LP值呢?

 路由器在向其EBGP对等体发送路由更新时,不能携带Local_Preference属性,但是对方接收路由之后,会在本地为这条路由赋一个缺省Local_Preference值(100),然后再将路由传递给自己的IBGP对等体。

Atomic_aggregate

名称:Atomic_aggregate聚合标记

作用:它只相当于一种预警标记,而并不承载任何信息,主要告诉路由器该路由经过了聚合。

介绍:

1、当路由器收到一条BGP路由更新且发现该条路由携带Atomic_Aggregate属性时,它便知道该条路由可能出现了路径属性的丢失,此时该路由器把这条路由再通告给其他对等体时,需保留路由的Atomic_Aggregate属性

可选过渡

Aggregator

名称:Aggregator聚合标识

作用:标记路由聚合行为发生在哪个AS及哪台BGP路由器上。

介绍:

1、执行路由聚合操作的路由器为该聚合路由添加Aggregator属性,并在该属性中记录本地AS号自己的Router-ID,因此其它路由器可通过Aggregator知道聚合是发生在哪个AS及哪台BGP路由器上。
在这里插入图片描述

Community

名称:Community 团体值

作用:一种路由标记,主要对引入的路由进行标记方便BGP进行路由控制。

介绍:

1、Community属性值长度为32bit,也就是4Byte。可使用两种形式呈现:

 十进制整数格式。

 AA:NN格式,其中AA表示AS号,NN是自定义的编号。

在这里插入图片描述

2、除此之外还有默认的Community值:

团体属性名称 团体属性号 说明
Internet 0(0x00000000) 设备在收到具有此属性的路由后,可以向任何BGP对等体发送该路由。缺省情况下,所有的路由都属于Internet团体
No_Advertise 4294967042(0xFFFFFF02) 设备收到具有此属性的路由后,将不向任何BGP对等体发送该路由
No_Export 4294967041(0xFFFFFF01) 设备收到具有此属性的路由后,将不向AS外发送该路由
No_Export_Subconfed 4294967043(0xFFFFFF03) 设备收到具有此属性的路由后,将不向AS外发送该路由,也不向AS内其他子AS发布此路由

可选非过渡

Med

名称:Med 开销

作用:一种度量值,用于向外部对等体指出进入本AS的首选路径。

介绍:

1、当进入本AS的入口有多个时,AS可以使用MED动态地影响其他AS选择进入的路径。

 MED属性值与开销一致,故MED越小则BGP路由越优,默认为0。

2、MED主要用于在AS之间影响BGP的选路。MED被传递给EBGP对等体后,对等体在其AS内传递路由时,携带该MED值,但将路由再次传递给其EBGP对等体时,缺省不会携带MED属性。

[下图,R4优先使用R2传来开销最小的路由,并在IBGP内泛洪(开销不变)。]

[但如果传递给另外一个EBGP邻居的时候,将去掉该路由的MED值。]

在这里插入图片描述

3、缺省情况下不会将携带MED值的路由传递给EBGP邻居,那么在什么情况下可以携带呢?

 IBGP内进行路由引入时,会将引入的路由开销继承,并且在传递给EBGP时不会删除。

 如果路由器通过IGP学习到一条路由,并通过networkimport-route的方式将路由引入BGP,产生的BGP路由的MED值继承路由在IGP中的metric。

[例如下图中如果R2通过OSPF学习到了10.0.1.0/24路由,并且该路由在R2的全局路由表中OSPF Cost=100,那么当R2将路由network进BGP后,产生的BGP路由的MED值为100。]

在这里插入图片描述

 如果路由器将本地直连、静态路由,那么这条BGP路由的MED为0,因为直连、静态路由默认cost为0。

4、能够理解开销继承,但学习到继承开销的路由是否还会继续继承开销传递给下一个EBGP邻居吗?

 回答:不能,因为MED不能跨AS传递。

 反问:那为什么R2给R3又可以继承?

 绝杀:所谓的继承在IBGP内部可以这么理解,但在R2上可以理解为将BGP发出时手动设置了MED开销,并不是真正意义的继承。

[所以再看下图就可以理解,由于MED不能跨AS的原则,R2传递BGP路由给R3时自动修改MED值,而R3再传递给R4时,由于没有了所谓的继承,故不会自动修改MED,只会传递不携带MED的路由给R4]

在这里插入图片描述

Originator-ID

名称:Originator 起源者ID

作用:记录反射前路由的起源通告者。RR在反射的路由中增加Originator_ID,其值为通告该路由的BGP路由器Router ID。

介绍:

1、与Origin起源相似,Originator ID主要用于记录反射前路由的通告者,以便反射后的路由重新回到起源路由器上造成路由的环路。

2、若AS内存在多个RR,则Originator_ID属性由第一个RR创建,并且不被后续的RR所更改。

3、当BGP路由器收到一条携带Originator_ID属性的IBGP路由,并且Originator_ID属性值与自身的Router ID相同,则它会忽略关于该条路由的更新。
在这里插入图片描述

3、如何查看Originator ID呢?

在这里插入图片描述

Cluster-List

名称:Cluster-List 反射簇列表

作用:用于RR反射簇环境下实现路由防环。

介绍:

1、每一个簇都有唯一的簇ID(Cluster_ID,缺省时为RR的BGP Router ID )

2、当一条路由被反射器反射后,该RR(该簇)的Cluster_ID就会被添加至路由的Cluster_list属性中。

3、一个AS内允许存在多个路由反射簇(如下图)
在这里插入图片描述

4、 当RR收到一条携带Cluster_list属性的BGP路由,且该属性值中包含该簇的Cluster_ID时,RR认为该条路由存在环路,因此将忽略关于该条路由的更新/反射。

[如图,R1将R2路由反射给R3(首次Cluster-list为自己RID),R3继续反射给R4(Cluster-list增加R4的RID),最后R4反射回R1(Cluster-list增加R4的RID),R1收到反射后的路由发现Cluster-list中存在自己的RID,则不处理该路由]
在这里插入图片描述

本地属性

Preferred-Value

名称:Preferred-Value 协议首选值

作用:华为设备的特有属性,用于本地手动选举最优路由。

介绍:

1、BGP十大路径属性,加上华为专属的协议首选值共十一条路径属性。
2、该属性只在路由器本地有效,所以通过在本地创建策略并应用在对应的邻居入方向上进行修改首选值。

在这里插入图片描述

3、用于当BGP路由表中存在到相同目的地的路由时,将优先选择Preferred-Value值高的路由,默认值为0/空。

[如下图,Prefval值高的将成为优选路由]

在这里插入图片描述

四、修改路径属性

由于篇幅原因,仅给出相关配置命令,可基于逻辑自行修改命令加以应用。

Origin

属于公认必遵,所以通过策略路由修改之后可在IBGP与EBGP之间传递

需求:将EBGP邻居10.1.13.3传递来的192.168.30.0/24的路由,修改其Origin为EGP类型。

配置逻辑:

1、先创建ACL或前缀列表匹配192.168.30.0/24路由

2、创建策略路由,if-match匹配路由,然后通过apply origin egp AS号 修改其类型

因为修改成EGP故需要指定原先的AS_Path信息

3、配置策略对指定路由修改之后,还需要创建一个放行其它路由的策略,不然其它路由将无法传递。

4、最后将策略应用到对应的邻居上

ip ip-prefix 30 permit 192.168.30.0 24

route-policy P30 permit node 5 
 if-match ip-prefix 30 
 apply origin egp 200

route-policy P30 permit node 10

[AR1-bgp]peer 10.1.13.3 route-policy P30 import

再次查看BGP路由表:
[AR1-bgp]dis bgp routing-table 
 Total Number of Routes: 2
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn
 *>   192.168.30.0       10.1.13.3       0                     0      200e

AS_Path

属于公认必遵,所以通过策略路由修改之后可在IBGP与EBGP之间传递

需求:将EBGP邻居10.1.13.3传递来的192.168.30.0/24的路由,其AS_Path增加AS 65005从而降低该路由的优先级。

配置逻辑:

1、匹配路由

2、创建策略,针对指定路由修改其AS_Path

3、创建策略,放行其它路由

4、指定邻居上应用策略

ip ip-prefix 30 permit 192.168.30.0 24
#
route-policy AS permit node 5 
 if-match ip-prefix 30 
 apply as-path 65505 additive
#
route-policy AS permit node 10

[AR1-bgp]peer 10.1.13.3 route-policy AS import

再次查看BGP路由表:
[AR1-bgp]dis bgp routing-table 
 Total Number of Routes: 2
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn
*>   192.168.30.0       10.1.13.3       0                     0      65505 200i

关于AS_Path的操作动作:

1、Additive ,AS_Path中增加指定的AS号【增加】。

2、Overwrite ,重写AS_Path为指定的AS号【修改/删除】。

3、none overwrite,清空AS_Path值。

在这里插入图片描述

Next_Hop

属于公认必遵,所以通过策略路由修改之后可在IBGP与EBGP之间传递

需求:将EBGP邻居10.1.13.3传递来的192.168.30.0/24的路由,修改其下一跳为3.3.3.3。

ip ip-prefix 30 permit 192.168.30.0 24
#
route-policy NextHOP permit node 5 
 if-match ip-prefix 30 
 apply ip-address next-hop 3.3.3.3 
#
route-policy NextHOP permit node 10

[AR1-bgp]peer 10.1.13.3 route-policy NextHOP import

再次查看BGP路由表:
[AR1-bgp]dis bgp routing-table 
 Total Number of Routes: 2
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn
      192.168.30.0       3.3.3.3         0                     0      200i

Local_Preference

属于公认任意,所以通过策略路由修改之可在IBGP与EBGP之间传递,但由于本地优先级的特殊性即使传递给了EBGP邻居,也不会进行处理。

需求:将EBGP邻居10.1.13.3传递来的192.168.30.0/24的路由,修改其本地优先值为300。

ip ip-prefix 30 permit 192.168.30.0 24
#
route-policy LPRI permit node 5 
 if-match ip-prefix 30 
 apply local-preference 300 
#
route-policy LPRI permit node 10 

[AR1-bgp]peer 10.1.13.3 route-policy LPRI import

再次查看BGP路由表:
[AR1-bgp]dis bgp routing-table 
 Total Number of Routes: 2
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn
 *>   192.168.30.0       10.1.13.3       0          300        0      200i

默认所有的本地优先级都为100,如果需要修改缺省值:[AR1-bgp]default local-preference 新优先值

Atomic_aggregate

属于公认任意,所以通过策略路由修改之后可在IBGP与EBGP之间传递

Aggregator

属于可选过渡,通过策略修改之后可在IBGP与EBGP之间传递,哪怕设备无法识别也需要继续保留该属性

该两个属性无法通过策略路由修改,此处仅给出配置命令:

需求:在AR1上配置聚合192.168.0.0/16,要求抑制相应明细路由的对外发布,并对该聚合路由添加Aggregator属性。

[AR1-bgp]aggregate 192.168.0.0 16 as-set detail-suppressed 

在这里插入图片描述

Community

属于可选过渡,通过策略修改之后可在IBGP与EBGP之间传递,哪怕设备无法识别也需要继续保留该属性。

需求:将EBGP邻居10.1.13.3传递来的192.168.30.0/24的路由,将该路由的团体值设置为200:3。

ip ip-prefix 30 permit 192.168.30.0 24
#
route-policy COM permit node 5 
 if-match ip-prefix 30 
 apply community 100:3 
#
route-policy COM permit node 10 
#
[AR1-bgp]peer 10.1.13.3 route-policy COM import

再次查看BGP路由详细信息:
[AR1-bgp]display bgp routing-table 192.168.30.0

 BGP local router ID : 10.1.13.1
 Local AS number : 100
 Paths:   1 available, 1 best, 1 select
 BGP routing table entry information of 192.168.30.0/24:
 From: 10.1.13.3 (10.1.13.3)
 Route Duration: 00h00m35s  
 Direct Out-interface: GigabitEthernet0/0/1
 Original nexthop: 10.1.13.3
 Qos information : 0x0
 Community:<100:3>	【团体值在这】
 AS-path 200, origin igp, MED 0, pref-val 0, valid, external, best, select, acti
ve, pre 255
 Not advertised to any peer yet

扩展:后继介绍BGP选路时将会使用该属性进行区分不同路由,从而控制路由的选路。

Med

属于可选非过渡,可在IBGP与EBGP之间传递,但传递给EBGP邻居时该属性将默认被剔除。

需求:将EBGP邻居10.1.13.3传递来的192.168.30.0/24的路由,将该路由的MED值修改为10。

ip ip-prefix 30 permit 192.168.30.0 24
#
route-policy MED permit node 5 
 if-match ip-prefix 30 
 apply cost 10 
#
route-policy MED permit node 10 
#
[AR1-bgp]peer 10.1.13.3 route-policy MED import

再次查看BGP路由表:
[AR1-bgp]dis bgp routing-table 
 Total Number of Routes: 2
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn
 *>   192.168.30.0       10.1.13.3       10                    0      200i

默认BGP学习到的MED都为0,如果需要修改缺省值:[AR1-bgp]default local-preference 新优先值

Cluster-List

属于可选非过渡,应用于存在RR反射器簇场景用于防止路由多次反射。

Originator-ID

属于可选非过渡,应用于存在RR反射器场景用于防止路由多次反射之后回到路由起源设备上造成路由环路隐患问题。

以上两种属性无法通过策略路由修改,属于默认启用的功能,会自动进行记录相应的信息。

后继介绍BGP反射器时再进行详细的介绍。

猜你喜欢

转载自blog.csdn.net/qq_45443704/article/details/129910246
BGP
今日推荐