BGP利用RR解决路由黑洞

IBGP的路由反射器 (Route Reflector,即RR),由于IBGP的水平分割问题,即IBGP邻居传递得到的路由,不会再传递给其他IBGP邻居,容易造成中间的路由黑洞问题,即中间的路由器不知道目的地怎么走。

BGP解决路由黑洞的四种方法:

  1. 全互连,即在AS内部两两配置IBGP邻居,形成整个IBGP full mesh
  2. 路由反射器RR,即配置路由反射器及客户端,由RR来将路由反射给客户
  3. 联邦Confederation,即在大的AS区域中划分小的AS区域,以便形成邻居关系
  4. 利用MPLS,为路由打上标签,从而不根据路由表直接转发数据包
    (5.将BGP路由重分发到本地IGP,将会造成安全以及路由信息库过大的问题)

RR 的反射规则如下:

(1)如果路由是从非客户的IBGP 邻居学来的,则RR 只将它反射给客户;
(2)如果路由是从客户学来的,RR 会将它反射给所有的非客户和客户(除了发起该路由的客户);
(3)如果路由是从EBGP 邻居学来的,RR 会将它反射给所有的非客户和客户。
这样看来,只有非客户与非客户之间不能传递IBGP路由。
BGP利用RR解决路由黑洞_第1张图片
图片来源以及RR解析

RR 的防环机制:

Originator:
是IBGP内部起源路由器的router-ID,在AS内部被用作防环机制,由第一个RR创建,并不被后续的RR更改,并且当IBGP宣告者接收到的更新与自己携带有相同originator-id时,丢弃路由信息
Cluster list:
用来标识路由反射器属于哪个簇,路由每经过一个簇,就会将cluster-id添加到cluster-list中,RR不接收与自己携带有相同cluster-id的路由信息,以此来防环

RR环境配置:

IP地址配置:

  1. 接口IP:XY.1.1.0/24,X
  2. 环回口IP:X.X.X.X,X为自身路由器标识
  3. OSPF以及BGP配置如下图所示

注意:

  • R1和R2为两个RR,以便备份冗余
  • R3、R4被配置为客户端,而R5为非客户端

BGP利用RR解决路由黑洞_第2张图片
在基本的配置完成之后,我们增加一个AS 2的路由器R6,配置好R6上的接口和环回IP地址,并增加如图所示的配置,将6.6.6.6的网络宣告出去:
BGP利用RR解决路由黑洞_第3张图片
在R1、R2上输入do sh ip bgp 6.6.6.6,两者显示相同,都如下:
图中显示R1的6.6.6.6网络来自于一个RR-client,也就是在此AS中宣告6.6.6.6路由信息的起始路由器R3
BGP利用RR解决路由黑洞_第4张图片
如果R1、R2两者设置不同的cluster-id,那么R1、R2不仅会收到R3发出的6.6.6.6的路由信息,而且互相还会收到一个对方发出来的6.6.6.6的路由信息
BGP利用RR解决路由黑洞_第5张图片
R3这边显示的6.6.6.6的路由信息,是从R6这边直接接收到的,R3也是6.6.6.6路由信息在AS1中的IBGP起始宣告者,这样即使有RR将路由信息反射回R3,R3看到Originator就是自己的bgp router-id,也就不会接收其信息
BGP利用RR解决路由黑洞_第6张图片
R4这边显示,它分别从R1和R2这两个RR上分别收到一个6.6.6.6的路由信息,并且这两条路由信息有着同样的cluster-id
BGP利用RR解决路由黑洞_第7张图片
R5的显示和R4一模一样,说明非客户端也同样能从反射器上收到路由信息,而且是通过客户端 -> RR ->非客户端的途径
BGP利用RR解决路由黑洞_第8张图片
再来看,如果R1、R2两者设置不同的cluster-id,其实R4和R5还是能获得两条路由信息,只是上面显示的cluster-id不同而已,这里R5显示的内容就不粘贴了
BGP利用RR解决路由黑洞_第9张图片
本文若有什么描述不正确的地方,请各位仁兄在评论中多指教

你可能感兴趣的:(网络技术)