HCIE(BGP属性以及选路)

BGP属性特点—概述

BGP路由属性是一套参数,它是对路由的进一步的描述

  • 公认必遵
  1. 所有BGP路由器都能识别,且必须存在在Update消息中
  2. 如果缺少这种属性,路由信息就会错误
  • 公认任意
  1. 所有BGP路由器都可以识别,但不要求必须存在于Update消息中
  2. 即就算缺少这类属性,路由信息也不会出错
  • 可选过渡
  1. 在BGP对等之间具有可传递的属性
  2. BGP路由器可以不支持此属性,但它任然会接收这类属性,并传递给其他对等体
  • 可选非过渡
  1. 如果BGP路由器不支持此属性,则相应的这类属性会被忽略,且不会传递给其他对等体

常用的属性类别如下所示:

  • Origin 为公认必遵属性
  • As-path 为公认必遵属性
  • Next-hop 为公认必遵属性
  • Local-pref 为公认任意属性
  • community 为可选过渡属性
  • MED 为可选非过渡属性
  • Originator_ID 为可选非过渡属性
  • Cluster_list 为可选非过渡属性

BGP属性特点—Origin

Origin属性用来定义路径信息的来源,该属性为公认必遵

  • IGP
    通过路由器始发AS的IGP得到的路由信息,如通过network命令注入BGP的路由
    标识符为 “i”
  • EGP
    通过EGP得到的路由信息
    标识符为 “e”
  • Incomplete
    通过其他方式学习到的路由信息,如通过import-route 命令注入BGP的路由
    标识符为 “?”

优先级:
IGP>EGP>IncompleteI>e>?

BGP属性特点—PrefVal

协议首选值(PreVal)是华为设备的特有属性,该属性仅在本地有效,不会传递给BGP邻居。因为协议首选值是人为主动设置的,代表本地用户的意愿,因而在BGP进行选路时会优先比较协议首选值
在这里插入图片描述
在BGP进行选路时会优先比较协议首选值。默认情况下均为0,该值越大越优先

BGP属性特点—As-path

As-path属性按矢量顺序记录某条路由从本地到目的地所要经过的所有AS编号。该属性为公认必遵
As-path属性可以当作BGP选路的参考属性之一,As-path长度越短越优先。此外,当BGP路由器从EBGP对等体接受路由时,如果发现As-path列表中有本地AS号,则不接收该路由,从而避免了As间的路由环路

  • 当BGP Speaker本地通告一条路由时
  1. 当BGP speaker将这条路由通告给其他As时,便会将本地As号添加在As-path列表中,并通过Update消息通告给邻居路由器
  2. 当BGP Speaker将这条路由通告给本地As时,便会在Update消息中创建一个空的As-path列表
  • 当BGP Speaker传播从其他BGP Speaker的Update消息中学习到的路由时
  1. 当BGP Speaker将这条路由通告给其他As时,便会将本地As编号添加在As-path列表的最前面(最左面)。收到此路由的BGP路由器根据As-path属性就可以知道去目的地址所要经过的As。离本地As最近的相邻As号排在前面,其他As号按顺序依次排列
  2. 当BGP Speaker将这条路由通告给本地As时,不会改变这条路由的As-path属性

BGP属性特点—Next_hop

Next_hop属性记录了路由的下一跳信息,该属性为公认必遵
在这里插入图片描述
Next_hop属性记录了路由的下一跳信息。BGP的下一跳属性和IGP的有所不同,不一定就是邻居设备的IP地址。通常情况下,Next_hop属性遵循下面的规则:

  • BGP Speaker将本地始发路由发布给IBGP对等体时,会将该路由信息的下一跳属性设置为本地与对端建立BGP邻居关系的接口地址
  • BGP Speaker在向EBGP对等体发布某条路由时,会把该路由信息的下一跳属性设置为本地与对端建立BGP邻居关系的接口地址
  • BGP Speaker在向IBGP对等体发布从EBGP对等体学来的路由时,并不改变该路由信息的下一跳属性

BGP属性特点—Local_pref

Local_pre属性表明BGP路由器的优先级,该值越大越优先,默认为100,该属性为公认任意
该属性在IBGP邻居间可以传播,不通告给其他As。它表明路由器的BGP优先级
在这里插入图片描述
Local_pref值在IBGP邻居间可以传递,故对于上图,有六种方法可以让As100去10.0.0.0/24走R2

  1. 修改R2本地默认Local_pref值为200
  2. 在R2的EBGP接口入向通过route-policy 修改10.0.0.0/24的Local_pref为200
  3. 在R2的IBGP接口出向通过route-policy 修改10.0.0.0/24的Local_pref为200
  4. 在R1的IBGP接口入向通过route-policy 修改10.0.0.0/24的Local_pref为200
  5. 修改R3本地默认Local_pref值为80
  6. 在R3的EBGP接口入向通过route-policy 修改10.0.0.0/24的Local_pref为80

