【华为认证】HCIP 数通笔记—BGP路由反射器

周工这里还准备了一些HCIP的学习笔记  点赞+留言  即可领取

BGP路由反射器

由于水平分割的原因,为了保证中转AS200所有的BGP路由器都能学习到完整的BGP路由,就必须在AS内实现IBGP全互联。然而实现IBGP全互联存在诸多短板:

  1. 路由器需维护大量的TCP及BGP连接,尤其在路由器数量较多时;
  2. AS内BGP网络的可扩展性较差。

为此可以采用路由反射器技术

2.2.1   路由反射器角色

引入路由反射器之后存在两种角色:

  1. RR(Route Reflector):路由反射器
  2. Client:RR客户端

       RR会将学习的路由反射出去,从而使得IBGP路由在AS内传播无需建立IBGP全互联。

将一台BGP路由器指定为RR的同时,还需要指定其Client。至于Client本身,无需做任何配置,它并不知晓网络中存在RR。

2.2.2   路由反射规则(非非不传)

RR在接收BGP路由时:

  1. 如果路由反射器从自己的非客户对等体学习到一条IBGP路由,则它会将该路由反射给所有客户
  2. 如果路由反射器从自己的客户学习到一条IBGP路由,则它会将该路由反射给所有非客户,以及除了该客户之外的其他所有客户
  3. 如果路由学习自EBGP对等体,则发送给所有客户、非客户IBGP对等体。

当路由反射器执行路由反射时,它只将自己使用的、最优的BGP路由进行反射

2.2.3   RR场景下防环

RR的设定使得IBGP水平分割原则失效,这就可能导致环路的产生,为此RR会为BGP路由添加两个特殊的路径属性来避免出现环路:

  1. Originator_ID
  2. Cluster_List

Originator_ID、Cluster_List属性都属于可选非过渡类型。

1.     Originator ID

RR将一条BGP路由进行反射时会在反射出去的路由中增加Originator_ID,其值为本地AS中通告该路由的BGP路由器Router ID。

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

当BGP路由器收到一条携带Originator_ID属性的IBGP路由,并且Originator_ID属性值与自身的Router ID相同,则它会忽略关于该条路由的更新。

R3收到来自R2的BGP路由10.0.2.0/24,在反射给R1时会添加上Originator_ID:10.0.2.2,R1收到之后再次反射给其客户端R2时携带Originator_ID属性,R2收到之后查看Originator_ID属性值存在自身的Router ID,忽略该路由更新。

 

2.     Cluster(路由反射簇)

路由反射簇包括反射器RR及其Client。一个AS内允许存在多个路由反射簇(如下图)。

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

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

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

Cluster_List

 

        R2发送给R1的路由,经过R1反射给R3时除了添加Originator_ID之外还会添加Cluster_List:10.0.1.1。R3再次反射给R4时, Cluster_List值为:10.0.3.3 10.0.1.1,R4再次反射给R1时Cluster_List值为:10.0.4.4 10.0.3.3 10.0.1.1,当R4将路由反射给R1时,R1发现Cluster_List包含了自身Cluster_ID,判断存在环路,从而忽略该路由更新。

2.2.4   RR应用举例

        R1向BGP发布了10.0.1.0/24路由,R2会从R1学习到该路由并且将其通告给R3,但是R3从R2学习到的这条IBGP路由由于水平分割规则的存在故而不能够再被通告给R4及R5,为此可以将R3设置为RR,R4、R5作为其客户端,这样R4、R5即可正常学习到BGP路由10.0.1.0/24。

猜你喜欢

转载自blog.csdn.net/2301_76769041/article/details/129361934