利用路由反射器可以缓解这一问题。客户端只需要和反射器建立IBGP连接即可。反射器会在客户端之间反射路由信息,客户端之间不需要建立IBGP连接。只有非客户端和非客户端之间不能传递BGP路由
参考Juniper官方文档我们来做这个实验。我觉得有点小问题,还希望老司机指正。
A是反射器,BC是A的客户端,DE位于cluster以外,所以是非客户端。按照前面介绍的,B和C作为A的客户端,只需要和A建立IBGP连接,不需要再和DE建立IBGP连接。同理,E只需要建立和D,A的IBGP连接即可。
1.A是反射器,所以需要在BGP里面指定所有的IBGP对等体,同时配置自己的cluster-id(本例使用A的lo0口):
2.B和C作为客户端,只需要在BGP里面指定反射器A的对等体。
3.D和E作为非客户端,同样也不需要指定客户端B和C的对等体。
4.以A为例子,配置IGP,并把OSPF路由重分布进IBGP。
配置IGP:
配置重分布:
5.直连接口和ROUTER-ID以及AS号:
6.检查BGP的邻居:
我发现D的状态里面是ROUTE REFLECTOR CLIENT。D不是应该非客户端吗?
我试着在cluster id后面配置neither 发现cluster是group全局的。
所以我修改了配置,BGP的进程一台设备只能起一个,但是group可以建立很多个:
然后我再查看bgp的邻居:
D依旧建立起了邻居。但是状态没有了 客户端选项。
B的邻居中依旧显示 客户端。
接下来查看BGP group,因为我修改了配置,输出可能会和官方的文档有些出入:
继续查看BGP summary:
最后查看路由:
实验的最后,可以看到在BC上收到了DE的IBGP路由,也在DE上看到BC的IBGP路由。唯一的问题就是 既然DE是非客户端,为什么文档里要把他俩也配置在cluster id下面变成客户端呢?还是我理解错了
原文地址:http://blog.51cto.com/13582804/2096415