BGP反射器联盟属性选路

Posted 南岸青栀*

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BGP反射器联盟属性选路相关的知识,希望对你有一定的参考价值。

BGP对等体交互原则

  • 1.从IBGP对等体获得的BGP路由,BGP设备只发布给他的EBGP对等体。
  • 2.从EBGP对等体获得的BGP路由,BGP设备发布给它所有EBGP和IBGP对等体
  • 3.当存在多条到达同一目的地址的有效路由时,BGP设备只将最优路由发布给对等体。
  • 4.路由更新时,BGP设备只发布更新的BGP路由
  • 5.所有的对等体发送的路由,BGP设备都会接收。

BGP与IGP交互

BGP引入IGP路由

BGP协议本身不发现路由,因此需要将其他路由引入到BGP路由表,实现AS间的路由互通。当一个AS需要将路由发布给其他AS时,AS边缘路由器会在BGP路由表中引入IGP的路由。为了更好的规划网络,BGP在引入IGP的路由时,可以使用路由策略进行路由过滤和路由属性设置,也可以设置MED值指导EBGP对等体判断流量进入AS时选路。

BGP引入路由时支持Import和Network两种方式:

  • Import方式是按协议类型,将RIP、OSPF、ISIS等协议的路由引入到BGP路由表中。为了保证引入的IGP路由的有效性,Import方式还可以引入静态路由和直连路由。
  • Network方式是逐条将IP路由表中已经存在的路由引入到BGP路由表中,比Import方式更精确。

IGP引入BGP路由

当一个AS需要引入其他AS的路由时,AS边缘路由器会在IGP路由表中引入BGP的路由。为了避免大量BGP路由对AS内设备造成影响,当IGP引入BGP路由时,可以使用路由策略,进行路由过滤和路由属性设置。

BGP属性

在这里插入图片描述

Origin属性

在这里插入图片描述

AS-Path属性

在这里插入图片描述

Next-Hop属性

在这里插入图片描述

Local-pref属性

在这里插入图片描述

Community属性

在这里插入图片描述

MED属性

在这里插入图片描述

汇总属性 atomic-aggregate、aggregater

IGP的汇总可分为三部分:

  • 1.用汇总路由匹配明细路由
  • 2.生成汇总路由并指向空接口
  • 3.干点匹配的明细路由

BGP汇总默认不会继承明细的属性。

  1. 通过atomic-aggregate属性警告下游路由器表示该路由是汇总路由有成环风险
  2. aggregater属性用于告知汇总路由器的router-id。
  3. 通过命令as-set继承明细的as-path(as-set)属性,attribute-policy该命令可以用route-policy设置汇总路由的属性,包括orgin,当然也能设置其他属性。
  4. origin-policy 用于设置汇总明细的范围,匹配的路由才能被汇总
  5. suppress-policy 用于设置汇总那么明细被抑制,detail-suppressed该命令是所有明细都会被抑制

华为BGP选路规则

BGP路由器将路由通告给邻居后,每个BGP邻居都会进行路由优选,路由选择有三种情况:

该路由是到达目的地的唯一路由直接优选。

对到达同一目的地的多条路由,优选优先级最高的

对到达同一目的地且具有相同优先级的多条路由,必须使用更细的原则进行选择。

BGP计算路由器优先级的规则:

  • 1.丢弃下一跳不可达的路由
  • 2.优选Preference_Value值最高的路由(私有属性,仅本地有效)
  • 3.优选手动聚合>自动聚合>Network>import>从对等体学到的。
  • 4.优选AS_Path短的路由
  • 5.起源属性IGP>EGP>Incomplete
  • 6.对于来自同一AS的路由,优选选用MED值小的。
  • 7.优选从EBGP学来的路由(EBGP>IBGP)
  • 8.优选AS内部IGP的Metic值最小的路由
  • 9.优选Cluster_List最短的路由
  • 10.优选Originator_ID最小的路由
  • 11.优选Router_ID最小的路由器发布的路由
  • 12.优线具有较小IP地址的邻居学来的路由。

BGP反射器

有条件打破IBGP水平分割。一个AS内,运行BGP设备两两间均为IBGP邻居关系,建立数量成指数上升;

反射规则:

1.RR收到来自EBGP路由,会将其发送给其所有的EBGP邻居与IBGP邻居,包含反射器群成员及非成员

2.RR收到一条RRC发送的IBGP路由,会将其发送给所有的EBGP邻居,也会发送给所有的RRC及No-RRC

3.RR收到一条No-RRC发送的IBGP路由器,会将其发送给所有的EBGP邻居及RRC,不会发送给No-RRC

在这里插入图片描述

Cluster_List属性

路由反射器和它的客户机组成一个集群(Cluster),使用AS内唯一的Cluster ID作为标识。为了防止集群间产生路由环路,路由反射器使用Cluster_List属性,记录路由经过的所有集群的Cluster ID。Cluster ID为该路由器的Route-ID。

