BGP高级特性-RR路由反射器

一、路由反射器

引入反射器可以简化IBGP全互联的需求配置,可以减轻网络和CPU的负担和不必要的BGP Update;

IBGP全互联是因为IBGP的水平分割防环机制;

水平分割防环机制是指在BGP(边界网关协议)的IBGP(内部边界网关协议)环境中,路由器从一个IBGP邻居学习到的路由,不会再通过另一个IBGP邻居传递出去,从而避免路由环路。

具体含义:在AS(自治系统)内部运行IBGP协议时,若没有水平分割机制,路由可能在IBGP邻居间循环传递。例如,路由器A将路由传给B,B又传给C,C再传给A,形成环路。水平分割机制通过禁止路由器从某个IBGP邻居学到的路由向另一个IBGP邻居传递,从根本上防止了这种环路的产生。

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

RR(Route Reflector):路由反射器

Client:客户机

Non-Client:非客户机

(是否为客户机是由RR指定的)

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

(简单理解为,由于水平分割防环机制因此需要IBGP全互联,由于IBGP全互联导致网络设备CPU的负担和不必要的BGP Update报文,因此引入路由反射器使得IBGP路由在AS内传播无需建立IBGP全互联)

路由反射器的相关角色:

RR:允许把IBGP对等体学习到的路由反射到其他IBGP对等体的设备(类似OSPF网络中的DR)

Client:与RR形成反射关系的IBGP设备(在AS内部只需要与RR直连)

Non-Client:既不是RR也不是客户机的IBGP设备。(在AS内部,非客户机与RR之间,以及所有的非客户机之间必须建立全互联关机)

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

Cluster(集群):路由反射器及其客户机的集合。Cluster_List属性用于防止集群间产生路由环路

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

二、路由反射规则

1、RR在接收到BGP路由时:

1.1、若RR是从自己的非客户对等体学习到的一条IBGP路由,则它将该路由反射给所有客户;

1.2、若RR时从自己的客户对等体学习到的一条IBGP路由,则它将该路由反射给所有非客户,以及除了该客户之外的其他所有客户;

1.3、若路由从EBGP学习到路由,则发送给所有的客户、非客户IBGP对等体;

(路由反射规则简单总结为"非非不传" ,即非客户端与非客户端之间不进行路由传递)

注:

1)当RR执行路由反射时,它只将自己使用的,最优的BGP路由进行反射。

2)RR在进行路由反射时不会修改任何属性;RR在进行路由发送时会修改"下一跳"属性;

三、路由反射器防环机制:Originator ID与Cluster List

一、Originator ID

1、BGP的非过渡属性;

2、Originator ID由RR产生,使用的Router ID的值标识路由的发送者,用于防止集群内产生路由环路;

3、当一条路由第一次被RR反射的时候,RR将Originator ID属性加入这条路由,标识这条路由的起始设备。如果一条路由中已经存在Originator ID属性,则RR将不会创建新的Originator ID属性(此时的Originator ID指的是将该路由传递给RR的路由器的Router ID,不是RR的Router ID)

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

二、Cluster List

1、BGP的可选非过渡属性,用于集群间的防环,由每个路由反射器(RR)生产,记录路由反射器经过的集群;

2、路由反射器和它的客户机组成一个集群(Cluster)。在一个AS内部,每个路由反射器使用唯一的Cluster ID作为集群标识。缺省情况下,每个路由反射器使用自己的Router ID作为集群ID。【reflector cluster-id 65000 //命令用来配置路由反射器的集群ID】

3、为了防止集群间产生路由环路,路由反射器便用Cluster List属性,记录路由经过的所有集群的Cluster ID;

4、当RR在它的客户机之间或者客户机与非客户机之间反射路由时,RR会把本地Cluster ID添加到Cluster List的前面,如果Cluster List为空,RR就创建一个;

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

四、常见组网:备份RR组网

  • 为增加网络的可靠性,防止单点故障对网络造成影响,有时需要在一个集群中配置一个以上的RR。
  • 转发路径上的路由器与所有RR均建立IBGP关系,任意一个RR均有完整的BGP路由。
  • RR1和RR2在同一个集群内,配置了相同的Cluster ID
  • 单级RR组网路由反射原理(图示以RR1的反射路径为例):
  • 当客户机Client1从EBGP对等体接收到一条更新路由,它将通过IBGP向RR1和RR2通告这条路由。
  • RR1和RR2在接收到该更新路由后,将本地Cluster ID添加到Cluster List前面,然后向其他的客户机(Client2)反射,同时相互反射。
  • RR1和RR2在接收到该反射路由后,检查Cluster List,发现自己的Cluster ID已经包含在Cluster List中。于是RR1和RR2丢弃该更新路由,从而降低BGP的内存占用。(RR之间根据Cluster List 防环)

PS:Cluster ID很类似于使用AS Path防环

相关推荐
夜来小雨2 小时前
第二章 网络安全监督
网络·安全
8125035332 小时前
连接追踪:实现细节
网络
Web极客码2 小时前
WordPress 被植入隐藏管理员后门?清理实战分析
服务器·网络·wordpress
kk的matlab学习之路2 小时前
深入解析Calico:云原生网络的安全守护者
网络·其他·安全·云原生
8125035333 小时前
第2篇:为什么要有分层?从工程实践到架构设计
linux·网络·网络协议·计算机网络
天荒地老笑话么3 小时前
Host-only DHCP 机制:租约、网关是否需要
网络
hhzz4 小时前
阿里云基础网络的创建、业务隔离及多网之间的互联互通
网络·阿里云·网络架构
白太岁4 小时前
Muduo:(5) 主 Reactor 之 Acceptor 与 SubReactor 的分发
服务器·网络·c++·网络协议·tcp/ip
天上飞的粉红小猪4 小时前
数据链路层
linux·服务器·网络