注: 在R1的IBGP接口出向修改Local_pref值为200不可以,因为这样不能改变R1的选路;同样的,在R3的IBGP接口出向修改Local_pref值为80也不可以,因为这样不能改变R3的选路

BGP属性特点—MED

MED属性类似于IGP的cost值,被用于AS间的路由选路,默认值为0;该属性为可选非过渡
MED属性仅在相邻两个As之间传递,收到此属性的As一方不会再将其通告给任何其他第三方As;MED值可以在相邻的AS的IBGP间传递
默认MED只能⽤于俩个AS之间选路,如果⽤于多个需要开启MED的多AS选路
在这里插入图片描述


在这里插入图片描述
在上图中通过R4或者R5的MED来影响R1选择一条路径去到10.1.1.0/24网段是不可以的,因为R4和R5是属于不同的As,不能通过本As的MED影响到别的As的选路,如果可以的话,那互联网中任何一个AS的MED值的改动都可能引起互联网的震荡


当一个运行BGP的设备通过不同的EBGP对等体(前提是EBGP对等体需属于同一个AS)得到目的地址相同,但下一跳不同的多条路由时,在其它条件相同的情况下,将优先选择MED值较小者作为最佳路由

BGP属性特点—Atomic_aggregate和Aggregator

当BGP路由器向外宣告汇总路由时,会丢失路由信息(As_path、next_hop等),汇总的发起者只会将自己的As号放入As_path,聚合前的As信息都会丢失。这样会使得路由变得不准确

  • Atomic_aggregate属性
    该属性可以警告下游路由器出现了路径的丢失。汇总时总是会把这个属性放进汇总后路由的Update消息中。任何下游路由器将汇总路由宣告给其他路由器时,会传递这条路由器的这个属性
  • Aggregator属性
    汇总时会自动的出现该属性。它包括发出汇总路由的BGP路由器的As号以及Router_ID,从而提供了执行汇总的地点信息。Atomic_aggregate属性是告知出现了路由信息的丢失而Aggregator属性是说明了汇总路由是从哪里来的

BGP属性特点—community

团体属性(community)用于标识具有相同特征的BGP路由,该属性为可选过渡
该属性用来简化路由策略的应用和降低维护管理的难度,利用团体属性可以使多个As中的一组BGP这杯共享相同的策略。团体是一个路由属性,在BGP对等体之间传递,且不受AS的限制。BGP设备在将带有团体属性的路由发布给其它对等体之前,可以先改变此路由原有的团体属性。
团体属性分为

  • 自定义团体属性
  • 公共团体属性
  1. Internet
  2. No_Advertise
  3. No_Export
  4. No_Export_Subconfed

团体属性用一组4字节为单位的列表来表示,格式有:

  • aa:nn
    aa和nn的取值范围都是0~65535
  • 团体号
    取值范围是0~65535
    标准协议中定义:0~65535和4294901760~4294967295是预留的

公认团体属性

  • Internet
    默认情况下,所有的路由都属于Internet团体。具有该属性的路由可以被通告给所有的BGP对等体
  • No_Advertise
    具有此属性的路由在收到后,不能被通告给任何其他的BGP对等体
  • No_Export
    具有此属性的路由在收到后,不能被发布到本地AS之外。如果使用了联盟,则不能被发布到联盟之外,但可以发布给联盟中的其他As
  • No_Export_Subconfed
    具有此属性的路由在收到后,不能被发布到本地As之外,也不能发布到联盟中的其他子As

BGP属性特点—Originator_ID和Cluster_list

Originator_ID和Cluster_list是在路由反射器中使用,用来防止路由选择环路,为可选非过渡属性

  • Originator_ID—用于集群内的防环
    是本地AS中路由发起者的路由器ID。如果路由发起者在接收到路由的originator-id中发现了自己的RID,就知道产生了环路,于是忽略该路由条目,它提供在AS内的防环作用,它由第一个RR创建,并且不被后续的RR修改。它只应在IBGP对等体那里接收到,在RR上originator-id用来替代路由选择过程中的router-ID。它应该是这些路由器的router-id:在本地AS始发路由的BGP宣告者的router-id;如果是从EBGP学到的就是最初学到那个条目的路由器(本AS内边界路由器)的router-id(它一定是本AS内路由器的router-id)
  • Cluster_list—用于集群间的防环
    是路由经过的路由反射器的簇ID(默认RR的router-ID)的一个列表,如果路由反射器接收到的路由的cluster-List中发现了自己的本地簇ID,就知道产生了环路,于是忽略该路由条目。

BGP路由计算—选路规则

在这里插入图片描述
注: 选路规则并不是从上至下逐一匹配,可能会隔条匹配

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章