BGP的属性问题

属性分类:

公认必遵:BGP路由器都可以识别并且携带,如果缺少这类属性,路由信息就会出错。

公认任意:BGP路由器都可以识别但是可能不会携带,就算缺少这类属性,路由信息也不会出错。

可选过渡:在BGP对等体之间可以传递的属性,BGP路由器可以不支持,但会传递给其他对等体

可选非过渡:如果BGP路由器可以识别该属性,会遵守该属性进行选路并传递给对等体;如果BGP路由器不支持此属性,这类属性会被忽略且不会传递给BGP对等体。


属性特点:BGP的路由属性是一套参数,它是对路由的进一步描述,使得BGP能够对路由进行过滤和选择。

对于传递的属性,入向设置属性可以影响本地及邻居,出向设置属性不会影响本地。

1、Origin

公认必遵,用来定义路径信息的来源信息,标记路由是怎样成为BGP路由的。

IGP:通过始发AS的IGP通过network宣告到BGP中的路由信息,标识为“i”

EGP:通过EGP得到的,标识为“e”

Incomplete:通过其他方式学习到的,例:通过import-route命令注入BGP,标识为“?”

注:通过IGP宣告的具有最高的优先级;EGP优先级次之,Incomplete优先级最低。

2、AS-path

公认必遵,按矢量顺序记录路由的路径,离开AS区域时记录AS编号。该属性可以当做BGP选路的参考属性之一,AS_Path长度越短越优先。此外,当BGP路由器从EBGP对等体接收路由时,如果发现AS_Path列表中有本AS号,则不接收该路由,从而避免了AS间的路由环路。

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

如上图所示,AS100会从两个方向收到AS300中的10.0.0.0/24的路由条目,从AS300出来的路由条目和经过AS400后的条目;AS100就会收下AS_Path短的路径, 在AS100中通告10.0.0.0/24时该属性不会改变,在其他条件相同的前提下,AS100中的BGP会选择从R3到达R4。

总结:带有本地AS号的路由,拒绝接收(防环);AS编号少的路由优于AS编号多的路由(选路)。

3、Next_hop

公认必遵,记录路由的下一跳信息。

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

注:记录的是连接地址(connect地址)

       EBGP邻居在传递时,会更新这一属性为EBGP邻居的connect地址。

       IBGP邻居之间传递时不会更新这一属性,通过next-hop-local的命令来更新属性。

个人感觉这个属性之所以这样设计也是为了在AS内部防止环路,对比RIP的环路我们就不难理解,环路的主要原因就是因为在传递路由的过程中将下一跳改为本地,再经过一系列的传递,根本不知道这条路由的源头在哪,这时就极易出环,所以为了防止环路,IBGP邻居不更改这一属性。


4、Local-pref

公认任意用于选路的属性该值越大越优,表明路由器的BGP优先级。作用于本地所在的AS域内,IBGP邻居可以传递,不通告给其他AS。

当BGP路由器通过不同的IBGP对等体得到目的地址相同但是下一跳不同的多条路由时,将优选Local_Pref属性较高的路由,缺省情况下为100。

干涉选路:让AS100的域内,从R2路由器去AS400。

修改本地Local-pref:将R2改大,或将R3的改小。(这样会修改本地所有路由属性,不推荐)

在接口上修改:通过route-policy修改10.0.0.0的R2的入向和出向、R2到R1的入向上改大Local-pref属性。R3的EBGP接口入向通过route-policy改小Local-pref的属性。不能修改R1到R3的出向,原因是不能影响R1自己的选路。

没有干涉的情况,R2会选择EBGP R4的路径去到达10.0.0.0/24的网段;R3会选择R5到达10.0.0.0/24的网段。

5、ATOMIC_Aggregate

公认任意

当某一台BGP Router做BGP路由汇总时,会丢失掉那些细路由的所有AS_Path详细信息,而只将做了汇总的那台BGP 路由器所在的AS号填入AS_Path的AS_SEQUENCE中, 只要有做BGP汇总都会产生这个警告属性,这个属性其实只是用来做警告的作用,用来警告下游BGP邻居,收到的是一条汇总路由。


6、Aggregator

可选传递

在做BGP汇总的那台路由器上,可以指定这个属性,用来指示在哪里做了汇总;通常这个属性的值由做BGP汇总的那台路由器的RID和所在的AS号来标识;用来告知后续的路由器。

