今天给大家介绍一下BGP路由反射器的相关理论,同时在后面通过具体的配置实例,使大家了解BGP路由反射器的作用和配置方式。看懂本文,您需要对BGP相关理论知识有深入的了解,如果您对BGP基本知识还需要加强,欢迎查阅本博客其他文章,相信您一定会有收获。
在阅读本文章之前,强烈建议您先阅读这篇文章:一文看懂BGP路由黑洞问题。这篇文章与本文一以贯之,并且可以视为本文的基础篇章。
一、什么是BGP路由反射器
(一)BGP路由反射器简介
说到BGP路由反射器,就必须说一下BGP水平分割机制和路由黑洞问题。路由黑洞问题是在BGP配置中容易出现的问题,该问题会导致有部分中间路由器学不到路由从而使得数据包无法完成正常转发。而BGP水平分割机制本身是为了防止IBGP路由环路而定义的BGP路由传递规则。BGP水平分割机制规定,从IBGP学习到的路由,不会传递给其他的IBGP邻居。该机制对BGP路由配置造成了一定的麻烦,为了解决上述问题,BGP引入了反射器的概念。BGP反射器是BGP的一种特殊配置,在两个建立了IBGP邻居关系的路由器之间,一个路由器可以作为反射器指定其他路由器,被反射器指定的路由器可以称为该路由器的客户。一个反射器和他的所有客户我们将之定义为一个路由反射簇。对于BGP反射器而言,它有以下机制:
①如果路由反射器从自己的非客户邻居学习到一条IBGP路由,那么他会将这条路由传递给所有客户。
②如果路由反射器从自己的客户邻居学习到一条IBGP路由,那么他会将这条路由传递给除了传递给它路由的这个路由器之外的所有的IBGP邻居。
(二)BGP路由反射器放环
正是因为BGP反射器的上述两条机制,使得BGP在路由传递过程中,更加灵活,以路由黑洞问题解决为例,不用在所有的AS路由器之间建立IBGP邻居,从而使得配置更加简便。
但是,要注意的是,BGP路由反射器机制的引入本身是对BGP水平分割机制的破坏,而BGP水平分割机制本身是为了防止IBGP路由环路问题而引入的,在引入了BGP反射器之后,就必须采取其他的手段来防止IBGP路由环路。
在BGP路由反射器机制中,利用了Originator_ID和Cluster_ID两个可选非传递属性来防止环路。
当一个BGP路由反射器要反射一条路由时,它会首先检测该路由有没有Originator_ID属性,如果有,那么他就不做处理,如果没有,它就会加上自己的Router_ID。这样,如果该路由再次被自己收到,它就会发现该路由的Originator_ID属性有自己的Router_ID,这就说明这条路由本身是由自己发出去的,再从别的地方收到后就不会学习这条路由。
同时,当一个BGP路由反射器在反射一条路由时,也会检查路由的Cluster_ID信息,该信息路由反射器簇的ID信息,并且该属性是一个变长的属性。因此,BGP会将自己的Cluster_ID加入到路由属性中,当BGP反射器收到一条路由后,它也会检查该路由中的Cluster_ID信息,如果发现含有自己的Cluster_ID,就表示自己曾经学习过这条路由,但是又从别的地方传递了过来,因此他就不会再次学习这条路由了。
这样一来,通过上述两条属性,就解决了BGP反射器的路由路由环路问题了。
二、BGP路由反射器配置
下面我以下图为例,简单的介绍以下BGP路由反射器的配置。
(一)网络拓扑及要求
网络拓扑图如上所示,不同的背景颜色代表不同的AS域,黑色的线为EBGP关系,白色的线为IBGP关系。现在让R2为路由反射器,使得AS200和AS300可以相互传递路由,相互通信。
(二)配置简介
1、配置AS域
执行命令:
bgp 100
就表示将自己划为AS100,同时进入BGP配置视图。
2、配置BGP邻居
执行命令:
peer 151.1.1.1 as-number 100
可以指名自己的BGP邻居,peer后面的IP地址是BGP邻居的IP地址,在这里,没有特殊说明的话,是采取去往该邻居最近的接口IP地址。因此该路由器必须有BGP邻居的路由。后面的as-number跟着的数字表示邻居的AS号,此处必须和邻居实际所处的AS向对应,当AS号与本地AS号相同时,代表建立的是IBGP邻居,不同时,代表建立的是EBGP邻居。
3、配置路由反射器
执行命令:
peer 151.1.1.1 reflect-client
可以将自己设置为反射器,并指定对应IP地址的BGP邻居作为自己的客户。
(三)路由器R2代码附录
bgp 100
peer 151.1.1.1 as-number 100
peer 151.1.2.6 as-number 100
peer 151.1.3.3 as-number 100
#
ipv4-family unicast
undo synchronization
peer 151.1.1.1 enable
peer 151.1.1.1 reflect-client
peer 151.1.2.6 enable
peer 151.1.2.6 reflect-client
peer 151.1.3.3 enable
peer 151.1.3.3 reflect-client
#
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200/article/details/118557629