如第8章所讨论的,服务质量(QoS)是当今移动网络中的一个基本概念,具有不同类型的多种服务、不同的客户期望以及运营商提供的各种服务级别。端到端QoS基于在NE和子网中部署的机制和工具的集合,并且因此对于总体QoS,每个组件与其他网络方面一起按计划工作是至关重要的,特别是安全。
数据包根据QoS类别进行分类,并在IP报头中使用DSCP值进行标记。该标记意在由NE检查,以便对分组应用合适的QoS机制。当在隧道模式中使用诸如ESP的协议应用加密时,隐藏隧道内携带所有信息,包括DSCP。因此,如果公共网络意在对分组应用差分服务,则该值应该保持可见。接下来的方法是SEG中的IPsec实现和BTS以合适的值填充外部IP报头DSCP。
生成DSCP的最直接的方法是复制在明文数据包中接收的DSCP值,这在许多情况下是一种合适的方法。然而,当封装的分组将经过不同的网络时,其也可以是由不同的组织或服务提供商管理的不同的QoS域。该服务提供商可能具有不同的QoS策略,并且分组标记可以不同。因此,要与新的QoS域兼容的IPsec实现将需要在内部DSCP值和外部DSCP值之间具有灵活的映射。
值得注意的是,外层DSCP不会(在ESP和AH)被验证。这会是一个安全漏洞,可能会被攻击改写,产生DoS风险,这个问题比较难解决。
在接收器侧,当IPsec终止时,应用有保留接收到的内部DSCP的选项。这样具有的优点是DSCP可以是可信的,因为其已经被认证并且在VPN中传输期间不被任何节点改变。根据RFC4301,在接收方和发送方的DSCP空间不同,并且这个内部DSCP不再有意义的情况下,实现也可以选择使用外部DSCP。
当在BTS和SEG中定义安全策略时,通常它们适用于由IP地址、协议类型以及有时还有端口号定义的业务聚合。此业务聚合可能包含具有不同QoS类的流,因此它们被标记为不同的DSCP。这通常在移动网络的用户平面,实时呼叫将被分配到比非实时呼叫更高的QoS类别。对于其他流量类型,例如控制平面,所有数据包通常属于同一QoS类。
一个IPsecSA可以承载包含多个业务类型的业务集合,因此同一个运行的序列号用于该SA中的所有分组。当分组在网络上传输并到达路由时,它们可以被分配给不同的队列,因为分组具有不同的优先级,如果发生拥塞,则分组顺序将在相同IPsecSA的分组内改变。当分组到达接收器时,它将检查它们是否适合在反重放窗口内。具有较高优先级的分组可能在窗口的开始处,因为它们首先到达,并且具有较低优先级的分组将朝向结束。如果拥塞对于给定窗口大小足够高,则低优先级分组将不再在窗口中,并且它们将被丢弃。(www.daowen.com)
为了避免数据包丢弃,第一种可能的方法就是取消防止重放窗口,但这样会使系统遭到重放攻击。更合理的解决方式是使用更大的窗口,这需要更多的内存空间,也会造成性能上的影响。
新的IPsec规范[25]支持的另一个解决方案是对具有不同QoS类的分组使用具有相同业务选择器的多个IPsecSA。在出口方向,IPsec实施检查明文数据包的DSCP以及报头中的其他相关字段,并将其映射到正确的SA(见图9.25)。这样,SA内的所有数据包都具有相同的DSCP,并且不会发生重新排序。应当注意,DSCP不是由IKE协商的,因为它是发送方中进行DSCP和SA之间的映射的本地事务,因此为相同业务聚合建立的所有SA将具有相同的业务选择器。另一方面,这些并行SA仅由IKEv2支持,而不是由IKEv1支持,因为它需要已建立的SA具有唯一的业务选择器(更多细节参见RFC59962.8节)。
图9.25 基于DSCP的IPsecSA选择
注:只显示一个方向,另一个方向也是类似的。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。