1、配置优先负载策略
写两条优先负载策略
第一条:【应用】选择Teams,【端口】选择对应接口(以1口为例)
第二条:【应用】选择非Teams,【端口】选择对应接口(以2口为例)
2、新增虚拟线路
创建两条虚拟线路
线路1:【网口】选择1口
线路2:【网口】选择2口
3、开始做流控策略
创建两条流控策略
流控策略1:【生效线路】选择线路1,【限制通道】选择0,【适用应用】选择非Teams
流控策略2:【生效线路】选择线路2,【限制通道】选择0,【适用应用】选择Teams
注:
1、设备匹配顺序为先匹配负载策略,再匹配流控策略
2、AC识别到teams流量从1口出去-----匹配负载策略1
3、1口故障,AC识别到teams流量不会出去-----负载策略1失效,通过默认路由从2口进行上网,但匹配流控2策略限制teams流量为0,所以teams无法上网
4、AC识别到非teams流量从2口出去-----匹配负载策略2
5、2口故障,AC识别到非teams流量不会出去-----负载策略2失效,通过默认路由从1口进行上网,但匹配流控1策略限制非teams流量为0,所以非teams无法上网。
看着是不是很完美,以为就要搞定了。
实际测试一下,我去,
测试发现前端流量管理显示走的是wan1,后台抓包实际走的wan2
看teams应用识别也是正常识别了 ,那么问题就来了。
3.问题排查
开启teams会议,AC查看到终端与teams交互的IP
后台看匹配到默认负载策略去了
查到那个teams流量在wan2正常时跑到wan1的原因是 链路负载选路时查到目的ip的应用是microsoft数据 所以没有匹配到第一条链路负载策略 而是匹配到第二条负载策略走wan1,抓包看出去的包也是走wan1(eth2)。
4.结论分析
可能是这个目的ip上识别出来的应用除了teams外也有microsoft数据 而链路负载缓存的这个目的ip应用是microsoft数据 所以没有匹配到第一条负载策略
另一个要注意的是 如果代理流量绑定了代理上网ip 就会直接走那个网口出去不会走链路负载 刚才这台测试设备是因为代理策略那个代理上网ip不存在 所以链路负载策略才对代理流量生效。
一般代理策略会选择接口IP作为代理IP,此时,链路负载会失效。流量直接从代理IP所在接口出去了。
为此想了两个解决方法:
1.代理策略接口IP自动选择,链路负载策略应用搜集teams前置流量特征,加入策略应用进行引流
2.代理策略指定接口IP,(此时链路负载策略失效),搜集iteams域名,通过代理策略指定域名引流到对应出口
第二个方案被研发否定,不可行,如果代理策略策略指定的出口ip掉线 会自动切换到其他线路出去的
最终解决方案:
1. 配置代理策略将[color=rgb(0, 104, 189) !important]
teams.microsoft.com相关的代理请求流量走wan2口ip出去;
2. 当wan2口掉线时,这些流量会切换到wan1发包出去,这个可以配置流控限制通道,将跑到wan1的这些teams流量丢包;
注意:流控限制通道 前端上虽然能配置的上下行带宽的限制到0 但实际是就算配置成0 通道也有默认的最小带宽的 最小带宽是5kb。意思就是能限制但不会全部丢包 会有5kbps流出去