| 分类: ~~~ BGP ~~~ |
为避免在AS内部的循环路由,BGP不会向内部BGP PEER通告它从其他内部BGP PEER中获得的路由。
在上图中,A、B、C互联组成AS100,它们之间形成IBGP邻居关系,EBGP路由通过A进入AS100。当A从外部获得EBGP路由后,经由IBGP以通告给B,但是这些路由不会通告给C,因为路由器B不会在路由器A和C之间传递IBGP路由。为使路由器C得知这些路由,路由器A和C之间要形成一IBGP连接。
这一对IBGP的全互连要求造成了对每个IBGP路由器定义邻居语句的需求。在一个有100个路由器的AS中,这种情况会要求定义100个邻居语句。这种扩展性不是很好。
为了克服这个问题,定义了路由反射器的概念,像是内部IBGP会话的集中路由器或焦点。与路由反射器对等的路由器称为路由反射器客户。这些客户与rf相匹配并交换路由信息。rf接着交换或者反射这一信息给所有客户,从而消除了对全互连环境的需要。
我们可以修改上图,将B设置为RF,这样A和C都是他的客户。当B接收到来自A的路由更新,它将此信息反射给C,A和C之间不需要一个IBGP连接,因为路由器B正传播(或反射)信息给C。
配置实例:
//// router a ////
int lo0
int s0
router bgp 100
//// router b ////
int lo0
int s0
int s1
router ospf 64
router bgp 200
//// router c ////
int lo0
int s0
int s1
router ospf 64
router bgp 200
//// router d ////
int lo0
int s0
router ospf 64
router bgp 200
//// 监视和测试配置 ////
C# sh ip route
只显示出ospf路由,没有BGP路由,因为此时没有将B上BGP获知的路由重分发布至OSPF中。而此时由于必须同步,所以没有BGP路由。为了取消同步,在BGP进程中打入
c# router bgp 200
执行clear ip bgp *
在D上显示BGP路由表,仍然没有内容,因为C不能通过IBGP通告从其他IBGP邻居那里获得路由。有两种方法可解决这个问题:
c# router bgp 200
clear ip bgi *
sh ip bgp neighbors 194.1.1.2
show ip bgp
*>i1.0.0.0 192.1.1.1 0 100 0 100 i

加载中…