总结:ATOMIC_AGGREGATE属性是用来警告说这条路由是BGP汇总路由;而AGGREGATOR属性是用来指示在哪个地方、哪个点上做了BGP汇总。

7、Community

可选传递

本质是一种标记,默认华为设备也不传递社团属性,故使用社团属性时,必须定义传递性。

标准格式:一个值X

扩展格式:两个值AA:NN

前两个字节表示自主系统号AA,

后面两个字节用来标识这个Community NN

公认的子属性:

Internet:传播不受限。

no-advertise:接收到的条目中若存在该社团属性,将不再传递该路由

no-export:接收到的条目若存在该社团属性,将不传递给下一个AS

no-export-subconfed:接收到的条目若存在该社团属性,将不传递给下一个小AS。 


8、MED

可选非过渡,IBGP之间可以传播;用于两个AS之间的路由选择, MED可以影响AS之间的选路(仅限两个AS之间),小优,默认0

拓扑描述

R1和R2将网段10.0.0.0/24传递给各 自的EBGP邻居R3和R4 , R3和R4在其他条件相同的情况下,优先选择MED值较低的路径,即均选择经由R1访问网络10.0.0.0/24。 

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

MED属性仅在相邻两个AS之间传递,收到此属性的AS方不会再将其通告给任何其他第三方AS。MED属性可以手动配置,如果路由没有配置MED属性, BGP选路时将该路由的MED值按缺省值0来处理。

9、Originator_ID 和 Cluster_list

这两个属性的属性种类都是可选非过渡的,并且都是供路由反射器RR(Route Reflector)环境中使用的——而且作用都是用来防止环路的产生。

其中Originator_ID属性的值是该AS中始发该路由条目的路由器的RID。 如果某台BGP 路由器收到一条路由条目更新,且这个更新中的Originator_ID是它自己的RID,那么它就知道发生了路由环路,并忽略这个更新的内容!

Originator_ID属性是为了防止经过路由反射器的反射而出环,给路由条目加一个初始的路由器RID。

Cluster_lsit 属性的值是该路由条目所经过的一系列RR簇ID的序号!如果某台RR收到了一条路由条目更新,并且更新中的Cluster_ID中发现了自己的RR簇ID,就证明有环路产生,并忽略这个更新的内容;如果没有,则接收并继续发射路由,同时追加自己的Cluster_ID。

 Cluster_lsit属性是为了防止在路由反射器之间反射形成的环路。

10、Weight(或PrefVal

可选非过渡

(1)weight

权重值:Cisco私有属性,不传播,仅在本地生效,只影响本地路由器的选路。默认本地产生的路由权重值为32768,其他为0。

(2)PrefVal

协议首选值;华为私有属性,可选非过渡,该属性仅在本地有效。人为主动设置,仅代表本地意愿。默认为0,越大越优。

注:在调用的相关策略时候只能在入方向上调用,因为此属性只能影响本地,不会传递给邻居。

选路规则:

当到达同一目的地存在多条路由时,BGP依照如下策略顺序进行路由选择:

  1. 如果此路由的下一跳不可达,忽略此路由;下一跳必须可达。
  2. 优选协议首选值(PrefVal)最高的路由。
  3. 优选本地优先级(Local_Pref)最高的路由。
  4. 优选手动聚合、自动聚合路由、network命令引入的路由、import-route命令引入的路由、从对等体学习的路由。
  5. 优选AS路径最短的路由。
  6. 比较Origin属性,依稀选Origin类型为IGP、EGP、Incomplete的路由。
  7. 优选MED值最小的路由。
  8. 优选从EBGP邻居学来的路由(EBGP路由优先级高于IBGP路由)
  9. 优选到下一跳IGP Metric较小的路由。
  10. 优选Cluster_List最短的路由。
  11. 优选Router ID最小的路由器发布的路由。
  12. 比较对等体的IP address,优选从具有较小IP地址的对等体学来的路由。

负载分担:当到达同一目的地址存在多条等价路由时,可以通过BGP等价负载分担实现均衡流量的目的。条件:BGP选路规则中“到下一跳的IGP Metric这条规则”之前所有需要比较的属性完全相同。

猜你喜欢

转载自blog.csdn.net/weixin_43997530/article/details/106741945