目录

路由反射器

路由反射器角色

路由反射器原理

路由反射器的防环机制

Originator_ID-----起源ID

Cluster_List-------集群列表

路由反射器配置命令

 BGP联盟

联盟配置


路由反射器

我们知道,在IBGP 2 设备收到IBGP 1设备传输过来的IBGP路由后,不会将此IBGP路由传递给其它的IBGP设备,所以当其它的IBGP设备需要获得此跳IBGP路由时,就需要单独再与IBGP 1设备建立IBGP邻居关系,也就是IBGP全互联

在网络较大的情况下,使用IBGP全互联的话,就会很复杂,所以出现了路由反射器

路由反射器角色

1.RR-----------路由反射器 允许把从IBGP对等体学来的路由反射到其它IBGP对等体设备

2.Client--------客户机        与RR形成反射邻居关系的IBGP设备(在AS内只需要与RR直连)

3.Non-Client--非客户机    既不是RR也不是客户机的IBGP设备(在AS内部需要与RR之间、以及所有的非客户机之间仍然需要全互联)

4.Originator---始发者        在AS内部始发路由的设备(Originator_ID属性用于防止集群内产生路由环路)

5.Cluster-------集群          路由反射器与客户机的集合(Cluster_List属性用于防止集群间产生路由环路)

路由反射器原理

1.RR从非客户机学到的路由,会反射给所有的客户机

2.RR从客户机学习到的路由,发布给所有的客户机和非客户机(除了发起此路由的客户机除外)

3.从EBGP对等体学习到的路由,发布给所有的非客户机和客户机

4.路由反射过程中,BGP的路径属性没有任何更改


路由反射器的防环机制

Originator_ID-----起源ID

用于防止集群内产生路由环路

  •  当一条路由第一次被RR反射的时候,RR将Originator_ID属性加入这条路由,标识这条路由的发起设备。如果一条路由中已经存在了Originator_ID属性,则RR将不会创建新的Originator_ID属性
  • 当设备接收到这条路由的时候,将比较收到的Originator ID和本地的Router ID,如果两个ID相同,则不接收此路由。

Cluster_List-------集群列表

用于防止集群间产生路由环路---Cluster-ID就类似于OSPF中的Router-id

  • 当一条路由第一次被RR反射的时候,RR会把本地Cluster ID添加到Cluster List的前面。如果没有Cluster_List属性,RR就创建一个。
  • 当RR接收到一条更新路由时,RR会检查Cluster List。如果Cluster List中已经有本地Cluster ID,丢弃该路由;如果没有本地Cluster ID,将其加入Cluster List,然后反射该更新路由。

注意:Cluster_List 可以包含一个Cluster ID,也可以包含多个Cluster ID

当一个网络中有多个RR(防止单点故障)时,可以通过此网络中的RR配置相同的集群ID(Cluster_ID)来减少各RR接收的路由数量

Cluster ID配置

华为设备配置

  reflector cluster-id 1.1.1.5     配置Cluster-id为1.1.1.5

锐捷设备配置

  bgp cluster-id 1.1.1.5        配置Cluster-id为1.1.1.5

路由反射器配置命令

以下的配置只需要在RR上进行路由反射器的配置(客户机只需要配置与RR做IBGP邻居的配置)

对于客户机来说,客户机是不知道自己时客户机的,只有RR知道

华为配置
bgp 100
 peer  X.X.X.X reflect-client      配置自己为RR,并将指定的对等体配置为Client
 reflector cluster-id  X.X.X.X     配置集群ID

锐捷配置
route bgp 100
 neighbor X.X.X.X route-reflector-client   配置自己为RR,并将指定的对等体配置为Client
 bgp cluster-id x.x.x.x                    配置集群ID

 BGP联盟

BGP联盟,将一个AS划分为若干个子AS;被划分的AS就是一个联盟,子AS就是成员AS

如上:子AS之间建立EBGP邻居关系,子AS内建立IBGP邻居关系;这样就可以解决路由黑洞问题

注意事项

  1. 子AS号一般配置为私有AS号(64512~65535)
  2. 被划分的AS号作为联盟内每台设备的联盟ID,可以保证在联盟内部保留原有的IBGP属性(例如LP、MED、Next_Hop属性)
  3. 联盟相关的属性只在联盟内部有效,传出联盟时被自动删除
  4. 联盟内的AS_Path只在联盟内部有效,只是用来避免联盟内产生环路;传出联盟时会被删除(只携带联盟ID给对等体)

联盟配置

以AS号为65530的设备为例子

华为配置
bgp 65530                             配置子AS号
 confederation id 200                 声明自己所属的联盟AS号
 confederation peer-as 65531          配置自己相连的其他子AS号
 peer X.X.X.X as-number 100  
 peer X.X.X.X as-number 65531


锐捷配置
route bgp 65530                        配置子AS号
 bgp confederation identifier 200      声明自己所属的联盟AS号
 bgp confederation peer 65531          配置自己相连的其他子AS号
 neighbor X.X.X.X remote-as 100        建立BGP对等体
 neighbor X.X.X.X remote-as 65531      建立BGP对等体
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