1、当一条路由第一次被RR反射的时候,RR会把本地Cluster ID添加到Cluster List的前面。如果没有Cluster_List属性,RR就创建一个。

2、当RR接收到一条更新路由时,RR会检查Cluster List。如果Cluster List中已经有本地Cluster ID,丢弃该路由;如果没有本地Cluster ID,将其加入Cluster List,然后反射该更新路由。

Originator_ID属性

Originator ID由RR产生,使用RR上一跳路由器的Router ID标识路由的始发者,用于防止集群内产生路由环路。

1、当一条路由第一次被RR反射的时候,RR将Originator_ID属性加入这条路由,标识这条路由的发起设备。如果一条路由中已经存在了Originator_ID属性,则RR将不会创建新的Originator_ID属性。

2、当设备接收到这条路由的时候,将比较收到的Originator ID和本地的Router ID,如果两个ID相同,则不接收此路由。

备份RR:

RR在一个Cluster区域内作为一个非常重要的角色存在,如果RR出现故障,则会为网络带来非常严重的问题,部分路由器将无法获得路由,直接导致网络瘫痪,为避免此类问题发生,可在Cluster区域内配置多个RR,即备份RR。

在有多个RR的环境中,恐出现路由环路,因此,在所有的RR上必须配置相同的Cluster-ID。路由器在接收到路由时会查看Cluster-ID,若Cluster-ID与本地所配置的ID一致,则丢弃该路由

在这里插入图片描述

同级反射器:

在一个AS中可能存在多个集群,为了让路由能够在各集群之间进行传递,可配置同级反射器,即在一个集群内,RR与RRC保持关系,在集群之间,各RR之间建立普通的IBGP连接,基于反射器的路由传递原则,这样在一个AS内的所有设备都能够同步路由。

在这里插入图片描述

分级反射器:

在这里插入图片描述

在这里插入图片描述

配置命令:

如果路由反射器的客户机之间重新建立了IBGP全连接关系,那么客户机之间的路由反射就是没有必要的,而且还占用带宽资源。此时可以配置禁止客户机之间的路由反射,减轻网络负担。

在一个AS内,RR主要有路由传递和流量转发两个作用。当RR连接了很多客户机和非客户机时,同时进行路由传递和流量转发会使CPU资源消耗很大,影响路由传递的效率。如果需要保证路由传递的效率,可以在该RR上禁止BGP将优选的路由下发到IP路由表,使RR主要用来传递路由。

[r3-bgp]peer 2.2.2.2 reflect-client   邻居2.2.2.2成为本地的客户端,同时本地成为RR

peer { group-name | ipv4-address | ipv6-address } reflect-client
//配置路由反射器及其客户。 
refelctor cluster-id 1.1.1.1
//配置路由反射器的集群ID。 
undo reflect between-clients
//禁止客户机之间的路由反射。
routing-table rib-noly [ route-policy route-policy-name ]
//禁止BGP将优选的路由下发到IP路由表。

BGP联盟:

解决AS内部的IBGP网络连接激增问题,除了使用路由反射器之外,还可以使用联盟(Confederation)。联盟将一个AS划分为若干个子AS。每个子AS内部建立IBGP全连接关系,子AS之间建立联盟EBGP连接关系,但联盟外部AS仍认为联盟是一个AS。配置联盟后,原AS号将作为每个路由器的联盟ID。

优点:

  1. 可以保留原有的IBGP属性,包括Local Preference属性、MED属性和NEXT_HOP属性等;
  2. 联盟相关的属性在传出联盟时会自动被删除,即管理员无需在联盟的出口处配置过滤子AS号等信息的操作。

联盟与反射器对比

路由反射器联盟
不需要更改现有的网络拓扑,兼容性好。需要改变逻辑拓扑。
配置方便,只需要对作为反射器的设备进行配置,客户机并不需要知道自己是客户机。所有设备需要重新进行配置。
集群与集群之间仍然需要全连接。联盟的子AS之间是特殊的EBGP连接,不需要全连接。
适用于中,大规模网络适用于大规模网络

配置:

confederation id { as-number-plain | as-number-dot }
//配置联盟ID
confederation peer-as { as-number-plain | as-number-dot } &<1-32>
//指定属于同一个联盟的子AS号。 
confederation nonstandard
//配置联盟的兼容性。

以上是关于BGP反射器联盟属性选路的主要内容,如果未能解决你的问题,请参考以下文章

BGP防环之起始idCluster-list id

BGP防环之起始idCluster-list id

BGP防环之起始idCluster-list id

BGP防环之起始idCluster-list id

《深入浅出 —— BGP邻居联盟路由反射器综合配置》

BGP的反射器和联盟