实验说明:
1、A面(顶面)路由器在AS2,B面(底面)路由器在AS3,宁波路由器在AS1,西安路由器在AS4
2、IP设计、协议号设计如图所示
3、宁波办公路由IP 10.100.1.1,业务路由IP10.100.2.2;西安办公路由IP10.200.1.1,业务路由IP10.200.2.2
要求:
i)现有A\B两类业务:
(1)宁波和西安之间的办公流量走A面
(2)宁波和西安之间的业务流量走B面
ii)故障切换
(1)当宁波与北京A之间的链路出现故障时,宁波的办公流量能自动切换到B面,然后在经过B面第一个路由器时向A面转发数据,最后通过A面到达西安
(2)当宁波与成都B之间的链路出现故障时,宁波的业务流量能自动切换到A面,然后在经过A面第一个路由器时向A面转发数据,最后通过B面到达西安
(3)西安到宁波的流量出现故障时同上切换
实现思路:
在宁波路由器上 抓取分别办公和业务流量,并用route-map在出接口增加weight值,使流量分流
西安路由器同宁波路由器,
并在宁波路由器连接的AB面上同样抓取
不同的是,在A面抓取B面的流量,在B面抓取A面的流量,因为在链路正常的状态下,A面不会有B面的流量,B面同样不会有A免得流量
当其中一段链路断开,且流量无法直接到达对应位面时,通过去另一个面绕行达到目的
而为了当流量绕行时,不过多占用错误位面的路由器资源、浪费正确位面的路由器资源,则在错误未免第一跳路由器接收到流量时,就将流量发向正确位面。
配置如下
链路正常时测试
测试后发现A业务确实走A面 B业务老老实实走的B面 与要求符合
当宁波A业务的链路断开后测试:
此时发现 宁波的A业务从宁波B业务的链路经过到达B面第一跳路由器时被路由器发向A面路由器 达到了我们的要求
当宁波B业务的链路断开后测试:
B业务的流量到达A面第一跳路由器时被发向B面
符合要求
反之西安-宁波的流量在正常情况下和非正常情况下也符合要求
西安正常A业务
西安正常B业务
西安A业务链路断开时
西安B业务链路断开时
测试发现所有链路根据符合要求
但任有情况未被考虑在内 比如北京A和成都A同时宕机时,A面流量就会全程通过B面经过
为此我们需要将 深圳B 导向 成都B的路由weight值增加 但该值不能大于 成都A导向成都B的路由的weight值 否则会影响仅有北京A宕机时的路由切换;同时也需要将深圳B的 从 深圳A导向深圳B的路由条目的weight值增加 防止流量切换至上海B而增加不必要的路由器负担
实现方法与上文相似 抓取相应流量 通过route-map增加weight值 在BGP建邻时调用route-map即可,在此就不一一赘述