在PE节点上做BGP策略,A平面的PE发送BGP路由时携带BGP community 团体属性4814:100,B平面的PE发送BGP路由时携带BGP community 团体属性4814:200,根据收到的团体属性,在PE设备上作local-preference,A平面的PE设备如果收到4814:100的community,设置local-preference为200,如果收到4814:200的community,设置local-preference为100,使A平面PE优选A平面PE路由。同理,如果B平面的PE设备收到4814:100的community,设置local-preference为100,如果收到4814:200的community,设置local-preference为200,使B平面的PE优选B平面PE路由。
在做路由策略打上标识平面的BGP community属性的同时,还要打上标识地区的community属性,格式为4814:AAAB, AAA为三位的区号(区号为四位的去掉最前面的一位0)。B位标识平面,1为A平面,2为B平面。并在引入路由时使用策略为进来的路由打上团体属性。
为了减少开销,不建立BGP公网邻居,只建立BGP私网邻居。
如图所示:
如果BR1-1发布一条路由,首先这条路由会被发送到离自己比较近的RR,BR1-3和BR2-3。
BR1-3和BR2-3会继续反射到同一个大区的其他邻居,并且反射到不同大区的RR上。
在BR1-4和BR2-4接受到这条路由的时候,会直接反射到同一个大区的其他BR设备
以BR1-2为例这个时候会接收到2条来自不同平面的路由,如果是来自不同平面RR的,就加上community 4814:100,如果是来自相同平面的就加上相同的community 4814:200
Community可以用作路由的过滤器,那么过滤出不同层面的路由以后,需要对这些路由有什么操作呢?如果是来自相同平面的路由,加上Local Preference 200,如果是来自不同层面的路由,加上Local Preference 100。
请注意,上述操作实际上都是控制平面完成的,数据转发平面请看下图。