SONiC中基于策略的哈希配置
SONiC可以支持对不同类型的报文采取不同的Hash算法
对于多通道、多链路连接的情况,如LAG和ECMP的接口上,交换机和路由器采用Hash算法对报文中指定的字段进行Hash计算,然后根据得到的Hash值来确定报文经过具体哪一个LAG/ECMP成员发送出去。一般来说,路由器和交换机也能支持对Hash算法选择的字段进行配置,如配置为对IP源、目的地址、端口等信息,或者源MAC、目的MAC、VLAN ID等信息进行Hash计算。
基于端口配置Hash字段也会带来一些问题,例如对于VxLAN业务,经过VxLAN封装的报文的源和目的IP地址信息是源和目的节点VTEP的地址信息,具有相同的IP源、目的地址,Hash的结果是相同的,无法做到ECMP负荷分担。要真正实现负荷分担,需要对VxLAN封装的内容IP源和目的地址进行Hash计算。
SONiC支持经过ACL对报文进行分类,不同的报文可以选择报文中不同的字段进行Hash计算,从而保证类似VxLAN业务的报文流也能均匀分配到ECMP组中全部成员上。